De 20 alvorligste Internet sikkerhedssårbarheder (del 3 - UNIX) <br />

Artiklen blev oprindeligt publiceret den 12/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.

UNIX:

14. 'Buffer overflow' i RPC services.
RPC (Remote Procedure Call) tillader programmer på en computer at afvikle programmer på en anden computer. Flere sårbarheder i RPC udnyttes aktivt.

Det formodes at størstedelen af de DDoS (Distributed Denial of Service) angreb, der blev gennemført i 1999 og 2000 blev udført af systemer kompromitteret ved hjælp af RPC sårbarheder.

Kontroller derfor om nogle af de tre mest udnyttede RPC services anvendes: rpc.ttdbserverd rpc.cmsd rpc.statd

Da RPC programmer ikke egentligt registrerer fejl, udnyttes de ofte via 'buffer overflow'; der sendes input til programmet, som det ikke forventer, og da fejlen ikke registreres, overlades data til afvikling.

Gør følgende for at beskytte imod RPC-angreb:

  1. Fjern eller luk disse services, på maskiner med adgang fra Internettet, hvor det er muligt

  2. Kan de ikke undværes, så installer den seneste patch fra distributøren

  3. Søg jævnligt efter nye patches og installer dem omgående

  4. Bloker for RPC-porten (111) i router eller firewall.

  5. Bloker for RPC 'loopback'-porte (32770-32789, TCP og UDP)


15. sendmail sårbarheder.
Det mest udbredte program til modtage, sende og videresende post på UNIX og Linux er sendmail. Udbredelsen gør det til et af de mest yndede mål for uvedkommende.

Sendmail har et meget stort antal sårbarheder og skal ofte opdateres eller patches.
Undersøg ofte om den seneste version er installeret, hvis ikke, er programmet højst sandsynligt sårbart. Undlad at køre sendmail, hvis det ikke anvendes.

16. BIND svagheder.
BIND (Berkeley Internet Name Domain) pakken er den hyppigst anvendte implementation af DNS (Domain Name Service).
DNS 'oversætter' Internetnavne - f.eks. www.cert.dk - til IP-numre og er en helt central del af Internettrafikken.

Foretages indbrud i en DNS-server kan det ikke blot misbruges lokalt, DNS-opslag kan også forfalskes, hvorved intetanende brugere kan narres til at videregive følsomme oplysninger.

Et skøn foretaget i 1999 opgjorde, at så mange som halvdelen af alle DNS-servere på Internettet kører sårbare versioner af BIND.

Følgende forholdsregler kan tages:

  1. Luk BIND på maskiner, der ikke har DNS autorisation. Nogle eksperter mener endda, at BIND-software helt skal fjernes

  2. Maskiner med DNS-autorisation bør (konstant) opgraderes til seneste version og patchlevel. Følg evt. udviklingen her eller på www.cert.org

  3. Kør BIND som en ikke-privilligeret bruger, for at imødegå eventuelle fremtidige angreb (Siden det kun er administrator, der kan køre processer på porte under 1024, skal BIND konfigureres til at skifte bruger, efter den har bundet sig til porten)

  4. Kør BIND i en chroot folderstruktur, for at imødegå eventuelle fremtidige angreb

  5. Deaktiver ?zonetransfer? fra alt undtagen autoriserede hosts

  6. Deaktiver rekursion og 'glue fetching', for at beskytte imod DNS-cache 'forgiftning'

  7. Skjul versionsstrengen


17. r-kommandoer.
Trust (tillids) relationer er udbredt i UNIX-verdenen og anvendes i særdeleshed til systemadministration. Ofte har en enkelt administrator ansvar for dusinvis, endog hundredvis, af systemer, og de anvender trust relationer og de relaterede r-kommandoer til at skifte fra system til system. r-kommandoer gør det muligt at forbinde sig til et (fjernt) system uden brugernavn og password - i stedet baseres forbindelsen på tillid til bestemte IP-adresser.

Hvis uvedkommende har opnået kontrol over een maskine i et trust relateret netværk, vil der være adgang til alle andre omfattede maskiner. Ofte bruges disse r-kommandoer: rlogin - remote login rsh - remote shell rcp - remote copy.

Trust relationer etableres ved at konfigurere to filer, enten /etc/hosts.equiv eller ~/.rhosts. Undersøg om en af disse filer findes, for at fastslå om trust relationer er oprettet.

Tillad ikke trust relationer og fjern r-kommandoer. Autentifikation baseret på IP-adresser er for nemt at omgå. Den bør bygge på f.eks. en ID-kort/PINkode kombination eller i det mindste på passwords.

Tillad aldrig '.rhosts' i root-konto'en. Brug jævnligt UNIX' 'find' til at lede efter '.rhosts', der kan være oprettet i brugernes konti. Skal r-kommandoer bruges, kræver det en ekstremt omhyggelig kontrol af netværkets ind-og udgange.


18. lpd (remote print protocol daemon)
in.lpd bruges i UNIX til at give brugere adgang til en printer. lpd lytter på port 515.

Da protokollen oprindeligt blev skrevet, overså programmørerne en fejl, der kan bevirke en 'buffer overflow', hvis dæmonen gives for mange jobs på kort tid. Enten går dæmonen ned eller den afvikler kode med højere rettigheder. Flere versioner af Solaris og mange versioner af Linux er sårbare.
I skrivende stund arbejder Sun på patches, der skal implementeres så snart de udkommer.

Indtil da er der flere metoder til at beskytte sig:

  1. Fjern print service i /etc/inetd.conf, hvis den ikke bruges

  2. Aktiver 'noexec_user_stack' ved at tilføje flg. linier til /etc/system og genstarte: set noexec_user_stack = 1 set noecec_user_stack_log = 1

  3. Bloker for port 515 (TCP)

  4. Anvend 'tcpwrappere', en del af tcpd-7.6 pakken


19. sadmind og mountd
Solaris systemer kan fjernadministreres, i en grafisk brugergrænseflade, vha. sadmind.
UNIX hosts med mountede NFS foldere giver adgang og kontrollerer forbindelser vha. mountd.
På grund af fejl i begge programmer, kan der opnås forbindelse med root-rettigheder vha. 'buffer overflows'.

Følgende vil beskytte imod NFS sårbarheder, herunder sadmind og mountd:

  1. Luk eller fjern sadmind og/eller mountd på maskiner, der har forbindelse direkte til Internettet, hvor det er muligt

  2. Installer de seneste patches

  3. Brug host/ip baserede export lister

  4. Angiv delte filsystemer som skrivebeskyttede eller 'no suid', hvor det er muligt

  5. Brug 'nfsbug' til at scanne for sårbarheder


20. Standard SNMP strenge.
Der er udbredt anvendelse af SNMP (Simple Network Management Protocol) til at overvåge og administrere alle typer af netværksforbundne apparater fra routere over printere til computere.

SNMP bruger en ikke-krypteret 'community string' som eneste autentifikation. Den manglende kryptering er slem nok, men den standard 'community string', der anvendes af størstedelen af SNMP apparaterne er 'public', med undtagelse af nogle få forudseende fabrikanter, der ændrer strengen til 'private'. Uvedkommende kan bruge denne information til at fjernrekonfigurere apparater eller helt lukke dem ned. Opsnappes SNMP-trafikken kan den fortælle en del om strukturen i netværket, såvel som apparater og systemer forbundet til det - nyttig information i det forberedende stadie af et angreb.

Kører SNMP på et apparat, undersøg da konfigurationen for de almindelige sårbarheder:

  • Standard eller blankt 'community' navn

  • 'Community' navn, der er nemt at gætte

  • Skjulte 'community' strenge


Følgende kan hjælpe mod utilsigtet udnyttelse af SNMP:

  1. Deaktiver SNMP, med mindre det er absolut
    nødvendigt.

  2. Er SNMP nødvendigt, brug da samme politik for 'community' navne som for passwords; sørg for at de er svære at knække og skift dem regelmæssigt.

  3. Brug 'snmpwalk' til at bedømme 'community' navne.

  4. Filtrer SNMP (port 161 UDP) i router eller firewall, medmindre det er strengt nødvendigt at kunne bruge det udefra.

  5. Gør MIB'er skrivebeskyttede, hvor det er muligt.

Links