ANNONCE:
Som
nævnt mener jeg, at IT- og Telestyrelsens gratis sårbarhedscanner har værdi, også for private. Sikkerhedstest kan give
konkret viden om sikkerhedsniveauet på systemer og netværk.
Men der findes mange forskellige produkter indenfor sikkerhedstest og det er meget vigtigt man på forhånd gør sig klart hvad man egentlig ønsker at opnå med en sikkerhedstest.
Jeg opdeler markedet i tre meget forskellige hovedgrupper:
- Automatiske sårbarhedsscanninger
- Manuelle sikkerhedstest
- Specialiserede test
1. Automatiske sårbarhedsscanningerAutomatiske sårbarhedsscanninger, som IT- og Telestyrelsens Nessus scanner, er ofte den første type test virksomheder møder.
Prisen på scanningerne er typisk lav og består af en lang række test udført af et computerprogram uden menneskelig indblanding. Testen resulterer typisk i en standard rapport på engelsk.
StyrkerDe eneste udgifter til en automatisk scanner er licenser til kommercielle programmer og internet forbindelsen. Så da selve scanningen, udover indtastning af IP-adresser, ikke kræver nogen form for menneskelig intelligens eller tidsforbrug kan sikkerhedsfirmaer typisk holde prisen meget lav. Nogle sikkerhedsfirmaer tilbyder derudover at hjælpe med at tolke standard rapporterne.
De automatiske sårbarhedsscanninger er meget effektive til at skabe et overblik over sikkerhedsniveauet. Prisen er ofte lav nok til, at der kan laves regelmæssige scanninger, så man kan
følge sikkerhedsniveauet over tid.
Hvis netværket er meget dynamisk, dvs der sker hyppige konfigurationsændringer, mange nye servere sættes op, eller mange forskellige personer arbejder på netværket, kan der være baggrund for hyppige automatiske scanninger. De hyppige scanninger kan fange de konfigurationsfejl der uværgeligt opstår på store dynamiske netværk og resultaterne kan bruges som intern og ekstern dokumentation, f.eks. i forhold til IT-revisionen.
SvaghederAutomatiske sårbarhedsscannere udfører typisk tusindvis af test efter kendte sårbarheder, f.eks. manglende sikkerhedsopdateringer.
Et eksempel på en automatisk test er
Nessus testcase 10132.
Programmet checker først om TCP port 17300 er åben og om tekststrengen "YOK2" returneres når man forbinder sig til porten.
Hvis begge dele er sande kan sårbarhedsscanneren antage at maskinen er inficeret med "Kuang2".
Da automatiske scanninger udføres af et computerprogram uden menneskelig indblanding er scaningerne ikke bedre end de test der udføres. Hvis "Kuang2" virusen ovenfor installerer sin bagdør på port 17301 i stedet for port 17300 finder testcasen ovenfor ikke bagdøren. Og hvis scanneren forbinder sig til porten og teksten siger
"Dette er en hemmelig hacker bagdør, indtast din kommando her:", vil testen heller ikke kunne identificere en sårbarhed.
Automatiske sårbarhedsscannere leder således efter almindelige, kendte sårbarheder, der stort set altid kan løses med sikkerhedsopdateringer. Scanningerne finder ikke avancerede sårbarheder og scanningerne bør ikke bruges som symptombehandling. Det er betydeligt bedre at etablere procedurer, der sikre, at systemerne holdes opdateret end at finde sårbarhederne med sikkerhedsscanninger. Hvis serverne holdes opdateret burde automatiske scanninger aldrig finde sårbarheder.
Automatiske scannere kan kun udføre effektive test imod kendte systemer. Jo mere udbredt et system er, jo flere test vil der typisk blive foretaget. Så snart systemerne begynder at afvige fra standarden, begynder effektiviteten af den automatiske scanner at falde. Derfor vil automatiske scannere sjældent finde fejl i egenudviklede applikationer, lige meget hvor tydelige sårbarhederne vil være for en angriber, netop fordi de ofte vil afvige fra standardsystemer.
Teknisk adskiller de forskellige automatiske sårbarhedsscannere sig ikke meget fra hinanden, den store forskel mellem forskellige produkter ligger i dag typisk i rapporteringen. Manuelle sikkerhedstests er derimod *meget* forskellige rent teknisk.
2. Manuelle sikkerhedstestManuelle sikkerhedstest udføres af mennesker, der udnytter deres erfaring og viden, til at udføre testen.
Menneskelig intelligens, kreativitet og erfaring kan mange gange finde en række sårbarheder der ikke bliver fundet af computerprogrammer. Det er dog vigtigt at være klar over at resultaterne af manuelle sikkerhedstest kan være meget forskellige. F.eks. udfører nogle sikkerhedsfirmaer meget strukturerede tests, andre tester mere kreativt, i nogle firmaer udføres testen af en enkelt person, i andre benyttes mere eller mindre specialiserede teams.
Resultatet kan også i høj grad påvirkes af testernes erfaring, dygtighed og den testmetodik der benyttes.
Manuelle sikkerhedstest kan opdeles i to hovedgrupper: system test og intrusiontest.
I
systemtest udvælges et antal kritiske eller repræsentative servere til test. Testerne forsøger at finde alle kendte sårbarheder på de udvalgte servere under testen. Testen går i dybden og der rapporteres om alle fundne sårbarheder på alle systemer. Afhængigt af hvad der er aftalt med virksomheden kan testeren udnytte fundne sårbarheder til at nå dybere ind i netværket, men i mange tilfælde standses testen når kritiske sårbarheder er identificeret.
Denne type test omfatter kun de udvalgte systemer og sikkerhedsniveauet kan derfor påvirkes af alle andre systemer på netværket med anden konfiguration eller opsætning. Testserveren på Internettet, som alle har glemt, findes ikke i denne type test.
I
intrusiontest kender testeren alle virksomhedens IP-adresser og alle adresser kan angribes på lige fod med hinanden. Når en sårbarhed findes bliver den udnyttet til at nå dybere ind i netværket. Denne type test minder mere om hvordan en hacker angriber, men giver ikke information om alle potentielle sårbarheder på systemerne: når første sårbarhed findes bliver den udnyttet og testeren går med det samme videre til andre systemer. Typisk sættes et mål for testen på forhånd, f.eks. at opnå adgang til bestemte systemer eller netværk.
3. Specialiserede testSpecialiserede test omfatter alle variationer af sikkerhedstest der tilbydes og ønskes af virksomhederne. Eksempler inkluderer "interne test" hvor testeren sidder bag firewallen med forskellige rettigheder, VoIP-test, test af sikkerheden fra samarbejdspartnere, VPN-test, test af Intrusion Detection Systemer, crash testing (DoS), applikationstest, sikkerhedstest af trådløse netværk, test af incident håndtering osv, osv.
Det er meget vigtigt man på forhånd gør sig klart hvad man egentlig ønsker at opnå med en sikkerhedstest. Det kræver helt forskellige typer test hvis det er overblik over kendte sårbarheder på hele netværket der er interessant, eller hvis det er en test af om en dygtig, målrettet hacker vil kunne gennembryde en webapplikation man har brug for.
Jeg regner med at vende tilbage til sikkerhedstest på et senere tidspunkt. Men hvad er dine erfaringer med sikkerhedstest og sårbarhedsscanninger?