Praktiske aspekter ved identifikation af softwaresårbarheder. Metode til at opdage webapplikationssårbarheder

IDENTIFIKATION AF INFORMATIONSSYSTEMERS SÅRBARHEDER

Sergei Konovalenko

postgraduate fra Krasnodar højere militærskole,

Rusland, Krasnodar

Igor Korolev

doktor i ingeniørvidenskab, professor, professor i afdelingen for beskyttede informationsteknologier, Krasnodar højere militærskole,

Rusland, Krasnodar

ANNOTNING

Der er foretaget en vurdering af eksisterende værktøjer til analyse af informationssystemers sikkerhed, på baggrund af hvilke modeller til identifikation, identifikation og vurdering af billeder af informationssystems sårbarheder blev bygget. De vigtigste karakteristika (elementer), der er iboende i billederne af eksisterende informationssystemsårbarheder, identificeres.

ABSTRAKT

En vurdering af eksisterende værktøjer til analyse informationssystem s sikkerhed blev udført. På grundlag af de opnåede resultater blev modellerne for detektion, identifikation og evaluering af informationssystemers sårbarhedsbilleder bygget. De vigtigste karakteristika (elementer), der er forbundet med billederne af de eksisterende informationssystemers sårbarheder, blev defineret.

Nøgleord: identifikation; Informationssystem; identifikation; karakter; beskrivelse af billedet; sårbarhed.

Nøgleord: opdagelse; informationssystem; identifikation; evaluering; beskrivelse af billedet; sårbarhed

Ethvert informationssystem (i det følgende benævnt IS) har visse sårbarheder, hvis liste er ret omfattende og konstant er genstand for opdatering (udvidelse). IS sårbarheder er forårsaget af mangler (fejl), der opstår i løbet af dette systems "livscyklus". I denne form afhænger muligheden for at implementere trusler mod et informationssystems sikkerhed direkte af en angribers handlinger for at opdage og udnytte dens iboende sårbarheder. På den anden side er processen med at identificere IS-sårbarheder, udført af en specialist, fundamental for at imødegå en angriber i de tidlige stadier af implementering af angreb.

Formålet med denne artikel er at opbygge generaliserede modeller til at identificere, identificere og vurdere billeder af IS-sårbarheder, samt at bestemme de karakteristika (elementer), der er iboende i billederne af eksisterende sårbarheder, hvilket vil give en specialist mulighed for bedre at systematisere sit arbejde i område for at sikre sikkerheden for kontrolleret IS.

Ifølge GOST R 56545-2015 er "sårbarhed" en fejl (svaghed) ved et software (software og hardware) værktøj eller et informationssystem som helhed, som kan bruges til at implementere trusler mod informationssikkerheden. "Informationssystem" er en samling af oplysninger indeholdt i databaser (herefter benævnt DB) og dem, der sikrer behandlingen af ​​dem informationsteknologier og tekniske midler.

Enhver IS-sårbarhed kan repræsenteres som et billede, der inkluderer et sæt af bestemte karakteristika (elementer, der beskriver denne sårbarhed), dannet i henhold til bestemte regler.

Beskrivelse af en IS-sårbarhed er information om en identificeret (opdaget) sårbarhed. Reglerne for beskrivelse af en IS-sårbarhed er et sæt bestemmelser, der regulerer strukturen og indholdet af en sårbarhedsbeskrivelse.

Ifølge sårbarhedsbillederne er de opdelt i billeder af kendte sårbarheder, billeder af zero-day sårbarheder og billeder af nyopdagede sårbarheder. En kendt sårbarhed er en sårbarhed, der er blevet offentliggjort med tilhørende sikkerhedsforanstaltninger, rettelser og tilgængelige opdateringer. En nul-dages sårbarhed er en sårbarhed, der bliver kendt, før udvikleren af ​​IP-komponenten frigiver passendeltninger, rettelser til fejl eller passende opdateringer. En nyligt opdaget sårbarhed er en sårbarhed, der ikke er blevet offentliggjort.

Hver type IS-sårbarhedsbillede har både generelle og specifikke karakteristika (elementer), som kan opsummeres i en tabel. Et eksempeltabel er præsenteret nedenfor.

Tabel 1.

Elementer af forskellige typer IS-sårbarhedsbilleder

Karakteristika for et sårbarhedsbillede

Element, der er iboende i billedet af en kendt sårbarhed

Element iboende i billedet af en nul-dages sårbarhed

Et element, der er iboende i billedet af en nyligt identificeret sårbarhed

Placering af påvisning (identifikation) af en sårbarhed i informationssystemet.

Metode til at opdage (identificere) sårbarheder.

Navn på sårbarheden.

Inden man går videre til modeller til at identificere, identificere og vurdere sårbarhedsbilleder, er det nødvendigt at præcisere, at IS består af niveauer:

  • anvendelsesniveau software(herefter benævnt softwaren) ansvarlig for interaktion med brugeren;
  • niveau af databasestyringssystemet (i det følgende benævnt DBMS), ansvarlig for lagring og behandling af IS-data;
  • operativsystemniveau (i det følgende benævnt OS), ansvarlig for vedligeholdelse af DBMS og applikationssoftware;
  • netværkslag ansvarlig for interaktionen mellem IS-knuder.

Hvert IS-niveau er forbundet med forskellige typer (klasser) af sårbarheder. For at identificere sårbarheder er det nødvendigt at udvikle modeller til at identificere, identificere og vurdere sårbarhed.

De vigtigste kilder til IS-sårbarheder er:

  • fejl i udviklingen (designet) af IS (for eksempel fejl i software);
  • fejl under IS-implementering (IS-administratorfejl) (f.eks. forkert softwareopsætning eller konfiguration, ineffektivt sikkerhedspolitikkoncept osv.);
  • fejl ved brug af informationssystemet (brugerfejl) (f.eks. svage adgangskoder, brud på sikkerhedspolitik osv.).

For at identificere, identificere og vurdere IS-sårbarheder, samt generere rapporter og eliminere (neutralisere) sårbarheder, anvendes netværkssikkerhedsanalyseværktøjer (herefter benævnt NAS) (sikkerhedsscannere (herefter benævnt SB)), som kan opdeles. i to typer:

  • netværk SAZ (SB) (udfør fjernanalyse tilstande for kontrollerede værter på netværksniveau);
  • SAZ (SB) på OS-niveau (udfør lokal analyse af kontrollerede værters tilstande, nogle gange er det nødvendigt at installere en speciel agent på kontrollerede værter).

Relevansen af ​​brugen af ​​SAZ (SS) skyldes det faktum, at en specialist på forhånd er i stand til at identificere en tilstrækkelig stor liste over typer (klasser) af sårbarheder, der er iboende i det kontrollerede informationssystem, og træffe de nødvendige foranstaltninger (i nogle tilfælde, prøv at tage) for at eliminere dem eller udelukke (minimere) muligheden for at bruge de opdagede sårbarheder af en angriber.

For at systematisere arbejdet hos en specialist inden for IS-styret sikkerhed og på baggrund af den udførte analyse opbygges en generaliseret model til identifikation af billeder af IS-sårbarheder (Figur 1).

Figur 1. Generaliseret model til at identificere billeder af IS-sårbarheder

Processen med at identificere IS-sårbarheder bygges ved at udføre passive kontroller (scanning) og aktive kontroller (probe) for tilstedeværelsen af ​​sårbarheder i den kontrollerede IS.

Under scanningsprocessen analyserer SAZ, der sender passende anmodninger til den kontrollerede IS (til portene på den kontrollerede vært), de returnerede bannere (datapakkeoverskrifter) og drager passende konklusioner om typen af ​​IS og tilstedeværelsen af ​​dens potentiale ( mulige) sårbarheder. Scanningsresultatet indikerer ikke altid 100 procent tilstedeværelsen af ​​mulige (typiske) IS-sårbarheder, da tekstindholdet i banneret kunne være blevet specielt modificeret, eller kendte sårbarheder, der ligger i denne IS, blev elimineret af en specialist under processen med dets implementering (brug). En anden måde at udføre scanningshandlinger på er aktive sonderingstjek, som giver mulighed for at analysere det returnerede digitale indtryk (fingeraftryk) af et stykke software af den kontrollerede IP (dvs. udføre processen med at sammenligne det opnåede resultat med et digitalt indtryk af en kendt sårbarhed af denne type ER). Denne metode giver en mere pålidelig og præcis procedure til at identificere mulige (typiske) sårbarheder i det kontrollerede informationssystem.

Under sonderingsprocessen simulerer SAZ et angreb på den kontrollerede IS ved hjælp af billedet af en mulig (typisk) sårbarhed opnået under scanning. Resultatet af sonderingsprocessen er den mest nøjagtige og pålidelige information om tilstedeværelsen af ​​sårbarheder i den kontrollerede IP. Denne metode bruges ikke altid, da der er mulighed for funktionsfejl (deaktivering) af den kontrollerede IS. Beslutningen om at bruge ovenstående metode træffes af netværksadministratoren i tilfælde af ineffektiv implementering eller behov for at bekræfte resultaterne af scanning og aktive sonderingstjek.

Resultaterne af scanning og sondering sendes til sårbarhedsdatabasen, som gemmer billeder af sårbarheder i den kontrollerede IS. Baseret på proceduren for at sammenligne billedet af den opdagede sårbarhed med sårbarhedsbillederne af den kontrollerede IS, genererer SAZ en rapport om fravær eller tilstedeværelse af matches i sårbarhedsbillederne (sårbarhedsdetektion), som gemmes i sårbarhedsdatabasen.

Den generaliserede model til identifikation af sårbarhedsmønstre er detaljeret af den generaliserede model til identifikation og vurdering af mønstre for IS-sårbarheder (figur 2).

Figur 2. Generaliseret model til at identificere og vurdere IS sårbarhedsbilleder

Processen med at identificere et billede af en opdaget IS-sårbarhed, som har specifikke karakteristika (elementer), udføres gennem proceduren for at sammenligne det med billeder af kendte sårbarheder og nul-dages sårbarheder gemt i sårbarhedsdatabasen. En formaliseret beskrivelse af kendte sårbarheder og zero-day sårbarheder udstedes i form af pas, som indeholder oplysninger om de specifikke karakteristika (elementer) af en bestemt sårbarhed. For nøjagtigt at kunne identificere billedet af en detekteret sårbarhed skal det indeholde oplysninger om navnet og versionen af ​​den IP-software, hvori sårbarheden blev opdaget, om identifikatoren, navnet og klassen for den opdagede sårbarhed. Baseret på ovenstående information korrelerer SAZ det detekterede sårbarhedsbillede til en af ​​typerne af sårbarhedsbilleder. For en vurdering af høj kvalitet skal det identificerede sårbarhedsbillede til gengæld indeholde oplysninger om identifikator og type IS-fejl, hvor sårbarheden blev opdaget, om placeringen af ​​sårbarheden i IS'en og om metoden til at identificere sårbarhed. Processen med at vurdere sårbarhedsbilledet ender med udvikling af anbefalinger til at eliminere sårbarheden eller udelukke muligheden for dens udnyttelse. I tilfælde, hvor et billede af en nyligt identificeret sårbarhed er blevet opdaget, placerer SAZ oplysninger om det i sårbarhedsdatabasen med dannelsen af ​​et nyt nul-dages sårbarhedspas. Når IS-udvikleren udstederninger, nødvendige opdateringer og når fejlene er rettet, bliver nul-dages sårbarhed en kendt sårbarhed.

Sammenfattende resultaterne af denne artikel bemærker vi, at en IS-sikkerhedsspecialist er forpligtet til konstant at arbejde for at identificere sårbarheder i systemet, klart forstå og forstå de processer, der forekommer i sikkerhedssystemet, overvåge opdateringen (udvidelsen) af sårbarhedsdatabasen, omgående eliminere mangler i systemet, og installere passende beskyttelsesforanstaltninger og opdateringer til kontrolleret IP.

Bibliografi:

  1. Astakhov A.S. Analyse af sikkerheden i virksomhedens automatiserede netværk // Jet Info Nyhedsbrev. – 2002. – nr. 7 (110). / – [ Elektronisk ressource]. – Adgangstilstand: URL: http://www.jetinfo.ru
  2. Gorbatov V.S., Meshcheryakov A.A. Komparativ analyse af computernetværkssikkerhedskontrol // Informationsteknologisikkerhed. – 2013. – nr. 1. / – [Elektronisk ressource]. – Adgangstilstand: URL: http://www.bit.mephi.ru
  3. GOST R 56545-2015 “Informationsbeskyttelse. Sårbarheder i informationssystemer. Regler for beskrivelse af sårbarheder." – M.: Standardinform, 2015.
  4. GOST R 56546-2015 “Informationsbeskyttelse. Sårbarheder i informationssystemer. Klassificering af informationssystems sårbarheder." – M.: Standardinform, 2015.
  5. Lukatsky A.V. Hvordan fungerer sikkerhedsscanneren? / - [Elektronisk ressource]. – Adgangstilstand: http://www.citforum.ru/security/internet/scaner.shtml (dato for adgang: 09.14.2016).
  6. Lukatsky A.V. Angrebsdetektion. - Sankt Petersborg. : Forlaget "BVH", 2001. – 624 s.
  7. Brugervejledning softwarepakke"Sikkerhedsanalyseværktøj "Scanner-VS". NPESH.00606-01. CJSC NPO Eshelon, 2011.
  8. XSPider sikkerhedsscanner. Administrator's Guide / – [Elektronisk ressource]. – Adgangstilstand: http://www.ptsecurity.ru (Dato for adgang: 15/09/2016).
  9. MaxPatrol sikkerhedsscanner. Sikkerhedskontrolsystem / – [Elektronisk ressource]. – Adgangstilstand: http://www.ptsecurity.ru (Dato for adgang: 16/09/2016).
  10. Stephen Northcutt, Judy Novak. Opdagelse af sikkerhedsbrud i netværk. 3. udg.: Overs. fra engelsk – M.: Williams Publishing House, 2003. – S. 265–280.

Angrebsdetektionssystemer

Der er tre trin til at udføre et angreb. Den første, forberedende fase består i at søge efter forudsætningerne for at udføre et bestemt angreb. På dette stadium leder vi efter sårbarheder, hvis brug fører til implementering af et angreb, dvs. til anden fase. På tredje fase er angrebet afsluttet, sporene er "dækket" osv. Desuden kan den første og tredje fase i sig selv være angreb. For eksempel betragtes en angribers søgen efter sårbarheder ved hjælp af sikkerhedsscannere såsom SATAN som et angreb.

Eksisterende beskyttelsesmekanismer implementeret i firewalls, autentificeringsservere, adgangskontrolsystemer osv. arbejde kun i anden fase. De der. I bund og grund er de midler til at blokere, snarere end at forebygge, angreb. I langt de fleste tilfælde beskytter de mod angreb, der allerede er i gang. Og selvom de var i stand til at forhindre et eller andet angreb, så ville det være meget mere effektivt at forhindre angreb, dvs. eliminering af selve forudsætningerne for gennemførelse af indtrængen. Omfattende støttesystem informationssikkerhed skal virke på alle tre stadier af angrebet. Og at sikre tilstrækkelig beskyttelse på den tredje, sidste fase er ikke mindre vigtig end i de to første. Når alt kommer til alt, kan du kun i dette tilfælde virkelig vurdere skaden fra et "succesfuldt" angreb samt udvikle foranstaltninger til at eliminere yderligere forsøg på at udføre et lignende angreb.

Der er flere måder at opdage, blokere og forhindre angreb på. Den første og mest almindelige metode er at opdage angreb, der allerede er ved at blive implementeret. Denne metode bruges i "klassiske" angrebsdetektionssystemer (for eksempel RealSecure fra virksomheden internetsikkerhed Systemer), firewalls mv. Men "ulempen" ved denne klasse af værktøjer er, at angreb kan genimplementeres. Den anden måde er at forhindre angreb, før de opstår. Dette gøres ved at søge efter sårbarheder, der kan bruges til at udføre et angreb. Og endelig er den tredje måde at opdage angreb, der allerede er blevet begået, og forhindre, at de gentager sig. Således kan angrebsdetekteringssystemer klassificeres efter angrebets stadier (fig. 1.):

Systemer, der opererer i det første trin af angreb og gør det muligt at opdage informationssystemsårbarheder, der bruges af angriberen til at udføre angrebet. Ellers kaldes værktøjer i denne kategori sikkerhedsvurderingssystemer eller sikkerhedsscannere. Typisk klassificeres sikkerhedsanalysesystemer normalt ikke som angrebsdetekteringsværktøjer, men hvis du følger angrebsstadierne beskrevet ovenfor, så er en sådan klassificering ret logisk.

Systemer, der opererer i anden fase af angrebet og gør det muligt at opdage angreb under deres implementering, dvs. i realtid (eller næsten realtid). Det er disse værktøjer, der anses for at være angrebsdetektionssystemer i klassisk forstand. Derudover kan vi skelne sådan en klasse af angrebsdetekteringsværktøjer som bedragerisystemer.

Systemer, der fungerer i tredje fase af et angreb og gør det muligt at opdage angreb, der allerede er gennemført. Disse systemer er opdelt i to klasser - integritetsovervågningssystemer, der registrerer ændringer i kontrollerede ressourcer, og loganalysesystemer.

Figur 1. Klassificering af angrebsdetektionssystemer efter angrebsstadie

Derudover er der en anden fælles klassifikation af systemer til registrering af overtrædelser af sikkerhedspolitik - baseret på implementeringsprincippet: værtsbaseret, dvs. detektering af angreb rettet mod en specifik netværksknude, og netværksbaseret, rettet mod hele netværket eller netværkssegmentet. Normalt er det her, yderligere klassificering stopper. Værtsbaserede systemer kan dog opdeles i yderligere tre underniveauer:

Application IDS (Intrusion Detection System) ), opdager angreb på specifikke applikationer;

OS IDS, som registrerer angreb på operativsystemer;

DBMS IDS, der registrerer angreb på databasestyringssystemer.

Fokus på at opdage angreb på databasestyringssystemer (DBMS) i særskilt kategori på grund af det faktum, at moderne DBMS'er allerede har forladt kategorien af ​​almindelige applikationer og i mange af deres karakteristika, inkl. og i kompleksitet er de tæt på operativsystemer. Klassificeringen af ​​angrebsdetekteringssystemer efter implementeringsniveau er således som følger (fig. 2):

Det kan bemærkes, at denne opdeling svarer til niveauerne i virksomhedens informationssystem.

Figur 2. Klassificering af angrebsdetekteringssystemer efter implementeringsprincip

Integritetsovervågningssystemer

Integritetsovervågningssystemer fungerer i et lukket kredsløb, behandler filer, systemobjekter og systemobjektattributter for at opnå kontrolsummer; de sammenligner dem derefter med tidligere kontrolsummer og leder efter ændringer. Når der registreres en ændring, sender systemet en besked til administratoren, der registrerer den tid, der svarer til det sandsynlige tidspunkt for ændringen. Hvis vi vender tilbage til stadierne af implementering af et angreb, så fungerer systemer af denne klasse på tredje trin, dvs. de kan tydeligt sige, om et angreb fandt sted (mere præcist, en ændring i det kontrollerede objekt) eller ej.

Bedrag systemer

Normalt, når det kommer til bedrag inden for informationssikkerhed, anvendes de metoder, som angriberne anvender, dvs. smuthuller til at omgå sikkerhedsforanstaltninger på plads, det være sig at stjæle adgangskoder og køre som autoriseret bruger eller uautoriseret brug modemer. Bedrag kan være nyttigt ikke kun for angribere, men også for at beskytte virksomhedens ressourcer. Der er mange forskellige muligheder bruge bedrag til gode formål:

Fortielse

Camouflage

Desinformation

I en eller anden grad bruges disse mekanismer i sikkerhedsafdelingernes arbejde. Men som regel bruges disse mekanismer ikke til information, men til andre sikkerhedsområder (fysiske, økonomiske osv.).

Inden for informationssikkerhed er den mest anvendte metode fortielse. Et slående eksempel på at bruge denne metode til at sikre informationssikkerhed er at skjule netværkstopologien ved hjælp af en firewall. Et eksempel på camouflage er følgende: hvert operativsystem har en unik repræsentation af brugeridentifikationsmekanismen, der adskiller sig i farven og typen af ​​skrifttype, som invitationen er udstedt i, teksten til invitationen og dens placering. Og endelig er et eksempel på desinformation brugen af ​​bannere, der ville gøre det klart for angriberen, at det system, han angriber, angiveligt er sårbart.

Driften af ​​system 2 og 3, der implementerer dem, er, at disse systemer emulerer visse kendte sårbarheder, som ikke eksisterer i virkeligheden. Brugen af ​​midler (bedragssystemer), der implementerer camouflage og desinformation, fører til følgende:

1. Forøgelse af antallet af operationer og handlinger udført af gerningsmanden. Da det er umuligt på forhånd at afgøre, om sårbarheden opdaget af angriberen er sand eller ej, skal angriberen udføre mange yderligere handlinger for at finde ud af det. Og endda yderligere handlinger ikke altid hjælpe med dette. For eksempel at prøve at køre et program til gætte adgangskode (f.eks. Crack for Unix eller L0phtCrack( L.C. ) til Windows) på en forfalsket og ikke-eksisterende fil i virkeligheden vil føre til spild af tid uden noget synligt resultat. Angriberen vil tro, at han ikke var i stand til at gætte adgangskoden, mens "hacking"-programmet i virkeligheden blot blev narret.

2. At få evnen til at spore angribere. I det tidsrum, hvor angribere forsøger at tjekke alle opdagede sårbarheder, inkl. og fiktive, sikkerhedsadministratorer kan spore helt tilbage til gerningsmanden eller lovovertræderne og træffe passende foranstaltninger.

For eksempel bruger et informationssystem fra 5 til 10 reserverede porte (nummereret fra 1 til 1024). Disse omfatter havne, der er ansvarlige for driften HTTP-tjenester, FTP, SMTP, NNTP, NetBIOS, Echo, Telnet osv. Hvis bedragerisystemer (for eksempel RealSecure fra ISS) emulerer brugen af ​​yderligere 100 eller flere porte, så øges angriberens arbejde dramatisk, og angriberen vil ikke finde 5-10, men 100 åbne porte. Samtidig er det ikke nok at opdage åben port, skal vi også forsøge at udnytte de sårbarheder, der er forbundet med denne port. Og selvom angriberen automatiserer dette arbejde ved at bruge passende software (Nmap, SATAN osv.), stiger antallet af operationer, han udfører, stadig markant, hvilket fører til et hurtigt fald i hans produktivitet.

Værktøjer til sikkerhedsanalyse

Sårbarheder opdages af sikkerhedsanalysesystemer - sikkerhedsscannere eller sårbarhedssøgningssystemer. De udfører omfattende undersøgelser af givne systemer for at identificere sårbarheder, der kan føre til overtrædelser af sikkerhedspolitikken. Resultaterne opnået fra sikkerhedsanalyseværktøjer giver et "snapshot" af systemets sikkerhedstilstand på et givet tidspunkt. Selvom disse systemer ikke kan registrere et angreb, mens det udvikler sig, kan de identificere potentielle angreb.

Sikkerhedsanalyseteknologi er effektiv metode politik implementering netværkssikkerhed før et forsøg på at krænke den udefra eller inde i organisationen.

En af mulighederne for at klassificere sårbarheder kan være en klassifikation, der afspejler stadierne i et informationssystems livscyklus (tabel 1).

IP livscyklus stadier

IC design

Design sårbarheder

Implementering af IP

Implementeringssårbarheder

IP-drift

Konfigurationssårbarheder

De farligste designsårbarheder er dem, der er svære at opdage og rette. I dette tilfælde er sårbarheden iboende i projektet eller algoritmen, og derfor vil selv dens perfekte implementering (hvilket er umuligt i princippet) ikke eliminere den iboende sårbarhed. For eksempel en sårbarhed i TCP/IP-protokolstakken.

Betydningen af ​​sårbarheder i den anden kategori (implementeringssårbarheder) er udseendet af en fejl på implementeringsstadiet i softwaren eller hardwaren af ​​et design eller en algoritme, der er korrekt ud fra et sikkerhedssynspunkt. Disse typer af sårbarheder opdages og elimineres relativt nemt - ved at opdatere den eksekverbare kode eller ændre kildeteksten til den sårbare software.

Den sidste grund forekomst af sårbarheder - softwarekonfigurationsfejl eller hardware. Disse omfatter for eksempel Telnet-tjenesten, der er tilgængelig, men ikke brugt på værten, brugen af ​​"svage" adgangskoder eller adgangskoder på mindre end 6 tegn, konti og adgangskoder, der er stoppet som standard (for eksempel SYSADM eller DBSNMP i Oracle DBMS) , etc. Disse sårbarheder er de nemmeste at opdage og rette.

Sikkerhedsanalysesystemer kan klassificeres efter de typer af sårbarheder, de opdager (fig. 3), beskrevet ovenfor.

Sikkerhedsanalysesystemer af anden og tredje klasse er mest udbredt blandt slutbrugere. Der er flere yderligere klassifikationer af disse systemer. Eksempelvis systemer til analyse af kildeteksten og den eksekverbare kode for den software og hardware, der testes mv. Førstnævnte bruges også normalt ved certificering af software i henhold til sikkerhedskrav. I de fleste tilfælde leveres software til en organisation uden kildekode. Derudover kræver analyse af kildetekster høje kvalifikationer fra personalet, der betjener dem. Fravær effektive systemer analyse af kildetekster tillader ikke, at en sådan analyse udføres på et kvalitativt niveau. Derfor er systemer til søgning efter sårbarheder i eksekverbar kode af stor interesse, hvoraf den mest almindelige underklasse er angrebssimuleringssystemer, der simulerer forskellige uautoriserede påvirkninger af komponenterne i et informationssystem. Det er disse systemer, der er blevet almindeligt kendt over hele verden på grund af deres relative enkelhed og lave omkostninger. Disse imitatorer opdager sårbarheder, før de bruges af angribere til at udføre angreb. Systemer af denne klasse inkluderer SATAN, Internet Scanner, Cisco Secure Scanner osv.

Angrebssimuleringssystemer er lige så succesfulde til at opdage ikke kun implementeringssårbarheder, men også udnyttelsessårbarheder. Sikkerhedsanalysesystemer, især systemer til søgning efter implementerings- og udnyttelsessårbarheder, kan fungere på alle niveauer af informationsinfrastrukturen i enhver virksomhed, det vil sige på niveauet af netværket, operativsystemet, DBMS og applikationssoftware. De mest udbredte værktøjer er værktøjer til at analysere sikkerheden af ​​netværkstjenester og protokoller. Dette skyldes først og fremmest universaliteten af ​​de anvendte protokoller. Viden og udbredt brug af protokolstakke som TCP/IP mv. giver dig mulighed for at kontrollere sikkerheden for et virksomhedsnetværk, der opererer i et givet område med en høj grad af effektivitet netværksmiljø, uanset hvilken software der fungerer på højere niveauer. Et eksempel på et sådant system er ISS's Internet Scanner. De næstmest almindelige værktøjer er værktøjer til at analysere sikkerheden i operativsystemer. Dette skyldes også alsidigheden og udbredelsen af ​​nogle operativsystemer (f.eks. UNIX og Windows). Men på grund af det faktum, at hver producent foretager sine egne ændringer i operativsystemet (et slående eksempel er de mange varianter af UNIX OS), analyserer OS sikkerhedsanalyseværktøjer primært parametre, der er karakteristiske for hele familien af ​​et OS. Og kun for nogle systemer analyseres de specifikke parametre for det. Et eksempel på et sådant system er ISS's System Scanner.

Ved gennemførelse af en sikkerhedsanalyse implementeres to strategier. Den første er passiv, implementeret på niveauet af operativsystemet, DBMS og applikationer, hvor analyse udføres konfigurationsfiler og systemregistret for forkerte parametre, adgangskodefiler til let gættede adgangskoder samt andre systemobjekter for overtrædelser af sikkerhedspolitikken. Den anden strategi, aktiv, udføres i de fleste tilfælde på netværksniveau, hvilket giver dig mulighed for at gengive de mest almindelige angrebsscenarier og analysere systemets reaktioner på disse scenarier.

Du skal dog ikke tro, at du ved hjælp af sikkerhedsanalyseværktøjer kun kan teste muligheden for uautoriseret adgang til virksomhedens netværk fra netværk Åben adgang(f.eks. internettet). Disse værktøjer kan bruges med ikke mindre succes til at analysere bestemte segmenter eller noder i en organisations interne netværk. Sikkerhedsanalysesystemer kan bruges:

  • at vurdere organisationens sikkerhedsniveau;
  • at overvåge effektiviteten af ​​opsætning af netværk, system og applikationssoftware og hardware;
  • eksterne revisions- og konsulentvirksomheder, der udfører informationsundersøgelser af kundenetværk;
  • til test og certificering af en eller anden software og hardware.

Tabel 2. Værktøjer til sikkerhedsanalyse.

Navn

Fabrikant

Bemærk

Internet scanner

Internetsikkerhedssystemer

På netværksniveau

Det første system, der modtager et statstoldudvalgscertifikat. Der er autoriseret træning i Rusland i henhold til systemet.

System Scanner

Internetsikkerhedssystemer

På OS-niveau

Database scanner

Internetsikkerhedssystemer

På DBMS-niveau

Cisco Secure Scanner

Cisco systemer

På netværksniveau

CyberCop scanner

Network Associates

På netværksniveau

WebTrends Security Analyzer

WebTrends Corporation

På netværksniveau

Enterprise

Sikkerhedschef

Symantec

På OS-niveau

SFProtect

Hewlett Packard

På netværks-, OS-, DBMS-niveau

Nessus

Frit distribueret

På netværksniveau

Systemet har et statstoldudvalgsattest.

Da nye sårbarheder konstant dukker op, er det nødvendigt at opdatere sikkerhedsanalysesystemets database for effektivt at opdage dem. Ideelt set bør der ikke være nogen kløft mellem udseendet af oplysninger om en sårbarhed i forskellige hackerkilder og udseendet af en signatur i detektionssystemdatabasen. Men uanset hvor ofte sårbarhedsdatabasen opdateres, er der en tidsforskydning mellem meddelelsen om en ny sårbarhed og fremkomsten af ​​en check for den.

Der er to hovedmekanismer, hvorved en scanner kontrollerer for en sårbarhed - scanning (scanning) og sondering (sonde).

Scanning - en passiv analysemekanisme, ved hjælp af hvilken scanneren forsøger at fastslå tilstedeværelsen af ​​en sårbarhed uden faktisk at bekræfte dens tilstedeværelse - baseret på indirekte tegn. Denne metode er den hurtigste og nemmeste at implementere. I ISS termer kaldes denne metode "inferens". Ifølge Cisco identificerer denne proces åbne porte, som findes på hver netværksenhed, og samler de portrelaterede bannere, der blev fundet ved scanning af hver port. Hver modtaget header sammenlignes med en tabel med regler for identifikation af netværksenheder, operativsystemer og potentielle sårbarheder. På baggrund af sammenligningen konkluderes der om tilstedeværelse eller fravær af sårbarhed.

Sonderende - en aktiv analysemekanisme, der giver dig mulighed for at verificere, om en sårbarhed er til stede eller ej på den analyserede node. Sondering udføres ved at simulere et angreb, der udnytter den sårbarhed, der testes. Denne metode er langsommere end "scanning", men er næsten altid meget mere nøjagtig end den. I ISS termer kaldes denne metode "verifikation". Ifølge Cisco bruger denne proces informationen opnået fra scanningsprocessen ("inferens") til at analysere hver enkelt i detaljer netværksenhed. Denne proces bruger også kendte angrebsteknikker til fuldt ud at bekræfte formodede sårbarheder og til at opdage andre sårbarheder, der ikke kan opdages med passive metoder, såsom modtagelighed for "denial of service"-angreb.

I praksis implementeres disse mekanismer ved hjælp af følgende adskillige metoder.

"Banner check"

Denne mekanisme er en række "scannings"-typetjek og giver dig mulighed for at drage en konklusion om en sårbarhed baseret på oplysningerne i svarhovedet til en scanneranmodning. Et typisk eksempel på en sådan kontrol er analysen af ​​overskrifterne på Sendmail-programmet eller FTP-serveren, så du kan finde ud af deres version og, baseret på disse oplysninger, lave en konklusion om tilstedeværelsen af ​​en sårbarhed i dem. Glem dog ikke, at administratoren kan ændre teksten i de overskrifter, der returneres til eksterne anmodninger.

"Aktiv sonderingskontrol"

Henviser også til "scannings"-mekanismen. De er dog baseret på at sammenligne et "digitalt fingeraftryk" af et stykke software med et fingeraftryk af en kendt sårbarhed. Antivirussystemer gør det samme ved at sammenligne fragmenter af scannet software med virussignaturer gemt i en specialiseret database. En variant af denne metode er at kontrollere kontrolsummerne eller datoerne for den software, der scannes, som er implementeret i scannere, der opererer på operativsystemniveau.

En specialiseret database (i Cisco-termer, en netværkssikkerhedsdatabase) indeholder oplysninger om sårbarheder og metoder til at udnytte dem (angreb). Disse data suppleres med information om afhjælpningsforanstaltninger for at reducere sikkerhedsrisikoen, hvis de opdages. Ofte bruges denne database af både et sikkerhedsanalysesystem og et angrebsdetekteringssystem. Ved i det mindste, det er hvad Cisco og ISS gør.

Denne metode er også ret hurtig, men sværere at implementere end "header checking".

"Efterligning af angreb" (udnyttelsestjek)

Nogle sårbarheder afslører ikke sig selv, før de bliver "nudget". For at gøre dette lanceres rigtige angreb mod en mistænkelig tjeneste eller node. "Exploit check"-metoden giver dig mulighed for at simulere reelle angreb og derved opdage sårbarheder på scannede noder med større effektivitet (men mindre hastighed). Simulerede angreb er en mere pålidelig metode til sikkerhedsanalyse end overskriftstjek og er generelt mere pålidelige end aktive sonderingstjek.

Der er dog tilfælde, hvor simulerende angreb ikke altid kan implementeres. Sådanne tilfælde kan opdeles i to kategorier: situationer, hvor testen fører til et "denial of service" af den analyserede node eller netværk, og situationer, hvor sårbarheden i princippet er uegnet til at udføre et angreb på netværket.

Mange sikkerhedsproblemer kan ikke opdages uden at blokere eller afbryde tjenesten eller computeren under scanningsprocessen. I nogle tilfælde er det uønsket at bruge angrebssimulering (for eksempel til at analysere sikkerheden på vigtige servere), fordi dette kan føre til store omkostninger (materiale og tid) til at genoprette funktionaliteten af ​​beskadigede elementer i virksomhedens netværk. I disse tilfælde er det tilrådeligt at anvende andre kontroller, såsom aktiv sondering eller overskriftskontrol.

Der er dog nogle sårbarheder, som simpelthen ikke kan testes uden muligvis at deaktivere tjenesten eller computeren. I dette tilfælde er sådanne kontroller deaktiveret, og brugeren kan selv aktivere dem. I Internet Scanner er sådanne checks f.eks. tildelt en separat kategori "Denial of service".

Scanningstrin

Næsten enhver scanner udfører en sikkerhedsanalyse i flere faser:

Indsamling af information om netværket. På dette stadium er alle aktive enheder på netværket, og de tjenester og dæmoner, der kører på dem, bestemmes. Når du bruger sikkerhedsanalysesystemer på operativsystemniveau, springes dette trin over, da de tilsvarende systemscanneragenter er installeret på hver analyseret node.

Opdagelse af potentielle sårbarheder. Scanneren bruger databasen beskrevet ovenfor til at sammenligne de indsamlede data med kendte sårbarheder ved hjælp af headerchecks eller aktive probechecks. I nogle systemer er alle sårbarheder rangeret efter risiko. For eksempel kategoriserer Internet Scanner sårbarheder i tre risikoniveauer: Høj, Medium og Lav.

Bekræftelse af udvalgte sårbarheder. Scanneren bruger specielle metoder og modellerer (simulerer) visse angreb for at bekræfte tilstedeværelsen af ​​sårbarheder på udvalgte netværksknuder.

Generering af rapporter.

Automatisk afhjælpning af sårbarheder. Dette trin er meget sjældent implementeret i netværksscannere, men er meget brugt i systemscannere (f.eks. System Scanner). Hvori denne mulighed kan implementeres på forskellige måder. For eksempel opretter System Scanner et specielt script (fix script), som en administrator kan køre for at rette en sårbarhed. Samtidig med oprettelsen af ​​dette script oprettes et andet script, der annullerer de foretagne ændringer. Dette er nødvendigt, hvis den normale funktion af noden er forstyrret efter at have løst problemet.

Under alle omstændigheder har en administrator, der søger efter sårbarheder, flere muligheder for at bruge et sikkerhedsanalysesystem:

  • Kør kun en scanning og kontroller for potentielle sårbarheder (trin 1, 2 og 4). Dette giver en forhåndsvisning af systemerne på netværket. Denne metode er meget mindre destruktiv end andre og er også den hurtigste.
  • Kør en scanning, der kontrollerer for potentielle og bekræftede sårbarheder. Denne metode kan forårsage afbrydelse af driften af ​​netværksknuder under implementeringen af ​​"udnyttelsestjek"-typetjek.

Kør en scanning med tilpassede regler for at finde et specifikt problem.

Kombinationer af ovenstående.

Rapportgenereringsundersystemet er et vigtigt element i sikkerhedsanalysesystemet. Uden det er det vanskeligt at danne sig en mening om sikkerhedsniveauet for virksomhedens netværkssegmenter. Baseret på de genererede rapporter bygger sikkerhedsadministratoren alle sine videre aktiviteter - ændrer sikkerhedspolitikken, eliminerer opdagede sårbarheder, rekonfigurerer sikkerhedsforanstaltninger, udarbejder rapporter til ledelsen mv. Samtidig bør et godt rapportgenereringsundersystem have følgende egenskaber:

Tilgængelighed af både tekstinformation og grafisk data i rapporter.

Rapporterne indeholder oplysninger om den opdagede sårbarhed, varianter af falsk detektion, anbefalinger til at eliminere opdagede problemer, links til producenternes servere og yderligere information. I mange tilfælde indeholder rapporter også links til FTP eller webservere, der indeholder patches og hotfixes, der eliminerer de opdagede sårbarheder.

Muligheden for kun at vælge de nødvendige data fra alle indsamlede oplysninger i henhold til specificerede kriterier (tidsinterval, navn på sårbarhed, risikograd, operativsystem, type sårbarhed osv.).

Muligheden for at sortere data i genererede rapporter efter forskellige parametre (efter navn, efter dato, efter risikoniveau osv.).

Mulighed for at oprette rapporter for forskellige kategorier af specialister. Der kan som minimum skelnes mellem tre sådanne kategorier: virksomhedsledelse, mellemledelse og tekniske specialister. Rapporterne i første kategori indeholder ingen tekniske oplysninger om de opdagede sårbarheder eller angreb. De indeholder en beskrivelse af den generelle sikkerhedsstatus for virksomhedens netværk. Rapporter af den anden kategori kan indeholde mere detaljerede teknisk information, for eksempel en beskrivelse af opdagede sårbarheder eller angreb, men uden at specificere foranstaltninger til at eliminere dem. Denne kategori omfatter også såkaldte komparative rapporter (trendanalyse), som viser tendenser i ændringer i sikkerhedsniveauet givne noder virksomhedens netværk. Den sidste kategori af rapporter omfatter tekniske rapporter, der ikke kun indeholder en detaljeret beskrivelse af hvert af de opdagede problemer, men også anbefalinger til at eliminere dem samt links til yderligere informationskilder. Sådanne rapportkategorier accepteres f.eks. i Internet Scanner og Cisco Secure Scanner.

Support forskellige formater genererede rapporter.

Funktioner af applikationen

Hvis scanneren ikke finder sårbarheder på den testede node, betyder det ikke, at de ikke eksisterer. Det afhænger ikke kun af scanneren, men også af dens miljø. For eksempel er følgende tilfælde typisk for Windows OS: scanneren forsøger at fjernanalysere systemregistrering dog i tilfælde af et forbud mod den analyserede knude fjernadgang til registreringsdatabasen, vil scanneren ikke opdage nogen sårbarheder. Forskellige implementeringer af den samme tjeneste reagerer forskelligt på sikkerhedsanalysesystemer. Meget ofte kan man i praksis se, at scanneren viser sårbarheder, der ikke findes på den node, der analyseres. Dette gælder netværksscannere, der udfører fjernanalyse af netværksknuder. Det er næsten umuligt at afgøre på afstand, om en sårbarhed faktisk eksisterer eller ej. I dette tilfælde kan vi anbefale at bruge et sikkerhedsanalysesystem på operativsystemniveau, hvis agenter er installeret på hver overvåget node og udfører alle scanninger lokalt.

For at løse dette problem har nogle produktionsvirksomheder taget vejen for at give deres brugere adskillige sikkerhedsanalysesystemer, der fungerer på alle ovennævnte niveauer - netværks-, system- og applikationsniveauer. Kombinationen af ​​disse systemer gør det muligt at opdage næsten alle kendte sårbarheder med en høj grad af effektivitet. For eksempel tilbyder Internet Security Systems SAFEsuite-familien på fire scannere: Internetscanner, Systemscanner, Security Manager og Database Scanner.

Cisco, som kun tilbyder et sikkerhedsanalysesystem på netværksniveau, tog en anden vej for at eliminere problemet med falske positiver. Det opdeler alle sårbarheder i to klasser:

Potentiale - som følge af header-tjek mv. aktive nudges af den analyserede tjeneste eller node. En potentiel sårbarhed kan eksistere i systemet, men aktive sonderingstjek bekræfter ikke dette.

Bekræftet - identificeret og eksisterende på den analyserede vært.

Test for potentiel sårbarhed udføres gennem en samling af overskrifter og brug af "bløde nudges". "Nudge" bruges til tjenester, der ikke returnerer overskrifter, men reagerer på simple kommandoer, for eksempel at sende kommandoen HEAD for at hente HTTP-serverversionen.

I nogle tilfælde er der sårbarheder, som er svære at opdage eller slet ikke opdages gennem netværket. For eksempel at kontrollere "svagheden" af adgangskoder, der bruges af brugere og andre konti. Hvis du bruger en netværksscanner, skal du bruge meget tid på at kontrollere hver konto eksternt. Samtidig udføres en lignende kontrol udført på en lokal node flere størrelsesordener hurtigere. Et andet eksempel ville være kontrol filsystem node, der scannes. I mange tilfælde kan dette ikke gøres eksternt.

Fordelene ved scanning på OS-niveau ligger i direkte adgang til lav-niveau host OS-funktioner, specifikke tjenester og konfigurationsdetaljer. Mens en scanner på netværksniveau simulerer den situation, som en ekstern hacker kan have, kan en scanner på systemniveau se systemet fra en brugers perspektiv, som allerede har adgang til det system, der analyseres, og som har en konto på det. Dette er den vigtigste forskel, da en netværksscanner per definition ikke kan give en effektiv analyse af de mulige risici ved brugerens aktiviteter.

Mange scannere bruger mere end én metode til at teste for den samme sårbarhed eller klasse af sårbarheder. Men i tilfælde af et stort antal scanninger introducerer brugen af ​​flere metoder til at søge efter en sårbarhed sine egne problemer. Dette skyldes scanningshastigheden.

Ikke alle test udviklet under laboratorieforhold fungerer som de skal. Også selvom disse kontroller er testet, før de indgår i den endelige version af scanneren. Nogle faktorer kan påvirke dette:

Funktioner i brugerens systemkonfiguration.

Den måde, dæmonen eller tjenesten, der analyseres, blev kompileret.

Fjernsystemfejl.

I sådanne tilfælde kan automatisk test gå glip af en sårbarhed, der let kan opdages manuelt, og som kan være udbredt på tværs af mange systemer. Kontrol af headeren i kombination med aktiv sondering i dette tilfælde kan hjælpe med at identificere en mistænkelig situation, tjeneste eller node. Og selvom sårbarheden ikke blev opdaget, betyder det ikke, at den ikke eksisterer.

Sikkerhedsforanstaltninger ved brug af protokoller TCP/IP

1 .Filtrering på routeren

Filtre på routeren, der forbinder et virksomhedsnetværk til internettet, bruges til at forhindre datagrammer i at passere igennem, som kan bruges til at angribe både organisationens netværk fra internettet og eksterne netværk af en angriber inde i organisationen.

Det skal bemærkes, at en sikrere og mere håndterbar løsning end at filtrere en bestemt TCP-trafik, der kommer fra eller til en brugers computer, er, at brugerne arbejder gennem proxy-servere. Proxyserveren påtager sig ansvaret for at give brugeren den nødvendige service og kommunikerer selv med de nødvendige internetværter. Brugerens vært interagerer kun med proxyserveren og behøver ikke at være forbundet til internettet. En filterrouter tillader således, at visse typer TCP-segmenter kun passerer fra eller til proxyserveren. Fordelene ved denne løsning er som følger:

  • Proxyserveren er under kontrol af virksomhedsadministratoren, hvilket tillader implementering af forskellige politikker for differentieret kontrol af brugeradgang til internettjenester og -ressourcer, filtrering af transmitterede data (virusbeskyttelse, censur osv.), caching (hvor relevant) .
  • Fra et internetperspektiv handler én proxyserver på vegne af alle brugerværter i en virksomhed, hvilket betyder, at der kun er ét potentielt mål for angreb fra internettet, og sikkerheden på én proxyserver er lettere at sikre end sikkerheden på mange brugercomputere .

2.Analyse netværkstrafik

Netværkstrafikanalyse udføres for at opdage angreb lanceret af angribere lokaliseret både i organisationens netværk og på internettet.

3.Routerbeskyttelse

Roudføres for at forhindre angreb, der har til formål at forstyrre datagram-routingskemaet eller at fange routeren af ​​en angriber.

4. Værtsbeskyttelse

Værtsbeskyttelsesforanstaltninger udføres for at forhindre angreb rettet mod dataaflytning, lammelsesangreb eller en angribers indtrængen i operativsystemet.

5. Forebyggende scanning

Netværksadministratoren skal være opmærksom på og bruge hackerteknikker og værktøjer og udføre proaktive scanninger af organisationens netværk for at opdage sikkerhedssvagheder, før angriberen gør det. Der findes også speciel software til dette formål - sikkerhedsscannere.

Generelle foranstaltninger til forbedring af netværkssikkerheden

  1. Online installation af patches til programmer (Patching). Systemadministratorer skal beskytte deres mest kritiske systemer ved omgående at patche software på dem. Det er dog svært at patche programmer på alle værter på et netværk, fordi patches kan forekomme ofte. I dette tilfælde er det bydende nødvendigt at foretage rettelser til programmerne på de vigtigste værter.
    1. Påvisning af vira og trojanske heste.For maksimal effektivitet bør de installeres på alle computere på netværket. Det kan tage ret lang tid at installere antivirusprogrammer på alle computere og jævnligt opdatere antivirusdatabaserne i dem – men ellers vil dette værktøj ikke være effektivt. Brugere bør lære at lave disse opdateringer selv, men bør ikke stole helt på dem. Ud over det sædvanlige antivirus program på hver computer, vi skal scanne applikationer til e-mailsmail server. På denne måde kan de fleste vira opdages, før de når brugernes maskiner.
    2. FirewallsFirewalls er det vigtigste middel til at beskytte en organisations netværk. De styrer netværkstrafik, der kommer ind og forlader netværket. En firewall kan blokere visse typer trafik fra at komme ind på netværket eller udføre visse kontroller på andre typer trafik. En velkonfigureret firewall kan stoppe de fleste kendte computerangreb.
    3. Password CrackersHackere udnytter ofte lidt kendte sårbarheder i computere til at stjæle filer, der indeholder krypterede adgangskoder. De bruger derefter specielle programmer til at knække adgangskoder, der kan registrere svage adgangskoder i disse krypterede filer. Selvom dette værktøj bruges af angribere, vil det også være nyttigt for systemadministratorer at opdage svage adgangskoder rettidigt.
    4. Kryptering. Angribere trænger ofte ind i netværk ved at lytte til netværkstrafik på følsomme steder og udtrække brugernavne og adgangskoder fra den. Derfor forbindelser med fjerntliggende maskiner adgangskodebeskyttede filer skal være krypteret. Dette er især vigtigt i tilfælde, hvor forbindelsen er via internettet eller til en vigtig server. Der er en række kommercielle og gratis programmer til kryptering af TCP/IP-trafik (SSH er den bedst kendte).
    5. Sårbarhedsscannere.Disse er programmer, der scanner netværket på udkig efter computere, der er sårbare over for visse typer angreb. Scannere har en stor database med sårbarheder, som de bruger, når de tjekker en bestemt computer for sårbarheder.
    6. Korrekt konfiguration af computere mht. sikkerhed.
    7. Værktøjer til at finde tilsluttede modemer.For at søge efter tilsluttede modemer kan angribere bruge programmer til at ringe til et stort antal telefonnumre. Fordi brugere typisk selv konfigurerer deres computere, ender de ofte dårligt beskyttet og giver en angriber endnu en mulighed for at starte et angreb på netværket. Systemadministratorer bør regelmæssigt bruge programmer til at tjekke telefonnumrene på deres brugere og finde computere, der er konfigureret på denne måde.
    8. SikkerhedsrådgivningSikkerhedsrådgivning er advarsler udgivet af computerkriminalitetsteams og softwareleverandører om nyligt opdagede sårbarheder. Rådgivningerne dækker typisk de mest alvorlige trusler fra disse sårbarheder og er derfor hurtige at læse, men meget nyttige. De beskriver truslen og giver ret konkrete råd om, hvad der skal gøres for at fjerne sårbarheden. De to mest nyttige er anbefalingerne offentliggjort af Computer Crime Team CIAC og CERT
    9. Intrusion DetectionSystemer til registrering af indtrængen registrerer hurtigt computerangreb. De kan installeres bag en firewall for at registrere angreb, der stammer fra netværket. Eller de kan installeres foran firewallen for at registrere angreb på firewallen. Værktøjer af denne type kan have en række funktioner.
    10. Værktøjer til registrering af netværkstopologi og portscannere. Disse programmer giver dig mulighed for at få et komplet billede af, hvordan dit netværk er opbygget, og hvilke computere der fungerer på det, samt identificere alle de tjenester, der kører på hver maskine. Angribere bruger disse værktøjer til at identificere sårbare computere og programmer på dem. Systemadministratorer bør bruge disse værktøjer til at overvåge, hvilke programmer der kører på hvilke computere på deres netværk. Med deres hjælp kan du opdage forkert konfigurerede programmer på computere og installere rettelser på dem.
    11. Instruktioner til handling i kritiske situationer.Ethvert netværk, uanset hvor sikkert det er, vil opleve nogle sikkerhedshændelser (måske endda falske alarmer). Medarbejdere i organisationen skal på forhånd vide, hvad der skal gøres i en bestemt sag.
    12. Sikkerhedspolitikker.Organisationer bør skrive en sikkerhedspolitik, der definerer det forventede beskyttelsesniveau, som skal implementeres konsekvent hele vejen igennem. For det meste vigtigt aspekt politik er at udvikle ensartede krav til, hvilken trafik der skal tillades gennem netværksfirewalls. Politikken bør også definere, hvordan og hvilke sikkerhedsforanstaltninger (f.eks. angrebsdetekteringsværktøjer eller sårbarhedsscannere) skal bruges på netværket. For at opnå et ensartet sikkerhedsniveau bør politikken definere sikre standardkonfigurationer for forskellige typer computere.
    13. Test af firewalls og WWW-servere for modstand mod forsøg på at blokere dem.Computerblokerende angreb er almindelige på internettet. Angribere crasher konstant WWW-websteder, overbelaster computere eller oversvømmer netværk med meningsløse pakker. Sikkerhedsbevidste netværk kan iværksætte angreb mod sig selv for at bestemme, hvor meget skade der kan gøres på dem.

12.12.2005 Alexey Markov, Sergey Mironov, Valentin Tsirlov

Den moderne lovgivningsmæssige, metodiske og instrumentelle ramme til identifikation af ikke-erklærede programkapaciteter sikrer ikke effektivt softwareressourcernes sikkerhed. Dette problem løses af testlaboratorierne i Forsvarsministeriet, FSB og FSTEC i Rusland, men de fleste sårbarheder opdages ikke i overensstemmelse med regulatoriske dokumenter, men endda i modstrid med dem. Desuden er der en tendens til at øge antallet af sårbarheder i programkoden.

Nutidens lovgivningsmæssige, metodiske og instrumentelle rammer til identifikation af ikke-erklærede programkapaciteter sikrer ikke effektivt softwareressourcernes sikkerhed. Dette problem løses af testlaboratorierne i Forsvarsministeriet, FSB og FSTEC i Rusland, men de fleste sårbarheder opdages ikke i overensstemmelse med regulatoriske dokumenter, og nogle gange endda i modstrid med dem. Desuden er der en tendens til at øge antallet af sårbarheder i programkoden.

Problemet med programbeskyttelse håndteres af testlaboratorierne i Forsvarsministeriet, FSB og FSTEC i Rusland, som i deres arbejde er afhængige af vejledningsdokumentet (RD) fra Ruslands Statens Tekniske Kommission om kontrol over ikke-erklærede kapaciteter. Forfatternes erfaring med at identificere mere end 20 bogmærker og tusindvis af kodefejl har imidlertid vist, at de fleste af dem ikke kun blev fundet ikke i overensstemmelse med det specificerede dokument, men nogle gange endda i modstrid med det. Den eksisterende lovgivningsmæssige, metodiske og instrumentelle ramme for identifikation af uerklærede kapaciteter i software tillader ikke effektivt at sikre programsikkerhed.

De objektive årsager til forekomsten af ​​sårbarheder i softwareprodukter er den ekstremt høje strukturelle kompleksitet af programkoden, den dynamiske udvikling af versioner og den nemme kodeændring. Hertil kan vi tilføje problemet med pålidelig identifikation af bevidst oprettede softwarebogmærker, ufuldkommenheden af ​​den regulatoriske og metodiske base og forsinkelsen i den instrumentelle base for certificeringstests. For eksempel, i modsætning til anti-virus kontrolværktøjer, er der ingen midler til garanteret detektering af softwarebogmærker i strukturelt kompleks software. Et halvt århundredes teoretisk forskning har ikke sikret udviklingen af ​​et matematisk apparat til vurdering af graden af ​​softwaresikkerhed baseret på certificeringstests for at bekræfte fraværet af softwarebogmærker. Derfor er kvaliteten af ​​udviklingen af ​​indenlandsk software i statslige institutioner, samt niveauet af tillid til udenlandske produkter.

Grundlaget for informationssikkerhedsteori er begreberne trussel (tilstedeværelsen af ​​sårbarhed) og risiko (muligheden for, at en trussel bliver realiseret). En softwarekodesårbarhed er en implementeringsfejl i softwaren, der potentielt reducerer dens sikkerhed. Væsentlige klassifikationstræk ved kodesårbarheder: intentionalitet med at indføre en kodesårbarhed (logisk kodningsfejl, softwarefejl), sårbarhedsniveau og funktionsniveau (i kildekode og eksekverbar kode, i miljøet), sikkerhedsundersystem kompromitteret af sårbarheden (adgangskode, kryptografisk, etc.).

Certificeringsprøver

Vejledningsdokumentets begrænsninger

Vejledningsdokumentet om uerklærede kapaciteter blev oprettet i 90'erne for at løse problemet med kontrol over udenlandske produkter leveret til Rusland og havde derefter uden tvivl stor betydning. Metoderne defineret i RD stammer fra teorien om programpålidelighed, derfor er spørgsmålene om beskyttelse af selve koden ikke klart afspejlet i dokumentet. I overensstemmelse med RD er de vigtigste typer af kontroller, der skal udføres af testlaboratorier, strukturel statisk og dynamisk analyse af kildetekster (strukturen af ​​programmet, dannelsen og passagen af ​​alle dets veje).

Fordelene ved dokumentet omfatter kravet om at levere kildekode og dokumentation, kontrol over redundans (som giver dig mulighed for at udelukke nogle indlejrede elementer) og tilstedeværelsen af ​​en definition af fuld rutetest. Sidstnævnte giver med passende overvågning og revision af arbejdet mulighed for at identificere de fleste sårbarheder i simple programmer, men i forhold til komplekse programmer er dette meget problematisk. Lad os nævne de mest alvorlige ulemper ved RD.

De mest usikre produkter forbliver dem, der er blevet certificeret til tredje eller fjerde kontrolniveau. Det fjerde niveau handler om at kontrollere muligheden for kompilering og montering software produkt, samt fraværet af overflødige filer i distributionen. Dette skaber illusionen om at kontrollere programmet i overensstemmelse med sikkerhedskravene. For det tredje niveau er tilgangen til at identificere ikke-erklærede kapaciteter en ekstremt langvarig undersøgelse af programstrukturen, som ikke omfatter en analyse af funktioner, procedurer og metoder for tegn på programbogmærker og kodekodningsfejl.

Instrumentel testbase

For at opnå et FSTEC-akkrediteringscertifikat til identifikation af ikke-deklarerede kapaciteter, skal testlaboratoriet have certificerede instrumenter ("AIST", EMU). Her opstår to spørgsmål.

For det første, er det tilrådeligt at gøre brugen af ​​værktøjer, der er baseret på en ufuldkommen lovgivningsramme og ikke tillader effektiv identifikation af kodesårbarheder, obligatorisk? For eksempel den forskning, vi udførte (flere dusin eksperter deltog i eksperimentet) test program, som indeholdt 28 simple bogmærker, viste, at ikke en eneste af dem blev identificeret ved hjælp af de angivne midler.

For det andet, bør det være obligatorisk at certificere sådanne produkter? På grund af den lange certificeringsproces kan sårbarhedstestværktøjer aldrig garantere et resultat fra kugle-til-panser. Det er klart, at disse værktøjer ikke giver dig mulighed for hurtigt at inkludere indikatorer for moderne kodesårbarheder i et skiftende sikkerhedsmiljø og i nye programmeringsmiljøer.

For eksempel til analyse af kode på C-sproget anbefales programmet "AIST-S" (en indiskutabel "autoritet" inden for kodeanalyse for tilstedeværelsen af ​​ikke-erklærede kapaciteter). Men på trods af dets åbenlyse fordele har det vist sig, at det ikke behandler strukturerne i objektorienterede programmer korrekt, for eksempel analyserer det ikke konstruktøren og destruktoren. Kildetekster inkluderet i #include-direktiver analyseres heller ikke - kun programmets kildetekst er kontrolleret. Desuden er normal drift af analysatoren kun mulig, hvis mængden af ​​kildetekster ikke overstiger flere megabyte: programblokdiagrammer er bygget forkert selv for programmer større end flere kilobyte. De samme begrænsninger gælder for konstruktionen af ​​en matrix af forbindelser baseret på information, og rapporterne overholder ikke fuldt ud kravene i RD for uanmeldte kapaciteter. Men den største forsinkelse bag dagens realiteter er, at dette værktøj slet ikke har en signaturdatabase og kun kan analysere programmer på C/C++ sproget.

Organisatoriske problemer med certificering

Den grundlæggende ulempe ved den vedtagne certificeringsprocedure er den manglende hensyntagen til sikkerhedspolitikken for brug af softwareproduktet inden for rammerne af informatiseringsobjektet. Derudover dukker der en række spørgsmål op.

Metoder til at identificere sårbarheder

I dag bruges to hovedtilgange til at identificere kodesårbarheder. For det første er dette en strukturel statisk og dynamisk analyse af kildekoden, reguleret af RD. For det andet signatur-heuristisk analyse af potentielt farlige operationer, som består i at scanne programkoden for tilstedeværelsen af ​​sådanne operationer og efterfølgende manuel eller automatisk analyse af et kodefragment for at identificere en reel trussel mod softwaren.

Det er klart, at den anden tilgang ikke har ulemperne ved overdreven strukturering af hele softwaren og "dimensionalitetens forbandelse" ved fuld-rute test. Da antallet af potentielt farlige operationer som regel ikke overstiger 5-10% af softwarevolumen, reduceres tiden til "manuel" analyse af kildeteksten med ti til tyve gange. Med hensyn til statisk og dynamisk analyse skal det understreges, at resultaterne af statisk analyse er sammenlignelige med kildeteksterne med hensyn til kompleksitet af fortolkning, og dynamisk analyse kræver desuden udarbejdelse og implementering af passende rutetest. Signatur-heuristisk analyse reducerer således den tid, der bruges på at søge efter uerklærede muligheder, med titusinder. Vores erfaring viser, at størstedelen af ​​kodesårbarheder, der blev identificeret under certificeringstesten, blev opdaget ved hjælp af den anden tilgang.

Den akkumulerede erfaring med certificeringstests for fravær af uerklærede kapaciteter og softwarefejl giver os mulighed for at skitsere måder til at forbedre den lovgivningsmæssige ramme baseret på brugen af ​​signaturmetoder til kodeanalyse.

Udviklingen af ​​den lovgivningsmæssige ramme er mulig gennem brug af nye standarder og vejledningsdokumenter under de "Generelle kriterier".

Litteratur

  1. Vejledende dokument. Beskyttelse mod uautoriseret adgang til information. Del 1. Informationssikkerhedssoftware. Klassificering i henhold til niveauet af kontrol over fraværet af ikke-erklærede kapaciteter. M.: Ruslands Statens Tekniske Kommission, 1998.
  2. Kalaida I.A. Udeklarerede kapaciteter i informationssikkerhedssoftware. Jet Info, 2000, nr. 8.
  3. Markov A.S., Shcherbina S.A. Test og overvågning af softwareressourcer. Informationssikkerhed, 2003, nr. 6.
  4. Dustin E., Reschke D., Paul D. Automatiseret softwaretest: implementering, styring, drift. M.: Lori, 2003.
  5. GOST R ISO/IEC 15408-2002. Informationsteknologi. Metoder og midler til at sikre sikkerhed. Kriterier for vurdering af informationsteknologiers sikkerhed. Del 1, 2, 3. M.: IPK "Standard Publishing House", 2002.
  6. Metodiske retningslinjer for vurdering af informationssystemers funktionskvalitet. M.: Forlag 3 Central Research Institute under Den Russiske Føderations Forsvarsministerium, 2003.
  7. GOST RV 51719-2001. Test af softwareprodukter. M.: IPK "Publishing Standards", 2001.
  8. Vejledende dokument. Informationsteknologisikkerhed. Kriterier for vurdering af informationsteknologiers sikkerhed. Del 1, 2, 3. - M.: Ruslands Statens Tekniske Kommission, 2002.
  9. Skjulte kanaler, // Jet Info, 2002, nr. 11.
  10. Hogland G., McGraw G. Hackingsoftware: analyse og brug af kode. M.: Williams, 2005.

Alexey Markov ([e-mail beskyttet] , [e-mail beskyttet] ), Sergei Mironov, Valentin Tsirlov - ansatte i testcenteret for forsknings- og produktionsvirksomheden "BIT", (Moskva).

Eksempler på identificerede softwarebogmærker

Det er klart, at det er vanskeligt at identificere sådanne bogmærker ved hjælp af strukturelle analysemetoder, da koden ikke har klart definerede strukturelle funktioner. Bogmærker detekteres dog ved hjælp af signaturanalysemetoder (for eksempel under identifikation af meningsfulde konstanter).



sårbarheder en angriber kan få uautoriseret adgang til et informationssystem ved at knække en adgangskode ved hjælp af en brute-force eller ordbogssøgningsmetode;
  • tilstedeværelsen i systemet af ublokerede indbyggede brugerkonti, ved hjælp af hvilke en potentiel krænker kan indsamle Yderligere Information nødvendigt for at udføre angrebet. Eksempler på sådanne konti er posten " Gæst"i operativsystemer eller optag" Anonym" i FTP-servere;
  • på den forkerte måde etablerede rettigheder Brugeradgang til IS'ens informationsressourcer. Hvis brugere, der arbejder med systemet, som følge af en administratorfejl har flere adgangsrettigheder, end det er nødvendigt for at udføre deres funktionelle opgaver, kan dette føre til uautoriseret brug af yderligere rettigheder til at udføre angreb. Hvis brugere f.eks. har adgangsrettigheder til at læse indholdet af kildeteksterne til serverscripts, der udføres på webserversiden, kan en potentiel ubuden gæst udnytte dette til at studere algoritmerne for driften af ​​webog søge efter sårbarheder i dem;
  • tilstedeværelsen i IS af ubrugte, men potentielt farlige netværkstjenester Og software komponenter. For eksempel kommer de fleste netværksservertjenester, såsom webservere og databaseservere, med eksempelprogrammer, der demonstrerer funktionalitet disse produkter. I nogle tilfælde har disse programmer høj privilegieniveau i systemet eller indeholder sårbarheder, hvis brug af en angriber kan føre til systemskade. Eksempler på sådanne programmer er prøver CGI-moduler, der følger med webapplikationer, samt eksempler lagrede procedurer i DBMS-servere.
  • Metoder til at identificere og eliminere sårbarheder

    Der gennemføres en revisionsprocedure for at opdage sårbarheder i informationssystemet. informationssikkerhed, som består af to faser - analyse af det nuværende niveau af IP-sikkerhed og udvikling af forslag til at eliminere identificerede sårbarheder. Revisionen består af et sæt kontroller, hvoraf nogle er rettet mod at opdage og eliminere sårbarheder, som er beskrevet ovenfor. Lad os se på forskellige metoder, der kan bruges til at opdage svage punkter i software IS.

    Identifikation af sårbarheder såsom "buffer overflow", "SQL Injection" og "format string" er mulig enten ved at analysere kildekoden for et potentielt sårbart program eller ved at bruge sikkerhedsanalyseadfærden for et allerede kørende program. Den første metode involverer en ekspertanalyse af programmets kildekode for at finde og rette fejl, der blev lavet under udviklingen. I de fleste tilfælde, for at eliminere identificerede sårbarheder, er det nødvendigt at tilføje nye funktioner, der sikrer korrektheden af ​​de inputdata, der kommer ind i programmet. Så for for eksempel at rette bufferoverløbssårbarheder skal du tilføje en kontrolprocedure, der skal sikre, at mængden af ​​inputdata ikke overstiger den maksimale størrelse af den variabel, den er beregnet til. Det er muligt at rette "SQL Injection"-sårbarheden ved at beskytte mod indsættelse af """-tegnet, hvilket i de fleste tilfælde giver dig mulighed for at ændre den originale SQL-forespørgsel. For at eliminere sårbarheder af typen "format string" er det nødvendigt at bruge et funktionskaldsformat, hvor formateringsstrengen er specificeret eksplicit af programudvikleren. Som regel er kildetekstanalysemetoden meget arbejdskrævende og bruges kun i virksomheder, der udvikler software.

    Den anden metode til at identificere sårbarheder bruges til at analysere sikkerheden af ​​software, der allerede er installeret og fungerer i IS. Metoden involverer brug af specialiserede software- såkaldte sikkerhedsscannere eller sikkerhedsanalysesystemer. Disse værktøjer giver dig mulighed for at opdage sårbarheder baseret på aktive og passive metoder. Ved hjælp af den passive metode indsamles information om indstillingerne af softwaren, der findes i IS, og på baggrund af disse data drages en konklusion om tilstedeværelsen eller fraværet af sårbarheder i systemet. Så, for eksempel, hvis tilstedeværelsen af ​​et OS uden installeret modul Service pakke, betyder det, at den er modtagelig for en række sårbarheder. Aktive applsimulerer informationsangreb og derefter, på baggrund af analysen af ​​resultaterne, konkluderes der om tilstedeværelsen af ​​sårbarheder i systemet. Den kombinerede brug af passive og aktive metoder til at analysere sikkerheden af ​​IS-applikationer gør det muligt at identificere ikke kun sårbarhederne ved "buffer overflow", "SQL Injection" og "format string", men også operationelle sårbarheder i softwarekonfigurationen. I dette tilfælde er det muligt at fjerne sårbarheden ved at installere de relevante opdateringsmoduler ( servicepakker, hotfixes, plastre osv.) eller ændring af indstillingerne for den anvendte software. De betragtede aktive og passive metoder bruges oftest til at analysere sikkerheden af ​​software på grundlag af hvilke informationssystemer i organisationer fungerer.

    Hvad er et informationsangreb?

    Før vi begynder at tale om måder at identificere informationsangreb, lad os afgøre, hvad der udgør en ubuden gæsters invasion. Så et angreb er et sæt handlinger fra en angriber, der fører til krænkelse af informationssikkerheden ER. Som et resultat af et vellykket implementeret angreb kan angriberen f.eks. få uautoriseret adgang til information, der er lagret i informationssystemet, forstyrre systemets funktionalitet eller forvrænge indholdet af informationssystemdataene. Potentielle mål for angreb kan omfatte servere, brugerarbejdsstationer eller kommunikationsudstyr ER. Generelt kan ethvert angreb opdeles i fire stadier (fig. 23.5):

    1. rekognosceringsfase. På dette stadium forsøger gerningsmanden at få så meget som muligt mere information om genstanden for angrebet, på grundlag af hvilke yderligere stadier af angrebet er planlagt. Eksempler på sådanne data er: typen og versionen af ​​operativsystemet installeret på IS-værterne, en liste over brugere, der er registreret i systemet, oplysninger om den anvendte applikationssoftware osv.;
    2. IP-invasionsstadiet. På dette stadium får angriberen uautoriseret adgang til ressourcerne hos de værter, der bliver angrebet;
    3. fase af angreb på IP. Denne fase af angrebet er rettet mod, at den ubudne gæst opnår de mål, som angrebet blev udført for. Eksempler på sådanne handlinger kan være forstyrrelse af IP'ens funktionalitet, tyveri fortrolige oplysninger gemt i systemet, sletning eller ændring af systemdata osv. I dette tilfælde kan angriberen også udføre handlinger, der kan have til formål at fjerne spor af hans tilstedeværelse i informationssystemet;
    4. fase af angrebets videre udvikling. På dette stadium udføres de handlinger, der er nødvendige for at fortsætte angrebet på andre IP-objekter.


    Ris. 23.5.

    Lad os se på konkrete eksempler hvordan forskellige stadier kan realiseres informationsangreb. På rekognosceringsstadiet kan gerningsmandens handlinger være rettet mod at indhente følgende oplysninger:

    • information om strukturen og topologien af ​​IC. For at få denne type information kan en hacker bruge standardværktøjer som " traceroute", inkluderet i næsten ethvert operativsystem (OS). Disse hjælpeprogrammer giver dig mulighed for at generere en liste over IP-adresser routere, hvorigennem pakker passerer fra den ubudne gæsters computer til værten, der fungerer som mål for angrebet. En angriber kan også få de oplysninger, han har brug for om IP-strukturen, ved at kontakte DNS- en server, hvor data om IS-værter kan lagres;
    • oplysninger om typen af ​​OS installeret i IS. En af de mest almindelige metoder til at bestemme OS-typen er baseret på det faktum, at forskellige systemer implementerer kravene til standarderne forskelligt. RFC, som definerer reglerne for samspil ud fra div netværksprotokoller. Når de genererer de samme netværksanmodninger, reagerer forskellige operativsystemer således med data, der adskiller sig fra hinanden, på grundlag af hvilke det er muligt med høj grad af sandsynlighed at bestemme egenskaberne for det anvendte operativsystem. Denne metode giver dig også mulighed for at bestemme typen af ​​hardwareplatform, som et bestemt OS opererer på;
    • oplysninger om typen af ​​applikationstjenester, der findes i IS. Gerningsmanden kan bestemme hvilken

    I dette afsnit beskriver den foreslåede metode til at opdage webapplikationssårbarheder baseret på overvågning af webapplikationens adfærd.

    Anvendelse af metoden

    Som nævnt i introduktionen bruger eksisterende værktøjer til registrering af sårbarhed white-box og black-box-metoder. I det første tilfælde udføres analysen kildekoder Og / ellerer. Kodesektioner, der potentielt indeholder sårbarheder eller usikre konfigurationsindstillinger, identificeres. I det andet tilfælde udføres en søgning efter sårbarheder "udefra" - HTTP-anmodninger sendes til webapplikationen, og svarene analyseres. I dette tilfælde opstår opgaverne med at identificere strukturen af ​​webapplikationen, bestemme typen af ​​server og bygning test sæt HTTP-anmodninger og efterfølgende analyse af HTTP-svar. Men disse værktøjer styrer ikke adfærden af ​​en webapplikation i den forstand, der er defineret i afsnit 3, mens uopdagede sårbarheder kan manifestere sig netop i adgang til miljøobjekter. Den foreslåede metode til at opdage sårbarheder involverer sammenligning af indgående HTTP-trafik med en webapplikations interne funktion. Metoden er designet til at opdage sårbarheder, der fører til webapplikationsoperationer på miljøobjekter, som er uacceptable set ud fra den normale adfærdsprofil og/eller ændringer i værdierne for acceptable operationer.

    Metoden er designet til at opdage sårbarheder i et vilkårligt antal webapplikationer. Det antages, at adfærdskontrol vil blive implementeret for alle webapplikationer, hvis adfærdsoplysninger kan tilgås værktøj, implementering af metoden. For hver webapplikation er der udarbejdet en profil for normal adfærd. Den aktuelle adfærd sammenlignes med den, der er beskrevet i den normale adfærdsprofil, og ved afvigelse registreres en anomali og antages en sårbarhed. Det er meningen, at profiler med normal adfærd skal gemmes som filer eller databaseposter for at aktivere deling profiler af flere sårbarhedsdetektionsværktøjer baseret på en fælles metode. Denne profillagringsordning tillader også parallelle processer til at konstruere profiler med normal adfærd og opdage sårbarheder baseret på de genererede profiler.