-Uus- protsess luuakse -Töös- selle protsessi käske täidetakse -Ootel- Protsess ootab mingi sündmuse toimumist -Valmis- protsess ootab, et tema käske täitma hakataks -Lõpetatud- protsessis olev programm on täidetud (edukalt või edutult) Protsessi juhtplokk *Iga protsessiga on seotud protsessi juht polkk (PCB) · Protsessi juhtplokk koosneb: · Protsessi number · Protsessi olek · Käsuloendur · Protsessori registrite seis · Protsessoriaja planeerimise info. · Mäluhaldus info · Arvepidamis info · I/O staatus · Omanikuinfo Katkestus *Katkestus iterrupt, interruption- Mingi protsessi, näiteks programmi, täitmise peatamine selle protsessi suhtes välise sündmuse toimel, nii et protsess saaks jätkuda. Katkestuse täitmine *CPU lõpetab pooleli oleva käsu. *PC ja PSW salvestatakse STACK-1 *PS-sse laetakse uus väärtus (alamprogrammi algus aadress) Planeerimisjärjekorrad
Ta ülesanded on järgmised: 1. Saada sissepääs rünnatavasse süsteemi · Nakatatud programmi kaudu, mille teadlikult või teadmatult käivitab kasutaja · Alglaadimise protsessiga, nii et viirus on enne rakenduste käivitust resi- dentne ja aktiivne (võib toimuda ka siis, kui diskettsalvestis on mittebuuditav (non-bootable) diskett ja üritatakse kuumbuutimist) 2. Hõivata kontroll töötlusressursi (protsessoriaja) üle · Saavutada aktiveerimine ja juhtimine ainult nakatatud programmi töötluse ajal · Saavutada resistentsus ja juhtimine alglaadimisprotsessiga; · Saavutada resistentsus ja juhtimine DOSi standardsete TSR-kutsetega · Saavutada resistentsus ja juhtimine DOSist möödumise ja edukalt mällu peitumisega 3. Saada juurdepääs muule tarkvarale ja/või andmekandjale
Kiud(fibers,handels) Objektid Tegum-kogum protsesse ühiste kvootide ja limiitidega Protsess lõimede ressursside konteiner Lõim koodi täitmine protsessis Kiud kergeim lõim, täielikult juhitav kasutaja keskkonnast Protsesss juhtplokk · Iga protsessiga on seotud protsessi juhtplokk (PCB Process Control Block) · Protsessi juhtplokk koosneb o (protsessi number) o Protsessi olek o Käsuloendur o Protsessi registrite seis o Protsessoriaja planeerimise info o Mäluhaldusinfo o Arvepidamisinfo o I/O status o Omanikuinfo Kontekstivahetus · Selleks, et uuele protsessile ruumi teha, tuleb salvestada tema hetkeseisu info ja sisse lugeda uue oma. Seda protsessi nimetatakse konteksti vahetuseks. · Ühelt protsessilt teisele lülitumisel tuleb salvestada vana protsessi olek ja laadiada uue protsessi salvestatud olek
ii. Päästikumehhanism iii. Toimelaeng 1.1.1. Nakatamissüsteem Nakatamissüsteem on kolmest loetletud komponendist viiruse kõige olulisem osa. Ülejäänud osad võivad isegi puududa. Nakatamissüsteemi ülesandeks on: 1) leida sissepääs rünnatavasse süsteemi nakatatud programmi kaudu, 2) mille teadlikult või teadmatult käivitab kasutaja; 3) alglaadeprotsessiga, nii et viirus on enne rakenduste käivitust residentne ja aktiivne. Hõivata kontroll töötlusressursi (protsessoriaja) üle: saavutada aktiveerimine ja juhtimine ainult nakatatud programmi töötluse ajal; saavutada residentsus ja juhtimine alglaadeprotsessiga; saavutada residentsus ja juhtimine DOSi standardsete TSR-kutsetega; saavutada residentsus ja juhtimine DOSist möödumise ja edukalt mällu peitumisega. 4 Saada juurdepääs muule tarkvarale ja/või andmekandjale
1. Nakatamissüsteem 2. Päästikumehhanism 3. Toimelaeng 1.1.1. Nakatamissüsteem2 Nakatamissüsteem on kolmest loetletud komponendist viiruse kõige olulisem osa. Ülejäänud osad võivad isegi puududa. Nakatamissüsteemi ülesandeks on: leida sissepääs rünnatavasse süsteemi nakatatud programmi kaudu, mille teadlikult või teadmatult käivitab kasutaja; alglaadeprotsessiga, nii et viirus on enne rakenduste käivitust residentne ja aktiivne. Hõivata kontroll töötlusressursi (protsessoriaja) üle: saavutada aktiveerimine ja juhtimine ainult nakatatud programmi töötluse ajal; saavutada residentsus ja juhtimine alglaadeprotsessiga; saavutada residentsus ja juhtimine DOSi standardsete TSR-kutsetega; saavutada residentsus ja juhtimine DOSist möödumise ja edukalt mällu peitumisega. 2 Nakatamissüsteem on kolmest loetletud komponendist viiruse kõige olulisem osa. Ülejäänud osad võivad isegi puududa.
10 eelmine töö niikaua puhvris ootama kuni talle jälle protsessoriaega antakse. Et tööd üheskoos vajasid turvalist mälu, oli vaja spetsiaalset riistvara kaitsmaks iga tööd snuupingu ja ja teiste probleemide eest. Operatsioonisüsteemil tekkisid uued funktsioonid: mälujaotus; tööde planeerimine; protsessoriaja planeerimine; ressursside kinnitamine töödele. Teine oluline tunnusjoon kolmandale generatsioonile oli see, et loodi otsepöördusseadmed. Ketastelt sai lugeda ja neile kirjutada kogu salvestuspiirkonnas, samas kui magnetlinti oli võimalik lugeda vaid järjest algusest lõpu poole ja siis tagasi kerida. Seega ketastega töötamisel oli võimalik kiiresti lülituda ümber piirkonnast, mida kaardilugeja kasutab
järgmine töö; kui esimene töö lõpetab suhtlemise sisend-väljund seadmetega, siis peab eelmine töö niikaua puhvris ootama kuni talle jälle protsessoriaega antakse. Et tööd üheskoos vajasid turvalist mälu, oli vaja spetsiaalset riistvara kaitsmaks iga tööd snuupingu ja ja teiste probleemide eest. Operatsioonisüsteemil tekkisid uued funktsioonid: mälujaotus; tööde planeerimine; protsessoriaja planeerimine; ressursside kinnitamine töödele. Teine oluline tunnusjoon kolmandale generatsioonile oli see, et loodi otsepöördusseadmed. Ketastelt sai lugeda ja neile kirjutada kogu salvestuspiirkonnas, samas kui magnetlinti oli võimalik lugeda vaid järjest algusest lõpu poole ja siis tagasi kerida. Seega ketastega töötamisel oli võimalik kiiresti lülituda ümber piirkonnast, mida kaardilugeja kasutab
järgmine töö; kui esimene töö lõpetab suhtlemise sisend-väljund seadmetega, siis peab eelmine töö niikaua puhvris ootama kuni talle jälle protsessoriaega antakse. Et tööd üheskoos vajasid turvalist mälu, oli vaja spetsiaalset riistvara kaitsmaks iga tööd snuupingu ja ja teiste probleemide eest. Operatsioonisüsteemil tekkisid uued funktsioonid: mälujaotus; tööde planeerimine; protsessoriaja planeerimine; ressursside kinnitamine töödele. Teine oluline tunnusjoon kolmandale generatsioonile oli see, et loodi otsepöördusseadmed. Ketastelt sai lugeda ja neile kirjutada kogu salvestuspiirkonnas, samas kui magnetlinti oli võimalik lugeda vaid järjest algusest lõpu poole ja siis tagasi kerida. Seega ketastega töötamisel oli võimalik kiiresti lülituda ümber piirkonnast, mida kaardilugeja kasutab
ajaakna eraldamist. Et selline protsesside vahetamine võimalik oleks sisaldab iga protsess lisaks töö kirjeldusele ka protsessile eraldatud numbrit, tema aktiivset hetkeseisu (ehk seisu, kuhu protsessi 9 täitmisega ollakse jõutud ik programm counter), protsessori registrite hetkeseisu, ajutisi muutujaid (mis protsessoris on pinus) ja globaalseid muutujaid. Tegelikkuses on protsessidele protsessoriaja jagamiseks olemas mitmeid erinevaid loogikaid: · Lihtjärjekord (First Come First Served) protsesse täidetakse nende saabumise järjekorras kuni töö valmimiseni, kui mõni protsess blokeerub, siis võetakse järgmine · Alates lühemast (shortest first) iga protsessiga seotakse järgmise protsessoriaja küsitav pikkus ning esimesena võetakse täitmisse lühiajalisema sooviga protsess
Uues kohas oli vagla esimene ülesanne ennast maskeerida, kustutades kõik sissetungimise käigus loodud failid. Seejärel hakkas vagel üritama tungida mõne kasutaja pangaarvesse, püüdes leida parooli ning seejärel end kasutajaks maskeerides. Et maskeering oleks veelgi täiuslikum, tekitas vagel nakatatud süsteemis aeg-ajalt enda koopiaid ning seejärel kustutas esialgse versiooni, nii et wormi ei saanud leida mingi ühe programmi poolt kasutatud ülemäärase protsessoriaja järgi. Iga 12 tunni järel kustutas ta tema poolt nakatatud arvutite nimekirja (s.t. viirus pidas jooksvat arvestust arvutite kohta, mida ta oli juba nakatanud). Seetõttu võis ta mõnda vahepeal vaglast puhastatud süsteemi uuesti nakatada. Mõne päeva pärast hakkasid asjad aegamööda normaliseeruma. Robert T. Morris Jr. mõisteti süüdi arvutipettuse ja -kuritarvitusakti (§ 18) rikkumises ning ta sai kolm
· Trooja hobused -- kust tulevad? · Parandamise võimalus · Kokkuvõtteks: avatud lähtekoodil on parem potentsiaal saada turvaliseks Sisendi kontroll · Programm peab edukalt toime tulema igasuguse sisendiga, mida talle võidakse anda, ka vigasega · Aktsepteeritav sisend peab vastama soovitud mustrile · Aktsepteeritav sisend peab vastama soovitud mahupiirangutele · Sisendiks pole ainult sisseloetavad andmed -- ka süsteemist saadu · Kontrollida protsessoriaja, mälu, I/O, võrgu kasutust (DoS oht!) · Testida ka valede läbilaskmiste ja valede filtreerimiste vastu (mitte ainult oodatud tulemuste kohta!) · Sisendit kontrollida iga mooduli liidese juures, mitte ainult kasutajaliideses · Lubatud mustrid vs keelatud mustrid? Sisendi valideerimine · Programmi argumendid (käsurida) · Keskkonnamuutujad · Failipidemed · Failide sisu · Veebis: URLi kodeering (+UNICODE!!!) · Veebis: küpsised (cookies)