Haavoittuvat ohjelmat. Haavoittuvien ohjelmistojen tunnistaminen asiakastietokoneissa. Havaittujen ongelmien ratkaiseminen

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.
  • Debianin.
  • 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 tarkkailla havaittujen haavoittuvuuksien olemassaoloa ja tilaa ohjelmistonsa kolmannen osapuolen osissa.

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 haavoittuvuuksien 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 ratkaisuarkkitehtuuri itsessään 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 solmun fyysisestä ja loogisesta sijainnista tai toiminnallisesta tarkoituksesta tietojärjestelmässä. 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

Toinen tapa tarkastella tätä ongelmaa on se, että yritysten on reagoitava nopeasti, kun sovelluksessa on haavoittuvuus. Tämä edellyttää IT:n kykyä viime kädessä seurata asennettuja sovelluksia, komponentteja ja korjaustiedostoja automaation ja vakiotyökalujen avulla. Teollisuus pyrkii standardoimaan ohjelmistotunnisteita (19770-2), jotka ovat XML-tiedostoja, jotka on asennettu sovelluksen, komponentin ja/tai korjaustiedoston kanssa ja jotka tunnistavat asennetun ohjelmiston ja, jos kyseessä on komponentti tai korjaustiedosto, mikä sovellus ne ovat. osa. Tunnisteilla on julkaisijan auktoriteettitiedot, versiotiedot, tiedostoluettelo tiedostonimineen, tiedoston suojattu hajautusarvo ja koko, joiden avulla voidaan varmistaa, että asennettu sovellus on järjestelmässä ja että binaaritiedostoja ei ole kolmannen osapuolen muuttama. Julkaisija on allekirjoittanut nämä tunnisteet digitaalisesti.

Kun haavoittuvuus on tiedossa, IT-osastot voivat käyttää omaisuudenhallintaohjelmistoaan tunnistaakseen välittömästi järjestelmät, joissa on haavoittuvia ohjelmistoja, ja ryhtyä toimenpiteisiin järjestelmien päivittämiseksi. Tunnisteet voivat olla osa korjaustiedostoa tai päivitystä, jonka avulla voidaan varmistaa, että korjaustiedosto on asennettu. Tällä tavalla IT-osastot voivat käyttää resursseja, kuten NIST National Vulnerability Databasea, omaisuudenhallintatyökalujensa hallintaan, joten kun yritys on ilmoittanut haavoittuvuuden NVD:lle, IT voi välittömästi verrata uusia haavoittuvuuksia omaansa.

Ryhmä yrityksiä työskentelee IEEE/ISTOn voittoa tavoittelemattoman järjestön nimeltä TagVault.org (www.tagvault.org) kautta Yhdysvaltain hallituksen kanssa ISO 19770-2:n standarditoteutuksen parissa, joka mahdollistaa tämän tason automatisoinnin. Jossain vaiheessa nämä tätä toteutusta vastaavat tunnisteet ovat todennäköisesti pakollisia Yhdysvaltain hallitukselle myytäville ohjelmistoille jossain vaiheessa seuraavien parin vuoden aikana.

Joten loppujen lopuksi on hyvä käytäntö olla julkaisematta käyttämiäsi sovelluksia ja ohjelmistoversioita, mutta tämä voi olla vaikeaa, kuten aiemmin todettiin. Haluat varmistaa, että sinulla on tarkka ja ajan tasalla oleva ohjelmistoluettelo, että sitä verrataan säännöllisesti tunnettujen haavoittuvuuksien luetteloon, kuten NVD:n NVID:iin, ja että IT voi ryhtyä välittömästi toimiin uhan poistamiseksi uusimmalla havainnolla Tunkeutukset, virustorjunta ja muut ympäristön lukitustekniikat tekevät ympäristösi vaarantumisen ainakin erittäin vaikeaksi, ja jos/kun se tapahtuu, sitä ei havaita pitkään aikaan.

Käynnistyksen yhteydessä ä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: Avast-tietokoneellesi asennetut virustorjuntaohjelmat. Useiden virustentorjuntaohjelmien käyttäminen hidastaa tietokonettasi ja heikentää virussuojauksen tehokkuutta.

Huom. 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.

Huom. 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

Oletuksena 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 Pois.

Napsauta Asetukset kirjoituksen vieressä Virustarkistus muuttaaksesi skannausasetuksia.

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ä. Suurin osa haavoittuvuuksista liittyy ulkopuolelta saatujen tietojen virheelliseen käsittelyyn tai sen riittämättömään tarkastamiseen.

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 staattisella tietoalueella (bss puskurin ylivuoto).
  • Haavoittuva syötehaavoittuvuus. Spoiled syöttöhaavoittuvuuksia voi ilmetä, kun käyttäjän syöte välitetään ilman riittävää hallintaa jonkin ulkoisen kielen (yleensä Unix-komentotulkin tai SQL-kielen) tulkille. Tässä tapauksessa käyttäjä voi määrittää syötetiedot siten, että käynnistetty tulkki suorittaa komennon, joka on täysin erilainen kuin haavoittuvan ohjelman kirjoittajat ovat aikoneet.
  • 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 debuggerit. Työkaluja, joiden avulla voit tehdä 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 kohdat, joissa virhe voi olla. 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.