De 20 alvorligste Internet sikkerhedssårbarheder (del 1 - generelt)

Artiklen blev oprindeligt publiceret den 11/10/2001

The SANS institute og FBI har opdateret og udvidet deres liste over alvorlige sikkerhedssårbarheder. Listen er nu oppe på 20 sårbarheder, fordelt på Generelle, Windows- og UNIX specifikke.
Listen er værdifuld, da størsteparten af succesfulde angreb på computersystemer kan henføres til sikkerhedshullerne på denne liste. DK•CERT har udarbejdet en forkortet oversættelse.

Generelt:

1. Standard installation af operativsystem og applikationer.

Næsten al software er forsynet med installationsrutiner eller -scripts, for at gøre installationen så ukompliceret som muligt. Ofte vil der blive installeret flere funktioner end de fleste brugere behøver. Heri ligger en risiko, da systemet på de funktioner, der ikke bliver brugt, sjældent bliver vedligeholdt, da der naturligt nok ikke er den samme nidkære fokus på dem.
På web-servere er det største problem script-eksempler, der kan være endog meget uheldigt udformet. Fjerner man ikke disse scripts kan de være en åben dør for uvedkommende.

Ligeledes åbnes der ofte for services og porte, der ikke er nødvendige, og igen kan det være vejen ind i systemet for en uvedkommende.

Fjern alt der ikke er nødvendigt og luk for alle porte, der ikke behøver at være åbne. Mange virksomheder har en formuleret politik på området og/eller en specialiseret installationsrutine for at imødegå denne situation - at sikre sig 'manuelt' kan være meget tidskrævende.

2. Konti uden password eller med et svagt password.

De fleste systemer anvender passwords som den første og eneste beskyttelse. Brugernavne (login) er forholdsvis nemme at få fat på, og de fleste virksomheder har en Dial-up adgang, der kommer ind bag firewall'en. Dermed bliver det muligt for uvedkommende at komme i forbindelse med systemet.
Et password, der er nemt at gætte eller standardpassword er et stort problem, men endnu større er problemet med konti helt uden password.

Fjern alle konti med svage, standard eller helt uden password (eller giv dem et stærkt password).

Der kan også være blevet oprettet standardkonti (med standardpassword) i forbindelse med installationen, og disse er så ens for alle installationer. Uvedkommende leder efter netop sådanne konti, da de jo er alment kendt.

Fjern alle standardkonti, eller skift til et virkelig stærkt password.

Lav jævnlige vurderinger af alle passwords. Sørg for en politik, der tvinger brugerne til at anvende stærke passwords.

3. Manglende eller ukomplet sikkerhedskopiering.

Når en sikkerhedshændelse indtræffer (og det sker for så godt som enhver) vil genopretning af systemet kunne foregå ved at hente data fra en opdateret sikkerhedskopi (backup), men også her er praksis meget forskellig. Nogle udfører daglige backup's, men sikrer sig ikke, at de faktisk virker. Andre har omfattende backup-procedurer, men ingen tilsvarende restore-procedurer. Fejl i disse procedurer opdages som regel først, når ulykken er sket og data er kompromitteret eller ødelagt.

Et andet problem mht. backup er den fysiske beskyttelse af den. Backup'en indeholder de samme følsomme informationer som maskinen den spejler og skal beskyttes lige så godt som denne - eller bedre.

Nogle steder genanvendes eller roteres backupmedier. Dette indebærer en risiko for at den sidste 'gode' backup er overskrevet, når hændelsen opdages.

Lav daglig backup af alle kritiske systemer, vær sikker på at den virker og pas godt på den. Genanvend ikke fulde backup's, kun inkrementelle (backup, der registrerer ændringer). Sørg for at have en procedure for backup.

4. Mange åbne porte.

Både legitime brugere og uautoriserede forbinder sig til computere via åbne porte. Jo flere åbne porte, jo flere muligheder for at uautoriserede kan forbinde sig til computeren.
Derfor er det vigtig at holde antallet af åbne porte nede til det absolutte minimum for at maskinen kan fungere efter hensigten. Alle andre porte skal være lukket.

Det kan være omfattende at fastslå hvilke porte, der er nødvendige at have åbne. Første trin i nedenstående metode bruges til at finde alle nuværende åbne porte, derefter lukkes alle (der ikke umiddelbart skønnes nødvendige) og derpå åbnes en ad gangen, indtil alt kører som det skal.

Kør 'netstat' på maskinen og noter resultatet, og kør derefter en portscanning imod den udefra og sammenlign resultaterne. Hvis de ikke stemmer overens skal det fastslås hvorfor.

Sørg altid for at have en (skriftlig) tilladelse til at portscanne.

5. Manglende filtrering af IP-pakker for korrekt indgående og udgående adresse.

At spoof'e (forfalske) IP-adresser er en meget populær metode for de, der ønsker uautoriseret adgang til maskiner.
Et 'smurf'-angreb, foretages ved at sende tusindvis af pakker til lige så mange maskiner. Hver pakke indeholder en forfalsket afsender(IP)adresse, og de tusindvis af 'svar' der ankommer til denne adresse - "offerets" - vil i mange tilfælde overvælde computeren, så den enten bliver meget langsom eller fejler helt. Et smurf-angreb kan lamme et helt netværkssystem.
Man kan opnå en høj grad af beskyttelse ved at filtrere pakker, der går ind (ingress filtering) eller ud (egress filtering) af netværket.

Filterreglerne er generelt set:

  1. Enhver pakke, der kommer ind i netværket må ikke have afsenderadresse fra det interne netværk.

  2. Enhver pakke, der kommer ind i netværket skal have en modtageradresse i det interne netværk.

  3. Enhver pakke, der forlader netværket skal have en afsenderadresse i det interne netværk.

  4. Enhver pakke, der forlader netværket må ikke have en modtageradresse i det interne netværk.

  5. Ingen pakke, der kommer ind i eller forlader netværket må have en afsender- eller modtageradresse i de private adresseområder eller de reserverede adresseområder. Disse omfatter bl.a. 10.x.x.x/8, 172.16.x.x/12, 192.168.x.x/16 og 127.0.0.0/8 (loopback).

  6. Bloker enhver 'source routed' pakke og enhver pakke med 'IP options field' sat.


Bemærk i øvrigt at disse regler åbner mulighed for en anden type angreb; oversvømmelse af log-filen i firewall'en. Sørg for at firewall'en kan klare en stor belastning.

Denne filtrering kan også med fordel foretages i ISP-enden af forbindelsen, hvis man kan lave en sådan aftale med sin ISP.

6. Manglende eller ukomplet logning.

En af grundsætningerne i sikkerhed er "Forebyggelse er ideelt, men detektion er nødvendig". Når man tillader trafik mellem sit netværk og Internettet, vil der altid være en mulighed for at en uvedkommende sniger sig ind og trænger igennem systemerne. Nye sårbarheder afdækkes hver uge og der er få muligheder for at beskytte sig imod, at nogen benytter dem. Logger man ikke, står man efter angrebet uden viden om hvad der er foregået.

Enten skal systemet genopbygges helt fra grunden, fra en backup man forhåbentlig kan stole på eller også skal systemet køre videre med risikoen for at uautoriserede personer stadig kontrollerer det.

Det kan ikke lade sig gøre at opdage et angreb, hvis man ikke ved, hvad der foregår på netværket. Log-filer giver et vist overblik over hvad der foregår; - hvilke systemer, der bliver angrebet og hvilke, der er kompromitteret. NIDS (Network Intrusion Detection System) giver et andet og mere nuanceret billede, men kræver nogen grad af konstant vedligeholdelse.

Log så meget som overhovedet muligt, gem log-filerne så længe som muligt - det er aldrig til at vide hvornår der er brug for dem - og sørg for at gemme dem et sted og med en hyppighed, der forhindrer uvedkommende i at fjerne eller ødelægge dem.

7. Sårbare CGI programmer.

De fleste webservere understøtter Common Gateway Interface (CGI); programmer, der tilføjer interaktivitet til websider.

Webservere leveres (og installeres) ofte med eksempler på CGI programmer. Nogle af disse programmer giver en direkte forbindelse for enhver bruger på Internettet til webserverens operativsystem. Sårbare CGI-programmer er særligt attraktive mål for uvedkommende, da de er nemme at finde og da de har de samme rettigheder som webserverens software.

Det har været brugt til at ødelægge websider, stjæle kreditkortoplysninger og anbringe bagdøre til fremtidige angreb. Som hovedregel skal CGI-programeksempler altid fjernes.

Sørg altid for kun at have den seneste version af CGI-programmer, og fjern alt der ikke er nødvendigt. Scan evt. selv websitet med en CGI-scanner.

Links