SlideShare a Scribd company logo
1 of 8
UTICAJ MOBILNIH SOFTVERSKIH AGENATA NA BEZBEDNOST RAÄŒUNARSKIH SISTEMA

INFLUENCE OF MOBILE SOFTWARE AGENTS ON COMPUTER SYSTEMS SECURITY

Boriša JovanoviČ
Centar za primenjenu matematiku i elektroniku

Sadržaj: Ubrzani razvoj tehnologije, kako u pogledu hardvera tako u pogledu
softvera u mnogome otežavaju celokupni sistem bezbednog upravljanja
informacijama. Svakog dana podaci i informacije su sve ranjiviji i neophodno je
postojanje sveobuhvatnog, odbrambeno orijentisanog mehanizma zaštite i
oÄŒuvanja bezbednosti raÄŒunarskih sistema.

Abstract: Rapid development of technology, both in terms of hardware and
software, makes the whole system of secure information management heavy. Every
day, data and information are more and more vulnerable and, the existence of a
comprehensive, defense-oriented mechanism for protecting and preserving the
security of computer systems is necessarly.

1.   UVOD

Razvoj raÄŒunarskih sistema kroz istoriju tekao je od centralizovanih monolitnih
raČunarskih ureČaja koji podržavaju statiČke aplikacije, do savremenih
klijent- server okruženja koja pružaju vema složene forme distribuiranog
izvršavanja. U toku ovakvog razvoja postojale su razliČite forme mobilnosti
(pokretnosti) koda koji se izvršava: najraniji su bili terminali za unos
programa koji Če se izvršavati na centralnom raČunaru dok su u poslednje
vreme zastupljeni JAVA apleti koje se preuzimaju sa Web servera i izvršavaju u
Web pretraživaČima. Nova faza u evoluciji ide korak dalje i omoguČava potpunu
mobilnost kooperantskih aplikacija izmeČu platformi koje ih podržavaju kako bi
formirali veliki, usko povezani distribuirani sistem.

Glavni predstavnik poslednje faze evolutivnog razvoja raÄŒunarskog softvera
su mobilni softverski agenti ⌌ programi koji su ciljano usmereni i namenjeni
da prekinu svoje izvršavanje na jednoj platformi, pokrenu se i preČu na neku
drugu platformu i na njoj nastave izvršavanje. Preciznije, softverski agent je
program koji može upotrebiti ovlašČenja pojedinaca ili organizacije da
autonomno radi na izvršenju postavljenog cilja i da u svom radu sreČe i
da   uzajamno deluje sa ostalim agentima. MoguÄŒe interakcije izmeÄŒu agenata
su razliÄŒita ugovaranja i dogovaranje servisa kroz aukciono nadmetanje i
razmenu podataka. Agenti mogu biti ili stacionarni, da se stalno nalaze na
jednoj platformi ili mogu biti i mobilni ÄŒija je glavna osobina da mogu da se
pokrenu i    prebace sa jedne platforme na drugu u razliÄŒitim vremenski
intervalima[1].

ÄŒitav spektar razliÄŒitih nijansi mobilnosti postoji, u zavisnosti od
razliČitih varijacija premeštanja koda i informacija vezanih za stanje agenta
ukljuÄŒujuÄŒi vrednosti

instanciranih promenljivih, vrednost instrukcijskog registra kao i stanje
izvršnog steka itd [2]. Na primer jedan jednostavan softverski agent
napisan kao JAVA aplet ima osobinu prenosivosti koda u postupku preuzimanja
koda apleta sa Web servera i njegovo izvršavanje na Web pretraživaČu.
MeČutim, kod JAVA apleta nema prenošenja informacija o trenutnom stanju
apleta. Sa druge strane, tehnologija Agleta (Aglets)[3], koju je razvio IBM u
Japanu, oslanja se takoÄŒe na Java programski jezik i dozvoljava da se u toku
operacija prelazaka sa jedne platforme na drugu prenose vrednosti instanciranih
promenljivih ali ne i instrukcijski registar i izvršni stek. JaČa forma
mobilnosti, Sumatra[4], razvijena je na Univerzitetu Merilend i dozvoljava Java
nitima da se prenose sa platforme na platformu. U ovom radu razmatrani su
mobilni softverski agenti koji imaju moguÄŒnost da prenose i kod i informacije
vezane za stanje agenta.

2.   BEZBEDONOSNE PRETNJE
Pretnje po bezbednost raÄŒunarskih sistema koje izazivaju mobilni softverski
agenti mogu se podeliti u tri veČ poznate kategorije: razotkrivanje
(oticanje, kompromitacija) informacija, onemoguČavanje servisa, i ošteČenje
(uništavanje) informacija. Ovaj rad ima za cilj da, uz korišČenje komponenata
jednog agentskog sistema, kategorizuje bezbedonosne pretnje kako bi se
identifikovali moguÄŒi izvori i ciljevi jednog napada. Treba napomenuti da mnoge
od pretnji koje ÄŒe ovde biti pomenute   imaju    svoje   parnjake   u
konvencionalnim klijent-server   sistemima   i    postojale   su   u
razliČitim oblicima u prošlosti. Mobilni softverski agenti jednostavno
pružaju široke moguČnosti za zloupotrebe i pogrešno korišČenje tako da se
skala potencijalnih pretnji znaČajno proširuje.

Postoji veliki broj modela za opisivanje agentskih sistema[2, 5, 6], meÄŒutim za
diskusije o bezbedonosnim problemima dovoljno je koristiti jedan uprošČeni
model koji se sastoji od svega dve glavne komponente: softverskog agenta i
platforme na kojoj se on izvršava. Ovako posmatrano, jedan agent se sastoji od
programskog koda i informacija koje opisuju stanje agenta, potrebne da se
izvrši odreČeno izraČunavanje. Osobina mobilnosti omoguČava agentu da se
seli, ili da skaÄŒe, sa platforme na platformu. Platforma na kojoj softverski
mobilni agent nastaje i sa koje polazi na svoj ⌌put⌌ oznaČava se kao
poČetna platforma, i normalno je da predstavlja okruženje u koje softverski
agent ima najviše poverenja. Platforma na kojoj se izvršava jedan softverski
agent može se sastojati od jednog ili više raČunara i može se sastojati od


506
jednog ili više izvršivih okruženja, ili mesta za sastanke, u kojima agenti
mogu da meÄŒusobno interaguju i komuniciraju. Na slici 1. prikazan je ovakav
model agentskog sistema.


Slika 1. UprošČeni model agentskog sistema

Sa slike se mogu identifikovati ÄŒetiri kategorije pretnji: pretnje koje dolaze
od mobilnog softverskog agenta koji napada platformu (raÄŒunarski sistem) na
kojoj se izvršava, softverska platforma napada mobilnog agenta, mobilni agent
napada drugog mobinog agenta na platfromi na kojoj se istovremeno
izvršavaju i pretnje koje dolaze od ostalih entiteta a usmerene su na
celokupni agentski sistem. Poslednja kategorija podrazumeva situaciju kada
jedan agent ugrožva bezbednost drugog softverskog mobilnog agenta na drugoj
platformi i kada jedna platforma ugružava bezbednost druge agentske platforme.
Ova vrsta napada se fokusira na komunikacione karakteristike raÄŒunarskih
sistema koji predstavljaju platforme na kojima se agenti izvršavaju i
eksploatiše njihove ranjivosti i slabosti. TakoČe, ova kategorija napada
eksploatiše konvencionale vrste napada koje su usmerene na operativni sistem na
kome se agentska platforma izvršava.

Uticaj softverskog agenta na agentsku platformu

Ova kategorija pretnji podrazumeva skup pretnji u kojima agent eksploatiše
bezbedonosne slabosti agentske platforme ili pokreÄŒe napade na agentsku
platformu. Ovaj skup pretnji obuhvata:

   Lažno predstavljanje ⌌ podrazumeva situaciju kada se jedan
neautorizovani agent predstavlja kao neki drugi agent. Agent koji se lažno
predstavio može nastupati sa aspekta autorizovanog agenta i može dobiti
pristup servisima i resursima za koje nije ovlašČen. TakoČe, lažno
predstavljeni agen može takvu situaciju da iskorsiti i izvrši neku
operaciju (razliÄŒite bezbedonosno osetljive operacije, promena ili brisanje
podataka, malverzacije sa bankovnim raÄŒunima itd.) i na taj naÄŒin u log
fajlovima sakrije svoj pravi identitet.

   OnemoguČavanje   servisa   ⌌   mobilni   agent   može pokrenuti napad
onemoguÄŒavanja servisa na taj naÄŒin Å¡to on prekomerno koristi veliku
koliČinu resursa platforme na kojoj se izvršava. Ovakav napad onemoguČavanjem
servisa može biti pokrenut namerno,    pokretanjem    skripta    koji
eksploatiše
ranjivost sistema ili nenamerno što je posledica grešaka i
programiranju. Paradigma mobilnog izraČunavanja i izvršavanja, meČutim,
zahteva od agentske platforme da prihvati i da izvrši mobilnog softverskog
agenta ÄŒiji je kod razvijen izvan organizacije i nije bio predmet nijedne
prethodne revizije. Neki zlonamerni softverski agent može da nosi zlonamerni
kod u sebi koji je dizajniran da prekine ili onemoguÄŒi servise koje
agentska platforma nudi, da degradira performanse agentske platforme ili da
ekstraktuje-izdvoji informacije za koje sam agent nije ovlašČen da im pristupa
niti da ih koristi i pošalje ih potencijalnom napadaČu. U zavisnosti od nivoa
pristupa, mobilni softverski agent može biti u moguČnosti da kompletno
iskljuČi i prekine izvršavanje agentske platforme.

   Neautorizovani pristup ⌌ Mehanizmi kontrole pristupa se koriste kako bi
odvratili neautorizovane korisnike ili procese od pristupa servisima ili
resursima za koje oni   nemaju   bezbedonosnim   politkama   definisana prava
pristupa. Svaki agent koji pristupa platformi mora biti subjekat bezbedonosne
politike same platforme. Da bi primenila ispravne mehanizme kontrole pristupa,
agentska platforma ili sam agent moraju da autentikuju identitet mobilnog
softverskog agenta pre nego Å¡to softverski agent bude instanciran na agentskoj
platformi. Agent koji pristupa agentskoj platformi, njenim resursima i
servisima, bez valjane autorizacije može oštetiti druge agente ali i agentsku
platformu. Agentska platforma na kojoj razliÄŒiti agenti predstavljaju korisnike
ili organizacije mora osigurati da agenti nemaju dozvole za ÄŒitanje,
izmenu ili brisanje trajno saÄŒuvanih podataka za koje nisu autorizovani,
ukljuÄŒujuÄŒi i podatke koji se nalaze u privremenim memorijama.

Uticaj agentske platforme na softverskog agenta

Ova kategorija pretnji podrazumeva skup pretnji u kojima agentska platforma
kompromituje bezbednost mobilnog softverskog agenta. Ovaj skup pretnji obuhvata:

   Lažno   predstavljanje   ⌌   situacija   kada   se   jedna agentska
platforma lažno predstavlja sa ciljem da obmane mobilnog agenta da je ona prava
destinacija i odgovarajuČi bezbednosni domen. Agentska platforma koja se lažno
predstavila kao treČa strana od poverenja može namamiti bezazlenog agenta na
platformu i iz njega izvuČi osetljive informacije. Platforma koja se lažno
predstavila može oštetiti i agenta koji je posetio i platformu Čiji je
identitet preuzela.

   OnemoguČavanje servisa ⌌ mobilni agent kada stigne na agentsku
platformu oČekuje od paltforme da izvršava njegove zahteve verno,
obezbeČujuČi ravnopravnu alokaciju resursa i pridržavajuČi se dogovorenih
kvaliteta servisa. Zlonamerna agentska platforma, meČutim, može ignorisati
zahteve za servisima koje dobija od agenta, da uvodi neprihvatljiva kašnjenja
za vremenski kritiČne zadatke, da ne izvršava kod mobilnog agenta ili Čak
da prekine izvršavanje softverskog agenta bez ikakvog


507
obaveštenja o uzroku. Agenti na drugim platformama ČekajuČi rezultat
blokiranog agenta sa zlonamerne platforme moraju biti pažljivi kako bi izbegli
potpuni prekid sopstvenog izvršavanja. Softverski agent se takoČe može
naČi u stanju blokade ukoliko zlonamerna platforma, ili loš programski
kod, kreiraju situaciju u kojoj se kritiČna faza u izvršavanju agentskih
zadataka nemože završiti zato što agent stalno iznova dobija nove zadatke.
Ovako blokirani agent Čeka da se završi akcija Čije se završavanje odlaže
novim zadacima.

    Prisluškivanje ⌌ u klasiČnom znaČenju prisluškivanje podrazumeva
da    potencijalni   napadaČ   snima   i nadgleda bezbedonosno osetljive
komunikacije. Ova pretnja, u agentskim sistemima, dobija novu dimenziju i
pogoršava se buduČi da agentska platforma može ne samo   da   nadgleda
komunikaciju   veČ   može   da nadgleda izvršavanje svake instrukcije agenta,
može da nadgleda sve nešifrovane ili javne podatke koje je agent doneo sa
sobom kao i sve podatke koji su generisani u toku izršavanja na platformi.
Pošto platforma ima pristup agentskom kodu, stanju i podacima, agent koji je
posetio platformu mora da bude oprezan i svestan Činjenice da može otkriti ili
izložiti neki znaČajen podatke, poslovnu tajnu, strategiju pregovaranja ili
druge osetljive informacije. Čak iako softverski agent možda ne iznosi
direktno osetljive informacije, agentska platforma može da izvodi zakljuČke
na osnovu tipa servisa koje agent zahteva i na osnovu identiteta agenta sa
kojim komunicira.

   Izmena koda i ponašanja mobilnog agenta ⌌ mobilna paradigma
izvršavanja podrazumeva da kada agent stigne na agentsku platformu on sa sobom
donese svoj kod, stanje i podatke. Pošto softverski agent, u svom životnom
veku, može da poseti nekoliko platformi u okviru razliČith bezbedonosnih
domena, neophodno je postojanje mehanizama koji ÄŒe obezbediti oÄŒuvanje
integriteta koda, stanja i podataka mobilnog softverskog agenta. Modifikacija
koda mobilnog agenta, i samim tim kasnije neispravno ponašanje agenta na nekoj
drugoj platformi, može biti detektovano digitalnim potpisivanjem programskog
koda mobilnog agenta od strane njegovog tvorca. Problem detektovanja zlonamernih
promena u stanju agenta u toku njegovog izvršavanja ili promena u podacima koje
je agent izraČunao i proizveo na zlonamernoj platformi još uvek nema opšte
rešenje. Agentska platforma može da izvršava modifikovanu virtuelnu mašinu,
bez znanja agenta, i da ta modifikovana virtuelna mašina može uzrokovati i
proizvoditi pogrešne rezultate.

Mobilni agenti koji poseČuju nekoliko platformi na svom životnom putu se
izlažu novim rizicima svaki put kada su u fazi prenošenja (pokreta sa jedne na
drugu platformu) kao i svaki put kada se oni instanciraju na novoj
platformi. Ukoliko se entitet koji je odgovoran za izmenu koda, stanja ili
podataka mobilnog agenta ne detektuje odmah, na samom poÄŒetku izmena, jako
ga je teško (skoro i nemoguČe) locirati nakon što agent poseti druge
platforme i izmena stanja agenta i podataka bude prikrivena novim promenama.
Mada je tehnologija kontrolnih taČaka i ponovnog izvršavanja lako ostvarljiva
u   tradicionalnim   okruženjima,   okruženje   agentskih sistema ovu tehniku
Čini jako teškom zato što finalno stanje agenta i podaci mogu biti
rezultat serije nedeterministiČkih dogaČaja koji zavise od ponašanja
autonomnog agenta Čije prethodno ponašanje i stanje nemože biti ponovo
kreirano.

Agentska platforma takoČe može grešiti u komunikaciji sa agentom. Greške u
komunikaicji sa agentom, na primer, mogu ukljuČiti promišljenu promenu polja
podataka u finansijskim transakcijama ili ÄŒak promene polja tipa poruke iz
⌌kupi⌌ u ⌌prodaj⌌. Ovakav tip promišljene i ciljane promene podataka je
mnogo teže realizovati od prostog   ošteČenja   poruke,   ali   se   ipak
izvodi   jer potencijalni napadaČ ima jasan podsticaj i nagradu.

3.   MERE ZAÅ TITE U AGENTSKIM SISTEMIMA

Mnoge konvencionalne bezbedonosne tehnike koje se koriste u savremenim
distribuiranim aplikacijama (tj. klijent-server aplikacijama) takoÄŒe imaju
svoju primenu u okviru savremene paradigme mobilnog izvršavanja i mobilnih
agenata. Pored toga, postoje mnoga proširenja konvencionalnih tehnika i tehnikE
koje su izmišljene specifiČno za kontrolisanje mobilnog koda i izvršivog
sadržaja koje su primenljive na bezbednost agentskih sistema. U daljem tekstu
se na konzistentan naÄŒin prikazuje pregled protivmera koje se koriste za
zaštitu platforme na kojoj se agent izvršava.

Mnogi agentski sistemi se oslanjaju na opšti skup pretpostavki koje se tiČu
bezbednosti. Prva takva pretpostavka je da agent veruje poÄŒetnoj
platformi na kojoj je prvi put instanciran i poČeo svoje izvršavanje. Druga
pretpostavka je da su poÄŒetna platforma i druge jednako poverljive platforme
implementirane bezbedno, bez grešaka i trapdoor-ova koje se mogu eksploatisati,
i koje se ne ponašaju zlonamerno. TreČa pretpostavka se odnosi na upotrebu
infrastrukture sa javnim kljuČevima (engl. PKI ⌌ Public Key Infrastructure)
prvenstveno u formi digitalnih sertifikata, lista opozvanih sertifikata i
tehnologije digitalnog potpisa za potpisivanje koda mobilnog softverskog agenta.

Zaštita agentske platforme

Jedna od glavnih briga oko implementacije agentskih sistema je obezbediti da
agenti nisu u moguÄŒnosti da se sukobljavaju meÄŒusobno kao i da se sukobljavaju
sa agentskom platformom na kojoj se izvršavaju. Opšti pristup kojim se to
postiže je uspostavljanje zasebnih izolovanih domena za svakog agenta i
platformu ali i stroga    kontrola   pristupa   i   korenspodencije   izmeÄŒu
domena. U tradicionalnom smislu ovaj koncept se naziva nadgledanje izvora (engl.
reference monitor). Jedna implementacija koncepta nadgledanja izvora ima
sledeÄŒe karakteristike:

   Uvek je aktivan i ne može se zaobiČi, posreduje kod svakog pristupa
resursima



508
   Nije podložan kvarovima

   Dovoljno je mali da se analizira i testira

Implementacija koncepta nadgledanje izvora datira negde oko ranih devedesetih
godina prošlog veka i upotrebljava Čitav niz konvencionalnih bezbedonosnihi
tehnika, koje su primenljive na agentsko okruženje. Te konvencionalne tehnike
ukljuÄŒuju sledeÄŒe:

 Mehanizme meČusobnog izolovanja procesa kao i izolovanja korisniČkih od
upravljaÄŒkih procesa.

 Mehanizme   za   kontrolu   pristupa   raČunarskim resursima.

   Kriptografske metode kojima se postiže zaštita tajnosti informacija koje
se razmenjuju.

 Kriptografske metode kojima se identifikuju i autentikuju korisnici, agenti
i platforme.

   Mehanizme koji omoguČavaju ponovno pregledanje dogaČaja vezanih za
bezbednosne probleme koji se dešavaju ili su se desili na agentskoj platformi.

Tehnike razvijene u novije vreme odnose se pre svega na mobilni kod i bezbednost
mobilnih agenata a razvijene su po uzoru na tradicionalne tehnike. Za zaštitu
agentskih platformi razvijene su sledeÄŒe tehnike:

   Softverski bazirana izolacija grešaka ⌌ kako samo ime kaže, metoda
koja softverski izdvaja module razliČitih aplikacija i smešta ih u odvojene
domene koji su otporni na greške. Ova tehnika omoguČava nekom nepoverljivom
softveru napisanom u nepouzdanom programskom jeziku, kao što je ⌌C⌌, da se
izvršava oukviru jedinstvenog virtuelnog adresnog prostora aplikacije. Pristup
sistemskim resursima se takoČe može kontrolisati putem jedinstvenog
identifikatora koji se pridružije svakom domenu. Ova tehnika, poznata pod
opštim imenom sandboxing, je veoma efikasna u poreČenju sa hardverskim
tabelama strana koje održavaju odvojene adresne prostore za module, kada ti
moduli Često komuniciraju meČusobno u okviru domena otpornih na greške.
TakoÄŒe je idealan za situacije gde veÄŒina koda spada u jedan domen od
poverenja, jer moduli u okviru domena od poverenja nemaju dodatnog optereÄŒenja
pri izvršavanju.
 Sigurna interpretacija programskog koda ⌌ mobilni softverski agenti se
ÄŒesto razvijaju upotrebom nekog skript ili programskog jezika koje se
interpretira. Glavna motivacija i ideja vodilja je želja da se postigne
nezavisnost mobilnog agenta od platforme, operativnog sitstema na kome se
izvršava. Osim toga, viši konceptualni nivo apstrakcije koji obezbeČuje
okruženje interpretera može olakšati razvoj koda mobilnog agenta[7]. U osnovi
metode zaštite primenom sigurne interpretatcije programskog koda leži ideja
da komande koje se smatraju potencijalno Å¡tetnim mogu ili uÄŒiniti sigurnim ili
da se potpuno onemoguČi njihovo izvršavanje. Na primer, dobar primer za
onemoguČavanje može biti komanda koja izvršava   proizvoljan   znakvni   niz
podataka   kao segment programa.
   Digitalno potpisani kod ⌌ fundamentalna tehnika zaštite agentskih
sistema koja podrazumeva digitalno potpisivanje koda mobilnog agenta. Digitalnim
potpisivanjem postiže se autentiČnost objekta koji je potpisan i autentiČnost
entiteta koji je izvršio digitalno potpisivanje, kao i integritet digitalno
potpisanog koda. TipiÄŒno, digitalno potpisivanje koda mobilnog agenta obavlja
sam kreator mobilnog agenta ili entitet koji je ovlašČen da izvrši reviziju i
pregled koda mobilnog agenta.

 Procene stanja mobilnih agenata ⌌ tehnika zaštite mobilnih agenta koja
ima za cilj da utvrdi da mobilni agent nije, na neki naÄŒin, doveden u
zlonamerno stanje izmenom podataka njegovog stanja. Uspešnost ove tehnike
zasniva se na procenama kojima se Å¡tetne promene stanja mobilnog agenta
mogu predvideti, tako    da   se   protivmere   u   obliku   funkcija   koje
procenjuju stanje agenta mogu izvršiti pre pokretanja samog agenta. Funkcije
procene stanja se koriste za odreÄŒivanje koja prava pristupa treba dodeliti
agentu.

   Istorija putanja ⌌ ima za cilj da se održava zapis[8, 9] koji
predstavlja spisak svih platformi koje je agent posetio u svom životnom veku.
Neophodan uslov ove metode zaštite mobilnih agenata je da se lako može
verifikovati autentiČnost i integritet tako kreiranog zapisa ⌌    istorije
putanje softverskog agenta. Na osnovu tog zapisa, nova agentska platforma na
koju agent stigne može odluČiti da li i na koji naČin Če izvršavati agenta
i koja ograniÄŒenja po pitanju resursa ÄŒe mu postaviti.

 Dokaz o pouzdanosti koda mobilnog agenta ⌌ podrazumeva da je tvorac
softverskog agenta obavezan da formalno dokaže da programski kod poseduje
bezbedonosna svojstva koja su unapred dogovorena sa potencijalnim korisnicima
softverskih agenata[10]. U najveČem broju sluČajeva tražena bezbedonosna
svojstva se poklapaju sa bezbedonosnim politikama agentskih platformi na
kojima Če se on izvršavati. Ovakav mehanizam zaštite ima pre svega
preventivnu ulogu.

4.   ZAKLJUÄŒAK

Bezbednosni probelmi vezani za mobilne agente, barem u teoriji, u velikoj meri
se rešavaju kroz postojeČe sigurnosne tehnologije i protokole. Pitanja vezana
za autentikaciju i autorizaciju u multiagentskim sistemima nije lako rešiti.
OÄŒigledno da infrastruktura sistema sa javnim kljuÄŒevima predstavlja jedan
važan deo rešenja problema bezbednosti mobilnih agenata, sami agenti moraju
biti u moguÄŒnosti da rezonuju i donose odluke na osnovu razliÄŒitih
bezbednosnih parametara. Izvršavanje mobilnog softverskog agenta na platformi u
koju se ne može imati poverenja je još jedan faktor koji bezbednost agentskih
sistema Čini složenijim a posebno sa aspekta pouzdanosti izvršavanja mobilnog
softverskog agenta i oÄŒivanja tajnosti podataka mobilnog agenta.

Ne postoji jedinstveno rešenje bezbednosnih problema koje je razvoj mobilnih
softveskih agenata doneo sa sobom osim uvoÄŒenja pouzdanog hardvera, koji je
veÄŒini aplikacija


509
nedostupan zbog svoje cene. Rešenje problema se može postiČi razvojem malih
mehanizama kojima bi se rešavali pojedinaČni, partikularni problemi. Tako su
razvijani mehanizmi koji se odnose na agente koji se izvršavaju na veČem broju
agentskih platformi, mehanizmi i protokoli koji omoguČavaju agentu dokaže svoj
identitet i da utvrdi identitet platforme kao i mehanizmi kojima se zapisuju i
pamte akcije agenta na agentskoj platfomi kako bi se mogle koristiti u
sluÄŒaju odreÄŒenih sporova. Neki problemi nemaju univerzalno i
opšteprihvaČeno rešenje tako da je oblast bezbednosti mobilnih softverskih
agenata veoma aktivna   i   bogata   novim    istraživaČkim    poduhvatima.
Sadašnji nivo istraživaČkih aktivnosti i veliki broj projekata
koji   se   razvija   predstavlja   znaÄŒajan    pokazatelj   da
Programs," in J. Vitek and C. Tschudin (Eds.), Mobile Object Systems: Towards
the Programmable Internet, Springer-Verlag, Lecture Notes in Computer Science
No.
1222, pp. 111-130, April 1997.

[5] "Agent Management," FIPA 1997 Specification, part
1, version 2.0, Foundation for Intelligent Physical Agents, October 1998.

[6] "Mobile Agent System Interoperability Facilities Specification," Object
Management Group (OMG) Technical Committee (TC) Document orbos/97-10- 05,
November 1997

[7]   John   K.   Ousterhout, ⌌Scripting: Higher-Level
st
tehnologija mobilnih softverskih agenata ima blistavu buduÄŒnost.
Programming for the 21
March 1998, pp. 23-30.
Century,⌌ IEEE Computer,

LITERATURA

[1] "Mobile Agents White Paper," General Magic, 1998. dostupno na:
http://www.genmagic.com/technology/techwhitepaper.ht ml

[2] A.    Fuggetta,   G.P.   Picco, and G.    Vigna, "Understanding Code
Mobility," IEEE Transactions on Software Engineering, 24(5), May 1998.

[3] Danny Lange and Mitsuru Oshima, Programming and Deploying Java Mobile Agents
with Aglets, Addison- Wesley, 1998.

[4] Anurag Acharya, M. Ranganathan, Joel Salz, "Sumatra: A Language for
Resource-aware Mobile
[8] Joann J. Ordille, "When Agents Roam, Who Can You Trust?" Proceedings of the
First Conference on Emerging Technologies and Applications in Communications,
Portland, Oregon, May 1996

[9] Nayeem Islam, et al., ⌌A Flexible Security System for Using Internet
Content, IEEE Software, September 1997, pp. 52-59.

[10] G. Necula and P. Lee, "Safe Kernel Extensions Without   Run-Time Checking,"
Proceedings of the 2nd Symposium on Operating System Design and Implementation
(OSDI '96), Seattle, Washington, October
1996, pp. 229-243.
510

More Related Content

Similar to 418

Zaštita i sigurnost u elektronskom poslovanju
Zaštita i sigurnost u elektronskom poslovanjuZaštita i sigurnost u elektronskom poslovanju
Zaštita i sigurnost u elektronskom poslovanjuMaja Todorovic
 
ЗАШТИТА НА ИНТЕРНЕТУ
ЗАШТИТА НА ИНТЕРНЕТУЗАШТИТА НА ИНТЕРНЕТУ
ЗАШТИТА НА ИНТЕРНЕТУNatasaStojkovic11
 
Informatika.netkp (antivirusi i virusi)
Informatika.netkp (antivirusi i virusi)Informatika.netkp (antivirusi i virusi)
Informatika.netkp (antivirusi i virusi)Andrej177
 
12 predavanja informaticke tehnologije.pdf
12 predavanja   informaticke tehnologije.pdf12 predavanja   informaticke tehnologije.pdf
12 predavanja informaticke tehnologije.pdfKosara Zivgovic
 
Paukovic i-racunalni-virusi
Paukovic i-racunalni-virusiPaukovic i-racunalni-virusi
Paukovic i-racunalni-virusizbornica
 
Admnistriranje mreza nova_predavanja_1
Admnistriranje mreza nova_predavanja_1Admnistriranje mreza nova_predavanja_1
Admnistriranje mreza nova_predavanja_1naroz
 
Paradigma zastite distribuiranog racunarstva
Paradigma zastite distribuiranog racunarstvaParadigma zastite distribuiranog racunarstva
Paradigma zastite distribuiranog racunarstvastevansek
 
Software development guidelines - SOLID principles
Software development guidelines - SOLID principlesSoftware development guidelines - SOLID principles
Software development guidelines - SOLID principlesmilicm
 
Anatomija napada – duhovi u mašini
Anatomija napada – duhovi u mašiniAnatomija napada – duhovi u mašini
Anatomija napada – duhovi u mašiniITDogadjaji.com
 
Legalni i piratski softver
Legalni i piratski softverLegalni i piratski softver
Legalni i piratski softverarmbor
 
18-sredstva-i-metode-zastite-racunara-i-informacija (1).pptx
18-sredstva-i-metode-zastite-racunara-i-informacija (1).pptx18-sredstva-i-metode-zastite-racunara-i-informacija (1).pptx
18-sredstva-i-metode-zastite-racunara-i-informacija (1).pptxssusera6f99e
 

Similar to 418 (14)

Zaštita i sigurnost u elektronskom poslovanju
Zaštita i sigurnost u elektronskom poslovanjuZaštita i sigurnost u elektronskom poslovanju
Zaštita i sigurnost u elektronskom poslovanju
 
ЗАШТИТА НА ИНТЕРНЕТУ
ЗАШТИТА НА ИНТЕРНЕТУЗАШТИТА НА ИНТЕРНЕТУ
ЗАШТИТА НА ИНТЕРНЕТУ
 
Smart e government 2013
Smart e government 2013Smart e government 2013
Smart e government 2013
 
Maliciozni softver
Maliciozni softverMaliciozni softver
Maliciozni softver
 
Informatika.netkp (antivirusi i virusi)
Informatika.netkp (antivirusi i virusi)Informatika.netkp (antivirusi i virusi)
Informatika.netkp (antivirusi i virusi)
 
12 predavanja informaticke tehnologije.pdf
12 predavanja   informaticke tehnologije.pdf12 predavanja   informaticke tehnologije.pdf
12 predavanja informaticke tehnologije.pdf
 
Paukovic i-racunalni-virusi
Paukovic i-racunalni-virusiPaukovic i-racunalni-virusi
Paukovic i-racunalni-virusi
 
Admnistriranje mreza nova_predavanja_1
Admnistriranje mreza nova_predavanja_1Admnistriranje mreza nova_predavanja_1
Admnistriranje mreza nova_predavanja_1
 
Paradigma zastite distribuiranog racunarstva
Paradigma zastite distribuiranog racunarstvaParadigma zastite distribuiranog racunarstva
Paradigma zastite distribuiranog racunarstva
 
Software development guidelines - SOLID principles
Software development guidelines - SOLID principlesSoftware development guidelines - SOLID principles
Software development guidelines - SOLID principles
 
Anatomija napada – duhovi u mašini
Anatomija napada – duhovi u mašiniAnatomija napada – duhovi u mašini
Anatomija napada – duhovi u mašini
 
Virg Soft Programski Paket
Virg Soft Programski PaketVirg Soft Programski Paket
Virg Soft Programski Paket
 
Legalni i piratski softver
Legalni i piratski softverLegalni i piratski softver
Legalni i piratski softver
 
18-sredstva-i-metode-zastite-racunara-i-informacija (1).pptx
18-sredstva-i-metode-zastite-racunara-i-informacija (1).pptx18-sredstva-i-metode-zastite-racunara-i-informacija (1).pptx
18-sredstva-i-metode-zastite-racunara-i-informacija (1).pptx
 

418

  • 1. UTICAJ MOBILNIH SOFTVERSKIH AGENATA NA BEZBEDNOST RAÄŒUNARSKIH SISTEMA INFLUENCE OF MOBILE SOFTWARE AGENTS ON COMPUTER SYSTEMS SECURITY BoriÅ¡a JovanoviÄŒ Centar za primenjenu matematiku i elektroniku Sadržaj: Ubrzani razvoj tehnologije, kako u pogledu hardvera tako u pogledu softvera u mnogome otežavaju celokupni sistem bezbednog upravljanja informacijama. Svakog dana podaci i informacije su sve ranjiviji i neophodno je postojanje sveobuhvatnog, odbrambeno orijentisanog mehanizma zaÅ¡tite i oÄŒuvanja bezbednosti raÄŒunarskih sistema. Abstract: Rapid development of technology, both in terms of hardware and software, makes the whole system of secure information management heavy. Every day, data and information are more and more vulnerable and, the existence of a comprehensive, defense-oriented mechanism for protecting and preserving the security of computer systems is necessarly. 1. UVOD Razvoj raÄŒunarskih sistema kroz istoriju tekao je od centralizovanih monolitnih raÄŒunarskih ureÄŒaja koji podržavaju statiÄŒke aplikacije, do savremenih klijent- server okruženja koja pružaju vema složene forme distribuiranog izvrÅ¡avanja. U toku ovakvog razvoja postojale su razliÄŒite forme mobilnosti (pokretnosti) koda koji se izvrÅ¡ava: najraniji su bili terminali za unos programa koji ÄŒe se izvrÅ¡avati na centralnom raÄŒunaru dok su u poslednje vreme zastupljeni JAVA apleti koje se preuzimaju sa Web servera i izvrÅ¡avaju u Web pretraživaÄŒima. Nova faza u evoluciji ide korak dalje i omoguÄŒava potpunu mobilnost kooperantskih aplikacija izmeÄŒu platformi koje ih podržavaju kako bi formirali veliki, usko povezani distribuirani sistem. Glavni predstavnik poslednje faze evolutivnog razvoja raÄŒunarskog softvera su mobilni softverski agenti ⌌ programi koji su ciljano usmereni i namenjeni da prekinu svoje izvrÅ¡avanje na jednoj platformi, pokrenu se i preÄŒu na neku drugu platformu i na njoj nastave izvrÅ¡avanje. Preciznije, softverski agent je program koji može upotrebiti ovlaÅ¡ÄŒenja pojedinaca ili organizacije da autonomno radi na izvrÅ¡enju postavljenog cilja i da u svom radu sreÄŒe i da uzajamno deluje sa ostalim agentima. MoguÄŒe interakcije izmeÄŒu agenata su razliÄŒita ugovaranja i dogovaranje servisa kroz aukciono nadmetanje i razmenu podataka. Agenti mogu biti ili stacionarni, da se stalno nalaze na jednoj platformi ili mogu biti i mobilni ÄŒija je glavna osobina da mogu da se pokrenu i prebace sa jedne platforme na drugu u razliÄŒitim vremenski intervalima[1]. ÄŒitav spektar razliÄŒitih nijansi mobilnosti postoji, u zavisnosti od razliÄŒitih varijacija premeÅ¡tanja koda i informacija vezanih za stanje agenta ukljuÄŒujuÄŒi vrednosti instanciranih promenljivih, vrednost instrukcijskog registra kao i stanje izvrÅ¡nog steka itd [2]. Na primer jedan jednostavan softverski agent napisan kao JAVA aplet ima osobinu prenosivosti koda u postupku preuzimanja koda apleta sa Web servera i njegovo izvrÅ¡avanje na Web pretraživaÄŒu. MeÄŒutim, kod JAVA apleta nema prenoÅ¡enja informacija o trenutnom stanju apleta. Sa druge strane, tehnologija Agleta (Aglets)[3], koju je razvio IBM u Japanu, oslanja se takoÄŒe na Java programski jezik i dozvoljava da se u toku operacija prelazaka sa jedne platforme na drugu prenose vrednosti instanciranih promenljivih ali ne i instrukcijski registar i izvrÅ¡ni stek. JaÄŒa forma mobilnosti, Sumatra[4], razvijena je na Univerzitetu Merilend i dozvoljava Java nitima da se prenose sa platforme na platformu. U ovom radu razmatrani su mobilni softverski agenti koji imaju moguÄŒnost da prenose i kod i informacije vezane za stanje agenta. 2. BEZBEDONOSNE PRETNJE
  • 2. Pretnje po bezbednost raÄŒunarskih sistema koje izazivaju mobilni softverski agenti mogu se podeliti u tri veÄŒ poznate kategorije: razotkrivanje (oticanje, kompromitacija) informacija, onemoguÄŒavanje servisa, i oÅ¡teÄŒenje (uniÅ¡tavanje) informacija. Ovaj rad ima za cilj da, uz koriÅ¡ÄŒenje komponenata jednog agentskog sistema, kategorizuje bezbedonosne pretnje kako bi se identifikovali moguÄŒi izvori i ciljevi jednog napada. Treba napomenuti da mnoge od pretnji koje ÄŒe ovde biti pomenute imaju svoje parnjake u konvencionalnim klijent-server sistemima i postojale su u razliÄŒitim oblicima u proÅ¡losti. Mobilni softverski agenti jednostavno pružaju Å¡iroke moguÄŒnosti za zloupotrebe i pogreÅ¡no koriÅ¡ÄŒenje tako da se skala potencijalnih pretnji znaÄŒajno proÅ¡iruje. Postoji veliki broj modela za opisivanje agentskih sistema[2, 5, 6], meÄŒutim za diskusije o bezbedonosnim problemima dovoljno je koristiti jedan uproÅ¡ÄŒeni model koji se sastoji od svega dve glavne komponente: softverskog agenta i platforme na kojoj se on izvrÅ¡ava. Ovako posmatrano, jedan agent se sastoji od programskog koda i informacija koje opisuju stanje agenta, potrebne da se izvrÅ¡i odreÄŒeno izraÄŒunavanje. Osobina mobilnosti omoguÄŒava agentu da se seli, ili da skaÄŒe, sa platforme na platformu. Platforma na kojoj softverski mobilni agent nastaje i sa koje polazi na svoj ⌌put⌌ oznaÄŒava se kao poÄŒetna platforma, i normalno je da predstavlja okruženje u koje softverski agent ima najviÅ¡e poverenja. Platforma na kojoj se izvrÅ¡ava jedan softverski agent može se sastojati od jednog ili viÅ¡e raÄŒunara i može se sastojati od 506 jednog ili viÅ¡e izvrÅ¡ivih okruženja, ili mesta za sastanke, u kojima agenti mogu da meÄŒusobno interaguju i komuniciraju. Na slici 1. prikazan je ovakav model agentskog sistema. Slika 1. UproÅ¡ÄŒeni model agentskog sistema Sa slike se mogu identifikovati ÄŒetiri kategorije pretnji: pretnje koje dolaze od mobilnog softverskog agenta koji napada platformu (raÄŒunarski sistem) na kojoj se izvrÅ¡ava, softverska platforma napada mobilnog agenta, mobilni agent napada drugog mobinog agenta na platfromi na kojoj se istovremeno izvrÅ¡avaju i pretnje koje dolaze od ostalih entiteta a usmerene su na celokupni agentski sistem. Poslednja kategorija podrazumeva situaciju kada jedan agent ugrožva bezbednost drugog softverskog mobilnog agenta na drugoj platformi i kada jedna platforma ugružava bezbednost druge agentske platforme. Ova vrsta napada se fokusira na komunikacione karakteristike raÄŒunarskih sistema koji predstavljaju platforme na kojima se agenti izvrÅ¡avaju i eksploatiÅ¡e njihove ranjivosti i slabosti. TakoÄŒe, ova kategorija napada eksploatiÅ¡e konvencionale vrste napada koje su usmerene na operativni sistem na kome se agentska platforma izvrÅ¡ava. Uticaj softverskog agenta na agentsku platformu Ova kategorija pretnji podrazumeva skup pretnji u kojima agent eksploatiÅ¡e bezbedonosne slabosti agentske platforme ili pokreÄŒe napade na agentsku platformu. Ovaj skup pretnji obuhvata:  Lažno predstavljanje ⌌ podrazumeva situaciju kada se jedan neautorizovani agent predstavlja kao neki drugi agent. Agent koji se lažno predstavio može nastupati sa aspekta autorizovanog agenta i može dobiti pristup servisima i resursima za koje nije ovlaÅ¡ÄŒen. TakoÄŒe, lažno predstavljeni agen može takvu situaciju da iskorsiti i izvrÅ¡i neku operaciju (razliÄŒite bezbedonosno osetljive operacije, promena ili brisanje podataka, malverzacije sa bankovnim raÄŒunima itd.) i na taj naÄŒin u log fajlovima sakrije svoj pravi identitet.  OnemoguÄŒavanje servisa ⌌ mobilni agent može pokrenuti napad
  • 3. onemoguÄŒavanja servisa na taj naÄŒin Å¡to on prekomerno koristi veliku koliÄŒinu resursa platforme na kojoj se izvrÅ¡ava. Ovakav napad onemoguÄŒavanjem servisa može biti pokrenut namerno, pokretanjem skripta koji eksploatiÅ¡e ranjivost sistema ili nenamerno Å¡to je posledica greÅ¡aka i programiranju. Paradigma mobilnog izraÄŒunavanja i izvrÅ¡avanja, meÄŒutim, zahteva od agentske platforme da prihvati i da izvrÅ¡i mobilnog softverskog agenta ÄŒiji je kod razvijen izvan organizacije i nije bio predmet nijedne prethodne revizije. Neki zlonamerni softverski agent može da nosi zlonamerni kod u sebi koji je dizajniran da prekine ili onemoguÄŒi servise koje agentska platforma nudi, da degradira performanse agentske platforme ili da ekstraktuje-izdvoji informacije za koje sam agent nije ovlaÅ¡ÄŒen da im pristupa niti da ih koristi i poÅ¡alje ih potencijalnom napadaÄŒu. U zavisnosti od nivoa pristupa, mobilni softverski agent može biti u moguÄŒnosti da kompletno iskljuÄŒi i prekine izvrÅ¡avanje agentske platforme.  Neautorizovani pristup ⌌ Mehanizmi kontrole pristupa se koriste kako bi odvratili neautorizovane korisnike ili procese od pristupa servisima ili resursima za koje oni nemaju bezbedonosnim politkama definisana prava pristupa. Svaki agent koji pristupa platformi mora biti subjekat bezbedonosne politike same platforme. Da bi primenila ispravne mehanizme kontrole pristupa, agentska platforma ili sam agent moraju da autentikuju identitet mobilnog softverskog agenta pre nego Å¡to softverski agent bude instanciran na agentskoj platformi. Agent koji pristupa agentskoj platformi, njenim resursima i servisima, bez valjane autorizacije može oÅ¡tetiti druge agente ali i agentsku platformu. Agentska platforma na kojoj razliÄŒiti agenti predstavljaju korisnike ili organizacije mora osigurati da agenti nemaju dozvole za ÄŒitanje, izmenu ili brisanje trajno saÄŒuvanih podataka za koje nisu autorizovani, ukljuÄŒujuÄŒi i podatke koji se nalaze u privremenim memorijama. Uticaj agentske platforme na softverskog agenta Ova kategorija pretnji podrazumeva skup pretnji u kojima agentska platforma kompromituje bezbednost mobilnog softverskog agenta. Ovaj skup pretnji obuhvata:  Lažno predstavljanje ⌌ situacija kada se jedna agentska platforma lažno predstavlja sa ciljem da obmane mobilnog agenta da je ona prava destinacija i odgovarajuÄŒi bezbednosni domen. Agentska platforma koja se lažno predstavila kao treÄŒa strana od poverenja može namamiti bezazlenog agenta na platformu i iz njega izvuÄŒi osetljive informacije. Platforma koja se lažno predstavila može oÅ¡tetiti i agenta koji je posetio i platformu ÄŒiji je identitet preuzela.  OnemoguÄŒavanje servisa ⌌ mobilni agent kada stigne na agentsku platformu oÄŒekuje od paltforme da izvrÅ¡ava njegove zahteve verno, obezbeÄŒujuÄŒi ravnopravnu alokaciju resursa i pridržavajuÄŒi se dogovorenih kvaliteta servisa. Zlonamerna agentska platforma, meÄŒutim, može ignorisati zahteve za servisima koje dobija od agenta, da uvodi neprihvatljiva kaÅ¡njenja za vremenski kritiÄŒne zadatke, da ne izvrÅ¡ava kod mobilnog agenta ili ÄŒak da prekine izvrÅ¡avanje softverskog agenta bez ikakvog 507 obaveÅ¡tenja o uzroku. Agenti na drugim platformama ÄŒekajuÄŒi rezultat blokiranog agenta sa zlonamerne platforme moraju biti pažljivi kako bi izbegli potpuni prekid sopstvenog izvrÅ¡avanja. Softverski agent se takoÄŒe može naÄŒi u stanju blokade ukoliko zlonamerna platforma, ili loÅ¡ programski kod, kreiraju situaciju u kojoj se kritiÄŒna faza u izvrÅ¡avanju agentskih zadataka nemože zavrÅ¡iti zato Å¡to agent stalno iznova dobija nove zadatke. Ovako blokirani agent ÄŒeka da se zavrÅ¡i akcija ÄŒije se zavrÅ¡avanje odlaže novim zadacima.  PrisluÅ¡kivanje ⌌ u klasiÄŒnom znaÄŒenju prisluÅ¡kivanje podrazumeva da potencijalni napadaÄŒ snima i nadgleda bezbedonosno osetljive
  • 4. komunikacije. Ova pretnja, u agentskim sistemima, dobija novu dimenziju i pogorÅ¡ava se buduÄŒi da agentska platforma može ne samo da nadgleda komunikaciju veÄŒ može da nadgleda izvrÅ¡avanje svake instrukcije agenta, može da nadgleda sve neÅ¡ifrovane ili javne podatke koje je agent doneo sa sobom kao i sve podatke koji su generisani u toku izrÅ¡avanja na platformi. PoÅ¡to platforma ima pristup agentskom kodu, stanju i podacima, agent koji je posetio platformu mora da bude oprezan i svestan ÄŒinjenice da može otkriti ili izložiti neki znaÄŒajen podatke, poslovnu tajnu, strategiju pregovaranja ili druge osetljive informacije. ÄŒak iako softverski agent možda ne iznosi direktno osetljive informacije, agentska platforma može da izvodi zakljuÄŒke na osnovu tipa servisa koje agent zahteva i na osnovu identiteta agenta sa kojim komunicira.  Izmena koda i ponaÅ¡anja mobilnog agenta ⌌ mobilna paradigma izvrÅ¡avanja podrazumeva da kada agent stigne na agentsku platformu on sa sobom donese svoj kod, stanje i podatke. PoÅ¡to softverski agent, u svom životnom veku, može da poseti nekoliko platformi u okviru razliÄŒith bezbedonosnih domena, neophodno je postojanje mehanizama koji ÄŒe obezbediti oÄŒuvanje integriteta koda, stanja i podataka mobilnog softverskog agenta. Modifikacija koda mobilnog agenta, i samim tim kasnije neispravno ponaÅ¡anje agenta na nekoj drugoj platformi, može biti detektovano digitalnim potpisivanjem programskog koda mobilnog agenta od strane njegovog tvorca. Problem detektovanja zlonamernih promena u stanju agenta u toku njegovog izvrÅ¡avanja ili promena u podacima koje je agent izraÄŒunao i proizveo na zlonamernoj platformi joÅ¡ uvek nema opÅ¡te reÅ¡enje. Agentska platforma može da izvrÅ¡ava modifikovanu virtuelnu maÅ¡inu, bez znanja agenta, i da ta modifikovana virtuelna maÅ¡ina može uzrokovati i proizvoditi pogreÅ¡ne rezultate. Mobilni agenti koji poseÄŒuju nekoliko platformi na svom životnom putu se izlažu novim rizicima svaki put kada su u fazi prenoÅ¡enja (pokreta sa jedne na drugu platformu) kao i svaki put kada se oni instanciraju na novoj platformi. Ukoliko se entitet koji je odgovoran za izmenu koda, stanja ili podataka mobilnog agenta ne detektuje odmah, na samom poÄŒetku izmena, jako ga je teÅ¡ko (skoro i nemoguÄŒe) locirati nakon Å¡to agent poseti druge platforme i izmena stanja agenta i podataka bude prikrivena novim promenama. Mada je tehnologija kontrolnih taÄŒaka i ponovnog izvrÅ¡avanja lako ostvarljiva u tradicionalnim okruženjima, okruženje agentskih sistema ovu tehniku ÄŒini jako teÅ¡kom zato Å¡to finalno stanje agenta i podaci mogu biti rezultat serije nedeterministiÄŒkih dogaÄŒaja koji zavise od ponaÅ¡anja autonomnog agenta ÄŒije prethodno ponaÅ¡anje i stanje nemože biti ponovo kreirano. Agentska platforma takoÄŒe može greÅ¡iti u komunikaciji sa agentom. GreÅ¡ke u komunikaicji sa agentom, na primer, mogu ukljuÄŒiti promiÅ¡ljenu promenu polja podataka u finansijskim transakcijama ili ÄŒak promene polja tipa poruke iz ⌌kupi⌌ u ⌌prodaj⌌. Ovakav tip promiÅ¡ljene i ciljane promene podataka je mnogo teže realizovati od prostog oÅ¡teÄŒenja poruke, ali se ipak izvodi jer potencijalni napadaÄŒ ima jasan podsticaj i nagradu. 3. MERE ZAÅ TITE U AGENTSKIM SISTEMIMA Mnoge konvencionalne bezbedonosne tehnike koje se koriste u savremenim distribuiranim aplikacijama (tj. klijent-server aplikacijama) takoÄŒe imaju svoju primenu u okviru savremene paradigme mobilnog izvrÅ¡avanja i mobilnih agenata. Pored toga, postoje mnoga proÅ¡irenja konvencionalnih tehnika i tehnikE koje su izmiÅ¡ljene specifiÄŒno za kontrolisanje mobilnog koda i izvrÅ¡ivog sadržaja koje su primenljive na bezbednost agentskih sistema. U daljem tekstu se na konzistentan naÄŒin prikazuje pregled protivmera koje se koriste za zaÅ¡titu platforme na kojoj se agent izvrÅ¡ava. Mnogi agentski sistemi se oslanjaju na opÅ¡ti skup pretpostavki koje se tiÄŒu bezbednosti. Prva takva pretpostavka je da agent veruje poÄŒetnoj platformi na kojoj je prvi put instanciran i poÄŒeo svoje izvrÅ¡avanje. Druga pretpostavka je da su poÄŒetna platforma i druge jednako poverljive platforme
  • 5. implementirane bezbedno, bez greÅ¡aka i trapdoor-ova koje se mogu eksploatisati, i koje se ne ponaÅ¡aju zlonamerno. TreÄŒa pretpostavka se odnosi na upotrebu infrastrukture sa javnim kljuÄŒevima (engl. PKI ⌌ Public Key Infrastructure) prvenstveno u formi digitalnih sertifikata, lista opozvanih sertifikata i tehnologije digitalnog potpisa za potpisivanje koda mobilnog softverskog agenta. ZaÅ¡tita agentske platforme Jedna od glavnih briga oko implementacije agentskih sistema je obezbediti da agenti nisu u moguÄŒnosti da se sukobljavaju meÄŒusobno kao i da se sukobljavaju sa agentskom platformom na kojoj se izvrÅ¡avaju. OpÅ¡ti pristup kojim se to postiže je uspostavljanje zasebnih izolovanih domena za svakog agenta i platformu ali i stroga kontrola pristupa i korenspodencije izmeÄŒu domena. U tradicionalnom smislu ovaj koncept se naziva nadgledanje izvora (engl. reference monitor). Jedna implementacija koncepta nadgledanja izvora ima sledeÄŒe karakteristike:  Uvek je aktivan i ne može se zaobiÄŒi, posreduje kod svakog pristupa resursima 508  Nije podložan kvarovima  Dovoljno je mali da se analizira i testira Implementacija koncepta nadgledanje izvora datira negde oko ranih devedesetih godina proÅ¡log veka i upotrebljava ÄŒitav niz konvencionalnih bezbedonosnihi tehnika, koje su primenljive na agentsko okruženje. Te konvencionalne tehnike ukljuÄŒuju sledeÄŒe:  Mehanizme meÄŒusobnog izolovanja procesa kao i izolovanja korisniÄŒkih od upravljaÄŒkih procesa.  Mehanizme za kontrolu pristupa raÄŒunarskim resursima.  Kriptografske metode kojima se postiže zaÅ¡tita tajnosti informacija koje se razmenjuju.  Kriptografske metode kojima se identifikuju i autentikuju korisnici, agenti i platforme.  Mehanizme koji omoguÄŒavaju ponovno pregledanje dogaÄŒaja vezanih za bezbednosne probleme koji se deÅ¡avaju ili su se desili na agentskoj platformi. Tehnike razvijene u novije vreme odnose se pre svega na mobilni kod i bezbednost mobilnih agenata a razvijene su po uzoru na tradicionalne tehnike. Za zaÅ¡titu agentskih platformi razvijene su sledeÄŒe tehnike:  Softverski bazirana izolacija greÅ¡aka ⌌ kako samo ime kaže, metoda koja softverski izdvaja module razliÄŒitih aplikacija i smeÅ¡ta ih u odvojene domene koji su otporni na greÅ¡ke. Ova tehnika omoguÄŒava nekom nepoverljivom softveru napisanom u nepouzdanom programskom jeziku, kao Å¡to je ⌌C⌌, da se izvrÅ¡ava oukviru jedinstvenog virtuelnog adresnog prostora aplikacije. Pristup sistemskim resursima se takoÄŒe može kontrolisati putem jedinstvenog identifikatora koji se pridružije svakom domenu. Ova tehnika, poznata pod opÅ¡tim imenom sandboxing, je veoma efikasna u poreÄŒenju sa hardverskim tabelama strana koje održavaju odvojene adresne prostore za module, kada ti moduli ÄŒesto komuniciraju meÄŒusobno u okviru domena otpornih na greÅ¡ke. TakoÄŒe je idealan za situacije gde veÄŒina koda spada u jedan domen od poverenja, jer moduli u okviru domena od poverenja nemaju dodatnog optereÄŒenja pri izvrÅ¡avanju.
  • 6.  Sigurna interpretacija programskog koda ⌌ mobilni softverski agenti se ÄŒesto razvijaju upotrebom nekog skript ili programskog jezika koje se interpretira. Glavna motivacija i ideja vodilja je želja da se postigne nezavisnost mobilnog agenta od platforme, operativnog sitstema na kome se izvrÅ¡ava. Osim toga, viÅ¡i konceptualni nivo apstrakcije koji obezbeÄŒuje okruženje interpretera može olakÅ¡ati razvoj koda mobilnog agenta[7]. U osnovi metode zaÅ¡tite primenom sigurne interpretatcije programskog koda leži ideja da komande koje se smatraju potencijalno Å¡tetnim mogu ili uÄŒiniti sigurnim ili da se potpuno onemoguÄŒi njihovo izvrÅ¡avanje. Na primer, dobar primer za onemoguÄŒavanje može biti komanda koja izvrÅ¡ava proizvoljan znakvni niz podataka kao segment programa.  Digitalno potpisani kod ⌌ fundamentalna tehnika zaÅ¡tite agentskih sistema koja podrazumeva digitalno potpisivanje koda mobilnog agenta. Digitalnim potpisivanjem postiže se autentiÄŒnost objekta koji je potpisan i autentiÄŒnost entiteta koji je izvrÅ¡io digitalno potpisivanje, kao i integritet digitalno potpisanog koda. TipiÄŒno, digitalno potpisivanje koda mobilnog agenta obavlja sam kreator mobilnog agenta ili entitet koji je ovlaÅ¡ÄŒen da izvrÅ¡i reviziju i pregled koda mobilnog agenta.  Procene stanja mobilnih agenata ⌌ tehnika zaÅ¡tite mobilnih agenta koja ima za cilj da utvrdi da mobilni agent nije, na neki naÄŒin, doveden u zlonamerno stanje izmenom podataka njegovog stanja. UspeÅ¡nost ove tehnike zasniva se na procenama kojima se Å¡tetne promene stanja mobilnog agenta mogu predvideti, tako da se protivmere u obliku funkcija koje procenjuju stanje agenta mogu izvrÅ¡iti pre pokretanja samog agenta. Funkcije procene stanja se koriste za odreÄŒivanje koja prava pristupa treba dodeliti agentu.  Istorija putanja ⌌ ima za cilj da se održava zapis[8, 9] koji predstavlja spisak svih platformi koje je agent posetio u svom životnom veku. Neophodan uslov ove metode zaÅ¡tite mobilnih agenata je da se lako može verifikovati autentiÄŒnost i integritet tako kreiranog zapisa ⌌ istorije putanje softverskog agenta. Na osnovu tog zapisa, nova agentska platforma na koju agent stigne može odluÄŒiti da li i na koji naÄŒin ÄŒe izvrÅ¡avati agenta i koja ograniÄŒenja po pitanju resursa ÄŒe mu postaviti.  Dokaz o pouzdanosti koda mobilnog agenta ⌌ podrazumeva da je tvorac softverskog agenta obavezan da formalno dokaže da programski kod poseduje bezbedonosna svojstva koja su unapred dogovorena sa potencijalnim korisnicima softverskih agenata[10]. U najveÄŒem broju sluÄŒajeva tražena bezbedonosna svojstva se poklapaju sa bezbedonosnim politikama agentskih platformi na kojima ÄŒe se on izvrÅ¡avati. Ovakav mehanizam zaÅ¡tite ima pre svega preventivnu ulogu. 4. ZAKLJUÄŒAK Bezbednosni probelmi vezani za mobilne agente, barem u teoriji, u velikoj meri se reÅ¡avaju kroz postojeÄŒe sigurnosne tehnologije i protokole. Pitanja vezana za autentikaciju i autorizaciju u multiagentskim sistemima nije lako reÅ¡iti. OÄŒigledno da infrastruktura sistema sa javnim kljuÄŒevima predstavlja jedan važan deo reÅ¡enja problema bezbednosti mobilnih agenata, sami agenti moraju biti u moguÄŒnosti da rezonuju i donose odluke na osnovu razliÄŒitih bezbednosnih parametara. IzvrÅ¡avanje mobilnog softverskog agenta na platformi u koju se ne može imati poverenja je joÅ¡ jedan faktor koji bezbednost agentskih sistema ÄŒini složenijim a posebno sa aspekta pouzdanosti izvrÅ¡avanja mobilnog softverskog agenta i oÄŒivanja tajnosti podataka mobilnog agenta. Ne postoji jedinstveno reÅ¡enje bezbednosnih problema koje je razvoj mobilnih softveskih agenata doneo sa sobom osim uvoÄŒenja pouzdanog hardvera, koji je veÄŒini aplikacija 509 nedostupan zbog svoje cene. ReÅ¡enje problema se može postiÄŒi razvojem malih
  • 7. mehanizama kojima bi se reÅ¡avali pojedinaÄŒni, partikularni problemi. Tako su razvijani mehanizmi koji se odnose na agente koji se izvrÅ¡avaju na veÄŒem broju agentskih platformi, mehanizmi i protokoli koji omoguÄŒavaju agentu dokaže svoj identitet i da utvrdi identitet platforme kao i mehanizmi kojima se zapisuju i pamte akcije agenta na agentskoj platfomi kako bi se mogle koristiti u sluÄŒaju odreÄŒenih sporova. Neki problemi nemaju univerzalno i opÅ¡teprihvaÄŒeno reÅ¡enje tako da je oblast bezbednosti mobilnih softverskih agenata veoma aktivna i bogata novim istraživaÄŒkim poduhvatima. SadaÅ¡nji nivo istraživaÄŒkih aktivnosti i veliki broj projekata koji se razvija predstavlja znaÄŒajan pokazatelj da Programs," in J. Vitek and C. Tschudin (Eds.), Mobile Object Systems: Towards the Programmable Internet, Springer-Verlag, Lecture Notes in Computer Science No. 1222, pp. 111-130, April 1997. [5] "Agent Management," FIPA 1997 Specification, part 1, version 2.0, Foundation for Intelligent Physical Agents, October 1998. [6] "Mobile Agent System Interoperability Facilities Specification," Object Management Group (OMG) Technical Committee (TC) Document orbos/97-10- 05, November 1997 [7] John K. Ousterhout, ⌌Scripting: Higher-Level st tehnologija mobilnih softverskih agenata ima blistavu buduÄŒnost. Programming for the 21 March 1998, pp. 23-30. Century,⌌ IEEE Computer, LITERATURA [1] "Mobile Agents White Paper," General Magic, 1998. dostupno na: http://www.genmagic.com/technology/techwhitepaper.ht ml [2] A. Fuggetta, G.P. Picco, and G. Vigna, "Understanding Code Mobility," IEEE Transactions on Software Engineering, 24(5), May 1998. [3] Danny Lange and Mitsuru Oshima, Programming and Deploying Java Mobile Agents with Aglets, Addison- Wesley, 1998. [4] Anurag Acharya, M. Ranganathan, Joel Salz, "Sumatra: A Language for Resource-aware Mobile [8] Joann J. Ordille, "When Agents Roam, Who Can You Trust?" Proceedings of the First Conference on Emerging Technologies and Applications in Communications, Portland, Oregon, May 1996 [9] Nayeem Islam, et al., ⌌A Flexible Security System for Using Internet Content, IEEE Software, September 1997, pp. 52-59. [10] G. Necula and P. Lee, "Safe Kernel Extensions Without Run-Time Checking," Proceedings of the 2nd Symposium on Operating System Design and Implementation (OSDI '96), Seattle, Washington, October 1996, pp. 229-243.
  • 8. 510