Kuinka korjata haavoittuva ohjelmisto. Haavoittuvien ohjelmistojen tunnistaminen asiakastietokoneissa. Hallitse Smart Scan -asetuksia

Tällä hetkellä on kehitetty suuri joukko työkaluja ohjelman haavoittuvuuksien etsimisen automatisoimiseksi. Tässä artikkelissa käsitellään joitain niistä.

Johdanto

Staattinen koodianalyysi on ohjelmistoanalyysi, joka suoritetaan ohjelmien lähdekoodille ja toteutetaan suorittamatta itse tutkittavaa ohjelmaa.

Ohjelmisto sisältää usein erilaisia ​​haavoittuvuuksia, jotka johtuvat ohjelmakoodin virheistä. Ohjelmien kehittämisen aikana tehdyt virheet johtavat joissain tilanteissa ohjelman epäonnistumiseen ja sen seurauksena ohjelman normaali toiminta häiriintyy: seurauksena on usein muutoksia ja vaurioita tiedoissa, ohjelman tai jopa järjestelmän pysähtymistä. Useimmat haavoittuvuudet liittyvät ulkopuolelta saatujen tietojen virheelliseen käsittelyyn tai sen riittämättömään tiukkaan todentamiseen.

Haavoittuvuuksien tunnistamiseen käytetään erilaisia ​​työkaluja, esimerkiksi ohjelman lähdekoodin staattisia analysaattoreita, joista on yleiskatsaus tässä artikkelissa.

Tietoturva-aukkojen luokitus

Kun vaatimusta ohjelman toimimisesta oikein kaikilla mahdollisilla syötetiedoilla rikotaan, niin sanottujen tietoturva-aukkojen ilmaantuminen tulee mahdolliseksi. Tietoturvahaavoittuvuudet voivat tarkoittaa, että yhtä ohjelmaa voidaan käyttää koko järjestelmän tietoturvarajoitusten voittamiseksi.

Tietoturva-aukkojen luokittelu ohjelmistovirheiden mukaan:

  • Puskurin ylivuoto. Tämä haavoittuvuus johtuu siitä, että muistissa olevien rajojen ulkopuolella olevia taulukoita ei voida hallita ohjelman suorittamisen aikana. Kun liian suuri tietopaketti ylittää rajoitetun puskurin, ylimääräisten muistipaikkojen sisältö ylikirjoitetaan, jolloin ohjelma kaatuu ja poistuu. Prosessimuistissa olevan puskurin sijainnin perusteella puskurin ylivuoto erotetaan pinossa (pinon puskurin ylivuoto), keossa (keon puskurin ylivuoto) ja staattisen tietoalueen (bss puskurin ylivuoto).
  • Haavoittuva syötehaavoittuvuus. Spoiled syöttöhaavoittuvuuksia voi ilmetä, kun käyttäjän syöte välitetään jonkin ulkoisen kielen (yleensä Unix-komentotulkin tai SQL:n) tulkille ilman riittävää valvontaa. Tässä tapauksessa käyttäjä voi määrittää syötetiedot siten, että käynnistetty tulkki suorittaa täysin erilaisen komennon kuin haavoittuvan ohjelman tekijät ovat halunneet.
  • Muotoilumerkkijonon haavoittuvuus. Tämän tyyppinen tietoturvahaavoittuvuus on "vioittuneen syötteen" haavoittuvuuden alaluokka. Se johtuu riittämättömästä parametrien hallinnasta käytettäessä C-standardin kirjaston muotoisia I/O-funktioita printf, fprintf, scanf jne. Nämä funktiot ottavat yhdeksi parametrikseen merkkijonon, joka määrittää myöhempien funktion argumenttien tulo- tai tulosmuodon. Jos käyttäjä voi määrittää muotoilun tyypin, tämä haavoittuvuus voi johtua merkkijonomuotoilutoimintojen epäonnistumisesta.
  • Synkronointivirheistä johtuvat haavoittuvuudet (kilpailuolosuhteet). Moniajoon liittyvät ongelmat johtavat tilanteisiin, joita kutsutaan "kilpailuolosuhteiksi": ohjelma, jota ei ole suunniteltu toimimaan moniajoympäristössä, saattaa uskoa, että esimerkiksi sen käyttämiä tiedostoja ei voi muuttaa toisella ohjelmalla. Tämän seurauksena hyökkääjä, joka korvaa näiden työtiedostojen sisällön ajoissa, voi pakottaa ohjelman suorittamaan tiettyjä toimintoja.

Tietysti lueteltujen lisäksi on muitakin tietoturva-aukkoja.

Olemassa olevien analysaattoreiden tarkistus

Seuraavia työkaluja käytetään ohjelmien tietoturva-aukkojen havaitsemiseen:

  • Dynaamiset virheenkorjaajat. Työkalut, joiden avulla voit korjata ohjelman virheenkorjauksen sen suorituksen aikana.
  • Staattiset analysaattorit (staattiset debuggerit). Työkalut, jotka käyttävät ohjelman staattisen analyysin aikana kertynyttä tietoa.

Staattiset analysaattorit osoittavat ohjelmassa ne paikat, joissa voi olla virhe. Nämä epäilyttävät koodinpalat voivat sisältää virheen tai olla täysin vaarattomia.

Tämä artikkeli sisältää yleiskatsauksen useista olemassa olevista staattisista analysaattoreista. Tarkastellaanpa kutakin niistä lähemmin.

Joissakin tapauksissa haavoittuvuuksia syntyy eri alkuperää olevien kehitystyökalujen käytöstä, mikä lisää riskiä sabotaasityyppisten vikojen ilmaantumisesta ohjelmakoodiin.

Haavoittuvuuksia ilmenee, koska ohjelmistoon on lisätty kolmannen osapuolen komponentteja tai vapaasti jaettua koodia (avoin lähdekoodi). Jonkun toisen koodia käytetään usein "sellaisenaan" ilman perusteellista analysointia ja turvatestausta.

Ei pidä sulkea pois sisäpiiriohjelmoijien läsnäoloa tiimissä, jotka tietoisesti tuovat dokumentoimattomia toimintoja tai elementtejä luotavaan tuotteeseen.

Ohjelman haavoittuvuuksien luokitus

Haavoittuvuudet syntyvät suunnittelu- tai koodausvaiheessa tapahtuvien virheiden seurauksena.

Esiintymisvaiheesta riippuen tämäntyyppinen uhka jaetaan suunnittelu-, toteutus- ja konfigurointihaavoittuvuuksiin.

  1. Suunnittelun aikana tehdyt virheet ovat vaikeimpia havaita ja poistaa. Näitä ovat epätarkkuudet algoritmeissa, kirjanmerkeissä, epäjohdonmukaisuudet eri moduulien välisissä käyttöliittymissä tai laitteiston kanssa käytettävissä olevissa vuorovaikutusprotokollissa sekä optimaalisten teknologioiden käyttöönotto. Niiden poistaminen on erittäin työläs prosessi, muun muassa siksi, että ne voivat ilmaantua epäselvissä tapauksissa - esimerkiksi silloin, kun suunniteltu liikennemäärä ylittyy tai kun liitetään suuri määrä lisälaitteita, mikä vaikeuttaa vaadittujen laitteiden toimittamista. turvallisuustasoa ja johtaa tapoihin ohittaa palomuuri.
  2. Toteutushaavoittuvuudet ilmenevät ohjelman kirjoitusvaiheessa tai tietoturvaalgoritmien toteuttamisessa. Tämä on laskentaprosessin virheellinen organisointi, syntaktisia ja loogisia virheitä. On olemassa vaara, että vika johtaa puskurin ylivuotoon tai muihin ongelmiin. Niiden havaitseminen vie paljon aikaa, ja niiden poistaminen edellyttää tiettyjen konekoodin osien korjaamista.
  3. Laitteiston ja ohjelmiston asetusvirheet ovat hyvin yleisiä. Niiden yleisinä syinä ovat riittämätön kehitystyö ja lisätoimintojen oikeaa toimintaa koskevien testien puute. Liian yksinkertaiset salasanat ja muuttamattomina oletustilit voivat myös kuulua tähän luokkaan.

Tilastojen mukaan haavoittuvuuksia löydetään erityisen usein suosituista ja laajalle levinneistä tuotteista - työpöytä- ja mobiilikäyttöjärjestelmistä, selaimista.

Haavoittuvien ohjelmien käytön riskit

Eniten haavoittuvuuksia sisältävät ohjelmat on asennettu lähes kaikkiin tietokoneisiin. Verkkorikollisilla on suora kiinnostus löytää tällaisia ​​puutteita ja kirjoittaa niille.

Koska haavoittuvuuden havaitsemisesta korjauksen (korjauksen) julkaisemiseen kuluu melko paljon aikaa, on olemassa lukuisia mahdollisuuksia tartuttaa tietokonejärjestelmiä ohjelmakoodin suojausaukkojen kautta. Tällöin käyttäjän tarvitsee vain avata esimerkiksi haitallinen PDF-tiedosto hyväksikäytöllä kerran, jonka jälkeen hyökkääjät pääsevät käsiksi tietoihin.

Jälkimmäisessä tapauksessa infektio tapahtuu seuraavan algoritmin mukaisesti:

  • Käyttäjä saa tietojenkalasteluviestin luotettavalta lähettäjältä.
  • Kirjeeseen on liitetty tiedosto, jossa on hyväksikäyttö.
  • Jos käyttäjä yrittää avata tiedoston, tietokone saa viruksen, troijalaisen (salauksen) tai muun haittaohjelman tartunnan.
  • Kyberrikolliset pääsevät järjestelmään luvattomasti.
  • Arvokasta dataa varastetaan.

Eri yritysten (Kaspersky Lab, Positive Technologies) tekemät tutkimukset osoittavat, että haavoittuvuuksia on lähes kaikissa sovelluksissa, myös virustorjuntaohjelmissa. Siksi on erittäin todennäköistä, että asennetaan ohjelmistotuote, joka sisältää eriasteisia kriittisiä puutteita.

Ohjelmiston aukkojen määrän minimoimiseksi on välttämätöntä käyttää SDL:ää (Security Development Lifecycle, Security Development Lifecycle). SDL-tekniikkaa käytetään vähentämään virheiden määrää sovelluksissa niiden luomisen ja tuen kaikissa vaiheissa. Tietoturvaasiantuntijat ja ohjelmoijat siis mallintavat ohjelmistoja suunnitellessaan kyberuhkia haavoittuvuuksien löytämiseksi. Ohjelmoinnin aikana prosessiin sisällytetään automaattiset työkalut, jotka ilmoittavat välittömästi mahdollisista virheistä. Kehittäjät pyrkivät rajoittamaan merkittävästi epäluotettavien käyttäjien saatavilla olevia toimintoja, mikä auttaa vähentämään hyökkäyspintaa.

Minimoidaksesi haavoittuvuuksien vaikutukset ja niiden aiheuttamat vahingot sinun on noudatettava joitain sääntöjä:

  • Asenna nopeasti kehittäjien julkaisemat korjaukset (korjaukset) sovelluksiin tai (mieluiten) ota automaattinen päivitystila käyttöön.
  • Jos mahdollista, älä asenna kyseenalaisia ​​ohjelmia, joiden laatu ja tekninen tuki herättävät kysymyksiä.
  • Käytä erityisiä haavoittuvuusskannereita tai virustorjuntatuotteiden erikoistoimintoja, joiden avulla voit etsiä tietoturvavirheitä ja tarvittaessa päivittää ohjelmistoja.

Käynnistyksessä älykäs skannaus Avast tarkistaa tietokoneesi seuraavan tyyppisten ongelmien varalta ja ehdottaa sitten ratkaisuja niihin.

  • Virukset: Tiedostot, jotka sisältävät haitallista koodia, joka voi vaikuttaa tietokoneesi turvallisuuteen ja suorituskykyyn.
  • Haavoittuva ohjelmisto: Ohjelmat, jotka vaativat päivitystä ja joita hyökkääjät voivat käyttää päästäkseen järjestelmääsi.
  • Selainlaajennukset, joilla on huono maine: Selainlaajennukset, jotka asennetaan yleensä tietämättäsi ja jotka vaikuttavat järjestelmän suorituskykyyn.
  • Heikot salasanat: Salasanat, joilla päästään useampaan kuin yhteen verkkotiliin ja jotka voidaan helposti murtautua tai vaarantua.
  • Verkkouhat: Verkkosi haavoittuvuudet, jotka voivat sallia hyökkäykset verkkolaitteitasi ja reitittimiäsi vastaan.
  • Suorituskykyongelmat: objektit (tarpeettomat tiedostot ja sovellukset, asetuksiin liittyvät ongelmat), jotka voivat häiritä tietokoneen toimintaa.
  • Ristiriitaiset virustorjuntaohjelmat: virustorjuntaohjelmat, jotka on asennettu tietokoneellesi Avastin avulla. Useiden virustentorjuntaohjelmien käyttäminen hidastaa tietokonettasi ja heikentää virussuojauksen tehokkuutta.

Huomautus. Tietyt Smart Scanin havaitsemat ongelmat saattavat vaatia erillisen lisenssin ratkaisemiseksi. Tarpeettomien ongelmatyyppien tunnistaminen voidaan poistaa käytöstä .

Havaittujen ongelmien ratkaiseminen

Vihreä valintamerkki skannausalueen vieressä osoittaa, että tällä alueella ei löytynyt ongelmia. Punainen risti tarkoittaa, että skannaus on tunnistanut yhden tai useamman asiaan liittyvän ongelman.

Katso tarkkoja tietoja havaituista ongelmista napsauttamalla Ratkaise kaikki. Smart Scan näyttää kunkin ongelman tiedot ja tarjoaa mahdollisuuden korjata se välittömästi napsauttamalla kohdetta Päättää tai tee se myöhemmin napsauttamalla Ohita tämä vaihe.

Huomautus. Virustorjuntalokit näkyvät tarkistushistoriassa, johon pääset valitsemalla Suojaus Antivirus.

Hallitse Smart Scan -asetuksia

Jos haluat muuttaa Smart Scan -asetuksia, valitse Asetukset Yleiset Smart Scan ja määritä, minkä seuraavista ongelmatyypeistä haluat Smart Scan -tarkistuksen.

  • Virukset
  • Vanhentunut ohjelmisto
  • Selaimen lisäosat
  • Verkkouhat
  • Yhteensopivuusongelmat
  • Suorituskykyongelmat
  • Heikot salasanat

Oletusarvoisesti kaikki ongelmatyypit ovat käytössä. Voit lopettaa tietyn ongelman tarkistamisen Smart Scan -toiminnon aikana napsauttamalla liukusäädintä Mukana ongelman tyypin vieressä niin, että se muuttaa tilaksi Sammutettu.

Klikkaus asetukset kirjoituksen vieressä Virustarkistus muuttaaksesi skannausasetuksia.

Haavoittuvuuksien hallinta on haavoittuvuuksien tunnistamista, arviointia, luokittelua ja ratkaisun valintaa. Haavoittuvuuksien hallinnan perusta on haavoittuvuuksia koskevien tietojen arkistot, joista yksi on "Forward Monitoring" haavoittuvuuksien hallintajärjestelmä.

Ratkaisumme valvoo haavoittuvuuksia koskevien tietojen ilmaantumista käyttöjärjestelmissä (Windows, Linux/Unix-pohjainen), toimisto- ja sovellusohjelmistoja, laitteistoohjelmistoja ja tietoturvatyökaluja.

Tietolähteet

Perspective Monitoring Software Vulnerability Management System -tietokanta päivitetään automaattisesti seuraavista lähteistä:

  • Tietoturvauhkien tietopankki (BDU BI) FSTEC, Venäjä.
  • National Vulnerability Database (NVD) NIST.
  • Red Hat Bugzilla.
  • Debian Security Bug Tracker.
  • CentOS-postituslista.

Käytämme myös automaattista menetelmää haavoittuvuustietokantamme päivittämiseen. Olemme kehittäneet verkkosivujen indeksointirobotin ja jäsentämättömän datan jäsentimen, joka analysoi päivittäin yli sata erilaista ulkomaista ja venäläistä lähdettä useille avainsanoille - sosiaalisten verkostojen ryhmille, blogeille, mikroblogeille, tietotekniikalle ja tietoturvalle omistetuille medioille. Jos nämä työkalut löytävät jotain, joka vastaa hakuehtoja, analyytikko tarkistaa tiedot manuaalisesti ja syöttää ne haavoittuvuustietokantaan.

Ohjelmiston haavoittuvuuden seuranta

Haavoittuvuuksien hallintajärjestelmän avulla kehittäjät voivat valvoa ohjelmistonsa kolmannen osapuolen osissa havaittujen haavoittuvuuksien esiintymistä ja tilaa.

Esimerkiksi Hewlett Packard Enterprisen Secure Software Developer Life Cycle (SSDLC) -mallissa kolmannen osapuolen kirjastojen hallinta on keskeistä.

Järjestelmämme tarkkailee haavoittuvuuksien esiintymistä saman ohjelmistotuotteen rinnakkaisissa versioissa/koonnuksissa.

Se toimii näin:

1. Kehittäjä toimittaa meille luettelon tuotteessa käytetyistä kolmannen osapuolen kirjastoista ja komponenteista.

2. Tarkistamme päivittäin:

b. onko menetelmiä näyttänyt poistavan aiemmin löydetyt haavoittuvuudet.

3. Ilmoitamme kehittäjälle, jos haavoittuvuuden tila tai pisteytys on muuttunut määritellyn roolimallin mukaisesti. Tämä tarkoittaa, että saman yrityksen eri kehitystiimit saavat hälytyksiä ja näkevät haavoittuvuuden tilan vain sen tuotteen osalta, jonka parissa he työskentelevät.

Haavoittuvuuksien hallintajärjestelmän hälytystiheys on konfiguroitavissa, mutta jos haavoittuvuus, jonka CVSS-pistemäärä on yli 7,5, havaitaan, kehittäjät saavat välittömän hälytyksen.

Integrointi ViPNet TIAS:iin

ViPNet Threat Intelligence Analytics System -ohjelmisto- ja laitteistojärjestelmä havaitsee automaattisesti tietokonehyökkäykset ja tunnistaa tapaukset eri lähteistä saatujen tietoturvatapahtumien perusteella. ViPNet TIAS:n pääasiallinen tapahtumalähde on ViPNet IDS, joka analysoi tulevaa ja lähtevää verkkoliikennettä käyttämällä Perspective Monitoringin kehittämää AM Rules -päätössääntöpohjaa. Jotkut allekirjoitukset on kirjoitettu havaitsemaan haavoittuvuuksien hyväksikäyttö.

Jos ViPNet TIAS havaitsee tietoturvahäiriön, jossa haavoittuvuutta on käytetty hyväksi, niin kaikki haavoittuvuuteen liittyvät tiedot, mukaan lukien menetelmät negatiivisen vaikutuksen poistamiseksi tai kompensoimiseksi, syötetään automaattisesti tapahtumakortille hallintajärjestelmästä.

Tapahtumien hallintajärjestelmä auttaa myös tietoturvapoikkeamien tutkinnassa tarjoamalla analyytikoille tietoa vaaratilanteista ja mahdollisista tietoinfrastruktuurisolmuista, joihin tapahtuma vaikuttaa.

Tietojärjestelmien haavoittuvuuksien seuranta

Toinen skenaario haavoittuvuuksien hallintajärjestelmän käyttämiselle on pyynnöstä tehtävä tarkistus.

Asiakas luo itsenäisesti sisäänrakennetuilla työkaluilla tai kehittämällämme skriptillä listan järjestelmä- ja sovellusohjelmistoista sekä solmuun asennetuista komponenteista (työasema, palvelin, DBMS, ohjelmistopaketti, verkkolaitteet), välittää tämän luettelon ohjaukselle. järjestelmä ja vastaanottaa raportin havaituista haavoittuvuuksista ja ajoittain ilmoituksia niiden tilasta.

Erot järjestelmän ja yleisten haavoittuvuustarkistajien välillä:

  • Ei vaadi valvontaagenttien asentamista solmuihin.
  • Ei kuormita verkkoa, koska itse ratkaisuarkkitehtuuri ei tarjoa skannausagentteja ja palvelimia.
  • Ei kuormita laitteistoa, koska komponenttiluettelo luodaan järjestelmäkomennoilla tai kevyellä avoimen lähdekoodin komentosarjalla.
  • Poistaa tiedon vuotamisen mahdollisuuden. "Prospektiivinen seuranta" ei voi luotettavasti oppia mitään tietojärjestelmän solmun fyysisestä ja loogisesta sijainnista tai toiminnallisesta tarkoituksesta. Ainoa tieto, joka poistuu asiakkaan hallinnasta, on txt-tiedosto, jossa on luettelo ohjelmistokomponenteista. Asiakas itse tarkistaa tämän tiedoston sisällön ja lataa sen valvontajärjestelmään.
  • Jotta järjestelmä toimisi, emme tarvitse tilejä valvotuissa solmuissa. Sivuston ylläpitäjä kerää tiedot omasta puolestaan.
  • Suojattu tiedonvaihto ViPNet VPN:n, IPsecin tai https:n kautta.

Yhteyden muodostaminen "Prospective Monitoring" -haavoittuvuuksien hallintapalveluun auttaa asiakasta täyttämään Venäjän FSTEC:n tilausten nro 17 ja 21 vaatimuksen ANZ.1 "Tietojärjestelmän haavoittuvuuksien tunnistaminen, analysointi ja äskettäin havaittujen haavoittuvuuksien nopea eliminointi". Yrityksemme on Venäjän FSTEC:n luvanhaltija luottamuksellisten tietojen tekniseen suojaamiseen.

Hinta

Vähimmäiskustannukset - 25 000 ruplaa vuodessa 50 järjestelmään liitetylle solmulle, jos liittämisestä on voimassa oleva sopimus