Beveiliging testen CRM systeem
Voor verschillende klanten bouw ik CRM systemen op maat. Soms vrij beknopt, maar vaak ook erg uitgebreid.
Nu vroeg een van de klanten of we niet eens een test kunnen doen hoe (be)veilig(d) het is.
Oftewel; kunnen kwaadwillenden "zomaar" erin inloggen? Is er toegang mogelijk tot de database?
Dat soort dingen.
Is dit op een of andere manier te testen?
Hoe testen jullie dit?
>> Oftewel; kunnen kwaadwillenden "zomaar" erin inloggen? Is er toegang mogelijk tot de database?
Euh ... jij bouwt deze systemen. En nu ga je aan ons vragen of er iemand in jouw systeem kan inloggen? Zou je die vraag niet aan jezelf moeten stellen?
Ik begrijp je reactie Ozzie en natuurlijk doe ik er alles aan om alles te beveiligen. Maar mijn vraag is vooral; laat iemand van jullie wel eens een externe partij checken/controleren of er toch niets over het hoofd is gezien qua beveiliging?
Lijkt mij geen hele gekke vraag.
Quote:
Oftewel; kunnen kwaadwillenden "zomaar" erin inloggen? Is er toegang mogelijk tot de database?
Dat soort dingen.
Dat soort dingen.
Die vragen zou je voor een groot deel zelf moeten kunnen beantwoorden, daar jij de bouwer van het systeem bent? :]
EDIT: maar het is altijd goed om ruimte voor twijfel te laten, op het moment dat je overtuigd bent dat alles wel snor zit ga je meestal nat :p
Het hangt er helemaal vanaf hoe jouw systeem in elkaar zit. Zit je op het internet? Of op een intranet die alleen via een VPN te benaderen is? Gebruikt je site HTTPS? Heeft een gebruiker beperkte loginpogingen (anders is brute force wellicht mogelijk)? Worden inlogpogingen uberhaupt gelogd? Heb je two factor authentication? Escape je je queries wel? En zo kunnen we nog wel even doorgaan.
De architectuur van jouw systeem zou al zodanig opgezet moeten zijn dat deze rekening houdt met security, hier achteraf een soort van security-saus overheen gooien werkt doorgaans waarschijnlijk minder goed.
Dit soort vragen zijn nooit eenvoudig te beantwoorden. Ook is er als het goed is geen eenduidig antwoord te geven, omdat veiligheidsmaatregelen "lagen" zouden moeten aanbrengen om kwaadwillenden buiten te houden. Als je een enkele "last line of defense" hebt in je systeem dan is dat de enige muur waar inbrekers overheen hoeven te komen, dat is natuurlijk nooit goed. Zelfs al is iemand ingelogd zou je af en toe nog steeds kunnen controleren of iemand is wie hij zegt dat hij is door bij belangrijke bewerkingen een controle uit te voeren. Alle data die deze persoon in het systeem invoert zou je ook nog steeds niet moeten vertrouwen en als data uit een onbekende bron moeten behandelen (filter input escape output).
Anyhow, waar je waarschijnlijk naar op zoek bent is een soort van security audit. Er zijn bedrijven die gespecialiseerd zijn in het uitvoeren van dit soort "scans". Ook bestaan er online wel tools om dit geautomatiseerd (en wellicht gratis) te doen.
Daarnaast is het natuurlijk interessant om te weten waarom een klant (ineens?) naar de beveiliging informeert. Maakt iemand zich hierover zorgen en waarom?
En het staat natuurlijk ook goed als je meteen antwoorden kunt geven waarin je kunt laten zien dat je een pakket aan voorzieningen en actieve maatregelen hebt om kwaadwillenden buiten te houden. Als het goed is heb je deze al, en anders wordt het wellicht (hoog) tijd dat je hier over na gaat denken :].
Niet om je paranoia te voeden, maar je zou voor de gein eens bij tijd en wijle door je access- en errorlogs kunnen spitten om te kijken wie er allemaal aan de poort aan het voelen is. Dan zul je waarschijnlijk merken dat je een heleboel chinese en russische vrienden hebt waar je geen weet van had :p.
Gewijzigd op 12/11/2020 14:08:17 door Thomas van den Heuvel
Quote:
Het hangt er helemaal vanaf hoe jouw systeem in elkaar zit. Zit je op het internet? Of op een intranet die alleen via een VPN te benaderen is? Gebruikt je site HTTPS? Heeft een gebruiker beperkte loginpogingen (anders is brute force wellicht mogelijk)? Worden inlogpogingen uberhaupt gelogd? Heb je two factor authentication? Escape je je queries wel? En zo kunnen we nog wel even doorgaan.
Op het internet via HTTPS, inderdaad beperkte loginpogingen die worden gelogd etc. Ook Two Factor authentication is ingebouwd. Hoop maatregelen zijn dus genomen.
Kortom; het is niet dat ik (of de klant) nu echt accuut gevaar zie.
Maar laat je wel eens een externe partij "proberen"?
Of doen jullie dat eigenlijk nooit?
Ramon van Dongen op 12/11/2020 13:58:01:
Als je zelf vindt dat je kunt autorijden, kun je dan ook aan jezelf de vraag stellen of je goed genoeg rijdt voor een rijbewijs? Nee, dan heb je een onafhankelijke externe examinator nodig (CBR)...
Ik begrijp je reactie Ozzie en natuurlijk doe ik er alles aan om alles te beveiligen. Maar mijn vraag is vooral; laat iemand van jullie wel eens een externe partij checken/controleren of er toch niets over het hoofd is gezien qua beveiliging?
Lijkt mij geen hele gekke vraag.
Ik begrijp je reactie Ozzie en natuurlijk doe ik er alles aan om alles te beveiligen. Maar mijn vraag is vooral; laat iemand van jullie wel eens een externe partij checken/controleren of er toch niets over het hoofd is gezien qua beveiliging?
Lijkt mij geen hele gekke vraag.
Geen enkele vraag is gek hoor. Ik probeer alleen een beetje te prikkelen ;-)
Wat betreft autorijden is het iets anders. Er wordt bepaald of je bekwaam bent om te kunnen rijden. Op het moment dat jij pakketten aanbiedt, wordt je geacht bekwaam te zijn om te kunnen programmeren. Wat Thomas zegt klopt. Je kunt security audits laten uitvoeren.
Je moet je afvragen waar iemand misbruik zou kunnen maken en op welke wijze. Als je jezelf de vraag stelt of iemand jouw database in kan, zul je je moeten afvragen of jouw database beveiligd is met een wachtwoord en of de database publiekelijk bereikbaar is. En wat zou er kunnen gebeuren als iemand je database in komt. Staat daar dan gevoelige informatie in?
De mate waarin je beveiligt zal ook verschillen. Zo kan ik me voorstellen dat een bank andere eisen stelt aan beveiliging dan de groenteboer op de hoek.
Je kunt heel veel beveiligen, maar ik denk dat je primair moet focussen op zaken als het afschermen van je database en beheergedeelte. Als het goed is kun je als je niet ingelogd bent uitsluitend de inlogpagina van het beheergedeelte oproepen en verder niks.
Stel je bent ingelogd en je kunt bijv. deze pagina aanroepen:
www.jouwsite.nl/admin/product/edit/213
Dan zou je die link eens moeten kopiëren, uitloggen, en vervolgens die link weer aanroepen. Als je die link dan kunt aanroepen dan kunnen mensen van buitenaf dus in jouw systeem komen als ze weten welke URL ze moeten aanroepen. Als je zorgt dat iemand die niet is ingelogd altijd op de loginpagina komt, ongeacht wat hij/zij aanroept, dan ben je al goed op weg.
Overigens bestaat er ook beveiliging op een hoger niveau. Denk bijvoorbeeld aan serversoftware om automatisch ip-adressen te blokkeren waarmee verdachte handelingen worden uitgevoerd. Of servermodules die verdachte traffic blokkeren nog voordat jouw website wordt aangeroepen.
Er is heel veel mogelijk, maar ik zou me vooral focussen op de basiszaken en zorgen dat je die goed in orde hebt.
Gewijzigd op 12/11/2020 14:36:03 door Ozzie PHP
Thomas van den Heuvel op 12/11/2020 14:04:55:
Anyhow, waar je waarschijnlijk naar op zoek bent is een soort van security audit. Er zijn bedrijven die gespecialiseerd zijn in het uitvoeren van dit soort "scans". Ook bestaan er online wel tools om dit geautomatiseerd (en wellicht gratis) te doen.
Een pentest met name.
Geen idee wat dit gekost heeft. De klant regelde & betaalde het, en wij zijn een paar dagen zoet geweest om op elke genoemde mits en maar (klant helemaal in de rats) weer een onderbouwd antwoord te geven (klant weer gerustgesteld). Uiteindelijk hebben we volgens mij geen enkele wijziging in de code hoeven maken.
Maar zoals gezegd: de ene toko is de andere niet, dus misschien zijn er nog wel echte "hackers" die wel tot het gaatje gaan.
Tot die tijd kun je ook gewoon deze checklists netjes langs lopen, controleren, en afvinken, en daarmee je klant "tevreden" stellen.
Ik kan weer vooruit en heb een hoop leesvoer. Bedankt!