Razumijevanje zlonamjernog softvera

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

Nedavno sam krenuo učiti o zlonamjernom softveru. Da bih organizirao svoje misli, stvorio sam model relevantnih koncepata. Malware uključuje softverske programe, pa sam morao modelirati programe – njihove ulaze i izlaze. Naučio sam da zlonamjerni softver uključuje namjeru da se nanese šteta, pa sam trebala modelirati ljude koji stvaraju programe s namjerom (bilo zlonamjernim ili benignim) i modelirati pojam štete. Saznala sam da ne postoji općeprihvaćena definicija zlonamjernog softvera. Neki ljudi zlonamjerni softver definiraju kao softver koji je stvoren zlonamjernom namjerom; drugi ga definiraju kao softver koji uzrokuje štetu. Usvojio sam definiciju da je zlonamjerni softver stvoren sa zlonamjernom namjerom i kada se njegovi rezultati izvrše štete.

Ispod su izjave entiteta i odnosa sam izrazio u svom modelu. Imajte na umu da koristim riječ  programu, a ne  softver. Ja razliku između  programa ulaza do programa. Ulazi mogu biti softver, kod, tekst ili binarna. Programi proces (izvršiti/interpretirati) ulaza. Cilj je odrediti koji ulazi su zlonamjerni.

  1. Programi su stvorili ljudi.
  2. Ulazi na programe su stvorili ljudi.
  3. Svaki ulaz u program proizvodi jedan izlaz.
  4. S obzirom na isti ulaz, program uvijek daje isti rezultat.
  5. Program je stvoren za obradu određeni skup ulaza i proizvoditi određeni skup izlaza. Stvarni skup ulaza u program i izlaza u produkciji programa mogu biti veće. To je, očekuje ulaz/izlaz je podskup stvarni ulaz/izlaz.
  6. Kada osoba stvara unos u program, on je benigni ili zlonamjerne namjere.
  7. Neki izlazi uzrokovati štetu.
  8. Ulazi koje je program stvorio procesu su benigni. Izlazi da je program stvoren za proizvodnju ne uzrokuju štetu.
  9. Ako se gore navedene izjave zadovoljni, onda slijedeći zaključci logično slijedi:
    • Ulazi koji program je stvoren kako bi proces nisu zlonamjerni, samo ulazi da program nije stvoren da proces može biti zlonamjerni.
    • Softver napisan s benignom namjerama može biti zlonamjerni. Tu može biti benigni ulaza koji, kada se izvršavaju pomoću programa za posljedicu izlaza koji uzrokuju štetu.

Modeliranje uključuje apstrahiranje irelevantnih aspekata i pojednostavljenje nekih relevantnih aspekata. Pokazao sam gore navedene izjave prijatelju i on je identificirao stvari koje je moj model izostavio i pojednostavio. U nastavku su komentari mojih prijatelja, u crveno.

1. Programi su stvorili ljudi.

Neki programi su stvorili druge programe. Na primjer, Lex je dao gramatike kao ulaz i izlaz rastavljača (koji je program). Dakle, program stvorio program.

2. Ulazi na programe su stvorili ljudi.

Većina današnjeg programa je ugrađen softver. Ti programi dobili svoje inpute od senzora i aktuatora. Dakle, većina je unos od ne-ljudi.

3. Svaki ulaz u program proizvodi jedan izlaz.

Ako program ne uspije, to ne bi mogli proizvesti bilo koji izlaz, ili to može proizvesti pogrešan izlaz, ili bi to moglo proizvesti pravi izlaz u krivo vrijeme (što, u biti, ista stvar kao i na krivom izlaz).

4. S obzirom na isti ulaz, program uvijek daje isti rezultat.

To je gotovo nikad ne vrijedi ugrađenih u realnom vremenu programa. Na primjer, ulaz programa je aparat za kavu ventil koji kontrolira protok vode u aparat za kavu, a izlaz je razina vode. Dajte Program isti ulaz (ventil) i gotovo uvijek (vodostaj) izlaz će biti drugačiji.

5. Program je stvoren za obradu određeni skup ulaza i proizvoditi određeni skup izlaza. Stvarni skup ulaza u program i izlaza u produkciji programa mogu biti veće. To je, očekuje ulaz/izlaz je podskup stvarni ulaz/izlaz.

Program treba uvijek provjeriti ulaza prije nego što ih obrađuje. Dakle, skup inputa koji se obrađuju treba biti jednak skup ulaza Program je stvoren za obradu.

6. Kada osoba stvara unos u program, on je benigni ili zlonamjerne namjere.

Kao što je ranije navedeno, ljudi nisu samo osobe koje stvaraju ulaza. Da li senzori i aktuatori su namjere?

7. Neki izlazi uzrokovati štetu.

U redu.

8. Ulazi koje je program stvorio procesu su benigni. Izlazi da je program stvoren za proizvodnju ne uzrokuju štetu.

Razmislite program koji kontrolira krilo. Ulaz iz Pitot cijevi. Pretpostavimo je led na Pitot cijevi, što je rezultiralo ulaz na program koji proizvodi izlazni (konfiguracije krila) koja uzrokuje da se zrakoplov zastoja. Ulaz je u rasponu očekivanog po programu i ima benigne namjere (uz pretpostavku Pitot-cijev ima namjeru), ali je izlaz proizvodi štetu.

9. Ako se gore navedene izjave zadovoljni, onda slijedeći zaključci logično slijedi:

  • Ulazi koji program je stvoren kako bi proces nisu zlonamjerni, samo ulazi da program nije stvoren da proces može biti zlonamjerni.

Uredan.

  • Softver napisan s benignom namjerama može biti zlonamjerni. Tu može biti benigni ulaza koji, kada se izvršavaju pomoću programa za posljedicu izlaza koji uzrokuju štetu.

Da, postoje neki unosi koji su benigni, a ipak rezultiraju štetom. Nitko namijenjen za sustav zračenja uzrokuju štetu, ali zbog greške u sustavu, netko je ubijen.


Sjetite se da sam usvojio definiciju da je zlonamjerni softver softver stvoren zlonamjernim namjerama i kada je izvršen uzrokuje štetu. Evo što je moj prijatelj morao reći o tome:

Pretpostavimo da postoji mana u dizajnu nekog programa, koji izlaže ranjivost da netko iskorištava; je taj program malware? Je implementacija lud  malware  samo zato što se može iskoristiti? Mislim da je SSH koji je imao bug u njemu za nešto kao što je 10 godina dok netko iskorištava grešku. Je li SSH programa  zlonamjernih programa  za 10 godina da bug nije pronađen? Što ako postoji mana u dizajnu nekog programa koji ima potencijal da uzrokuje štetu, npr, propust u softveru zrakoplova koji može uzrokovati da se srušiti. Je li to malware?

Zadnja izmjena: 5. studenog 2018. Autor: Roger Costello

Computer science
Međunarodni Ispell

Source: https://www.cs.hmc.edu/~geoff/ispell.html Međunarodni Ispell interaktivni je program provjere pravopisa za Unix koji podržava veliki broj europskih jezika. Dostupno je emacsovo sučelje kao i standardni način naredbenog retka. Najnovija inačica ispell-a dostupna je za preuzimanje kao gzipped tar datoteka. Također možete upotrijebiti svoju omiljenu tražilicu da biste pogledali ogledala koja su vam …

Computer science
ORACLE 10g PROGRAMIRANJE

Source: http://tinman.cs.gsu.edu/~raj/books/oracle10-primer.html ORACLE 10g PROGRAMIRANJE Prvom Rajshekhar Sunderraman Džordžija državno sveučilište ISBN-10 0-321-46304-3 ISBN-13 978-0-321-46304-8 Papir (2008) 544 stranica Više informacija Sadržaj Predgovor Pro*C/C++ Poglavlje SQLJ Poglavlje Preuzmite kod. Dostupno i kao arhiva: supplements10.tar.gz i supplements10.zip.    “…dobro je napisano, tehnički ispravno i precizno. Ne postoje beznačajna objašnjenja koja idu preko glave …

Computer science
Java program

Source: http://guyhaas.com/bfoit/itp/JavaProgram.html UVOD U ovoj lekciji ćete naučiti zbog čega je Java takav hit kod programera, koje su komponente u svijetu Jave, kako gradite Java aplikaciju prolazeći kroz “Uredi, kompajliraj, izvrši” postupak. ZAŠTO JAVA? Java je programski jezik izgrađen za dob Interneta. Izgrađen je za svijet u kojem na internetu ima …