Inteligentné skenovanie. Identifikácia zraniteľného softvéru na klientskych počítačoch Čo je zraniteľný softvér

V súčasnosti bolo vyvinutých veľké množstvo nástrojov na automatizáciu vyhľadávania softvérových zraniteľností. Tento článok bude diskutovať o niektorých z nich.

Úvod

Statická analýza kódu je analýza softvér, ktorý je vytvorený na zdrojovom kóde programov a je implementovaný bez skutočného vykonávania študovaného programu.

Softvér často obsahuje rôzne zraniteľnosti spôsobené chybami v kóde programu. Chyby pri vývoji programov v niektorých situáciách vedú k zlyhaniu programu, a preto je narušená normálna prevádzka programu: v takom prípade sa údaje často menia a poškodzujú, program alebo dokonca systém sa zastaví. . Väčšina zraniteľností súvisí s nesprávnym spracovaním údajov prijatých zvonku alebo ich nedostatočne prísnym overovaním.

Na identifikáciu zraniteľností sa používajú rôzne metódy. nástrojov, napríklad statické analyzátory zdrojového kódu programu, ktorých prehľad je uvedený v tomto článku.

Klasifikácia bezpečnostných zraniteľností

Pri porušení požiadavky na správnu činnosť programu na všetkých možných vstupných dátach je možný vznik takzvaných bezpečnostných zraniteľností (bezpečnostná zraniteľnosť). Zraniteľnosť zabezpečenia môže spôsobiť, že jeden program sa použije na prekonanie bezpečnostných obmedzení celého systému ako celku.

Klasifikácia bezpečnostných chýb v závislosti od softvérových chýb:

  • Pretečenie vyrovnávacej pamäte. Táto zraniteľnosť sa vyskytuje v dôsledku nedostatočnej kontroly nad mimohraničným poľom v pamäti počas vykonávania programu. Keď dátový paket, ktorý je príliš veľký, pretečie obmedzenú vyrovnávaciu pamäť, obsah cudzích pamäťových buniek sa prepíše a program sa zrúti a zrúti. Podľa umiestnenia vyrovnávacej pamäte v procesnej pamäti sa rozlišujú pretečenia vyrovnávacej pamäte na zásobníku (pretečenie vyrovnávacej pamäte zásobníka), halde (pretečenie vyrovnávacej pamäte haldy) a oblasti statických údajov (pretečenie vyrovnávacej pamäte bss).
  • Vulnerability „tainted input“ (zraniteľnosť tainted input). Poškodené vstupné zraniteľnosti sa môžu vyskytnúť, keď je vstup používateľa odovzdaný bez dostatočnej kontroly tlmočníkovi nejakého externého jazyka (zvyčajne unixového shellu alebo jazyka SQL). V tomto prípade môže užívateľ zadať vstupné údaje tak, že spustený interpret vykoná úplne iný príkaz, než aký zamýšľali autori zraniteľného programu.
  • Chyba zabezpečenia formátovacieho reťazca. Tento typ Zraniteľnosť zabezpečenia je podtriedou zraniteľnosti „poškodený vstup“. Vzniká z dôvodu nedostatočnej kontroly parametrov pri použití formátových I/O funkcií printf, fprintf, scanf atď. štandardná knižnica jazyk C. Tieto funkcie berú ako jeden z parametrov reťazec znakov, ktorý určuje vstupný alebo výstupný formát pre nasledujúce argumenty funkcie. Ak si používateľ môže nastaviť typ formátovania sám, potom táto chyba zabezpečenia môže byť výsledkom neúspešnej aplikácie funkcií formátovania reťazcov.
  • Zraniteľnosť v dôsledku chýb synchronizácie (súčasné podmienky). Problémy spojené s multitaskingom vedú k situáciám nazývaným „rasové podmienky“: program, ktorý nie je navrhnutý na spustenie v prostredí multitaskingu, sa môže domnievať, že napríklad súbory, ktoré používa pri spustení, nemôže zmeniť iný program. Výsledkom je, že útočník, ktorý včas nahradí obsah týchto pracovných súborov, môže prinútiť program vykonať určité akcie.

Samozrejme, okrem tých, ktoré sú uvedené, existujú aj ďalšie triedy bezpečnostných zraniteľností.

Prehľad existujúcich analyzátorov

Nasledujúce nástroje sa používajú na detekciu bezpečnostných zraniteľností v programoch:

  • Dynamické debuggery. Nástroje, ktoré vám umožňujú ladiť program, keď je spustený.
  • Statické analyzátory (statické debuggery). Nástroje, ktoré využívajú informácie nazhromaždené počas statickej analýzy programu.

Statické analyzátory indikujú miesta v programe, kde sa môže vyskytnúť chyba. Tieto podozrivé útržky kódu môžu obsahovať chybu alebo byť úplne neškodné.

Tento článok poskytuje prehľad niekoľkých existujúcich statických analyzátorov. Pozrime sa bližšie na každý z nich.

V niektorých prípadoch je výskyt zraniteľností spôsobený používaním vývojových nástrojov rôzneho pôvodu, ktoré zvyšujú riziko defektov sabotážneho typu v programovom kóde.

Zraniteľnosť sa objavuje v dôsledku pridávania komponentov tretích strán alebo voľne distribuovaného kódu (open source) do softvéru. Kód iných ľudí sa často používa „tak, ako je“ bez dôkladnej analýzy a testovania bezpečnosti.

Netreba vylúčiť, že v tíme sú zasvätení programátori, ktorí zámerne zavádzajú do vytváraného produktu ďalšie nezdokumentované funkcie alebo prvky.

Klasifikácia softvérových zraniteľností

Zraniteľnosť vznikajú v dôsledku chýb, ktoré sa vyskytnú pri návrhu alebo písaní programového kódu.

V závislosti od štádia výskytu sa tento typ hrozby delí na zraniteľnosti týkajúce sa návrhu, implementácie a konfigurácie.

  1. Chyby v návrhu sú najťažšie odhaliť a opraviť. Ide o nepresnosti algoritmov, záložiek, nezrovnalosti v rozhraní medzi rôznymi modulmi alebo v protokoloch pre interakciu s hardvérom, zavádzanie suboptimálnych technológií. Ich odstraňovanie je časovo veľmi náročný proces, a to aj preto, že sa môžu objaviť aj v nie celkom samozrejmých prípadoch – napríklad pri prekročení objemu prevádzky alebo pri pripojení veľkého množstva prídavných zariadení, čo komplikuje zabezpečenie požadovanej úrovne. bezpečnosti a vedie k objaveniu spôsobov, ako obísť firewall.
  2. Chyby pri implementácii sa objavujú vo fáze písania programu alebo zavádzania bezpečnostných algoritmov do neho. Ide o nesprávnu organizáciu výpočtového procesu, syntaktické a logické chyby. Existuje však riziko, že chyba povedie k pretečeniu vyrovnávacej pamäte alebo iným druhom problémov. Ich objavenie trvá dlho a eliminácia zahŕňa opravu určitých častí strojového kódu.
  3. Chyby konfigurácie hardvéru a softvéru sú veľmi časté. Ich spoločnými príčinami je nedostatočný kvalitný vývoj a nedostatok testov na správna práca pridané vlastnosti. Do tejto kategórie patria aj jednoduché heslá a predvolené účty zostali nezmenené.

Podľa štatistík sa zraniteľnosti najčastejšie nachádzajú v obľúbených a rozšírených produktoch – desktopoch a mobiloch. operačné systémy, prehliadače.

Riziká používania zraniteľných programov

Programy, v ktorých nájdu najväčší počet zraniteľnosti sú nainštalované takmer na všetkých počítačoch. Zo strany kyberzločincov je priamy záujem takéto nedostatky nájsť a písať za nich.

Keďže od objavenia zraniteľnosti po zverejnenie opravy (záplaty) uplynie pomerne dlhý čas, existuje množstvo príležitostí na infekciu počítačové systémy cez bezpečnostné diery v kóde. Používateľovi v tomto prípade stačí jedenkrát otvoriť napríklad škodlivý PDF súbor s exploitom, po ktorom útočníci získajú prístup k dátam.

Infekcia v druhom prípade nastáva podľa nasledujúceho algoritmu:

  • Používateľ dostane e-mail phishingový e-mail od dôveryhodného odosielateľa.
  • Súbor s exploitom je priložený k listu.
  • Ak sa používateľ pokúsi otvoriť súbor, počítač je infikovaný vírusom, trójskym koňom (šifrovač) alebo iným škodlivým softvérom.
  • Kyberzločinci získajú neoprávnený prístup do systému.
  • Cenné dáta sa kradnú.

Výskum uskutočnený rôznymi spoločnosťami (Kaspersky Lab, Positive Technologies) ukazuje, že takmer každá aplikácia, vrátane antivírusov, má zraniteľné miesta. Preto je pravdepodobnosť inštalácie softvérového produktu obsahujúceho chyby rôzneho stupňa kritickosti veľmi vysoká.

Pre minimalizáciu počtu medzier v softvéri je potrebné použiť SDL (Security Development Lifecycle, bezpečný vývojový životný cyklus). Technológia SDL sa používa na zníženie počtu chýb v aplikáciách vo všetkých fázach ich tvorby a podpory. Špecialisti na informačnú bezpečnosť a programátori teda pri navrhovaní softvéru modelujú kybernetické hrozby, aby našli zraniteľné miesta. Počas programovania sú do procesu zahrnuté automatické nástroje, ktoré okamžite hlásia prípadné chyby. Vývojári sa snažia výrazne obmedziť funkcie dostupné pre neoverených používateľov, čo pomáha zmenšiť plochu útoku.

Aby ste minimalizovali dopad zraniteľností a škôd spôsobených nimi, musíte dodržiavať niektoré pravidlá:

  • Rýchlo nainštalujte vývojárom vydané opravy (záplaty) pre aplikácie alebo (najlepšie) povoľte automatický režim aktualizácie.
  • Ak je to možné, neinštalujte pochybné programy, ktorých kvalita a technická podpora vyvolávať otázky.
  • Používajte špeciálne skenery zraniteľnosti alebo špecializované funkcie antivírusových produktov, ktoré vám umožnia vyhľadať chyby zabezpečenia a v prípade potreby aktualizovať softvér.

Pri spustení inteligentné skenovanie Softvér Avast skontroluje váš počítač, či neobsahuje nasledujúce typy problémov, a potom ponúkne možnosti na ich odstránenie.

  • Vírusy: súbory obsahujúce škodlivý kód, čo môže ovplyvniť bezpečnosť a výkon vášho počítača.
  • Zraniteľný softvér: Programy, ktoré je potrebné aktualizovať a ktoré môžu útočníci použiť na získanie prístupu do vášho systému.
  • Rozšírenia prehliadača so zlou povesťou: Rozšírenia prehliadača, ktoré sa zvyčajne inštalujú bez vášho vedomia a ovplyvňujú výkon systému.
  • Slabé heslá: heslá, ktoré sa používajú na prístup k viac ako jednému účtu na internete a môžu byť ľahko napadnuté alebo napadnuté.
  • Sieťové hrozby: Chyby vo vašej sieti, ktoré by mohli umožniť útoky na vaše sieťové zariadenia a smerovač.
  • Problémy s výkonom: predmety ( nevyžiadané súbory a aplikácie, problémy súvisiace s nastaveniami), ktoré môžu brániť fungovaniu počítača.
  • Konfliktné antivírusy: antivírusový softvér nainštalovaný na PC s Avastom. Viacnásobné antivírusové programy spomaľuje PC a znižuje účinnosť antivírusovej ochrany.

Poznámka. Niektoré problémy zistené funkciou Smart Scan môžu vyžadovať samostatnú licenciu na vyriešenie. Detekciu nepotrebných typov problémov je možné vypnúť v .

Nájdené riešenie problémov

Zelené začiarknutie vedľa oblasti skenovania znamená, že sa nenašli žiadne súvisiace problémy. Červený krížik znamená, že skenovanie identifikovalo jeden alebo viacero súvisiacich problémov.

Ak chcete zobraziť konkrétne podrobnosti o zistených problémoch, kliknite všetko vyriešiť. Smart Scan zobrazuje podrobnosti o každom probléme a ponúka možnosť okamžite ho opraviť kliknutím na položku Rozhodnite sa alebo to urobte neskôr kliknutím Tento krok preskočte.

Poznámka. Protokoly antivírusovej kontroly si môžete pozrieť v histórii kontroly , ku ktorej sa dostanete výberom Antivírusová ochrana.

Správa nastavení inteligentného skenovania

Ak chcete zmeniť nastavenia inteligentného skenovania, vyberte Nastavenia Všeobecné Smart Scan a zadajte, pre ktorý z uvedených typov problémov chcete spustiť Smart Scan.

  • Vírusy
  • Zastaraný softvér
  • Doplnky prehliadača
  • Sieťové hrozby
  • Problémy s kompatibilitou
  • Problémy s výkonom
  • Slabé heslá

V predvolenom nastavení sú povolené všetky typy problémov. Ak chcete zastaviť kontrolu konkrétneho problému pri vykonávaní inteligentného skenovania, kliknite na posúvač Zahrnuté vedľa typu problému, aby sa zmenil stav na Vypnutý.

Kliknite nastavenie vedľa nápisu Vyhľadávanie vírusov zmeniť nastavenia skenovania.