Pochopenie malvéru

original:http://xfront.com/malware/index.html

Pochopenie malvéru

Nedávno som sa rozhodol dozvedieť sa niečo o škodlivom softvéri. Aby som usporiadal svoje myšlienky, vytvoril som model príslušných konceptov. Malware zahŕňa softvérové ​​programy, takže som potreboval modelovať programy – ich vstupy a výstupy. Dozvedel som sa, že škodlivý softvér zahŕňa úmysel spôsobiť škodu, takže som potreboval modelovať ľudí, ktorí vytvárajú programy, so zámerom (či už škodlivým alebo neškodným) a modelovať pojem poškodenia. Dozvedel som sa, že neexistuje všeobecne akceptovaná definícia škodlivého softvéru. Niektorí ľudia definujú malvér ako softvér vytvorený so škodlivým úmyslom; iní ho definujú ako softvér, ktorý spôsobuje ujmu.Prijal som definíciu, že škodlivý softvér je softvér vytvorený so zlým úmyslom a po vykonaní spôsobí jeho výsledky škodu.

Ďalej sú uvedené vyhlásenia subjektov a vzťahov, ktoré som vyjadril v mojom modeli. Upozorňujeme, že namiesto softvéru používam slovo program . Rozlišujem medzi programami a vstupmi do programov . Vstupy môžu byť softvér, kód, text alebo binárne súbory. Programy spracovávajú (vykonávajú / interpretujú) vstupy. Cieľom je určiť, ktoré vstupy sú malvér.

  1. Programy vytvárajú ľudia.
  2. Vstupy do programov vytvárajú ľudia.
  3. Každý vstup do programu vyprodukuje jeden výstup.
  4. Pri rovnakom vstupe program produkuje vždy rovnaký výstup.
  5. Vytvorí sa program na spracovanie určitej množiny vstupov a produkciu určitej množiny výstupov. Skutočná množina vstupov do programu a výstupov produkovaných programom môže byť väčšia. To znamená, že očakávané I / O je podmnožinou skutočných I / O.
  6. Keď osoba vytvorí vstup do programu, má buď benígne alebo škodlivé úmysly.
  7. Niektoré výstupy spôsobujú ujmu.
  8. Vstupy, ktoré sa vytvárajú na spracovanie, sú neškodné. Výstupy, ktoré sú vytvorené na produkciu, nespôsobujú škodu.
  9. Ak sú vyššie uvedené tvrdenia splnené, potom logicky nasledujú nasledujúce závery:
    • Vstupy, ktoré bol vytvorený na spracovanie, nie sú malvérom; iba vstupy, ktoré program nebol vytvorený na spracovanie, môžu byť malvér.
    • Softvér napísaný s neškodným úmyslom môže byť malvér. Môžu existovať benígne vstupy, ktoré pri vykonaní programom vedú k výstupom, ktoré spôsobujú škodu.

——————————

Modelovanie zahŕňa abstrahovanie od nepodstatných aspektov a zjednodušenie niektorých relevantných aspektov. Vyššie uvedené vyjadrenia som ukázal kamarátovi a ten identifikoval veci, ktoré môj model vynechal a zjednodušil. Nižšie sú komentáre mojich priateľov červené .

  1. Programy vytvárajú ľudia.Niektoré programy sú vytvorené inými programami. Napríklad Lex dostane gramatiku ako vstup a výstup syntaktického analyzátora (čo je program). Takže program vytvoril program.
  2. Vstupy do programov vytvárajú ľudia.Väčšina dnešného softvéru je zabudovaný softvér. Tieto programy získavajú vstupy zo senzorov a akčných členov. Väčšina vstupov teda pochádza od ľudí.
  3. Každý vstup do programu vyprodukuje jeden výstup.Ak program zlyhá, nemusí produkovať žiadny výstup alebo môže produkovať nesprávny výstup alebo nesprávny výstup (čo je v podstate to isté ako nesprávny výstup).
  4. Pri rovnakom vstupe program produkuje vždy rovnaký výstup.Vo vložených programoch v reálnom čase to takmer nikdy neplatí. Napríklad vstupom do programu je ventil kávovaru, ktorý riadi prietok vody do kávovaru a výstupom je hladina vody. Dajte programu rovnaký vstup (ventil) a takmer vždy sa bude líšiť výstup (hladina vody).
  5. Vytvorí sa program na spracovanie určitej množiny vstupov a produkciu určitej množiny výstupov. Skutočná množina vstupov do programu a výstupov produkovaných programom môže byť väčšia. To znamená, že očakávané I / O je podmnožinou skutočných I / O.Program by mal vždy skontrolovať vstupy pred ich spracovaním. Takže sada vstupov, ktoré sa spracúvajú, by sa mala rovnať množine vstupov, ktoré bol program vytvorený na spracovanie.
  6. Keď osoba vytvorí vstup do programu, má buď benígne alebo škodlivé úmysly.Ako už bolo povedané, ľudia nie sú jedinými entitami, ktoré vytvárajú vstupy. Majú senzory a akčné členy zámery?
  7. Niektoré výstupy spôsobujú ujmu.Dobre.
  8. Vstupy, ktoré sa vytvárajú na spracovanie, sú neškodné. Výstupy, ktoré sú vytvorené na produkciu, nespôsobujú škodu.Zvážte program, ktorý ovláda krídlo. Vstup je z Pitotovej trubice. Predpokladajme, že na Pitotovej trubici je ľad, čo vedie k vstupu do programu, ktorý produkuje výstup (konfigurácia krídla), ktorý spôsobí zastavenie lietadla. Vstup je v rozsahu očakávanom programom a má nezhubné úmysly (za predpokladu, že má úmysly Pitotova trubica), ale výstup poškodzuje.
  9. Ak sú vyššie uvedené tvrdenia splnené, potom logicky nasledujú nasledujúce závery:
    • Vstupy, ktoré bol vytvorený na spracovanie, nie sú malvérom; iba vstupy, ktoré program nebol vytvorený na spracovanie, môžu byť malvér.Upravené.
    • Softvér napísaný s neškodným úmyslom môže byť malvér. Môžu existovať benígne vstupy, ktoré pri vykonaní programom vedú k výstupom, ktoré spôsobujú škodu.Áno, existujú niektoré vstupy, ktoré sú benígne, a napriek tomu vedú k poškodeniu. Nikto nemal v úmysle spôsobiť ujmu radiačnému systému, ale kvôli chybám v systéme bol niekto zabitý.

——————————

Pripomeňme, že som prijal definíciu, že malvér je softvér vytvorený so zlým úmyslom a keď je vykonaný, spôsobí škodu. Tu mi povedal môj priateľ:

Predpokladajme, že v návrhu programu je chyba, ktorá odhaľuje zraniteľnosť, ktorú niekto zneužíva; je to programovy malware? Je bugový implementačný malvér iba preto, že ho možno zneužiť? Myslím, že to bol SSH, ktorý mal chybu v sebe asi 10 rokov, kým niekto chybu nevyužil. Bol program SSH malvérom 10 rokov, keď sa chyba nezistila? Čo ak sa v dizajne programu vyskytne chyba, ktorá môže spôsobiť škodu, napríklad chyba v softvéri lietadla, ktorá by mohla spôsobiť jeho pád. Je to malware?

Leave a Reply

Your email address will not be published. Required fields are marked *