70
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br.1669 Sustav za nadzor i upravljanje računalnom sigurnošću Denis Siladi Zagreb, rujan 2007.

Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD br.1669

Sustav za nadzor i upravljanje računalnom sigurnošću

Denis Siladi

Zagreb, rujan 2007.

Page 2: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Izradu ovog diplomskog rada pomogli su mnogi, ovim putem im se zahvaljujem.

Od srca se zahvaljujem svojoj mami, koja je zaslužna za uspješan završetak ovog studija, na

bezgraničnoj podršci, ljubavi i razumijevanju.

Zahvaljujem se Saši Jušiću i Hrvoju Šegudoviću od kojih sam puno toga naučio.

Zahvaljujem se gospodinu Timu Jensenu i tvrtki Kontron na industrijskoj matičnoj ploči, tvrtki

Links d.o.o. i gospodinu Hrvoju Rota na potrebnom kućištu i hladnjaku za procesor, gospodinu

Borisu Barto na ostalim potrebnim hardverskim komponentama, tvrtki Pecon na izradi prednje

maske, tvrtki Inas*Lag na završnoj obradi prednje maske, te tvrtki Colorplast na plastifikaciji iste.

Također se zahvaljujem prijateljima, Danielu Frančiškoviću na pomoći pri izradi upravljačkog

programa za vanjski ekran uređaja te mobilnom telefonu Siemens C35, Željku Maroviću na pomoći

pri izradi CAD nacrta i Josipu Hajdinjaku na izradi tiskanih pločica za elektroničke sklopove.

I na kraju, zahvaljujem se mentoru Doc.dr.sc. Marinu Golubu na stručnom vodstvu i pomoći kada je

to bilo najpotrebnije.

Page 3: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Sadržaj

Sadržaj

1. UVOD........................................................................................................................................1

2. KONCEPT UPRAVLJANJA RAČUNALNOM MREŽOM ........................................................2

2.1. FCAPS MODEL.........................................................................................................................2 2.2. PRIMJENA KONCEPTA UPRAVLJANJA RAČUNALNOM MREŽOM .......................................................5

3. SNMP........................................................................................................................................7

3.1. RAZVOJ SNMP-A .....................................................................................................................7 3.2. SNMP MODEL ..........................................................................................................................8 3.3. COMMUNITY STRINGOVI.............................................................................................................9 3.4. HIJERARHIJA INFORMACIJA DOHVATLJIVIH PUTEM SNMP-A .........................................................9

4. PODRŠKA ZA NADZOR RAČUNALNOG SUSTAVA U WINDOWS OKRUŽENJU............12

4.1. INICIJATIVA ZA DONOŠENJE NORMI ...........................................................................................12 4.2. NORMA ZA DOHVAĆANJE PODATAKA.........................................................................................13 4.3. INFORMACIJSKI MODEL DOHVATLJIVIH PODATAKA ......................................................................13 4.3.1. Specifikacija informacijskog modela dohvatljivih podataka ...............................................15 4.3.2. CIM shema.........................................................................................................................16 4.3.3. Struktura CIM sheme.........................................................................................................16

5. SUSTAV ZA NADZOR RAČUNALNOG SUSTAVA..............................................................18

5.1. WMI ARHITEKTURA .................................................................................................................18 5.1.1. Dobavljači i potrošači .........................................................................................................18 5.1.2. WMI skladište.....................................................................................................................19 5.2. WMI U PRAKSI ........................................................................................................................20 5.2.1. Instalacija ...........................................................................................................................20 5.2.2. Wbemtest i WQL...............................................................................................................20 5.2.3. WMI Administrative Tools ..................................................................................................24

6. SUSTAV ZA NADZOR KAO TEMELJ UPRAVLJANJA RAČUNALNOM SIGURNOŠĆU ..27

6.1. ALAT WMIC ...........................................................................................................................27 6.1.1. Alat WMIC u ulozi otkrivanja rootkita .................................................................................31 6.1.2. Integracija u skripte............................................................................................................33 6.2. SKRIPTNE TEHNIKE U WMI OKRUŽENJU....................................................................................33 6.2.1. Skripte kao process firewall ...............................................................................................35 6.3. WMI DOGAĐAJI.......................................................................................................................36 6.3.1. Hvatanje WMI događaja u svrhu nadgledanja registryja ...................................................38

7. PRAKTIČNI RAD....................................................................................................................40

7.1. SKLOPOVSKA OSNOVA ............................................................................................................41 7.1.1. Sklopovske komponente....................................................................................................41 7.1.2. Postupak izrade prednje maske ........................................................................................43 7.1.3. Postupak izrade GSM modula ...........................................................................................45 7.2. FOTOGRAFIJE GOTOVOG UREĐAJA ...........................................................................................48 7.3. ARHITEKTURA SUSTAVA ZA NADZOR: ........................................................................................50 7.3.1. Poslužiteljska strana ..........................................................................................................50 7.3.2. Klijentska strana.................................................................................................................53

Page 4: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Sadržaj

7.4. UPRAVLJANJE UREĐAJEM ........................................................................................................54 7.5. KLIJENTSKA APLIKACIJA ZA UPRAVLJANJE .................................................................................55 7.5.1. Pristup uređaju i stvaranje dijagrama ................................................................................56 7.5.2. Otkrivanje i stvaranje mrežne topologije............................................................................58 7.5.3. Stvaranje izvješća o inventaru ...........................................................................................60 7.5.4. Pregled podataka u stvarnom vremenu.............................................................................62 7.5.5. Postavke parametara nadzora i pokretanje nadzora.........................................................62

8. ZAKLJUČAK ..........................................................................................................................65

9. LITERATURA .........................................................................................................................66

Page 5: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 1 od 66

1. Uvod

Danas kada je ideja o sveopćoj umreženosti postala stvarnost i kada se računalni sustavi koriste u svim sferama ljudske djelatnosti briga o računalnoj sigurnosti postaje nužnost u poslovnoj politici svake organizacije. Iako je većina organizacija već načinila prvi korak u susret brizi o računalnoj sigurnosti i osiguravanju vrijednih i osjetljivih podataka, najčešće kroz implementiranje antivirusnih i vatrozidnih sustava, oni sami nisu dovoljni. Spomenuta rješenja sprječavaju određene vektore napada no ne mogu zadovoljiti jedan drugi aspekt računalne sigurnosti, a to je pravovremena detekcija i reakcija na probleme u računalnim sredinama.

Kako bi se adresirao ovaj problem stvoreni su specijalizirani sustavi i tehnologije za nadzor i upravljanje računalnim sredinama, što neizbježno uključuje i nadzor i upravljanje računalnom sigurnošću.

Brzim razvojem računala i mrežne tehnologije, upravljanje računalnim sustavima postaje sve kompleksniji i vremenski zahtjevniji proces, osobito kada se u obzir uzmu velika korporativna okruženja koja sadrže desetke tisuća upravljivih entiteta – računala, korisničkih računa, mrežnih komponenti, periferije i sl. Upravo zbog brzog razvoja računalne industrije te potrebe za centraliziranim upravljanjem nastala je DMTF (engl. Distributed Management Task Force) organizacija koja se brine o standardima i inicijativama vezanim uz upravljanje u velikim distribuiranim sustavima. Zahvaljujući toj inicijativi Microsoft je razvio WMI – Windows Management Instrumentation sustav, namijenjen nadzoru i upravljanju računala temeljenih na operacijskom sustavu Microsoft Windows.

Centraliziran sustav omogućio je bezbolnu kontrolu informacija i osigurao provođenje sigurnosne politike sustava. WMI nije isključivo vezan za sigurnosne aspekte, ali zahvaljujući detaljnom modelu cijelog operacijskog sustava i fizičkog modela računala upravljanje svim dijelovima, a tako i sigurnosnim aspektima na zavidno je visokoj razini.

Podrška za brojne skriptne jezike te integracija s WSH-om (engl. Windows Scripting Host) i drugim inicijativama zadovoljava zahtjeve svih informacijskih sustava od onih najmanjih do onih najvećih, a detaljan objektni model i API omogućuje razvoj aplikacija s podrškom za WMI. Integracija s .NET okruženjem i drugim programskim jezicima preko COM objekata omogućila je razvoj programske podrške koja na relativno jednostavan način krajnjim korisnicima pruža podršku nadzora svih aspekata sustava. Kako je WMI duboko integriran u Windows operativni sustav zajedno sa serverskim tehnologijama, omogućuje pouzdan nadzor i striktno provođenje sigurnosne politike informacijskog sustava.

Iako postoje i drugi mehanizmi nadzora, WMI je izabran kako temelj ovog diplomskog rada zbog svoje integracije u Windows operacijski sustav koji je posebno zastupljen u korporativnim sredinama u kojima je briga o računalnoj sigurnosti izuzetno bitan čimbenik.

Kako bi se stvorio jedan siguran i optimiran sustav u ovom radu će biti implementiran sklopovski sustav za nadzor koji će moći pružiti visoku pouzdanost, a specijalne funkcije poput dojave uzbuna putem SMS poruka zadovoljit će i najzahtjevnije računalne okoline s potrebom za brzom reakcijom na nastali problem.

Page 6: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 2 od 66

2. Koncept upravljanja računalnom mrežom

Iako je za upravljanje računalnim sustavima i mrežama nužna tehnologija koja će ono omogućiti, upravljanje računalnom mrežom potrebno je sagledati iz jedne više perspektive. Tek nakon što su definirani osnovni koncepti moguće je uspješno uključiti neku od tehnologija za nadzor u upravljanje računalnim sustavima.

Upravljanje računalnom mrežom treba shvatiti kao metodologiju koja opisuje uporabu različitih alata, tehnika i sustava i koja omogućuje upravljanje mnogobrojnim uređajima i sustavima danas dostupnim u tipičnim računalno-mrežnim okolinama.

Većina arhitektura za upravljanje mrežom temeljena je na istim principima, te se arhitektura tipičnog sustav za upravljanje mrežom (engl. NMS – Network Management System) sastoji od entiteta za upravljanje, entiteta kojima se upravlja i skupa veza između njih. Entiteti kojima se upravlja često zvani i krajnje točke, poput računala, poslužitelja i drugih mrežnih uređaja (usmjerivači, upravljivi preklopnici, vatrozidovi, itd.) izvršavaju programe tzv. agente koji im omogućuje slanje uzbune prilikom detekcije nekog problema (primjerice ako je zauzeće diskovnog prostora prešlo definiranu kritičnu razinu). Kada entitet za upravljanje ili više njih prime dojavu o uzbuni oni reagiranju tako što izvode jednu ili više akcija ovisno o postavkama sustava za upravljanje mrežom. Te akcije su obavijest administratoru sustava (elektroničkom poštom, SMS porukom ili telefonskim putem), spremanje logova, gašenje sustava ili pokušaj automatskog ispravljanja pogreške. Entiteti za upravljanje pored primanja dojave mogu dohvaćati određene podatke s nadziranih sustava. Dohvaćanje može biti automatsko ili inicirano od strane korisnika. Softverski agenti koji se nalaze na sustavima koji se nadziru predstavljaju poveznicu između fizičkog sustava i parametara koje je potrebno nadzirati, i samog sustava za nadzor. Agenti prilikom prvog pokretanja stvaraju bazu podataka o parametrima koje će biti moguće nadzirati na sustavu na kojemu su pokrenuti, pohranjuju je u specijaliziranu bazu i po potrebi šalju te podatke sustavu za nadzor putem protokola za upravljanje mrežom. Najčešći protokol je SNMP, a model za upravljanje računalima DMI o kojima će biti riječi u poglavljima koja slijede.

2.1. FCAPS model

Nekoliko je različitih modela koji opisuju koncept upravljanja računalnom mrežom i pripadnim računalnim entitetima, a najviše korišteni model je FCAPS (engl. Fault Management, Configuration Management, Accounting Management, Performance Management, and Security Management). Model definira 5 područja upravljanja: upravljanje pogreškama sustava, upravljanje konfiguracijom, upravljanje dostupnosti resursima, upravljanje performansama i upravljanje sigurnošću. Ovaj model stvorila je međunarodna organizacija za standardizaciju (ISO) kako bi osigurala dobro shvaćanje osnovnih funkcija upravljanja mrežnim sustavima.

Slika 2.1: FCAPS model

Page 7: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 3 od 66

a) Upravljanje pogreškama sustava Cilj upravljanja pogreškama sustava je detekcija, pohrana logova i obavještavanje odgovornih osoba o nastalom problemu. U mnogim okolinama visoka dostupnost sustava je od velike važnosti. Upravljanje pogreškama definira 3 pravila koje je potrebno poštivati kako bi se vrijeme do detekcija pogreške i ispravljanje kvara svelo na minimum. Pravila su:

1. Izoliranje problema i otkrivanje simptoma 2. Rješavanje problema 3. Pohrana informacija o procesu koji se koristio za otkrivanje i rješavanje

problema Treće pravilo od posebnog je značenja jer ukoliko se provodi, omogućuje preskakanje prva dva pravila kada se dogodi isti tip pogreške u sustavu.

b) Upravljanje konfiguracijom Cilj upravljanja konfiguracijom je nadzor nad mrežnim i računalnim konfiguracijama. Neki od parametara konfiguracije su primjerice inačica i tip operacijskog sustava, broj mrežnih sučelja i njihova brzina, broj i kapacitet tvrdih diskova, broj i tip procesora, količina memorije i drugo, dok se one najčešće pohranjuju u bazu podataka, koja se periodički osvježava. Također upravljanje konfiguracijom uključuje i manipulaciju s konfiguracijskim postavkama jer gotovo svi samostalni mrežni uređaja (engl. appliance) svoje konfiguracije mogu izvesti i uvesti u nekom obliku. Dodatna vrijednost posjedovanja ovih podataka leži u činjenici kako oni uvelike mogu doprinijeti rješavanju nastalih problema, pogotovo ako sustav uključuje praćenje promjena.

c) Upravljanje uporabom resursa Upravljanje uporabom resursa ima za cilj osigurati da se uporaba računalnih resursa pravično rasporedi među pojedincima ili grupama korisnika koji ih koriste. Kroz ovaj tip regulacije odgovorne osobe primat će informacije o uporabi resursa i pripadnoj cijeni uporabe, ukoliko je neki od resursa oskudan biti će potrebno ograničiti uporabu tog resursa. Zbog optimirane uporabe računalnih resursa potencijalni problemi mogu se minimizirati.

d) Upravljanje performansama Zadaća upravljanja performansama je u nadzoru performansi različitih aspekata mreže, to može biti mrežna propusnost ali i zauzeće memorije ili procesorske snage. U pravilu se proces upravljanja performansama provodi kroz korake konstantnog prikupljanja podataka, određivanje normalnih granica nadziranih vrijednosti te generiranje uzbune ili obavještavanje odgovornih osoba ukoliko neke od vrijednosti tijekom vremena počnu znatnije varirati ili prelaze prije uspostavljene granice.

e) Upravljanje sigurnošću Upravljanje sigurnošću ima dva primarna zadatka, a to su kontrola pristupa pojedinom resursu, te detekcija i prevencija računalnih napada. Napadi mogu biti razni, od primjerice napada uskraćivanjem resursa do potpunog kompromitiranja sustava pri čemu zlonamjerni korisnici stječu kontrolu nad dijelom ili cijelim računalnim sustavom.

Kako bi se organizacije zaštitile od napada izvana potrebno je provesti detaljna sigurnosna ispitivanja sustava i definirati sigurnosnu politiku čije će provođenje ujedno osigurati zaštitu od zlonamjernih korisnika unutar organizacije ali i zaštitu od korisnika unutar organizacije koji su podlegli socijalnom inženjeringu. Smatra se kako ne postoji sustav kojega je nemoguće kompromitirati jedino se

Page 8: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 4 od 66

ispitivanjem sigurnosti postojećeg sustava i ispravnim planiranjem sigurnosne politike vjerojatnost da se to uistinu dogodi može svesti na minimum. Općenito se ispitivanje sigurnosti na temelju kojega će se poduzeti mjere zaštite može podijeliti u tri razine.

Tri su osnovna tipa ispitivanja sigurnosti: automatizirana procjena ranjivosti, penetracijsko testiranje i IT security audit. Sva tri tipa djeluju u različitim domenama, a najsigurnijim sustavom smatra se onaj koji je prošao kroz sve tri razine procjene i ispitivanja sigurnosti.

Automatizirana procjena ranjivosti temelji se na programskim alatima koji sadrže bazu dobro poznatih ranjivosti. Pomoću ovih alata pored poznatih ranjivosti mogu se također otkriti česte konfiguracijske pogreške, sustavi koji nemaju najsvježije zakrpe, te nedovoljno kompleksne lozinke. Automatizirana procjena ranjivosti (engl. Vulnerability Scanning ili Assessment) sama po sebi tek je jedan mali dio u ispitivanju sigurnosti i procjeni sigurnosnih rizika i definiranju ispravne sigurnosne politike organizacije. Ukazuje na česte pogreške čijim će se ispravljanjem spriječiti određen dio napada i otežati napad hakera no i dalje ostavlja veliki prostor za manevriranje zlonamjernim korisnicima. Ovaj tip ispitivanja sigurnosti u potpunosti zaobilazi ispitivanje sigurnosti gledano iz perspektive napadača koji se nalazi unutar organizacije.

Slika 2.2: Usporedba osnovnih tipova ispitivanja sigurnosti

Penetracijsko testiranje znatno je kompleksnije, a za njegovo provođenje potrebna je daleko veća količina znanja. Penetracijsko testiranje uključuje i automatiziranu procjenu ranjivosti te koristi brojne metode u otkrivanju nepoznatih ranjivosti, lociranju nepredviđenih sekvenci manjih ranjivosti koji mogu dovesti do kompromitiranja cijelog sustava, te uključuje komponentu socijalnog inženjeringa pomoću koje se može ispitati sustav iz perspektive zlonamjernog korisnika unutar organizacije.

Procjena ranjivosti (Vulnerability Scanning)

• Uzima u obzir poznate ranjivosti

• Zahtjeva najmanji stupanj ekspertize

• Proces koji je jednostavan za automatizaciju

Penetracijsko testiranje

• Otkriva nepoznate ranjivosti

• Zahtjeva visok stupanj tehničke naobrazbe

• Povlači za sobom zakonsku odgovornost

IT Security Audit

• Fokusira se na sigurnosne politike i procedure

• Zahtjeva najveći stupanj ekspertize

• Kada je ispravno provedena, najdjelotvorniji je oblik procjene

Page 9: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 5 od 66

Najcjelovitiji oblik ispitivanja sigurnosti pored penetracijskog testiranja uključuje i Security Audit na temelju čega se definira sigurnosna politika i za koga vrijede sljedeća pravila:

1) Nemoguće je imati dobro osiguran sustav u srednje velikim do velikim mrežnim sredinama bez sigurnosne politike

2) Sigurnosna politika bez ispitivanja sigurnosti je tek malo bolje rješenje od sustava bez sigurnosne politike Kako bi se spriječila većina napada i stvorio sustav s visokom razinom sigurnosti, preporuka je provoditi sve navedene metode ispitivanja sigurnosti. Područje upravljanja sigurnošću također vodi računa o fizičkoj sigurnosti što uključuje kontrolu pristupa, primjerice uporabom pametnih kartica, video nadzor, adekvatnu fizičku zaštitu prostora u kome se nalazi osjetljiva računalna oprema, itd. Danas se svi ovi ciljevi postižu uporabom brojnih tehnoloških rješenja poput vatrozidova, sustava za detekciju upada (IDS – intrusion detection system), sustava za prevenciju upada (IPS – intrusion prevention system), antivirusnih rješenja, sustava koji osiguravanju provođenje donesenih sigurnosnih politika itd.

2.2. Primjena koncepta upravljanja računalnom mrežom

Kvalitetno primijeniti koncepte opisane u prethodnom poglavlju od posebne je važnosti u svakoj poslovnoj okolini. Uspješnom implementacijom metodologije za upravljanje računalnom infrastrukturom i mrežnom okolinom općenito, odnosno izgradnjom sustava za mrežni nadzor (NMS) smanjuju se troškovi i povećava efikasnost sustava. Ukoliko implementacija ne donosi nikakav financijski dobitak ili povećanje efikasnosti kao takvu je niti ne treba provoditi. Da bi se osigurala dobra implementacija FCAPS metodologije doneseno je nekoliko smjernica koje treba uzeti u obzir pri implementaciji sustava za potporu upravljanju korporativnom računalnom okolinom.

a) Razina nadziranja

Prije definiranja politike nadzora pojedinog uređaja ili servisa potrebno je shvatiti 4 tipične razine nadziranja i odlučiti koja je od njih najprikladnija za nadzor tog uređaja ili servisa. Razine su:

• Neaktivna razina Nadziranje se ne odvija, ukoliko se dogodi nekakva pogreška ona se ignorira.

• Reaktivna razina Nadziranje se ne odvija, na problem se reagira kada se on dogodi.

• Interaktivna razina Nadziranje je aktivno no potrebno je uključiti ljudske resurse kako bi se otkrio pravi izvor problema kada se on dogodi.

• Proaktivna razina Nadziranje je aktivno i sustav je u stanju dojaviti točan izvor pogreške, što omogućuje stvaranje automatskih pravila rješavanja problema ili vraćanja sustava u prijašnje stanje, na taj način drastično smanjujući vrijeme nedostupnosti sustava ili servisa koji se nadzire.

b) Izvještaji i analiza trendova

U slučaju proaktivnog ili nekim slučajevima interaktivnog nadziranja sustava moguće je pratiti trendove odnosno analizirati podatke o nadzoru tijekom određenog vremena. Cilj analize trendova i stvaranja izvješća je identificirati kada se neki računalni sustav, servis ili drugi mrežni resurs približava svojim granicama optimalnog rada. Na taj

Page 10: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 6 od 66

način ovaj mehanizam daje odgovornim osobama dovoljno vremena da reagiraju prije nego što se pojave prvi problemi. Pomoću analize trendova lako se može otkriti kada je sustavu potrebno dodati više memorije, povećati kapacitet tvrdih diskova ili povećati procesorsku snagu i na taj način zadržati jednaku kvalitetu usluge uz povećanje zahtjeva i iskorištenosti iste.

c) Analiza vremena odziva Analiza vremena odziva mjeri koliko se pojedini sustavi brzo odazivaju odnosno odgovaraju na upite. Vrijeme odziva posebno je kritična vrijednost kod datotečnih, Web i mail poslužitelja, te upravljanje jednom računalnom mrežom koja uključuje entitete osjetljive na vremenski odziv svakako treba uključivati i ovu stavku.

d) Stavljanje uzbuna u kontekst Stavljanje uzbuna u kontekst izuzetno je bitno u svakoj iole kompleksnijoj mrežnoj okolini, a osnovni cilj joj se svesti višestruke pogreške u jednu izvorišnu. Primjerice neka se u sustavu nadzire poslužitelj te preklopnik i usmjerivač preko kojih do tog poslužitelja dolaze mrežni paketi. Ukoliko iz funkcije ispadne usmjerivač (najbliža točka nadzornoj stanici) nadzorna stanica primat će pogreške o nedostupnosti usmjerivača ali i o nedostupnosti preklopnika i poslužitelja koji se iza tog usmjerivača nalaze. Koreliranjem uzbuna sustav bi trebao moći zaključiti koji je stvarni izvor pogreške, dakle usmjerivač koji nije više u funkciji i samo o tome obavijestiti odgovorne osobe, a druge pogreške zanemariti s obzirom kako one samo proizlaze iz kvara usmjerivača. Izdvajanje samo bitnih uzbuna može znatno doprinijeti efikasnosti nadzora odnosno rješavanja problema. Iako se u teoriji ova ideja o stavljanju uzbuna u kontekst čini relativno jednostavnom u praksi se ona pokazala kao kompleksan problem.

Page 11: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 7 od 66

3. SNMP

Upravljanje i nadzor moderne mrežne okoline izazovan je zadatak ponajprije zbog kompleksnosti i raznolikosti današnjih mrežnih okolina. Standardizacija strategije i tehnika upravljanja je stoga nužnost kako bi se omogućilo uspješno nadziranje današnjih modernih računalnih mreža. SNMP (engl. Simple Network Management Protocol) je najrasprostranjeniji protokol predviđen za rad na TCP/IP mrežama. Radi se o otvorenom standardu koji je relativno jednostavan no ipak dovoljno fleksibilan da pruži mogućnost kvalitetnog upravljanja velikim brojem različitih tipova uređaja u današnjoj distribuiranoj mrežnoj svakodnevici.

3.1. Razvoj SNMP-a

Od predstavljanja protokola 1988. godine SNMP je postao najpopularniji protokol za upravljanje umreženim računalima i uređajima. IETF (Internet Engineering Task Force) je stvorila SNMP kako bi omogućila upravljanje pomoću normiranog seta operacija, a danas ovaj protokol podržava velika većina računalne opreme, poslužitelja, pisača, preklopnika, vatrozidova, UPS sustava, usmjerivača itd. SNMP nije samo komunikacijski protokol već definira i kako su podaci koji se nadziru organizirani, pohranjeni i na koji način im se pristupa. Norma također definira i kako NMS mora izgledati odnosno definira distribuirani sustav koji se sastoji od SNMP agenata i poslužitelja. Izvorna inačica SNMP-a dokumentirana je u RFC 1157 standardu.

Druga inačica SNMP protokola (SNMPv2) predstavljena je 1993. godine i stvorena je kako bi ispravila veći broj funkcijskih nedostataka koji su se tijekom godina otkrili u prvoj inačici protokola. SNMPv2 je dodao i poboljšao dijelove protokola poput ispravljanja i oporavka od pogreške, podrške za veće vrijednosti (64bitne), poboljšao efikasnost, implementirao potvrđene obavijesti o događajima i zasigurno najbitnije poboljšao sigurnost. Na žalost SNMPv2 nije bio šire prihvaćen jer se IETF nije mogla složiti s pojedinim aspektima sigurnosnih mogućnosti.

Zbog toga je 1996. izdana revidirana druga inačica protokola koja je sadržavala sve gore opisane funkcionalnosti osim sigurnosnih mogućnosti. IETF označava ovu novu inačicu oznakom SNMPv2c a detaljne informacije mogu se naći u RFC standardima 1905, 1906 i 1907. SNMPv2c koristi isti sigurnosni model kao i prijašnja inačica protokola koji se temelji na lozinci zvanoj community strings i koja se šalje preko mreže u nekriptiranom obliku.

Zbog kompromisa koji je SNMPv2c ostavio bez zadovoljavajućih sigurnosnih mehanizma 1998. godine IETF je otpočela s radom na trećoj inačici protokola koji je definiran u RFC dokumentima 2571-2575. U biti SNMPv3 predstavlja sigurnosne mogućnosti koje se trebaju koristiti u kombinacija s SNMPv2 protokolom. Ovo znači kako SNMPv3 nije samostojeći protokol kao prijašnje dvije inačice i nije mu zadaća zamijeniti ih već u kombinaciji s SNMPv2c protokolom pružiti jedan sigurnosni sloj koji se u modernim mrežama danas i očekuje.

SNMPv3 pruža siguran način pristupa podacima na uređajima koja se nadziru uporabom autentifikacije, integriteta podataka i enkripcije SNMP paketa. Tablica 1. prikazuje razliku između pojedinih inačica protokola.

Tablica 3.1: Usporedba SNMP inačica protokola

Inačica Autentifikacija Enkripcija Opis

v1 Community strings Ne Slaba autentifikacija, paketi se šalju nekriptirani

v2c Community strings Ne Slaba autentifikacija, paketi se šalju nekriptirani

Page 12: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 8 od 66

v3(noAuthNoPriv) Username Ne Slaba autentifikacija, paketi se šalju nekriptirani

v3(authNoPriv) SHA ili MD5 enkriptirana lozinka

Ne Jaka autentifikacija, paketi se šalju nekriptirani

v3(authPriv) SHA ili MD5 enkriptirana lozinka DES Jaka autentifikacija, paketi se kriptiraju

3.2. SNMP model

SNMP definira dva osnovna tipa entiteta, menadžere i agente. SNMP menadžer je poslužitelj koji izvršava softver za upravljane i nadzor i koji je odgovoran za pojedini mrežni segment ili cijelu mrežu. Ovi poslužitelje se često zovu i stanice za upravljanje mrežom (NMS - Network Management Stations). Agent je dio softvera ugrađen u neki uređaj i ima dvojaku funkciju. Prvo, agent osluškuje u potrazi za dolaznim SNMP zahtjevima koje šalje NMS te odgovara na njih i drugo, agent nadgleda događaje na sustavu gdje se nalazi i stvara tzv. SNMP klopke (engl. SNMP traps) obavijesti koje šalje NMS-u i obavještava ga kako se nešto dogodilo.

NMS je obično konfiguriran tako da dohvaća ključne podatke s nadziranih uređaja periodički koristeći SNMP get zahtjeve. SNMP komunikacije se odvija uporabom UDP protokola, a paketi se šalju na dobro poznata vrata 161. get zahtjevi, od uređaja kome su poslani, traže odgovor ili niz odgovora koji sadrže za nadzor bitne podatke. No kako korporativno mrežno okruženje može sadržavati stotine i tisuće udaljenih uređaja nije preporučljivo dohvaćati informacije s nadziranih uređaja više od jednom u nekoliko minuta (u praksi je ove vrijednost bliže nekoliko zahtjeva po satu). Uz ovakav raspored na udaljenom uređaju se može dogoditi problem koji neće biti detektiran (rušenje sustava i automatsko podizanje između zahtjeva nikada neće biti detektirano i može označavati potencijalno vrlo ozbiljan problem).

Slika 3.1: Razmjena poruka između agenta i NMS-a

Kako bi zaobišao ovaj problem SNMP agent ima mogućnost ne samo odgovarati na zahtjeve već i samoinicijativno slati podatke. SNMP trap predstavlja informaciju koju šalje agent ukoliko se dogodila nepredviđena situaciju. SNMP klopke su UDP paketi koje agent šalje NMS-u na dobro poznata vrati 162. Postoji veliki broj tipova klopki koje agent može poslati i oni najčešće ovise o tipu uređaja koji se nadzire. Neke klopke predstavljaju manje kritične događaje te administrator sustava određuje koje će se klopke obrađivati, a koje odbacivati. Problem ovoga načina dojave promjena u sustava ili pogrešaka leži u činjenici što NMS ne potvrđuje dobivanje trap poruke, a kako se one prenose UDP protokolom koji predstavlja nespojnu i nepouzdanu uslugu, u većim mrežnim sredinama nije rijedak slučaj da

Page 13: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 9 od 66

se ove poruke izgube. Iako će NMS saznati o pogrešci ako je ona dovoljno dugo prisutna kroz druge metode dohvata podataka gubitak trap poruke može ponekad značiti izostanak detekcije kritičnog problema.

Kako bi adresirao ovaj problem SNMPv2c i SNMPv3 uključuju drugi tip paketa naziva SNMP inform. Ovaj paket je gotovo identičan standardnom trap paketu osim što kada ga SNMP agent pošalje očekuje poruku potvrde. Ukoliko agent ne dobije poruku potvrde primitka inform paketa nakon određenog vremena, isti paket će pokušati poslati ponovno. SNMP inform paketi nisu česti u današnjim implementacijama sustava za upravljanje mrežnom infrastrukturom no kako SNMPv3 zbog svojih sigurnosnih mehanizama postaje sve popularniji ovo bi se uskoro trebalo promijeniti.

3.3. Community stringovi

Za ostvarivanje veze između agenata i menadžera SNMP koristi tzv. community stringove. Agent je konfiguriran s podrškom za tri tipa stringova: read-only, read-write i trap. U osnovi community stringovi predstavljaju lozinke i funkcijski ne postoji razlika između lozinke kojom se pristupa računalu i community stringova, no veliki problem je taj što se u svim inačicama ranijim od verzije 3 protokola ove vrijednosti prenose u nekriptiranom obliku zbog čega je sigurnost ozbiljno narušena.

Tri tipa community stringova namijenjeni su različitim aktivnostima. Kako im i samo ime govori read-only string namijenjen je čitanju vrijednosti ali njihova modifikacija nije moguća, tako je primjerice moguće pročitati vrijednost opterećenosti procesora ali nije moguće konfigurirati IP adresu mrežnog sučelja. Read-write string omogućuje i izmjenu vrijednosti dok trap comunity string omogućuje asinkrono primanje obavijesti od agenta.

Većina proizvođača računalne i mrežne opreme koja ima podršku za SNMP, svoje uređaje inicijalno konfigurira s podrazumijevanim vrijednostima community stringova, tipično to je vrijednost "public" za read-only i "private" za read-write community stringove. Izuzetno je bitno prilikom prvog konfiguriranja uređaja ove vrijednosti izmijeniti. S obzirom da se u prijašnjim inačicama SNMP protokola sve vrijednosti šalju nekriptirane preporučljivo je konfigurirati uređaj tako da kada detektira pokušaj čitanja ili pisanja s krivim community stringom pošalje trap poruku NMS-u.

Postoji nekoliko pravila čijom primjenom je moguće smanjiti rizik od kompromitiranja SNMP upravljivih sustava. Ukoliko postoji mogućnost, vatrozid je potrebno konfigurirati tako da propuštaju UDP promet samo za poznata računala. Tako je primjerice preporučljivo propustiti UDP promet na portu 161 (SNMP zahtjev) u mrežu jedino ukoliko je izvorište NMS. Isto vrijedi i za trap poruke, odnosno preporučljivo je propustiti UDP promet na portu 162 (SNMP trap poruke) prema NMS-u samo ako su izvorište entiteti koji se nadziru. Iako ovo metoda ne može pružiti punu zaštitu može se implementirati kako bi se smanjio rizik od napada.

Problem sigurnosti riješen je najnovijom inačicom protokola pa se svakako preporuča koristiti upravo navedeni, no treba imati na umu da niti ovdje nisu ispravljeni svi sigurnosni nedostaci pa tako niti SNMPv3 ne može zaštiti uređaj od napada uskraćivanjem resursa (engl. Denial of Service) ili analize prometa.

3.4. Hijerarhija informacija dohvatljivih putem SNMP-a

SNMP koristi stablasti informacijski model, strukturu zvanu MIB (engl. Management Information Base) kako bi organizirao podatke s kojima se može upravljati. Kada se govori o MIB strukturi ona se sastoji od različitih ogranaka unutar modela, primjerice T1 MIB, ATM MIB, itd. Određeni SNMP agent uzimat će u obzir samo jedan ili nekolicinu MIB struktura koji

Page 14: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 10 od 66

su vezani isključivo za funkcije uređaja na kome se izvršava. Jasno je ako uređaj ne sadrži niti jedno T1 sučelja kako agent o informacijama specifičnim za taj tip sučelja ne mora ništa znati. MIB stablasta struktura je definirana dugim nizom brojeva odvojenih točkama.

Primjer: .1.3.6.1.2.1.1.3.

Ovaj broje se naziva identifikator objekta (engl. OID Object Identifier) i predstavlja numeričku reprezentaciju stablaste MIB strukture. Svaka znamenka predstavlja jedan čvor u strukturi, tako primjerice OID .1.3.6.1.2.1.1.3. ima sljedeće značenje:

.1.3.6.1.2.1.1.3. označava varijablu koja pripada MIB strukturi i koju administrira ISO organizacija. Ova vršna domena MIB strukture nije jedina, postoje i oznake .0 koju administrira ITU-T te .2 koju ISO i ITU-T zajednički administriraju. .1 je vezana za računalnu opremu stoga se neće ići u razmatranje drugih vršnih domena.

.1.3.6.1.2.1.1.3. prvi čvor ispod ISO MIB vršne domene u ovom primjeru je 3. ISO organizacija je dodijelila ovaj čvor svim drugim organizacijama.

.1.3.6.1.2.1.1.3. za sljedeći čvor oznake 6. se brine DOD (U.S. Department of Defense) a on je alocirao sljedeći čvor 1 za IAB (Internet Activities Board) i gotovo sve SNMP MIB varijable koje se koriste u praksi započinjat će s .1.3.6.1.

.1.3.6.1.2.1.1.3. Četiri su često korištene pod-kategorije ispod IAB (koji se pojednostavljeno zove i Internet) čvora. To su redom directory (1), mgmt (2), experimental (3) i private (4) čvorovi. Directory varijabla se rijetko kada koristi, mgmt čvor se koristi za sve MIB ekstenzije po IETF standardima koji su dokumentirani u RFC dokumentima, to je primjerice T1 i ATM, primjeri spomenuti prije u poglavlju, no u ovom čvoru se ne nalaze varijable koju su specifične za pojedinog proizvođača. Dobar primjer varijable koja se neće naći u ovoj grupi je zauzeće stateful tablice primjerice Checkpoint vatrozida. Experimental čvor se koristi za pohranu podataka koji nisu standardni; a ovakva separacija ima svoju veliku prednost u produkcijskim okolinama gdje eksperimentiranje nikako nije preporučljivo. Posljednji opisani čvor private uključuje specifične vrijednosti pojedinog proizvođača opreme.

.1.3.6.1.2.1.1.3. sljedeća varijabla oznake 1 predstavlja SNMP MIB, dok varijabla nakon toga označava specijalnu grupu varijabli koja je u slučaju mgmt varijabli definirana u RFC dokumentima. U ovom primjeru vrijednost 1 označava system MIB čiji detalji su opisani u RFC dokumentu 1450.

Od ove razine niže uvedena je konvencija imenovanja kako bi olakšala posao administratorima. Primjerice ime svake varijabla u sklopu system čvora započinje s sys prefiksom. U navedenom primjeru to su: sysDescr (1), sysObjectID (2), sysUpTime (3), sysContact (4), sysName (5), sysLocation (6), sysServices (7), sysORLastChange (8) i sysORTable (9). Detaljni opisi svake varijable mogu se naći u RFC dokumentu 1450.

1.3.6.1.2.1.1.3.0 Vrijednost 3 odnosi se na sysUptime dok posljednja varijabla 0 govori agentima da pošalju sadržaj ovog čvora, a ne da ga tretiraju kao korijen za sljedeće čvorove.

Iz ovoga je jasno kako OID jednoznačno određuje informaciju vezanu za uređaj koji se nadzire i kako je u prikazanom primjeru to vrijeme kontinuiranog rada sustava.

Page 15: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 11 od 66

Slika 3.2: Hijerarhija informacija dohvatljivih putem SNMP-a

Page 16: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 12 od 66

4. Podrška za nadzor računalnog sustava u Windows okruženju

Prateći trendove i potrebu za centraliziranim upravljanjem i nadzorom, Microsoft je razvio WMI – Windows Management Instrumentation sustav, namijenjen nadzoru i upravljanju računala temeljenih na operacijskom sustavu Microsoft Windows.

Najsloženiji dio WMI sustava zasigurno je veliki broj akronima koji se uz njega vezuje (DMTF, CIM, WBEM itd.). Iako detaljno poznavanje navedenih pojmova nije neophodno za uspješno korištenje WMI-a, njihovo razumijevanje može znatno pomoći u shvaćanju cijelog koncepta.

4.1. Inicijativa za donošenje normi

Kako bi shvatili što je WMI nužno je prvo pogledati što je DMTF i njegovu povezanost s WBEM-om, CIM-om i WMI-em. DMTF je osnovan 1992. godine tada kao Desktop Management Task Force. DMTF je neprofitna organizacija, a njezino djelovanje bilo je usmjereno ka normama za upravljanje osobnim računalima. S razvojem novih tehnologija i računalne industrije postalo je sve kompliciranije upravljati brojnim entitetima na korporativnoj razini. Ovakva evolucija odrazila se i na DMTF koja je zadržala svoj prvobitni akronim, ali se njegovo značenje promijenilo u Distributed Management Task Force. Današnja misija DMTF je koordiniranje razvoja norme za upravljanje distribuiranim računalnim sustavima te enterprise mrežnim i Internet okruženjima. DMTF čini nekoliko vodećih kompanija među kojima su: 3Com, Hewlett-Packard, Cisco, Microsoft, SUN, Intel, IBM/Tivoli Systems, Novell i mnogi drugi (detaljan popis moguće je pronaći na adresi http://www.dtmf.org).

DMTF je pokrenula nekoliko osnovnih inicijativa:

1. Desktop Management Interface (DMI): DMI je prvi industrijski standard za upravljanje i praćenje podataka o različitim komponentama u osobnim računalima, prijenosnicima i poslužiteljima. Razvojem ovog standarda proizvođačima navedene opreme omogućeno je da na uniforman i standardizirani način omoguće upravljanje svojim proizvodima. DMI je jedino rješenje koje je optimirano za rad s današnjim računalima.

2. Web-based Enterprise Management (WBEM): WBEM je tehnologija koja omogućuje jednostavnu razmjenu podataka o upravljivim računalnim sustavima. DTMF je razvio temeljni skup standarda koji sadrže podatkovni model, kodnu specifikacije te transportni model. WBEM se na najjednostavniji način može opisati kao skup standardiziranih apstrakcijskih slojeva koji skrivaju kompleksnost pristupu informacijama za upravljanje. WMI sustav opisan u nastavku dokumenta implementira upravo WBEM.

3. Common Information Model (CIM) je općeniti model za opis podataka o upravljivim komponentama sustava (servisi, aplikacije, računala i sl.), neovisan o platformi i tehnologiji koja se koristi. CIM sadrži specifikaciju i podatkovnu shemu. Specifikacija definira detalje integracije s drugim modelima za upravljanje (npr. SNMP, MIB, CMIP…), dok podatkovna shema opisuje potrebne podatkovne modele. Kako WMI intenzivno koristi CIM o njemu će više riječi biti u nastavku dokumenta.

4. Directory Enabled Networks (DEN): DEN specifikacija je dizajnirana tako da omogući ostvarivanje inteligentnijih računalnih mreža logičkim povezivanjem mrežnih servisa s korisnicima i poslovnim kriterijima. DEN specificira općeniti podatkovni model koji može koristiti brojne tehnologije od CIM-a do X.500

Page 17: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 13 od 66

Ovakva osebujnost stvara temelje za kreiranje predložaka za razmjenu informacija i omogućuje dobavljačima hardverske i softverske opreme međusobnu razmjenu definicija uređaja, aplikacija i servisa. DEN također dopušta interoperabilnost s rješenjima temeljenim na WBEM-u.

Ovo su samo neke od važnijih inicijativa koje ujedno pružaju uvid u temelje na kojima počiva WMI. Jedan od osnovnih razloga nastajanja ovih inicijativa je stvaranje unificiranog okruženja za upravljanje računalnim sustavima. Računalne mreže sadrže brojne komponente (embedded uređaje, računala, periferiju, itd.), kojima je potrebno upravljati na različite načine. Iako se računala različitih proizvođača bitno razlikuju, općenito gledajući, sva ona imaju slične karakteristike. Primjerice, svako računalo ima mrežnu karticu, tvrdi disk, radnu memoriju, procesor itd. Na sličan način moguće je raščlaniti i različite operacijske sustave.

Svim navedenim objektima, odnosno entitetima, različito se i upravlja. Tijekom godina mnogo je truda uloženo u tehnologije koje omogućuju dohvaćanje informacija za upravljanje, kao što su npr. Simple Network Management Protocol (SNMP), Desktop Management Information (DMI) i Common Management Information Protocol (CMIP). Zbog velike količine informacija kojima je potrebno upravljati unutar modernih računalnih sustava, potrebno je bilo osmisliti rješenje koje će se moći nositi sa svim novim tehnologijama, a WMI je jedna od implementacija koja se najviše približila tom cilju.

4.2. Norma za dohvaćanje podataka

Još od 1996. godine cilj je bio osmisliti standard koji će definirati kako se može upravljati s pojedinim entitetima i omogućiti voditeljima projekata jednostavan no ipak moćan način za ispunjavanje njihovih potreba za dobavljanjem informacija, bez da pri tome moraju detaljno poznavati specifikacije pojedinih uređaja. Jedna od DMTF inicijativa je upravo i WBEM (engl. Web-Based Enterprise Management).

WBEM predstavlja skup upravljačkih i Internet standarda koji nisu samo novi oblik dohvaćanja podataka (npr. HTTP protokolom), već i pružaju način reprezentacije entiteta čije su nam informacije potrebne, te njihovih karakteristika (CIM). WBEM se ukratko može definirati kao skup standarda koji definiraju apstraktne slojeve koji skrivaju kompleksnost pristupa informacijama pojedinog entiteta.

4.3. Informacijski model dohvatljivih podataka

CIM (engl. Common Information Model) model ključan je u opisu svih elemenata vezanih uz računala i na hardverskoj i softverskoj razini. DMTF je shvatila da različiti proizvođači hardvera ili/i softvera za identične stvari koriste različite nazive te je s ciljem uklanjanja tih razlika odlučila stvoriti CIM. Sve komponente kojima je potrebno upravljati u tipičnom informacijskom okruženju (računala, tvrdi diskovi, procesori, memorija, pisači ...) predstavljeni su objektima. Svaki takav objekt enkapsulira skup informacija koje je moguće predstaviti u podatkovnom modelu. Kako bi se realizirao jedan takav podatkovni model WBEM inicijativa uključuje CIM standard. CIM je konceptualni informacijski model koji opisuje informacije pojedinog entiteta te nije ovisan o načinu implementacije softverske ili hardverske komponente.

Na primjer, tvrdi disk jednog proizvođača može se opisati karakterističnim modelom koji je zajednički tvrdom disku bilo kojega drugog proizvođača. Čak i kada diskovi međusobno nisu isti, svim diskovima je zajedničko da imaju određeni kapacitet, brzinu pristupa, latenciju, broj cilindara i sl. Ako pojedine komponente imaju određene specifičnosti, i dalje postoji skup parametara koji su zajednički svim komponentama iste vrste. Pomnim razmatranjem i raščlanjivanjem upravljivih entiteta moguće je stvoriti cjelovit model koji opisuje svaku njihovu karakteristiku; upravo takav podatkovni model implementiran je u sklopu CIM-a.

Page 18: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 14 od 66

U CIM-u su definirane brojne osnovne klase (eng. base classes) koje opisuju entitete kao što su tvrdi diskovi, procesori, matične ploče i sl. Primjerice, osnovna klasa CIM_DiskDrive uključuje MaxBlockSize i mnoga druga svojstva, no ne uključuje svojstva poput datotečnog sustava budući da su ona specifična za pojedini operacijski sustav. Ova svojstva nisu uključena u CIM model, no budući da je CIM model proširiv, Microsoft je prilikom kreiranja WMI-a stvorio skup Win32 klasa koje su specifične upravo za Windows operacijski sustav. Sve klase iz Win32 skupa su, ili temeljene na, ili naslijeđene iz skupa CIM klasa. Vraćajući se na primjer s tvrdim diskovima, Microsoftova implementacija CIM-a, odnosno WMI, uključuje razred Win32_DiskDrives, on nasljeđuje sva svojstva CIM_DiskDrive razreda no dodaje i neka nova svojstva, kao što je primjerice PNPDeviceID i koja su specifična za sam operacijski sustav.

Veći dio WMI-a čine upravo ovi razredi koji definiraju informacije o hardveru i softveru jednog računala. Jedno računalo primjerice može imati jedan tvrdi disk te sukladno tome imat će i jednu instancu klase Win32_DiskDrives. Računalo koje je korištenu u svrhu izrade

ovog rada sadrži tri instance Win32_DiskDrives razreda, što znači da računalo posjeduje tri tvrda diska.

Primjer dohvaćanja podataka o tvrdim diskovima uporabom WSH-a i skripte pisane u JScript jeziku prikazan je na slici 4.1.

Slika 4.1: Primjer dohvaćanja podataka putem WMI-a

U navedenom primjeru korišten je JScript (iako je moguće koristiti i VBScript jezik) te je za njegovo potpuno razumijevanje poželjno poznavanje osnova JScripta i WSH-a (engl. Windows Scripting Host). Također, navedeni primjer je samo ilustrativne prirode, a opis ključnih komponenata potrebnih za interakciju s WMI-jem biti će pojašnjen u poglavljima koja slijede.

Izvršavanje skripte odvija se pozivom cscript.exe programa:

Cscript DiskInfo.js

//diskinfo.js

var SWBemlocator;

try {

strComputer = ".";

SWBemlocator = new ActiveXObject("WbemScripting.SWbemLocator");

objWMIService=SWBemlocator.ConnectServer(strComputer,"/root/CIMV2"); colItems = objWMIService.ExecQuery("Select * from Win32_DiskDrive");

propEnum = new Enumerator(colItems);

for (;!propEnum.atEnd();propEnum.moveNext()) {

objItem = propEnum.item();

WScript.Echo("BytesPerSector: " + objItem.BytesPerSector);

WScript.Echo("Model: " + objItem.Model);

WScript.Echo("Name: " + objItem.Name);

WScript.Echo("Partitions: " + objItem.Partitions);

WScript.Echo("Size: " + objItem.Size);

}

}

catch(e) {

WScript.Echo("catch caught " + e.number + " " + e.description);

}

Page 19: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 15 od 66

Rezultat izvršavanja skripte je sljedeći:

Microsoft (R) Windows Script Host Version 5.6

Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

BytesPerSector: 512

Model: IBM-DTLA-305020

Name: \\.\PHYSICALDRIVE0

Partitions: 2

Size: 20571425280

BytesPerSector: 512

Model: Maxtor 6Y080L0

Name: \\.\PHYSICALDRIVE1

Partitions: 1

Size: 81956689920

BytesPerSector: 512

Model: AVIXE PDU02_512 2.0 USB Device

Name: \\.\PHYSICALDRIVE2

Partitions: 1

Size: 501742080

Exit code: 0 , 0000h

Slika 4.2: Rezultat izvršene skripte

WMI je od samog početka zamišljen tako da radi s višestrukim instancama klasa, iako to u određenim situacijama i nema smisla (npr. računala s dvije matične ploče vrlo su rijetka), no ideja je WMI implementaciju načiniti što fleksibilnijom, a uporabom ovakve logike dizajnerima to i uspijeva.

Nedostatak postojanja višestrukih instanci je relativna kompleksnost upita, odnosno dobivenih informacija. Dobar primjer za ovo je otkrivanje IP adresa računala, kako bi se doznala IP adresa potrebno je točno znati za koji adapter postaviti upit jer Windows okruženja sadrže brojne adaptere (ne samo fizička Ethernet sučelja), a ovdje se čak ni ne misli na virtualni loopback adapter ili virtualne WAN adaptere. Na ovo treba obratiti pozornost prilikom kreiranja upita, odnosno pisanja skripti.

Poglavlje koje slijedi opisat će CIM; CIM se dijeli na dva dijela, CIM specifikaciju i CIM shemu.

4.3.1. Specifikacija informacijskog modela dohvatljivih podataka

CIM specifikacija definira podatkovni model u CIM standardu. Ona opisuje način na koji je podatkovni model kodiran (npr. kako je opisan objekt koji predstavlja tvrdi disk), uporabom MOF (engl. Managed Object Format) ili xmlCIM (engl. eXtensible Markup Language CIM) formata. MOF datoteka je ASCII kodirana i koristi posebno definiranu sintaksu za opis CIM definicija, a xmlCIM kodiranje definira XML elemente koji se koriste za definiciju objekata. Prednost XML strukture je u otvorenosti standarda, što omogućuje uporabu CIM-a između međusobno različitih sustava. Također, CIM specifikacija omogućuje i tehnike pristupa drugim upravljačkim modelima kao što su SNMP (Simple Network Management Protocol), DMI (Desktop Management Interface) ili CMIP (Common Management Information Protocol).

Nadalje, CIM definira još jednu iznimno važnu stvar, a to je tzv. metashema. Metashema je formalna definicija podatkovnog modela. Kako CIM predstavlja brojne međusobno ponekad potpuno različite komponente kao što su diskovi, softver i procesi, podatkovnom modelu je potrebna strogo definirana struktura kako bi se uspješno predstavili ovakvi različiti objekti. Za implementaciju podatkovnog modela stoga je nužno koristiti neke osnovne gradivne elemente, koji pomažu u definiranju prirode entiteta. Primjer entiteta disk i ovdje će

Page 20: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 16 od 66

dobro poslužiti, disk kao takav je različit od matične ploče ili procesa, te je stoga on definiran razredom (engl. class) (vidi prije CIM_DiskDrive). Disk ima također i već navedena svojstva (engl. properties) koje predstavljaju drugi stupanj u CIM hijerarhiji. U objašnjenju trećeg stupnja – postupaka, dobar je primjer grafička kartica (razred) koja posjeduje neku rezoluciju (svojstvo) i koju je moguće nekakvom akcijom promijeniti, upravo ta akcija predstavlja postupak (engl. method) i definira treću razinu CIM hijerarhije.

4.3.2. Shema informacijskog modela dohvatljivih podataka

CIM shema je ključna komponenta podatkovnog modela koja predstavlja skup objekata različite povezanosti i može se shvatiti kao nacrt koji definira gradivne elemente pri upravljanju s računalima i pripadajućim softverom. CIM objektni model čini opis objekata koji se mogu naći u stvarnom svijetu, CIM shema koristi objektnu terminologiju u definiranju elemenata sadržanih u objektnom modelu. Slijedi sažeti opis ključnih elemenata (proširenje metasheme):

� Razred (engl. class) – opisuje ključne karakteristike objekta, zajedničke nekom skupu koji pripada istom razredu.

� Podrazred (engl. subclass, superclass, parent class ) – je naslijeđen iz osnovnog razreda i proširuje skup svojstava. Tako je primjerice moguće imati razred medij koji je prilično općenit dok bi podrazredi u ovom slučaju bili CD/DDV-ROM, floppy, DAT trake itd.

� Instanca (engl. instance) – objekt poput diska je instanca nekog razreda, razred je samo opis objekta i jedinstven je, dok je instanca ustvari pravi objekt sa svojstvima opisanim u razredu. Razred je samo jedan, dok instanci u teoriji može biti beskonačno.

� Svojstva (engl. properties) – su atributi stvarnog objekta. Svojstva diska su primjerice veličina, broj cilindara, vrijeme pristupa i sl. Svojstva su definirana već u razredima, kada se objekt instancira u njegov memorijski prostor se spremaju i vrijednost koja čine njegova svojstva.

� Veze (engl. relationships) – se koriste kako bi naznačili nužnu vezu između objekata u CIM shemi. Dobar primjer veze je particija koja ne može postojati bez tvrdog diska. Naravno, ovo je samo jedan primjer veze, u praksi ih postoji mnogo više.

Dani prikaz jasno ukazuje na usku povezanost s objektno orijentiranom paradigmom te se shodno tome i pri modeliranju objekata koristi UML.

4.3.3. Struktura CIM sheme

CIM shemu grade dva usko povezana modela, temeljni model (engl. core model) i općeniti model (engl. common model). Kako CIM model hijerarhijski definira najprije najopćenitije, a zatim sve složenije entitete, ova podjela je logična. Temeljni model se nadograđuje dodatnim modelima i tako čini cjeloviti CIM model. Svaka nova inačica CIM-a dodaje nove modele, trenutno aktivna verzija je 2.9, no bez obzira na proširenja, struktura klasa je uvijek podijeljena na tri razine:

1. Klase i pripadajući objekti koji odgovaraju svim područjima upravljanja. Ove klase pružaju osnovni rječnik za analizu i upravljanje sustavima. One su dio temeljnog modela .

2. Klase koje odgovaraju specifičnim područjima, ali su neovisne o implementaciji ili tehnologiji. Ove klase su dio općenitog modela. Područja upravljanja koja spadaju u općeniti model su: System, Application, Physical,

Page 21: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 17 od 66

Device, Network, Metric, Supports, i User. Primjeri ovih klasa su: CIM_LogicalDevice i CIM_MediaAccessDevice

3. Tehnološki i implementacijski specifične klase koje su dodatak općenitom modelu. Ovi razredi općenito odgovaraju specifičnim platformama kao što su Linux ili Windows platforme. Primjer ovih klasa su Win32_CDROMDrive i Win32_FloppyDrive koje predstavljaju CD ROM i floppy pogon u Windows okruženju.

Slika 4.3. prikazuje logičku prezentaciju CIM strukture, u centru je prikazan temeljni model s općenitim modelima oko njega, koji predstavljaju dodatke (engl. extension schema) i na kraju su tu implementacijski specifični dodaci koji u ovakvom sklopu čine WMI.

Slika 4.3: Struktura Common Information modela i Windows Management Instrumentation modela

TEMELJNI MODEL

MODEL SUSTAVA

FIZIČKI MODEL

MREŽNI MODEL

DRUGI MODELI

APLIKACIJSKI MODEL

MODEL UREĐAJA

WMI

Page 22: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 18 od 66

5. Sustav za nadzor računalnog sustava

U prijašnjem poglavlju detaljno je opisana osnovna tehnologija na kojoj se temelji WMI. U nastavku će biti više riječi o građi WMI-a, odnosno načinu na koji je proširena CIM specifikacija, te kako se WMI u praksi može upotrijebiti za dohvaćanje i upravljanje mnogobrojnim aspektima tipičnog korporativnog Windows okruženja. WMI je dizajniran kao ekstenzija CIM općenitog modela i sadrži set servisa koji između ostalog uključuju podršku za postavljanje upita jezikom vrlo sličnim SQL-u (WQL) te dostavu obavijesti o događajima koji su izuzetno važni u .NET okuženju. Dodatno, WMI podržava COM (eng. Component Object Model) programsko sučelje na visokoj razini apstrakcije, što omogućuje jednostavan pristup WMI servisima te upravljanje pripadajućim podacima.

5.1. WMI arhitektura

Ova Microsoftova tehnologija zamišljena je kao troslojna arhitektura prikazana na slici 5.1 Na vrhu arhitekture nalaze se aplikacije za upravljanje (engl. management applications), koje su usko povezane s WMI COM API-jem i koji sadrži kolekciju COM objekata koji aktivno koriste .NET/win32 (C#, C++, Visual Basic) i skriptni programski jezici (JScript, VBScript). Drugi sloj sadrži Common Information Model Object Manager komponentu, čija je uloga interakcija s aplikacijama (engl. consumer application), CIM skladištem (engl. CIM repository) i WMI dobavljačima (engl. WMI providers), koji zajedno s upravljivim objektima čine treći sloj WMI arhitekture.

Slika 5.1: WMI arhitektura

5.1.1. Dobavljači i potrošači

Još jedan par termina koji se često susreće u WMI svijetu jesu dobavljači i potrošači (engl. providers and consumers) Potrošač je aplikacija koja koristi WMI kako bi, ili dohvatila, ili promijenila određenu informaciju iz CIM repozitorija. Primjer potrošača je bilo koja WMI skripta. Dobavljači su pak one aplikacije koje WMI informacije čine dostupnima. Windows sustav dolazi s određenim brojem dobavljača koji omogućuju dostupnost informacija o

Page 23: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 19 od 66

hardveru, softveru i performansama kroz WMI. Aplikacije drugih proizvođača mogu biti WMI dobavljači, što znači da je tim aplikacijama moguće upravljati kroz WMI. Činjenica da su ovi dobavljači duboko integrirani u Windows operacijskom sustavu prikriva pravu moć i fleksibilnost WMI-a. Preciznije rečeno, WMI nije integralni dio Windowsa, već je skup dodatnih servisa koji se pokreću ovisno o potrebi (wmiprvse.exe), a moguće ih je i potpuno onemogućiti putem Computer Management konzole.

Jedna od prednosti WMI-a je što donosi mogućnost obavljanja raznih zadataka uporabom skripti koje omogućuju nadgledanje cijelog sustava i procesa koji se odvijaju u njemu. Ovo znači kako jednostavnije i brže izvršavanje administrativne poslove njihovom automatizacijom. Još je jedna bitna činjenica koja WMI čini tako moćnim rješenjem, a to je njegova otvorenost i proširivost, te bilo tko može napisati provider aplikaciju koja ju otvara za uporabu u skriptama.

5.1.2. WMI skladište

WMI skladište (moguće ga je naći i pod imenom CIM skladište) je baza podataka u koju WMI pohranjuje informacije sukladno CIM podatkovnom modelu. U tipičnom Windows sustavu WMI skladište pohranjeno je u \%SystemRoot%\System32\WBEM\Repository

direktoriju. Niti jedna aplikacija direktno ne pristupa skladištu, već se pristup podacima uvijek odvija putem CIM Object Managera. WMI skladište se pohranjuje u .rec datoteku svakih pola sata, što je ujedno i podrazumijevana vrijednost. Ostale podrazumijevane vrijednosti moguće je mijenjati putem Computer Management konzole. (Slika 5.2). CIM skladište se inicijalizira iz različitih MOF datoteka (locirane u \%SystemRoot%\System32\WBEM direktoriju) tijekom procesa instalacije. Ukoliko iz nekog razloga dođe do oštećenja CIM baze ona se reinicijalizira koristeći MOF datoteke čije su lokacije pohranjene u registry ključu HKLM\SOFTWARE\Microsoft\WBEM\CIMOM\Autorecover MOFs. Ukoliko tijekom vremena bilo koja druga aplikacija proširi mogućnosti CIM repozitorija, potrebno je provjeriti jesu li i njezine datoteke sadržane u Windows registry-u. Ukoliko to nije slučaj u reinicijaliziranu bazu ove datoteke neće biti uključene. CIM skladište može se i ručno rekompajlirati uporabom MOF compilera (MOFCOMP.EXE) uključenog u svaku WMI instalaciju.

Slika 5.2: Do opcija CIM repozitorija dolazi se desnim klikom miša na WMI control i izborom Properties

Page 24: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 20 od 66

5.2. WMI u praksi

Možda najbolji način da se u potpunosti shvati WMI je primjena u praksi. Mnogi su načini kako se WMI može koristiti, a također su brojni i alati koji u tome pomažu. U poglavlju koje slijedi opisani su najzanimljiviji alati i načini njihova korištenja, a također će biti kratko predstavljen WQL (engl. WMI Query Language) i WSH kako bi se uspješno shvatili primjeri opisani u poglavljima koji slijede.

5.2.1. Instalacija

WMI je sastavni dio instalacije Windows operacijskog sustava od verzije 2000 nadalje. Za uporabu sa starijim inačicama Windows operacijskog sustava, WMI je potrebno posebno instalirati. WMI je potrebno instalirati na svako računalo u mreži s kojim se želi upravljati. Instalacija WMI-a za starije operacijske sustave može se dohvatiti s adrese http://www.microsoft.com/ downloads/details.aspx?FamilyID=afe41f46-e213-4cbf-9c5b-fbf236e0e875&DisplayLang=en.

5.2.2. Wbemtest i WQL

Prva aplikacija koja je opisana je wbemtest, koja dolazi sa svakom instalacijom Windows XP i Windows Server 2003 operacijskog sustava, a cilj joj je testiranje funkcionalnost WMI-a i istraživanje njegovih mogućnosti. wbemtest aplikaciju moguće je pokrenuti putem Start -> Run izbornika. Slika 5.3 prikazuje sučelje Windows Management Instrumentation Tester programa nakon pokretanja.

Prvi korak koji je potrebno učiniti kako bi se započela interakcija s WMI-em je povezivanje s WMI dobavljačem. Općenito, ovo znači povezivanje na Windows Management Instrumentation servis pokrenut na lokalnom ili nekom drugom računalu u mreži. Kao primjer je pokazano povezivanje na udaljeno računalo, jer upravo ova mogućnost WMI čini vrlo moćnom tehnologijom. Povezivanje se inicira pritiskom na gumb Connect što je prikazano na slici 5.4. U testne svrhe pokrenuta je testna domena u VMware okruženju s Windows Server 2003 i Windows XP računalima. Ime domene je wmi.test, a povezivanje je ostvareno s Windows Server 2003 računala (poslužitelj) na klijentsko računalo wmi-client s Windows XP Pro operacijskim sustavom. Ista konfiguracija koristit će se prilikom analize ostalih alata i skriptnih tehnika.

Slika 5.3: Sučelje programa wbemtest.exe tik nakon pokretanja

Za povezivanje na računalo dovoljno je upisati \\IME_RACUNALA\root\cimv2, gdje je:

IME_RACUNALA - ime računala s kojim se povezuje (u ovom slučaju wmi-client),

Page 25: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 21 od 66

\root - korijenski imenski prostor WMI-a,

\cimv2 - CIMv2 imenski prostor koji sadrži sve Win32 razrede s kojima će korisnici najviše raditi.

Ukoliko se spajanje i postavljanje upita odvija uz administratorske privilegije na poslužitelju, nije potrebno unijeti korisničko ime i zaporku. U drugim slučajevima potrebno se prijaviti kao korisnik koji ima lokalne administratorske privilegije. Pritiskom na gumb Connect započinje proces spajanja.

Slika 5.4: Spajanje na WMI provider udaljenog klijenta

Nakon uspješnog spajanja na udaljeno računalo svi gumbi u IWbemServices kolekciji glavnog sučelja postaju omogućeni. Prije postavljanja bilo kakvih upita preporučljivo je izvršiti "enumeraciju" razreda pritiskom na gumb Enum Classes kako bi se ostvario pristup svim raspoloživim klasama. Tijekom procesa enumeracije pojavit će se upit o superclass imenu. Ovo polje je potrebno ostaviti prazno te označiti opciju Recursive, kako bi se dobio popis svih objekata. U dijaloškom okviru koje se zatim pojavljuje prikazuju se svi razredi u CIM i Win32 imenskom prostoru kojima korisnik ima pristup.

Sljedeći zadatak, koji ujedno demonstrira velike mogućnosti WMI-a, je dohvaćanje informacija kreiranjem jednostavnih upita. WMI podržava poseban jezik WQL (engl. WMI Query Language), vrlo sličan SQL-u. U svrhu primjera pokazan je postupak dohvaćanja informacije o procesima koji se izvršavaju na udaljenom računalu. Upiti se postavljaju pritiskom na gumb Query. U novo otvorenom prozoru potrebno je upisati slijedeći izraz:

SELECT * FROM Win32_Process

te pritisnuti na gumb Apply. Ovaj upit dohvatit će sva svojstva instance razreda Win32_Process i prikazati ih u Query Result prozoru (Slika 5.5).

Page 26: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 22 od 66

Slika 5.5: Postavljanje upita i ispis dohvaćenih informacija

Budući da je u primjeru korišten znak zvjezdice, u postavljenom upitu, dobivena su svojstva do kojih je moguće doći dvostrukim klikom na pojedinu instancu Win32_process razreda. Neka to primjerice bude proces s 3676 PID brojem. Otvorit će se novi prozor u kojem je moguće vidjeti sva svojstva izabranog procesa. S desne strane sučelja pružaju se dodatne mogućnosti, među kojima je najzanimljivija ona pod imenom Class, koja će popuniti prozor s metodama. Na ovaj način moguće je jednostavno vidjeti koje metode je moguće primijeniti u skriptama (primjerice moguće je stvoriti novi proces ili prekinuti izvršavanje izabranog); nakon izbora Class novi prozor omogućuje uvid u klasu roditelja. Prijašnji gumb Class sada je postao Superclass, a njegovim izborom moguće je vidjeti informacije o razredu iz kojega je izveden razred Win32_Process. Gumb Derived prikazuje klase koje su izvedene iz klase Win32_Process (u ovom slučaju ni jedna), a Instances ponovno prikazuje sve instance Win32_Process razreda.

Slika 5.6: Prikaz svojstava i postupaka za izabranu instancu Win32_Process razreda

Page 27: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 23 od 66

Wbemtest je odličan alat za testiranje WQL upita prije uključivanja u produkcijske skripte, jer omogućuje izravan uvid u informacije koje pojedini upit dohvaća. WQL upiti su relativno jednostavni i nužno ih je poznavati za bilo koji aspekt uporabe WMI-a. Iz tog razloga će WQL jezik biti detaljnije opisan u nastavku dokumenta.

WQL sintaksa ima jednostavan oblik koji se sastoji od slijedećih elemenata:

1. SELECT – svaka WQL naredba mora započeti ovom ključnom riječju, nakon čega je moguće navesti točno određena svojstva odvojena zagradom, ili se može navesti znak zvjezdice (*) što znači dohvat svih svojstava,

2. FROM – razred u kojemu su definirana svojstva koja se dohvaćaju,

3. WHERE – ključna riječ koju je moguće opcionalno uključiti za preciznije definiranje upita.

Jednostavan primjer opisane sintakse je sljedeći izraz:

SELECT * FROM Win32_Process WHERE Name="emule.exe"

Navedeni izraz omogućit će dohvat svih svojstava instance razreda Win32_Process, čije je ime emule.exe. Za razliku od SQL jezika, koji ima na stotine ključnih riječi, WQL ih ima samo 20 te je izuzetno jednostavan za uporabu. Iako postoje i drugi načini kako dohvatiti informacije iz WMI skladišta, najjednostavnije je upravo korištenjem WQL upita. Navedeni primjer može se proširiti još i Booleovim operatorima, operatorima usporedbe i ključnom riječju LIKE. Oni se dodaju nakon ključne riječi WHERE.

Dva su booleova operatora koja se koriste u WQL jeziku, AND i OR. Primjer:

SELECT * FROM Win32_LogicalDisk WHERE (DriveType = 2) OR

(DriveType = 3 AND FreeSpace < 1000000)

Operatori usporedbe. Osnovni operatori usporedbe su =, >, <, >=, <=, <> ili !=, operator jednakosti, veće od, manje od, veće jednako, manje jednako, i nejednakosti respektivno. Kada se koristi usporedba s NULL vrijednošću tada se ne koriste operatori jednakosti ili nejednakosti već ključne riječi IS i IS NOT.

Primjer:

SELECT * FROM Win32_LogicalDisk WHERE FileSystem IS NOT NULL

LIKE ključna riječ određuje poklapa li se dohvaćeni niz znakova s određenim uzorkom. Npr. sljedeći upit vraća sve instance Win32 klasa.

SELECT * FROM Meta_Class WHERE __Class LIKE "Win32"

Naravno, ovo su samo primjeri koji imaju široku primjenu i koji zadovoljavaju potrebe ovog dokumenta, za sve ostale preporuča se pogledati msdn referenca na sljedećoj adresi: http://msdn.microsoft.com/library/en-us/wmisdk/wmi/wql_sql_for_wmi.asp

Tablica 5.1: ključne riječi WQ jezika

WQL � ključne riječi __CLASS ASSOCIATORS

OF

HAVING REFERENCES OF GROUP

AND BY FALSE TRUE SELECT

OR WITHIN LIKE ISA IS

NOT NULL WHERE FROM KEYSONLY

Page 28: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 24 od 66

5.2.3. WMI Administrative Tools

WMI Administrative Tools paket skup je dodatnih alata za testiranje WMI komponenti i mogućnosti. Predviđen je za rad s operacijskim sustavima Windows generacije 2000 i više a može se dohvatiti s adrese:

http://www.microsoft.com/downloads/release.asp?ReleaseID=40804.

Alati koji se nalaze u paketu su slijedeći:

• WMI CIM Studio – omogućuje pregled i uređivanje razreda, svojstava i instanci u WMI skladištu, izvršavanje metoda te generiranje i prevođenje MOF datoteka.

• WMI Object Browser – omogućuje pregled objekata, uređivanje vrijednosti svojstava i izvršavanje metoda pojedinog objekta

• WMI Event Registration Tool – dopušta podešavanje potrošača događaja (eng. event consumer), stvaranje ili pregled instanci filter, binding i timer razreda

• WMI Event Viewer – prikazuje događaje svih instanci ili registriranih potrošača

Svi navedeni alati temelje se na ActiveX komponentama i prikazuju se u Internet Explorer Web pregledniku. U nastavku su opisani WMI CIM Studio i WMI object browser.

WMI CIM Studio je svojevrsna zamjena alata wbemtest, koja podržava pregled klasa u svakom imenskom prostoru te detaljan uvid u svojstva, metode i veze svakog razreda. Asocijacija (eng. associations) predstavlja odnos između dva ili više objekata, te definicija kaže da je razred asocijativan ukoliko sadrži dvije ili više reference na druge razrede. Navedeni primjer prikazan je na Slici 5.7. CIM_Setting je asocijativna klasa i sadrži reference na CIM_LogicalDevice, CIM_Configuration itd. Prilikom prvog pokretanja potrebno je navesti imenski prostor kojim se želi upravljati, a na raspolaganju je standardni skup.

Tablica 5.2: standardni skup imenskih prostora

Imenski prostori root/SECURITY root/Microsoft/HomeNet

root/SecurityCenter root/DEFAULT

root/WMI root/DEFAULT/ms_409

root/WMI/ms_409 root/directory

root/CIMV2 root/directory/LDAP

root/CIMV2/ms_409 root/directory/LDAP/ms_409

root/CIMV2/Applications root/subscription

root/CIMV2/Applications/MicrosoftACT root/subscription/ms_409

root/CIMV2/Applications/MicrosoftIE root/MSAPPS11

root/Microsoft root/Cli

Ovaj skup različit je od računala do računala, te se do liste podkorijenskih imenskih prostora dolazi pritiskom na gumb Browse For Namespace u desnom gornjem dijelu sučelja i upisom traženih informacija u otvoreni dijalog. Za Machine Name se upisuje ime računala do čijeg se imenskog prostora želi doći, a za Starting Namespace potrebno je opisati root. Pritiskom na gumb Connect, u okviru niže, dobiva se popis dostupnih imenskih prostora.

Sučelje WMI CIM studija je pregledno, desna strana sadrži popis svih razreda pojedinog imenskog prostora, a odabirom pojedinog razreda ili podrazreda, na lijevoj strani moguće je vidjeti pripadajuća svojstva. WMI CIM studio predviđen je i za testiranje WQL upita. Izborom drugog gumba s lijeve strane, u novootvorenom izborniku moguće je izvršavati WQL upite.

Page 29: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 25 od 66

Slika 5.7: Sučelje WMI CIM studia

WMI Object Browser – nakon pokretanja WMI Object Browsera te spajanja na root/CIMV2 imenski prostor (lokalno ili udaljeno) moguće je vidjeti popis svih razreda čije instance su aktivne na računalu/računalima s kojima je ostvarena veza. Ovo je bitna razlika između WMI CIM studia, budući da je ovdje ostvaren pristup "korisnim" klasama, a ne cijelom skupu. WMI Object Browser se povezuje na Win32_ComputerSystem razred koji predstavlja model fizičkog računala i sadrži sve informacije vezane uz taj razred. Sučelje je jednako onome WMI CIM studia. Nakon izbora određene instance razreda (desni dio sučelja), primjerice procesa s 3676 PID brojem iz Win32_SystemProcesses skupa, na lijevoj strani moguće je vidjeti sva svojstva i još važnije, pripadajuće metode koje je moguće izvršavati. Za navedeni primjer ti postupci su AttachDebugger, Create, GetOwner, GetOwnerSID, SetPriority, i Terminate, a izvršiti ih je moguće odabirom kartice Method odabirom željene metode te iz kontekstnog izbornika odabirom opcije Execute Method (Slika 5.8).

Slika 5.8: Izvršavanje odabranog postupka

Page 30: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 26 od 66

Slika 5.9: Sučelje WMI Object Browsera pri radu sa svojstvima odabranog procesa

Ovisno o odabranom razredu različit je i popis metoda koje je moguće izvršavati, a upravo ovakav način prikaza informacija bitno pomaže pri izradi vlastitih skripti. Najvažniji korak u procesu pisanja skripti je određivanje informacija koje se žele dohvatiti i što je moguće učiniti s pripadajućim objektima. Object Browser upravo ovaj korak, proces odluke koji su objekti potrebni i što se s njima želi radit, znatno olakšava svojim jednostavnim i preglednim prikazom razreda, svojstava i metoda.

Page 31: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 27 od 66

6. Sustav za nadzor kao temelj upravljanja računalnom sigurnošću

6.1. Alat WMIC

WMIC je izuzetno moćan alat koji se pokreće putem naredbenog retka, dizajniran kako bi olakšao dohvaćanje WMI informacija. Način na koji to postiže je uporaba tzv. aliasa – jednostavnih komandi koje iza sebe skrivaju konkretne WMI (WQL) upite. Zbog jednostavnosti uporabe i robusnosti može se koristiti na brojne načine i u brojne svrhe, a neki aspekti uporabe ovoga alata biti će obrađeni u ovom poglavlju.

Windows Management Instrumentation Console se pokreće upisivanjem wmic naredbe u konzolu. Prilikom prvog pokretanja sustav će instalirati potrebnu podršku i ući u interaktivni način rada prikazujući u naredbenom retku slijedeće:

Microsoft Windows XP [Version 5.1.2600]

(C) Copyright 1985-2001 Microsoft Corp.

C:\>wmic

wmic:root\cli>

Slika 6.1: Wmic alat u naredbenom retku

Interaktivni način rada omogućuje neprekidan rad s WMI-jem odnosno upis slijeda naredbi bez potrebe za novom inicijalizacijom WMI providera (eng. console mode). Za izlaz iz interaktivnog načina rada potrebno je upisati naredbu exit ili quit. Ukoliko se wmic klijentu pri samom pokretanju doda željena naredba, ona će se izvršiti, ali program neće ući u interaktivni rad već će prekinuti s radom. Program wmic dostupan je samo na Windows XP/Server 2003/Vista sustavima, i nije ga moguće uključiti ili instalirati na starijim inačicama Windows operacijskih sustava.

WMIC klijentom moguće je upravljati pomoću nekoliko naredbi te konfiguracijskih prekidača (navedene naredbe i popis svih aliasa prikazan je u tablici 6.1. Do ovih informacija moguće je doći zadavanjem naredbe /?. U interaktivnom načinu rada dovoljno je upisati ovu naredbu za popis svih podržanih naredbi i aliasa, a za detalje o pojedinoj naredbi ili aliasu dovoljno je upisati odgovarajuće ime i znak /? (npr. /node /?). Popis navedenih naredbi i aliasa dan je u sljedećim tablicama.

Tablica 6.1: globalni prekidači u WMIC okruženju

/NAMESPACE Path for the namespace the alias operates against /ROLE Path for the role containing the alias definitions /NODE Servers the alias will operate against /IMPLEVEL Client impersonation level /AUTHLEVEL Client authentication level /LOCALE Language ID the client should use /PRIVILEGES Enables or disables all privileges /TRACE Outputs debugging information to stderr /RECORD Logs all input commands and output /INTERACTIVE Sets or resets the interactive mode /USER User to be used during the session /PASSWORD Password to be used for session login /?[:<BRIEF|FULL> Usage information

Page 32: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 28 od 66

Tablica 6.2: Podržani ALIAS-i u WMIC-u

BASEBOARD Provides access to the baseboard (also known as a motherboard or system board)

BIOS Provides access to the attributes of the computer system's basic input/output services (BIOS) that are installed on the computer

BOOTCONFIG Provides access to the boot configuration of a system CDROM Provides access to the CD&ROM drives on a computer system COMPUTERSYSTEM Provides access to the computer system operating in a user environment CSPRODUCT Corresponds to software and hardware products used on a computer

system DEVICEMEMORYADDRESS Provides access to the device memory addresses on a system DIRECTORY Provides access to the directory entries on a computer system DISKDRIVE Describes a physical disk drive as seen by a computer DMACHANNEL Provides information on the direct memory access (DMA) channel on a

computer system DRIVERVXD Provides access to the virtual device driver/s on a computer system ENVIRONMENT Provides access to the system environment settings on a computer

system. GROUP Provides access to data about a group account IRQRESOURCE Provides access to the interrupt request line (IRQ) number on a

computer system LOADORDER Provides access to the group of system services that define execution

dependencies LOGICALDISK Provides access to the data source that resolves to an actual local

storage device on a system LOGICALMEMORY Allows access to the configuration layout and examination of the

availabe memory on a system NETADAPTER Provides access to the network adapters installed on a system NETADAPTERCONFIG Provides access to and allows changing the attributes and behaviors of a

network adapter NETCONNECTION Provides access to the active network connection in an environment NETLOGIN Provides access to the network login information of a particular user on

a system NETPROTOCOL Provides access to the protocols and their network characteristics on a

computer system NTEVENTLOG Allows access to the NT eventlog file ONBOARDDEVICE Describes common adapter devices built into the motherboard (system

board) OS Provides access to the operating system/s installed on a computer PAGEFILE Provides access to the files used for handling virtual memory file

swapping on a system PAGEFILESET Provides access to the settings of a page file PARTITION Provides access to the capabilities and management capacity of a

partitioned area of a physical disk on a system PHYSICALMEMORY Allows access to details about the computer system's physical memory PORT Provides access to the I/O ports on a computer system PORTCONNECTOR Provides access to the physical connection ports PRINTER Provides access to all printer devices connected to a computer system PRINTERCONFIG Allows review of the configuration for a printer device

Page 33: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 29 od 66

PRINTJOB Provides access to the print jobs generated by an application PROCESS Provides access to the sequence of events on a system PRODUCT Correlates tasks to a single installation package RECOVEROS Provides access to the types of information that will be gathered from

memory when the operating system fails REGISTRY Provides access to the computer system registry SCHEDULEDJOB Provides access to the jobs scheduled using the schedule service SERVER Provides access to the server information SERVICE Provides access to the service applications on a computer system SHARE Allows access to the shared resources on a system SOFTWAREELEMENT Provides access to the elements of a software product installed on a

system SOFTWAREFEATURE Provides access to and allows changing of the software product subsets

of SoftwareElements STARTUP Allows access to the command that runs automatically when a user logs

onto the computer system SYSACCOUNT Allows access to the system accounts SYSDRIVER Provides access to the system driver for a base service SYSTEMENCLOSURE Provides access to the properties associated with a physical system

enclosure SYSTEMSLOT Provides access to the physical connection points including ports, slots

and peripherals, and proprietary connections points TAPEDRIVE Describes a tape drive on a computer TEMPERATURE Allows access to the properties of a temperature sensor (electronic

thermometer) TIMEZONE Provides access to the time&zone information for a system UPS Provides access to the capabilities and management capacity of an

uninterruptible power supply (UPS) USERACCOUNT Provides access to information about a user account on a system VOLTAGE Allows access to the properties of a voltage sensor (electronic

voltmeter) WMISET Provides access to and allows changes to be made to the operational

parameters for the WMI service

Na sljedećem primjeru pokazano je koliko je dohvaćanje i upravljanje informacijama jednostavno putem WMIC klijenta. Primjer će biti uspoređen sa postupkom izvršavanja istih zadataka putem ranije opisanih naredbi WQL jezika i wbemtest programa. Za ovaj zadatak u wbemtest programu potrebno je povezati se na udaljeni ili lokalni WMI provider, obaviti enumeraciju, otkriti koji imenski prostor i klasa je zadužena za upravljanje procesima te na kraju kreirati i izvršiti WQL upit. U wmic klijentu ovaj proces sveden je na najjednostavniji mogući oblik. Isti zadatak u wmic-u može se obaviti izvršavanjem sljedeće naredbe:

wmic /node:"wmi-client" process

Pozivanjem wmic programa na ovaj način, neće omogućiti interaktivni način rada zbog navedenih naredbi kao argumenata, već će program ispisati sve instance razreda Win32_Process (i njihova svojstva) koji se izvršavaju na udaljenom računalu. /node parametar WMI-u govori na koje računalo se treba spojiti (wmi-client) dok alias process govori programu kako treba dohvatiti sve procese. Aliasi su apstraktni sloj koji skriva izvorni

Page 34: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 30 od 66

način dohvaćanja informacije putem WQL. Svakom aliasu odgovara jedan WQL upit. Korisno je znati kako su aliasi pohranjeni u WMI skladištu kao instance MSFT_CliAlias razreda u root/cli imenskom prostoru (Slika 6.2)

Slika 6.2: Prikaz Aliasa u WMI repozitoriju pomoću WMI CIM studia

Wmic klijent podržava još brojne prekidače i naredbe, što ga čini izuzetno moćnim alatom osobito pri pisanju skripti. Kasnije u dokumentu, na primjeru batch skripti biti će detaljnije opisan ovaj koncept, a u nastavku slijedi opis parametara wmic klijenta koje omogućuju izvoz podataka u html (pored html-a podatke je još moguće izvoziti u XML i MOF formate). WMIC interno izvozi podatke u XML, no uporabom odgovarajućih XSLT shema vrši se pretvorba u HTML. Na raspolaganju stoji desetak XSLT shema no moguće je kreirati i druge vlastite. Izvorne sheme nalaze se u direktoriju: \%SystemRoot%\System32\WBEM. Izvoz se obavlja naredbom koja umjesto ispisivanja podataka na standardni izlaz, generira jednostavan XML oblik podataka (/translate:basicxml), formatira ih koristeći shemu test.xsl (/format:test.xsl), ili stvara html datoteku zadanog formata – (/Output:izlaz.html).

Primjer:

wmic /output:ServiceList.HTM /node:"wmi-client" process list

/translate:basicxml /format:htable.xsl

Rezultat izvršavanja prikazane naredbe dan je na Slici 6.3.

WMIC je jednostavan i moćan alat, koji se može iskoristiti u brojne svrhe, gotovo i bez poznavanja WQL-a i WSH-a. U nastavku su prikazana dva primjera u kojima se WMIC može pokazati iznimno korisnim alatom.

Page 35: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 31 od 66

Slika 6.3: Generirani html dokument s listom procesa i svim svojstvima

6.1.1. Alat WMIC u ulozi otkrivanja rootkita

Danas su maliciozni programi sve napredniji i sve ih je teže otkriti. Sve se češće koriste rootkit tehnike koje ujedno onemogućuju vatrozidnu, odnosno antivirusnu zaštitu. Jedan od takvih rootkit trojanskih konja je SIS Teamov ProAgent dostupan na adresi http://www.spyinstructors.com. Ovaj trojanski konj koristi rootkit tehnike kako bi se sakrio od korisnika i pri tome slao povjerljive informacije. Neke tehnike koje koristi su "DLL injection" u proces Internet Explorera Web preglednika koji se ne vidi, skrivanje od Task Managera zaobilaženjem ntdll.NtQuerySystemInformation poziva (Phrack Volume 0x0b, Issue 0x3e), onemogućavanje antivirusne zaštite. Ovaj trojanski konj nije moguće detektirati na jednostavan način, jer onemogućuje i tzv. third-party task managere koji ne koriste spornu funkciju za prikaz procesa (npr. taskinfo – http://www.iarsn.com). Ukoliko pri ruci nije dostupan neki od naprednijih programa za otkrivanje rootkit programa (engl. rootkit revealer), WMI u ovom pogledu može znatno pomoći.

Page 36: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 32 od 66

Slika 6.4: Proagent – trojanski konj koji koristi napredne tehnike prikrivanja...

Slika 6.5: ...i koji onemogućuje programe (taskinfo) koji ga mogu otkriti

Gornji primjer u kojem je pokazan postupak dohvaćanje liste procesa koji se izvršavaju na sustavu, primijenit će se i u ovom slučaju. U listi procesa moguće je primijetiti jednu instancu Internet Explorer Web preglednika, koja nije vidljiva nigdje osim u Windows Management Instrumentation konzoli. Ovo je sasvim dovoljna indicija da na sustavu nešto nije u redu i da se poduzmu daljnje detekcijske mjere. Nekoliko je mjera koje je moguće poduzeti, a za sve je korištena mogućnost izvršavanja metoda putem wmic klijenta. Otprije je poznato kako se uz pojedinu instancu nekog razreda vežu i pripadajuće metode kojima je moguće izvršavati određene akcije nad željenim instancama. U danom primjeru dvije su metode koje su primjenjive, a to su AttachDebugger i Terminate metode. Na sljedećem primjeru prikazana je mogućnost gašenja sumnjivog procesa. U naredbeni redak porebno je upisati sljedeću naredbu:

wmic process where name="iexplore.exe" terminate

Nakon izvršavanja naredbe sustav će dojaviti je li proces uspješno terminiran.

Microsoft Windows XP [Version 5.1.2600]

(C) Copyright 1985-2001 Microsoft Corp.

C:\>wmic process where name="iexplore.exe" terminate

Executing(\\wmi-client\ROOT\CIMV2:Win32_Process.Handle="2520")->startservice()

Method execution successful.

Out Parameters:

instance of __PARAMETERS

{

ReturnValue = 0;

};

Slika 6.6: Obavijest korisniku nakon izvršavanja metode

Page 37: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 33 od 66

Ovaj aspekt uporabe WMI-a općenito, daje do znanja kako WMI ima ogroman potencijal ne samo u pisanju automatiziranih skripti za obavljanje administrativnih poslova, već i definiranju sigurnosne politike mreže, mrežnih servisa i korisnika. Kompleksniji primjeri navedenih funkcionalnosti dani su u narednom poglavlju.

6.1.2. Integracija u skripte

U nastavku je pokazan još jedan primjer upotrebe wmic klijenta i to uključivanjem u batch skripte. Ovakav način uporabe omogućuje jednostavno obavljanje složenijih zadataka zahvaljujući mogućnosti definicije složenijih naredbi i upita koristeći skripte. Također, na ovaj način nije potrebno prilikom svakog zadatka ponovno upisivati isti niz naredbi.

WMIC batch skripte mogu imati i definirane varijable, te nije potrebno izravno u skriptu unositi imena računala ili neke druge vrijednosti kada se one mogu zadati i prilikom izvršavanja same skripte. Varijable se definiraju u formatu %1, %2 itd., i predstavljaju argumente koji se predaju skripti prilikom njenog izvršavanja. Alternativno, omogućeno je i kreiranje tekstualne datoteke koja sadrži CSV (eng. Comma Separated Values) listu varijabli, koja se zatim u skripti poziva dodavanjem simbola @. Kada su definirana imena računala switch /node naredba shvaća simbol @ kao pokazivač na datoteku, a ne kao ime računala.

//kill.bat

@echo off

if "%1"=="" goto msg

if "%2"=="" goto msg

wmic /output:"%1_processlist.txt" /node:"%1" process get name

/format:textvaluelist.xsl

@echo on

wmic /node:"%1" process where name="%2" call terminate

goto end

:msg

echo Nedovoljan broj argumenata

echo Uporaba: kill.bat IME_RACUNALA IME_PROCESA

:end

Slika 6.7: Jednostavna skripta za gašenje procesa

Prikazana skripta kao argumente prima ime udaljenog računala i ime procesa koji će biti terminiran, ukoliko postoji u listi aktivnih. Prije terminiranja procesa, batch skripta stvara tekstualnu datoteku u kojoj se nalazi popis svih procesa na zadanom računalu. Ovaj jednostavan primjer pokazuje način na koji je moguće znatno ubrzati i olakšati brojne svakodnevne zadatke.

6.2. Skriptne tehnike u WMI okruženju

Pisanje skripti sposobnih za interakciju s WMI-em uključuje uporabu WMI COM objekata. Skripte koriste dva tipa objekata: objekte sadržane u definiciji svakog razreda i objekte koje definira WMI API (COM objekti). Za uspješno pisanje skripti koje koriste COM apstrakcijski sloj nužno je razumijevanje objektnog modela, ne samo u WMI CIM objektnom modelu nego i u WMI COM modelu. Prijašnja poglavlja bavila su se upravo WMI CIM objektnim modelom, dok će u nastavku biti riječi o WMI COM modelu. Pokazano je kako je putem ovog API-ja moguće koristiti objekte iz WMI CIM repozitorija i na koji način je moguće dohvaćati informacije o WMI razredima.

Page 38: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 34 od 66

WMI API (eng. Application Programming Interface) temelji se na COM objektima koji se mogu koristiti u sklopu brojnih programskih jezika (Visual Basic, C++, jezici .NET obitelji), ali i u sklopu skriptnih jezika kao što su VBScript, Jscript, Perl i sl. Prvi korak je instanciranje samih COM objekata, a pored njih i razredi iz WMI skladišta također moraju biti instancirani kao objekti, kako bi omogućili rad s upravljivim WMI entitetima.

Dva su različita načina kako instancirati objekte u WMI-u:

1. Uporabom objekata s COM ProgID oznakom. U ovisnosti o programskom jeziku programski kod je: CreateObject za VBScript, new ActiveXObject za JScript, te XML <object> tag u ASP ili Windows Script File jeziku.

2. Uprabom GetObject naredbe za VBSrcript ili JScript

SWBemlocator = new ActiveXObject("WbemScripting.SWBemlocator");

Za upravljanje entitetom iz stvarnog svijeta potrebno je povezati se s objektom koji predstavlja dotični entitet u WMI objektnom modelu. Za uspostavu konekcije s WMI dobavljačem potreban je objekt objWMIServices, koji se stvara putem WMI API poziva ConnectServer funkcije SWbemLocator objekta. Funkcija ConnectServer vraća objekt tipa SWbemServices. Zanimljivo svojstvo SWbemLocator objekata je mogućnost specificiranja dodatnih parametara kao što su drugi username i password ili lokalizacijski znakovni niz. SwbemLocator svojstva navedena su u tablici 6.3.

Tablica 6.3: Svojstva SWbemLocator objekta

SWbemLocator Svojstva (Properties)

Security_ Čitanje ili promjena sigurnosnih postavki

Postupci (Methods)

ConnectServer [ strServer = "" ], [ strNameSpace = "" ], [ strUser = "" ], [ strPassword = "" ], [ strLocale = "" ], [ strAuthority = "" ], [ intSecurityFlags = 0 ], [ objwbemNamedValueSet = null ]

Spajanje na WMI provider na zadanom računalu

Primjer:

objWMIService =

SWBemlocator.ConnectServer(strComputer,"/root/CIMV2");

Nakon povezivanja na /root/CIMV2 imenski prostor udaljenog računala potrebno je dohvatiti željene podatke. Nakon toga moguće je instancirati WMI razred tako da predstavlja stvarni entitet, a to čini objekt tipa SWbemObject. WMI objekti koji mogu stvoriti ovaj objekt su SWbemServices, SWbemObjectSet i SWbemEventSource. Za dohvaćanje WMI podataka potreban je SWbemServices objekt koji je korišten u sljedećem primjeru. SWbemServices objekt posjeduje veliki broj metoda, no u navedenom primjeru korištena je samo ExecQuery metoda (tablica 6.4)

Page 39: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 35 od 66

Tablica 6.4: Jedno od brojnih svojstava SWbemServices objekta

SWbemServices Svojstva (Properties)

Security_ Čitanje ili promjena sigurnosnih postavki

Postupci (Methods)

ExecQuery strQuery, [ strQueryLanguage = "WQL" ], [ intFlags = wbemFlagReturnImmediately ], [ objWbemNamedValueSet = null ]

Izvršava WQL upit

Primjer:

colItems = objWMIService.ExecQuery("Select * from Win32_Process");

6.2.1. Skripte kao process firewall

Skripta koja koristi navedene mehanizme zamišljena je kao jednostavan process firewall. Skripta ispituje izvršava li se na udaljenom računalu neki proces koji ne bi smio. Ukoliko je to slučaj, WMI će ugasiti zabranjeni proces. Ovakvu provjeru moguće je periodički izvršavati, a preciznom definicijom pravila moguće je onemogućiti izvršavanje nepoželjnih procesa. Dobar primjer nepoželjnih procesa su popularne P2P aplikacije, koje stvaraju probleme brojnim sistem administratorima.

Ukoliko ne postoji mogućnost nabave nekog statefull inspection vatrozida, kontrola izvršavanja procesa putem WMI-a je dobra alternativa.

// Simple_process_firewall.js

var strComputer;

var objWMIService;

var colItems;

var objItem;

var SWBemlocator;

try {

strComputer = "wmi-client";

SWBemlocator = new ActiveXObject("WbemScripting.SWbemLocator");

objWMIService = SWBemlocator.ConnectServer(strComputer,"/root/CIMV2");

colItems = objWMIService.ExecQuery("Select * from Win32_Process");

propEnum = new Enumerator(colItems);

for (;!propEnum.atEnd();propEnum.moveNext())

{

objItem = propEnum.item();

if(objItem.Name!= null)

{

WScript.Echo("Name: " + objItem.Name);

}

else

{

WScript.Echo("Name: ");

}

if (objItem.Name == "emule.exe")

{

objItem.Terminate();

WScript.Echo("Process " + objItem.Name + " terminated");

}

}

}

catch(e)

{

Page 40: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 36 od 66

WScript.Echo("catch caught " + e.number + " " + e.description);

}

Slika 6.8: Jednostavna skripta za gašenje procesa

Ukoliko ime procesa odgovara imenu emule.exe, proces će biti terminiran. Rezultat izvršavanja skripte dan je u nastavku:

Microsoft (R) Windows Script Host Version 5.6

Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Name: System Idle Process

Name: System

Name: smss.exe

Name: csrss.exe

Name: winlogon.exe

Name: services.exe

Name: lsass.exe

Name: svchost.exe

Name: svchost.exe

...

...

Name: PrimalScript.exe

Name: wmiprvse.exe

Name: emule.exe

Process emule.exe terminated

Name: cscript.exe

Exit code: 0 , 0000h

Slika 6.9: Rezultat skripte za gašenje procesa

6.3. WMI događaji

Nakon upoznavanja s WQL-om i WMI API skriptnim tehnikama, ovdje će biti prikazano još jedno napredno svojstvo WMI-a. Riječ je o događajima (engl. events). Do ovog trenutka svaka skripta koja je bila temeljena na WMI-u obavljala je neke zadatke nad određenim entitetom objektnog modela. Ovo se ne može smatrati u potpunosti ispravnim nadgledanjem, te je zbog toga WMI uveo obavijest o događajima (engl. event notification). Upravljanje nekom okolinom ne znači samo obavljanje zadataka nad entitetima već i mogućnost reagiranja na promjene u toj okolini. Ovo dakako implicira kako tehnologija koja se koristi u zadacima za upravljanje može detektirati te promjene. Upravo te promjene WMI naziva događajima i oni čine vjerojatno najmoćniji dio WMI-a. Jasno je kako je vjerojatnost pojave različitih događaja u jednom velikom sustavu velika, stoga je bitno pravilno ocijeniti koji će događaji biti praćeni. Pored ovoga kada je neki događaj detektiran WMI mora znati kome će ga dostaviti te naposljetku kakve akcije će se izvršiti.

Za detekciju događaja WMI koristi posebne dobavljače koji se nazivaju event providers, npr. SNMP event provider, NT Event Log event provider, Registry event provider i drugi. Za prihvaćanje-detekciju događaja WMI klijenti moraju biti “pretplaćeni“ na WMI događaje, u postupku “pretplate“ WMI klijent dostavlja dvije stvari: događaje za koje se želi pretplatiti te akcije koje će se izvršiti kada se taj događaj dogodi. Takvi klijenti mogu biti aplikacije kao primjerice Wbemtest, WMI skripte ili neka druga aplikacija koja koristi WMI API. WMI pretplatnik definira događaje za koje se želi pretplatiti uporabom WQL jezika, sljedeći redak pokazuje jedan takav primjer:

SELECT * FROM RegistryTreeChangeEvent WHERE Hive=

'HKEY_LOCAL_MACHINE' AND RootPath=''

Page 41: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 37 od 66

Kako se definiraju akcije koje će se izvršiti tijekom detekcije događaja biti će opisano u poglavlju koje slijedi.

Svaki event provider sadrži pripadni WQL upit koji je pohranjen u EventQueryList opisniku. Najzanimljiviji event provideri dani su u tablici.

Tablica 6.5: Lista najzanimljivijih dobavljača događaja

Namespace Event Provider Event Query lIst

MS_Power_Management_Event_Provider select * from Win32_PowerManagementEvent

SystemConfigurationChangeEvents select * from Win32_SystemConfigurationChangeEvent

MS_Shutdown_Event_Provider select * from Win32_ComputerShutdownEvent

VolumeChangeEvents select * from Win32_VolumeChangeEvent

Microsoft WMI Forwarding Event Provider select * from MSFT_ForwardedEvent

RouteEventProvider select * from Win32_IP4RouteTableEvent

select * from Win32_ProcessStartTrace

select * from Win32_ProcessStopTrace

select * from Win32_ThreadStartTrace

select * from Win32_ThreadStopTrace

WMI Kernel Trace Event Provider

select * from Win32_ModuleLoadTrace

MS_NT_EVENTLOG_EVENT_PROVIDER select * from __InstanceCreationEvent where TargetInstance isa "Win32_NTLogEvent"

Root/CIMV2

Win32ClockProvider select * from __InstanceModificationEvent where TargetInstance isa "Win32_CurrentTime"

Root/DEFAULT RegistryEventProvider select * from RegistryEvent

Root/MicrosoftCluster Cluster Event Provider select * from MicrosoftCluster_Event

MS_SNMP_REFERENT_EVENT_PROVIDER select * from SnmpExtendedNotification Root/snmp/localhost

MS_SNMP_ENCAPSULATED_EVENT_PROVIDER select * from SnmpNotification

Microsoft WMI Template Event Provider select * from __InstanceOperationEvent WHERE TargetInstance ISA "MSFT_TemplateBase"

select * from MSFT_TransientEggTimerEvent Microsoft WMI Transient Event Provider

select * from __InstanceOperationEvent where TargetInstance isa "MSFT_TransientStateBase"

Microsoft WMI Forwarding Consumer Trace Event Provider

select * from MSFT_FCTraceEventBase

Microsoft WMI Transient Reboot Event Provider select * from MSFT_TransientRebootEvent

select * from MSFT_UCTraceEventBase

Root/subscription

Microsoft WMI Updating Consumer Event Provider

select * from MSFT_UCEventBase

Root/WMI WMIEventProv select * from WMIEvent

Page 42: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 38 od 66

6.3.1. Hvatanje WMI događaja u svrhu nadgledanja registry-ja

Za primjer uporabe WMI događaja, s fokusom na sigurnosne aspekte, izabran je registry, naime brojni maliciozni programi upravo modificiraju ključeve u registryju. Ukoliko nije u potpunosti moguće zabraniti promjenu registry vrijednosti, rješenje donosi nadgledanje promjena vrijednosti u registry bazi. WMI događaji upravo su predviđeni za definiranje ovakve sigurnosne politike, a primjer jednostavne skripte koja nadgleda promjene u HKEY_LOCAL_MACHINE dijelu pojasnit će detaljnije skriptnu tehniku koja koristi ove napredne mehanizme.

//registry monitoring.js

var strComputer = "wmi-client";

var wmiServices = GetObject("winmgmts:{impersonationLevel=impersonate}!//" +

strComputer + "/root/default");

var wmiSink = WScript.CreateObject("WbemScripting.SWbemSink", "SINK_");

wmiServices.ExecNotificationQueryAsync (wmiSink,

"SELECT * FROM RegistryTreeChangeEvent WHERE Hive= " +

"'HKEY_LOCAL_MACHINE' AND RootPath=''") ;

WScript.Echo ("Listening for Registry Change Events...");

while(true)

{

WScript.Sleep(1000);

}

function SINK_OnObjectReady(wmiObject, wmiAsyncContext)

{ WScript.Echo ("Received Registry Change Event" + ":\n" +

"------------------------------" +

wmiObject.GetObjectText_());

}

Slika 6.10: Skripta za nadzor registry-ja

U navedenoj skripti se mogu naći dvije bitne stvari koje nisu bile pokazane do sada, a to su impersonationLevel sigurnosna opcija u pozivu GetObject() funkcije te asinkrono izvršavanje akcija tijekom detekcije definiranog događaja. Impersonationlevel = impersonate znači poziv i izvršavanje funkcije na udaljenom stroju u ime izvršitelja skripte (u ovom slučaju administratora, s obzirom da se pod njegovim ovlastima skripta izvršava na poslužitelju). Druge moguće vrijednosti Impersonationlevel opcije su: anonymous, identify i delegate. (za detalje vidjeti WMI referencu). Akcije koje se izvršavaju tijekom nekog događaja definirane su u SINK_OnObjectReady funkciji. Asinkrono izvršavanje omogućuje paralelno istovremeno upravljanje primljenim događajima. U nastavku je prikazan izlaz skripte.

Microsoft (R) Windows Script Host Version 5.6

Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Listening for Registry Change Events...

Received Registry Change Event:

------------------------------

instance of RegistryTreeChangeEvent

{

Hive = "HKEY_LOCAL_MACHINE";

Page 43: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 39 od 66

RootPath = "";

TIME_CREATED = "127709524965526160";

};

Received Registry Change Event:

------------------------------

instance of RegistryTreeChangeEvent

{

Hive = "HKEY_LOCAL_MACHINE";

RootPath = "";

TIME_CREATED = "127709525298104384";

};

Exit code: 1 , 0001h

Slika 6.11: Rezultat skripte za nadzor registry-ja

Svaka promjena ključa u HKEY_LOCAL_MACHINE dijelu registryja izaziva izvršavanje gore spomenute funkcije te ispis vremena kada je do promjene došlo.

Page 44: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 40 od 66

7. Praktični rad

Cilj praktičnog rada bio je ostvariti računalni sustav koji bi omogućio nadzor računala u mrežnoj okolini putem WMI tehnologije. Računalni sustav zamišljen je kao sklopovski sustav koji bi imao dodatne funkcije potpore dijelovima normi ITIL i ISO 27002, te sukladno tome pored nadzora mogao pružiti mogućnost automatske enumeracije mrežne topologije, stvaranja izvještaja o inventaru iz perspektive informacijske sigurnosti i skeniranja mreže uporabom dobro poznatog alata NMAP, kao svojevrsnu pomoć prilikom analize rizika.

Sustav zbog uporabe WMI tehnologije pruža takozvani clientless način rada gdje na nadzirana računala nije potrebno instalirati nikakve dodatne komponente jer Windows operacijski sustav od inačice 2000. u sebi ima uključenu podršku za WMI. Nakon što je sustav enumerirao mrežu i prikazao topologiju moguće je definirati za pojedini entitet parametre koji će se nadzirati i definirati stupanj uzbune. Sustav će nadzirati definirane parametre te ukoliko neka od vrijednosti prijeđe zadane granice alarmirati odgovorne osobe.

Kako bi pružio najsigurniji i potpuno optimiran način rada sustav je implementiran u vidu sklopovskog samostojećeg uređaja (engl. appliance) Cjelokupni sklop dizajniran je isključivo za potrebe ovoga rada, a posebno je vođeno računu o elektroničkim komponentama od kojih su neke također specijalno dizajnirane za potrebe ovoga rada. Posebno je vođeno računa i o vanjskom izgledu uređaja na način da podrži sve funkcije uređaja, poput prikaza imena nadziranih uređaja na vanjskom ugrađenom ekranu i signalizacije statusa nadziranih računala a podržano je i slanja alarmnih poruka putem SMS-a.

Uz odgovarajući sklop dizajniran je softverski sustav koji upravlja sklopovskim komponentama. Arhitektura softvera temeljena je na klijentsko-poslužiteljskom modelu, poslužiteljsku stranu čini dio sustava koji se nalazi na sklopovskoj komponenti dok klijentsku stranu čini aplikacija za upravljanje uređajem. Poslužiteljska strana implementira veliki broj mehanizama za nadzor i generiranje izvještaja i uključuje komponente za kontrolu sklopovskih dijelova uređaja, poput vanjskog statusnog ekrana i GSM modula. Poslužiteljska strana dizajnirana je s velikom pažnjom o čemu govori i višedretvena arhitektura i višeslojni model kontrole pojedine funkcije. Vodilo se računa i o zaštiti autorskih prava te sustav uključuje i hardversku zaštitu u obliku hardverskog USB ključa bez kojega uređaj nije moguće pokrenuti. Zbog sve većeg stupnja piratizacije i kršenja autorskih prava rad je uključio i ovu komponentu kako bi pokazao jedan od modela zaštite i naplate putem sigurnih licenci. Hardverska zaštita temeljena je na Aladdinovom HASP sustavu na USB ključu koji uključuje AES enkripcijsku komponentu, memoriju za sigurnu pohranu kriptografskih ključeva i RTC (engl. real time clock).

Prilikom izrade klijentske aplikacije posebno se vodilo računa o ergonomiji i vizualnom prikazu. Aplikacija podržava automatsku vizualizaciju topologije mreže, korisnički unos i prilagodbu topologije mreže uz "drag and drop" funkcionalnost, mijenjanje velikog broja vizualnih značajki (dodavanje piktograma raznih mrežnih objekata, mijenjanje dimenzija, boja, definiranje veze među objektima, itd.). Aplikacije je u stanju voditi računa o kontekstu te prikazivati samo one informacije koje pojedini objekt podržava. Zbog velikog broja mogućnosti koje sustav podržava klijentska aplikacija podijeljena je na nekoliko funkcijskih cjelina.

Kako bi klijentska aplikacija i uređaj bili u mogućnosti komunicirati razvijen je specijalan komunikacijski protokol, a o ozbiljnosti cijelog sustava govori i činjenica kako je sustav izgrađen od približno 160.000 linija programskog koda.

Programski jezik na kome se prikazano rješenje temelji je C# u .NET 2.0 okolini, a operacijski sustav koji pogoni uređaj je specijalna inačica operacijskog sustava Windows Vista. Sljedeća poglavlja detaljno će opisati proces dizajna i hardversku arhitekturu,

Page 45: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 41 od 66

arhitekturu i dizajn poslužiteljskog i klijentskog softverskog dijela te proći kroz funkcije uređaja i aplikacije za upravljanje.

7.1. Sklopovska osnova

Kako bi se shvatilo zašto je cijeli sustav zamišljen kao sklopovsko rješenje te koje su prednosti ovakve izvedbe bitno je pogledati razliku između običnih računala i tzv. samostojećih namjenskih računalnih sustava.

Obične računalne sustave čini potrebna elektronika (procesor, memorija, matična ploča, itd.) te pripadni softver (operacijski sustav, korisnički programi, upravljački programi, itd.) koja predstavlja sponu između korisnika i hardvera te pohranjuje i obrađuje podatke odnosno izvršava funkcije upravljane zahtjevima korisnika. Obični računalni sustavi dizajnirani su kako bi obavljali puno zadaća te ne smiju biti usko specijalizirani kako bi mogli zadovoljiti taj zahtjev. Zbog svoje općenitosti i različitih softverskih komponenti koji ih pogoni ponekad obični računalni sustavi mogu biti nedovoljno stabilni, nepouzdani i manje efikasni od visoko specijaliziranih namjenskih računalnih sustava.

Oba sustav imaju velik broj zajedničkih dodirnih točaka, a to su uporaba procesora, memorije ulaznih i izlaznih jedinica koji na oba sustava mogu biti identični, ono što dovodi do osnovne razlike jeste namjena. Kako namjenski uređaji imaju samo jednu namjenu i obavljaju jednu zadaću ili sličan skup zadaća pokreću samo jednu aplikaciju, a operacijski sustav je prilagođen te su zadržani samo oni dijelovi koji su potrebi za funkcioniranje namjenskog sustava. Zbog jedinstvene namjene i uvijek identične okoline sve aspekte ponašanja sustava moguće je detaljno testirati te ih učiniti izuzetno stabilnima i optimiranima za zadaće koje se na njima izvršavaju.

Zbog prirode nadzornog sustava da uvijek radi i pri tome efikasno, jasno je zašto je implementaciju jednog nadzornog sustava puno bolje riješiti kao namjenski uređaj nego kao računalni program koji se izvršava na računalnom sustavu opće namjene.

7.1.1. Sklopovske komponente

Sljedeće funkcije uređaja odredile su i sklopovske komponente istog:

• Zbog potrebe nadzornog uređaja da dojavljuje kritične pogreške na način da obavijest dođe do administratora sustava, bez obzira gdje se on nalazio, funkcija slanja SMS poruke je nužna

• Kako se radi o samostojećem uređaju bez podrške za standardne ulaze i izlaza (monitor i tipkovnica) potrebno je razviti alternativni način inicijalnog postavljanja uređaja, poput definiranja mrežnih postavki uređaja

• Zbog svoje uloge nadzornog sustava poželjna opcija je mogućnost detekcije grešaka nadziranih sustava kratkim pogledom na sam uređaj, a ne nužno pokretanje aplikacije za administraciju

• Zaštita intelektualnog vlasništva i naplata licenci

• Mali hardverski zahtjevi zbog prikaza mogućnosti u okviru ovoga rada, a ne implementacije u veliku produkcijsku okolinu

Uzevši u obzir sve navedene zahtjeve sljedeće hardverske komponente su izabrane za uređaj:

• Mini-ITX industrijska matična ploča: Kontron 886LCD-M s integriranim Pentium M ULV procesorom radnog takta 800MHz i tri mrežna sučelja prikazana na slici 7.1

Page 46: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 42 od 66

Slika 7.1: Matična ploča uređaja s integriranim procesorom

• 512 MB DDR radne memorije

• 80GB tvrdi disk

• Crystalfontz CFA-635 modulu za prikaz - poseban grafički ekran sposoban prikazati 4 reda teksta uz koje su pridružene 4 LE diode. Pojedini redak teksta prikazivat će nazive kritičnih sustava koji se nadziru a LE diode statusno stanje. LE diode imaju mogućnost mijenjanja boje (od zelene do crvene) kako bi označile različitu razinu uzbune (primjerice zelena boja označava normalno ponašanje sustava, žuta kako se radi o uzbuni srednje razine i crvena kako se radi o kritičnoj uzbuni). Navedeni modul za prikaz također sadrži ulaznu jedinicu u obliku 6 gumba koji su iskorišteni za inicijalno postavljanje uređaja odnosno kretanje kroz menije

Slika 7.2: Crystalfontz CFA-635 je korišten prilikom izrade uređaja

• upravljivi GSM modul za slanje SMS-a; kako adekvatni GSM modul nije bilo moguće naći na tržištu dizajniran je i proizveden vlastiti. Iskorišten je GSM modul Siemens C35 mobilnog telefona u kombinaciji s posebno dizajniranim elektroničkim sklopom za kontrolu i komunikaciju modema s računalom

Zbog specifične namjene potrebno je bilo dizajnirati i kućište koje će podržati navedeno sklopovlje kao i sve planirane funkcije nadzornog sustava. Za bazu kućišta je stoga upotrijebljeno Coolermaster CM Media 270 kućište s 250W napajanjem, a prednja maska

Page 47: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 43 od 66

uređaja koja mora podržati spomenuti ekran, signalne diode, SIM karticu GSM modula i kontrolne gumbe dizajnirana je i posebno proizvedena.

Posljednja komponenta je hardverski USB ključ HASP HL Time tvrtke Aladdin koji ima funkcije sigurne pohrane do 2KB podataka, najčešće kriptografskih ključeva. Zbog specifične izvedbe memorije, zapisane vrijednosti zaobilaznim metodama je bez uništenja istih gotovo nemoguće pročitati. USB ključ nadalje sadrži hardversku implementaciju 128 bitnog AES enkripcijskog algoritma, te RTC (real time clock) kojega je također bez uništenja ključa nemoguće izmijeniti na taj način pružajući funkciju implementiranja licenci s vremenskim trajanjem.

Slika 7.3: Aladdin HASP Time hardverski USB ključ za zaštitu autorskih prava

7.1.2. Postupak izrade prednje maske

Proces izrade prednje maske uključivao je 3 faze, dizajn i modeliranje u AutoCad i SolidWorks programima, proizvodnju i završnu obradu. Na sljedećim slikama su prikazani 3D model maske te nacrti za rezanje, savijanje i varenje.

Slika 7.4: 3D model prednje maske uređaja

Page 48: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 44 od 66

Slika 7.5: Nacrt za savijanje prednje maske

Slika 7.6: Nacrt za zavarivanje nosača prednje maske

Page 49: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 45 od 66

Prednja maska izrađena je od 2mm debelog INOX-a, a na temelju CAD nacrta potrebni otvori rezani su vodom, potom je prema nacrtima metal bio savijen, a naknadno su zavareni držači pomoću kojih se maska pričvršćuje na kućište. U CAD nacrtima posebno je trebalo obratiti pažnju na gubitke prilikom savijanja metala koji ovise o debljini i tipu materijala. Nakon rezanja, savijanja i zavarivanja maska je prošla završnu obradu te je plastificirana u crnu boju; završni rezultati vidljivi su na slikama 7.11, 7.12 i 7.13.

7.1.3. Postupak izrade GSM modula

Zbog nemogućnosti nabavke odgovarajućeg GSM modula izrada sklopovskog rješenja uključivala je i dizajn i proizvodnju ove komponente. Za osnovu GSM modula iskorišten je mobilni telefon Siemens C35 odnosno samo njegova tiskana pločica sa pripadnim elementima za radio komunikaciju, svi ostali elementi bili su odstranjeni (kućište, ekrana, tipkovnica, mikrofon, zvučnik itd.).

Tražena funkcionalnost uključivala je paljenje i gašenje modula softverski te signalizaciju rada, komunikaciju s računalom, i napajanje. Zbog toga su dizajnirane tri zasebne komponente.

Gašenje i paljenje GSM modula riješeno je uporabom serijskog porta, odnosno DTR i RTS pinova koji su specifični po tome što mogu biti konstantno u jednom diskretnom stanju. Ukoliko je RTS ili DTS signal postavljen na izlazu će biti napon od približno +11V, a ako nije vrijednost napona biti će -11V. Uporabom dvije diode postignuto je ograničenje toka struje samo kada je na izlazu +11V. Paljenje GSM modula ostvareno je kratkim spojem određena dva pina, kako bi se dobila mogućnost softverskog paljenja GSM modula na DTR signal spojen je NPN tranzistor koji ima ulogu sklopke. Dizanjem RTS signala pali se LE dioda koja označava rad GSM modula. Detalji su vidljivi na shemi prikazanoj na slici 7.7.

Drugi dio sklopa odnosi se na napajanje GSM modula, realizacijom posebnog sklopa za napajanje postignuta je neovisnost GSM modula od baterije. Sklop za napajanje koristi stabilizator napona LM317 koji je u stanju pružiti dovoljno struje (do 1,5A) koja je potrebna u slučajevima kada GSM modem koristi svoju radio komponentu, primjerice za slanje SMS poruke. Svi sklopovi koji ne mogu pružiti dovoljnu količinu struje dovest će do gašenja GSM modula prilikom slanja SMS poruke. Uz odgovarajući izbor otpora prema shemi na slici 7.8. dobivena je transformacija s 12V na 4V koji su potrebni za napajanje GSM modula. 12 voltni izvor izabran je zbog jednostavnog dobivanja ove vrijednosti napona direktno iz napajanja samog nadzornog uređaja.

Glavna sklopovska komponenta služi za komunikaciju nadzornog uređaja s GSM modemom, a za tu svrhu je upotrijebljen integriran krug MAX232 čija je zadaća pretvoriti izlaze visokog napona (11V) RS232 porta na napon 5V koji GSM modem koristi za komunikaciju. Sklop je dizajniran tako da se MAX232 IC može napajati iz tri različita izvora: iz dodatnog 5 voltnog napajanja, iz serijskog porta te iz baterije mobilnog telefona, a ove postavke je moguće podesiti jumperom. Također ako se GSM modem napaja iz baterije dovođenjem dodatnog 5 voltnog napajanja na gornji lijevi RJ45 konektor moguće je puniti i bateriju uz istovremeno odvijanje komunikacije s GSM modemom.

Tiskane pločice izrađene su na posebnom stroju za izradu tiskanih pločica, a ulazi i izlazi na sklopu za komunikaciju s GSM modemom realizirani su putem RJ45 konektora zahvaljujući kojima se vrlo jednostavno može spojiti bilo koji mobilni telefon što dakako znatno doprinosi na modularnosti.

Page 50: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 46 od 66

Slika 7.7: Shema sklopa za podatkovnu komunikaciju s GSM modemom

Slika 7.8: Shema sklopa za napajanje i paljenje GSM modula

Page 51: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 47 od 66

Slika 7.9: Izgled tiskane pločice

Slika 7.10: Fotografija unutrašnjosti uređaja

Page 52: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 48 od 66

7.2. Fotografije gotovog uređaja

Slika 7.11: Fotografija prednje strane uređaja

Slika 7.12: SIM karticu je moguće jednostavno zamijeniti

Page 53: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 49 od 66

Slika 7.13: Ekran za prikaz statusnih informacija i postavljanje mrežnih postavki uređaja

Slika 7.14: USB ključ namijenjen zaštiti podataka i licenciranju

Page 54: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 50 od 66

7.3. Arhitektura sustava za nadzor:

Kako je već prije bilo riječi softver koji upravlja funkcijama uređaja temeljen je na poslužiteljsko-klijentskoj arhitekturi. Poslužitelj upravlja svim funkcijama uređaja dok je klijent namijenjen upravljanju funkcijama poslužitelja i vizualizaciji informacija koje dohvaća poslužiteljska strana sustava kroz iznimno bogato i konfigurabilno sučelje.

Cijeli sustav programiran je u jeziku C# (.NET 2.0 platforma) što uključuje i sustav za kontrolu hardvera.

7.3.1. Poslužiteljska strana

Poslužiteljska strana sustava sastoji se od dva osnovna modula: modula za kontrolu hardvera i jezgre sustava koja objedinjuje funkcije dohvaćanja podataka, nadzornog mehanizma, generiranja izvješća i komunikacije s klijentom kao i modulom za kontrolu hardvera.

1. Modul za kontrolu hardvera

Modul za kontrolu hardvera ima tri funkcije, prva jeste kontroliranje LCD modula, druga GSM modula, a treća USB ključa. Prilikom pokretanja sustava hardverski modul se prvi pokreće i provjerava nalazi li se USB ključ u uređaju, ukoliko se nalazi i ključu je moguće pristupiti uporabom jedinstvenog RSA enkripcijskog ključa (lozinka za pristup USB ključu) sustav pokreće jezgru sustava. Iako se hardverski ključ detektira na samom početku pokretanja uređaja, ispitivanje prisutnosti ključa se periodički nastavlja uz interval ponavljanja od 5 minuta. Ukoliko prilikom jedne od provjera ključu nije moguće pristupiti ili on nije detektiran sustav zaustavlja sve funkcije jezgre sustava i ispisuje odgovarajuću poruku na LCD ekranu uređaja uz zvučni signal i crveno osvijetljene LE diode.

Drugi dio modula za kontrolu hardvera jeste upravljanje LCD ekranom, pripadnim LE diodama i hvatanje događaja koji se generiraju pritiskom na gumbe LCD modula. Ovaj modul je također zadužen za prikaz menija na LCD ekranu ali i funkcija poput izmjene mrežnih postavki uređaja. Kako bi sustav omogućio funkcioniranje ekrana potrebno je bilo razviti upravljačke programe koji podržavaju sve funkcije Crystalfontz CFA-635 modula. Iako upravljački programi za navedeni ekran postoje, oni nisu predviđeni za uporabu u .NET okruženju te je upravljački program za .NET okruženje razvijen isključivo za potrebe ovoga sustava i u potpunosti integriran u njega.

Treća funkcija modula za upravljanje hardverom jeste kontrola GSM modula, poslužitelj se brine o tome kada GSM modul treba isključiti, te upaliti odnosno ugasiti signalnu LE diodu za signalizaciju u ovisnosti radi li GSM modul ili ne. GSM modul se uključuje dizanjem visoke razine DTR signala na serijskom sučelju (COM2), a signalna dioda dizanjem visoke razine RTS signala na tom istom sučelju. Ova signalna LE dioda je na prednjoj masci uređaja smještena pored utora za SIM karticu.

2. Jezgra sustava

Jezgru sustava čini 6 osnovnih cjelina: komunikacija s modulom za kontrolu hardvera, upravljanje NMAP-om, dohvaćanje podataka WMI-em, nadzorni mehanizam, komunikacijski sloj i generiranje izvješća.

Komunikacija s modulom za kontrolu hardvera najjednostavniji je dio a to može zahvaliti velikoj integraciji funkcija u sam modul za kontrolu hardvera. Zadaća modula za komunikaciju s modulom za kontrolu hardvera je isključivo dojava što modul za kontrolu hardvera treba činiti. Tako su jedine informacije koje se dojavljuju informacije o nadziranim poslužiteljima, a čine ih ime i status poslužitelja na temelju kojeg će sustav ispisati ime u određenom retku i

Page 55: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 51 od 66

upalit i postaviti boju LE diode pored tog retku u ovisnosti o statusu. Sustav raspoznaje tri vrste statusnih signala odnosno razina alarma: razina 1 označava kako je sve u redu i pri tome će boja LE diode biti zelena, razina 2 označava kako se na nadziranom sustavu dogodila uzbuna srednje ozbiljnosti i pri tome će LE dioda biti žuta, te razina 3 koja označava kako se u sustavu dogodila kritična pogreška, a sustav će to označiti crvenom LE diodom koja se periodički pali i gasi kako bi dodatno upozorila na ozbiljnost problema.

Modul za upravljanje NMAP-om predstavlja sučelje prema aplikaciji NMAP. Prilikom pokretanja modula sustav pokreće NMAP proces u pozadini i predaje mu argumente koje je dobio od klijentske aplikacije za upravljanje. Svi izlazi koje NMAP generira prenose se klijentskoj aplikaciji i tamo prikazuju kako bi administrator vidio proces skeniranja i mogao intervenirati ukoliko dođe do pogreške. NMAP proces prilikom skeniranja generira i izvještaj o skeniranju, a generiranje ovoga izvještaja je neovisno o modulu za generiranje izvještaja o inventaru.

Modul za dohvaćanje podataka putem WMI-a koristi isključivo WMI za dohvaćanje kritičnih podataka, trenutna implementacija sustava podržava dohvaćanje podataka o zauzeću procesora, memorije, tvrdim diskovima i aktivnim procesima, te izvršavanje WMI metode gašenja procesa na udaljenom računalu.

Nadzorni mehanizam koristi upravo modul za dohvaćanje podataka putem WMI-a i zadaća mu je periodički uspoređivati definirane granične vrijednosti sa stvarnim podacima. Zbog relativne sporosti dohvaćanja podataka putem WMI tehnologije, najveća frekvencija osvježavanja podataka je 160 sekundi što čini jedan ciklus. Nadzor pojedinog poslužitelja izvršava posebna dretva. Kako bi se dobilo jednoliko opterećenje sustava, sustav periodički dohvaća podatke u razmacima od 160/broj_nadziranih_sustava sekundi svake 160-te sekunde. Ovo znači kako će za 4 nadzirana poslužitelja, sustav 4 dretve koje dohvaćaju podatke za pojedini poslužitelj pokretati s međusobnim razmakom od 40 sekundi svake 160-te sekunde. Ukoliko sustav detektira kako neki od nadziranih poslužitelja nije dostupan sustav će čekati 3 ciklusa odnosno 8 minuta kako bi ponovno ispitao je li sporni sustav dostupan. Navedene vrijednosti dobivene su eksperimentalnim putem u stvarnoj produkcijskoj okolini.

Komunikacijski sloj najbitnija je karika u komunikaciji i dostavljanju podataka od i ka klijentu. Za potrebe sustava i zbog relativne kompleksnosti razvijen je poseban komunikacijski protokol, a komunikacija se odvija na portu 8000. Komunikacijska jedinica sljedećeg je izgleda:

XC_COMMAND|PAYLOAD|XC_COMMAND

Definirano je 32 komandne riječi, najzanimljivije su prikazane u tablici 7.1.

Tablica 7.1: Lista najzanimljivijih komandnih riječi

Komandna riječ Opis značenja XCNMAP Označava pokretanje modula za upravljanje NMAP-om, koristan teret

čine informacije o poslužitelju/mreži koji se skeniraju te NMAP argumenti XCWMIC Pokreće modul za generiranje izvješća o inventaru, koristan teret su

podaci poslužitelja s kojega se podaci dohvaćaju XCWMILV Pokreće "remote task manager" modul XCWMILVT Zadaje sustavu koji proces treba ugasiti, koristan teret je PID procesa XCWMILVCLOSE Gašenje "remote task manager" modula XCWMIMON Dohvaćanje podataka koje je moguće nadzirati na nekom poslužitelju

(lista procesa, zauzeće tvrdog diska…) XCWMIMONDATA Dohvaćanje graničnih vrijednosti koje okidaju alarm, ako takve u sustavu

postoje

Page 56: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 52 od 66

XCWMIMONCLOSE Zatvaranje dohvata podataka koje je moguće nadzirati na nekom poslužitelju

XCSTARTMON Pokretanje procesa nadzora XCSTOPMON Zaustavljanje procesa nadzora XCMONSTAT Status nadziranog poslužitelja

Posljednji modul namijenjen je generiranju izvješća o inventaru. Modul za navedenu radnju koristi program naredbenog retka WMIC, modul je koncipiran na sličan način kao modul za kontrolu NMAP-a, naime i ovaj modul služi kao sučelje prema WMIC-u programu. Podatke o tome što će biti u izvještaju i koji poslužitelj će se nadzirati dostavlja klijent.

Slika 7.15: Grafički prikaz arhitekture sustava

Page 57: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 53 od 66

Izvještaj uključuje podatke o operacijskom sustavu, proizvođaču sustava, procesoru, diskovima, mrežnim sučeljima, aktivnim procesima, servisima, startup procesima, korisničkim računima, korisničkim grupama, dijeljenim direktorijima, instaliranim aplikacijama i instaliranim zakrpama. Tablica 7.2 prikazuje detaljne informacije o podacima koje sustav može dohvatiti kao i prekidače koje klijentska aplikacija šalje modulu kao parametre za generiranje izvješća.

Tablica 7.2: Podaci koji mogu biti uključeni u izvješće

Opis Ime WMI imenskog

prostora Svojstva koja se mogu dohvatiti i definirani pripadni prekidači

Operacijski sustav OS -osN Name, -osV Version, -osCDV CSDVersion, -osM Manufacturer, -osTVM TotalVisibleMemorySize, -osCSN CSName, -osWD WindowsDirectory, -osSN SerialNumber

Proizvođač računala COMPUTERSYSTEM -csM Manufacturer, -csMO Model, -csST SystemType, -csTPM TotalPhysicalMemory, -csD Domain, -csU UserName

Procesor CPU -cpuM Manufacturer, -cpuN Name , -cpuD Description, -cpuMCS MaxClockSpeed, -cpuL2 L2CacheSize

Diskovi LOGICALDISK -ldN Name, -ldID DeviceID, -ldFS FileSystem, -ldS Size, -ldFRSP FreeSpace, -ldSN VolumeSerialNumber

Mrežna sučelja NICCONFIG

-nicD Description, -nicMAC MACAddress, -nicIP IPAddress, -nicIPS IPSubnet, -nicDG DefaultIPGateway, -nicDHCP DHCPServer, -nicDNS DNSServerSearchOrder, -nicHN DNSHostName

Aktivni procesi PROCESS -pN Name, -pEP ExecutablePath, -pCL CommandLine

Servisi SERVICE -sN Name, -sPN PathName, -sS State, -sSN StartName, -sM StartMode

Startup procesi STARTUP -suU User, -suC Caption, -suCMD Command, -suL Location

Korisnički računi USERACCOUNT -uaN Name, -uaD Description, -uaDOM Domain, -uaPR PasswordRequired, -uaPE PasswordExpires, -uaPC PasswordChangeable

Korisničke grupe GROUP -gN Name, -gD Description, -gDO Domain

Dijeljeni direktoriji SHARE -shN Name, -shP Path

Instalirane aplikacije PRODUCTS -prD Description, -prN Name, -prV Vendor

Instalirane zakrpe QFE -qfeD Description, -qfeHFID HotFixID, -qfeSPIE ServicePackInEffect

7.3.2. Klijentska strana

Klijentska strana je grafički program, s velikim mogućnostima vizualizacije i namijenjena je kontroli svih funkcija uređaja, te pruža okolinu za pregled i kontrolu nadziranih informacija. Čine ju nekoliko modula: grafički prikaz mrežne topologije, kontrola NMAP-a, dohvat podataka o inventaru, udaljeni task manager, kontrola nadzornog mehanizma, prikaz izvješća i komunikacijski sloj.

Komunikacijski sloj ima istu ulogu kao i na poslužiteljskoj strani, dakle zadaća mu je implementirati komunikacijski protokol i putem njega omogućiti komunikaciju s poslužiteljem, dok svi ostali moduli predstavljaju formu grafičkog sučelja za prikaz informacija ili za upravljanje istima. Kako svaki modul predstavlja dio sučelja moduli će detaljno biti opisani u dijelu o radu s aplikacijom.

Page 58: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 54 od 66

7.4. Upravljanje uređajem

Kako bi se omogućilo upravljanje uređajem potrebno je podesiti IP adresu i druge mrežne postavke samog uređaja. Nakon što su navedene mrežne postavke podešene uređaju je moguće pristupiti iz aplikacije za administraciju koja se izvršava na udaljenom računalu. Mrežne postavke uređaja postavljaju se putem ugrađenog ekrana i pripadnih gumba.

Uređaj posjeduje 6 gumba, 4 navigacijska označena strelicama gore, dolje, lijevo i desno, te jedan potvrdni gumb smješten u sredinu i jedan gumb za otkazivanje akcije označen crvenim križićem. Inicijalni izbornik sadrži dvije stavke: Monitor i Setup. Izborom Monitor stavke ulazi se u nadzorni način rada kada uređaj prikazuje imena 4 računala koja se nadziru i pripadne statusne informacije dok izbor Setup stavke omogućuje postavljanje mrežnih postavki uređaja te paljenje odnosno gašenje GSM funkcije uređaja. Ulazak u pojedini izbornik odvija se ili pritiskom na gumb s oznakom desnog smjera ili na potvrdni gumb dok se vraćanja u viši izbornik odvija pritiskom na gumb s oznakom lijevog smjera ili pritiskom na gumb za otkazivanje akcije.

Slika 7.16: Izgled inicijalnog izbornika

Ulaskom u izbornik Setup moguće je birati između stavki Network Params i GSM module. Network Params izbornik omogućuje postavljanje IP adrese sučelja, mrežne maske i podrazumijevanog DNS poslužitelja i gatewaya.

Slika 7.17: Izgled Setup stavke izbornika

Slika 7.18: Izgled Network params stavke izbornika

Izborom pojedine konfiguracijske stavke u Network Params izborniku prikazuje se konfiguracijski dijalog prikazan na slici 7.19. Gumbima "lijevo" ili "desno" označuje se pojedini segment IP adrese odijeljen točkom, a gumbima "gore" i "dolje" mijenja vrijednost između 0 i 255. Postavljena vrijednost postaje aktivna isključivo pritiskom na potvrdni gumb.

Page 59: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 55 od 66

Slika 7.19: Postavljanje IP adrese uređaja

Slika 7.20: Paljenje i gašenje GSM modula

7.5. Klijentska aplikacija za upravljanje

Za konfiguriranje uređaja te pregled uzbuna na nadziranim poslužiteljima kao i generiranih izvješća stvorena je posebna klijentska aplikacija s visokom stupnjem vizualizacije i interakcije s korisnikom.

Aplikacija je izuzetno konfigurabilna te je vizualno ali i funkcijski podijeljena na četiri dijela. Gornji dio rezerviran je za alatne trake i sadrži nekoliko alatnih traka s grupiranim stavkama koje obavljaju funkcijski slične zadaće. Lijeva strana sadrži kontrolni centar u kojemu se nalaze često korištene funkcije, centralni dio zauzima prostor za manipulaciju i grafički prikaz mrežne topologije i pregled izvješća i logova, a desni dio aplikacije sadrži repozitorij objekata (tab Shapes) kao i svojstva pojedinog objekta (tab Propetites) koji se drag&drop načinom mogu premjestiti na površinu za grafički prikaz (tab Diagram). Cijeli centralni dio u ovisnosti o funkciji raspoređen je u nekoliko tabova: Diagram tab sadrži interaktivnu površinu za grafički prikaz i manipulaciju mrežnom topologijom, Browser tab služi kao Web preglednik, Communication i GSM and Alert Log tabovi namijenjeni su prikazu logova cjelokupne komunikacije s poslužiteljem kao i logova slanja SMS poruka s točnim vremenom slanja, Discovery and Scanning Report i Inventory Reports služe pregledu NMAP izvješća i izvješća koja se generiraju iz podataka dohvaćenih putem WMI-a.

Zbog upotrebe naprednih kontrola Dacris NetXP 3.0 podrazumijevan izgled sučelja nalik je Office 2003 sučelju. Izgled sučelja je moguće po želji modificirati te je tako u potpunosti moguće izdvojiti Control Centar i Shape and Properties dijalog iz sučelja glavne aplikacije, sakriti ga sa strane ili ugasiti (Napomena: ugašeni Control Center ili Shape and Properties dijalog moguće je ponovno prikazati opcijom View → Control Center ili View → Shape and Properties). Zahvaljujući modularnom sučelju moguće je veliki dio aplikacije koristiti za prikaz dijagrama što je dobrodošla opcija kod prikaza velikih mrežnih topologija.

Sučelje također podržava stilove čime su omogućeni različiti tipovi prikaza. Podržani su Office 2003, Office XP i Windows default načini prikaza. Ukoliko je izabran Office 2003 način prikaza pod Windows XP operacijskim sustavom sučelje će biti svjesno teme koja se koristi što znači ukoliko je uključena zelena Windows tema, takve će boje biti i sučelje. Pod operacijskim sustavom Windows Vista boja sučelja biti će plave boje kao što je i vidljivo na slikama koje prikazuju sučelje. Do izbora navedenih stilova dolazi se putem izbornika View → Display Style.

Page 60: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 56 od 66

Prilikom izlaska iz aplikacije sve modifikacije izgleda sučelja će biti pohranjene u registry, te ukoliko se aplikacija ponovno pokrene na istom računalu, sučelje, pozicija i veličina prozora će biti identični onome kakvi su bili prilikom posljednje uporabe.

Slika 7.21: Osnovno sučelje klijentske aplikacije

7.5.1. Pristup uređaju i stvaranje dijagrama

Prvi korak u radu s aplikacijom zahtjeva autentifikaciju i autorizaciju. Nakon pokretanja, aplikacija zahtjeva unos korisničkog imena, lozinke i IP adrese poslužitelja odnosno uređaja. Prilikom dizajna u obzir je uzeta sigurnost te se mrežom prenosi samo sažetak lozinke, a sučelju aplikacije je nemoguće pristupiti dok se korisnik ne autorizira i autentificira.

Slika 7.22: Proces prijave

Page 61: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 57 od 66

Stvarati grafički prikaz mrežne topologije moguće je ručno ili automatski. Automatsko stvaranje grafičkog prikaza topologije dio je enumeracije i skeniranja mreže te će biti opisano u sljedećem poglavlju.

Ručno kreiranje grafičkog prikaza svodi se na povlačenje objekata iz Shapes repozitorija na Diagram površinu. U Shapes repozitoriju se nalaze objekti koji predstavljaju mrežne komponente: poslužitelj, računalo, usmjerivač, preklopnik, vatrozid, mrežni pisač, bežična pristupna točka i mrežni oblak. Shapes repozitorij također sadrži i općenitije objekte poput poluprozirnog elipsastog oblika (Group Shape), kvadratnog oblika (Area Symbol) i slike (Picture Shape) koji omogućuje prikaz slike na Diagram površini i koja se odabire putem posebnog dijaloga (Picture Dialog). Ovi općeniti objekti namijenjeni su prvenstveno kako bi vizualno dopunili grafički prikaz većih mrežnih okolina.

Diagram površina podržava neograničenu količinu objekata i svakom od objekata je moguće mijenjati svojstva, primjerice IP adresu, korisničko ime, poziciju, veličinu i brojna druga.

Slika 7.23: Repozitorij objekata i svojstva pojedinog objekta

Podržano je zumiranje objekata (uporabom Ctrl+mouse scroll tipki), te neograničeno velika površina. Ukoliko se novi objekti dodaju izvan vidljive površine ona će se automatski proširiti. Također, površina za grafički prikaz ima implementiranu punu podršku za Undo/Redo mehanizam s mogućnošću vraćanja 15 koraka unazad.

Slika 7.24: Alatna traka za manipulaciju vezama i točkama poveznicama između objekata

Objekti na alatnoj traci prikazanoj na slici 7.24. Omogućuju stvaranje veza među objektima te micanje točka poveznica koji su unaprijed određeni za svaki objekt

Slika 7.25: Alatna traka za manipulaciju vizualnim svojstvima objekata

Page 62: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 58 od 66

Alatna traka prikazana na slici 7.25 namijenjena je izmjeni vizualnih svojstava objekata. Tako je moguće mijenjati boju objekta, boju veze između objekata, kakav će završetak imati linije koja povezuje objekte, koje će debljine biti te linije i kakvog tipa. Odabirom neke od ovih opcija u sredini Diagram površine otvorit će se izbornik iz kojega je moguće izabrati željeno svojstvo. Slika 7.26 prikazuje izbor završetka linije.

Slika 7.26: Izbor izgleda kraja linije

Kontrola prikaza dijagrama također omogućuje grupiranje objekata te pozicioniranje u dubinu. Ovo znači kako je svaki objekt moguće vizualno staviti ispred drugog objekta.

Slika 7.27: Alatna traka za grupiranje objekata i određivanje dubine

7.5.2. Otkrivanje i stvaranje mrežne topologije Otkrivanje mrežne topologije i skeniranje objekata u mreži odvija se uporabom Discovery

and Scanning alata koji za svoj rad koristi dobro poznati sigurnosni alata NMAP. Izborom Discovery and Scanning gumba na alatnoj traci prikazuje se novi dijaloški okvir koji omogućuje detaljne postavke parametara skeniranja. Podržano je oko 90% funkcija NMAP alata. Uz svaku opciju prisutno je objašnjenje u vidu tooltipa te je isto objašnjenje vidljivo i u Info tabu. Izabrane opcije moguće je smjestiti u skladište koje se pohranjuje u XML datoteku te je ono uvijek dostupno. Rad s XML skladištem odvija se pomoću 3 gumba smještenih na desnoj strani Args List taba. Klikom na prvi gumb označeni argumenti smještaju se u XML skladište, pomoću drugog gumba se stavka iz skladišta može obrisati, a treći omogućuje ručni unos parametara i komentara. Podržano je spremanje do 10 unosa.

Nakon što su željeni argumenti označeni. Klikom na gumb Start argumenti se prenose uređaju koji pokreće NMAP alat, a rezultati koje ispisuje sam alata uređaj dostavlja klijentskoj aplikaciji i navedeni su vidljivi u Output tabu Discovery and Scanning dijaloga. Kada je skeniranje završeno uređaj na raspolaganje stavlja XML datoteku s rezultatima skeniranja iz koje se generira mrežna topologija te se također uporabom XSL datoteke stvara HTML izvješće dostupno u Discovery and Scanning Report tabu glavnog sučelja.

Nakon završenog rada s alatom generiranje grafičkog prikaza mrežne topologije se odvija pritiskom na Layout gumb u alatnoj traci. Klijentska aplikacija tada dohvaća XML datoteku s rezultatima skeniranja, parsira ju i na temelju tih podataka kreira grafički prikaz mrežne topologije. Podržan je jednostavan algoritam rasporeda objekata i to jednoliko po obodu elipse. (NAPOMENA: samo za potrebe generiranja mrežne topologije bez dodatnog sigurnosnog ispitivanja potrebno je jedino označiti –PR prekidač u Host Discovery tabu Discovery and Scanning alata)

Page 63: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 59 od 66

Slika 7.28: Discovery and Scanning alat

Slika 7.29: Izvješće skeniranja NMAP alatom vidljivo je u Discovery and Scanning Report tabu glavnog sučelja

Page 64: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 60 od 66

Slika 7.30: Uz svaku opciju dostupno je detaljno objašnjenje

7.5.3. Stvaranje izvješća o inventaru

Nakon otkrivanja mrežne topologije moguće je za svaki od mrežnih poslužitelja i računala definirati posebno korisničko ime i lozinku ili je moguće koristiti jedinstveni administratorski korisnički račun na domeni. Sve ove opcije podešavaju se putem svojstava u tabu Properties Shape and Properties dijaloga. Ukoliko se žele postaviti parametri korisničkog imena i lozinke za svaki objekt posebno, potrebno ih je posebno označiti i unijeti navedene parametre, ukoliko se želi koristiti jedinstveno korisničko ime i lozinka na domeni potrebno je označiti sve objekte nad kojima vrijede ti parametri i unijeti svojstva u Properties tabu. Na taj način će, iako jednom unijeti, korisničko ime i lozinka vrijediti nad svim označenim objektima.

Klik desnom tipkom miša na pojedini objekt otvorit će kontekstni izbornik u kojemu opcija Inventory… otvara dijalog s opcijama koje će se dohvatiti putem WMI. Do ove opcije je također moguće doći i putem gumba Inventory na alatnoj traci. Posebna pozornost je stavljena na sigurnosne aspekte, pa je pored tipa procesora i imena proizvođača sustava moguće dohvatiti i podatke o startup procesima, trenutno aktivnim procesima, servisima, dijeljenim direktorijima, mrežnim sučeljima i drugome.

Za svaki tip podataka moguće je birati svojstvo koje će se dohvatiti, tako je uz CPU tip podatka moguće birati hoće li se dohvatiti brzina, ime proizvođača, količina pričuvne memorije i drugo, a detaljan popis svojstava koji se mogu dohvatiti putem WMI-a vidljiv je u tablici 7.2. Ukoliko niti jedno svojstvo nije označene dohvaćat će se sva svojstva definirana u WMI repozitoriju za pojedini imenski prostor.

Dijaloški okvir WMI Data Acquisition Options posjeduje jednake opcije kao i Discovery and Scanning tool dijaloški okvir odnosno sadrži interaktivno sučelje kao i mogućnost pohrane do 10 nizova naredbi. Nakon što je dohvaćanje podataka uspješno završeno, a to će biti dojavljeno korisniku u Output tabu. U Inventory Reports tabu glavne aplikacije će biti dodana IP adresa računala s kojega su podaci dohvaćeni, te će pregled izvješća za to računalo biti omogućeno. Slika 7.31 prikazuje dijaloški okvir, a slika 7.32. generirana izvješća.

Page 65: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 61 od 66

Slika 7.31: Sučelje WMI Data Acquisition alata

Slika 7.32: Detaljna izvješća o poslužiteljima dostupna su u Inventory Reports tabu glavnog sučelja

Page 66: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 62 od 66

7.5.4. Pregled podataka u stvarnom vremenu

Sustav pored generiranja izvješća posjeduje i mogućnost uvida u neke podatke u stvarnom vremenu. Podatke koje je moguće pregledavati u stvarnom vremenu jesu zauzeće procesora i memorije, zauzeće prostora na disku i lista aktivnih procesa.

Navedene podatke moguće je pregledati u Remote Task Manager dijaloškom okviru, a do njega se dolazi izborom objekta koji se želi nadzirati, te izborom Live Dashboard… opcije iz kontekstnog izbornika ili klikom na Live Dashboard gumb na alatnoj traci. Dijaloški okvir prikazan je na slici 7.33, a navedeni podržava i mogućnost udaljenog gašenja procesa. U listi procesa moguće je desnom tipkom miša pozvati kontekstni izbornik i opcijom Terminate ugasiti označeni proces na udaljenom računalu. Listu procesa moguće je sortirati po bilo kojoj od prikazanih stavki vidljivih na slici 7.33.

Zauzeće procesora se osvježava svake 3 sekunde, a zauzeće memorije svakih 15 sekundi, a graf se prikazuje u relativnom mjerilu. Trenutna maksimalna vrijednost u odnosu na koju se graf prikazuje vidljiva je u gornjem lijevom kutu. Dijalog također podržava prikaz zauzeća do 4 diska, a pored veličine diska i zauzeća u megabajtima zauzeće se prikazuje i grafički. U ovisnosti o razini zauzeća grafički prikaz drugačije je boje; ukoliko je zauzeće diska ispod 80% boja prikaza je zelena, ukoliko je vrijednosti zauzeća između 80% i 92% boja prikaza je narančasta, te ukoliko je vrijednosti iznad 92% boja prikaza je crvena.

Slika 7.33: Remote Task Manager omogućuje pregled informacija u realnom vremenu na udaljenom računalu

7.5.5. Postavke parametara nadzora i pokretanje nadzora

Definiranje parametara za nadzor odvija se kroz Monitoring Options dijaloški okvir do kojega se dolazi izborom opcije Monitoring Params… iz kontekstnog izbornika ili putem gumba Monitoring na alatnoj traci. Nadzirati je moguće zauzeće procesora pri čemu je potrebno definirati zauzeće i vrijeme kroz koje se zauzeće prati, zauzeće diskovnog prostora

Page 67: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 63 od 66

i stanje procesa. Također u ovom okviru se upisuje ime poslužitelja koje će se ujedno ispisivati na ekranu uređaja i odabire indeks odnosno redoslijed prikaza na vanjskom ugrađenom ekranu.

Sustav podržava dva tipa uzbune: upozorenje i ozbiljnu uzbunu. Ukoliko se za pojedino svojstvo koje se prati definira upozorenje kao razina uzbune, i ukoliko nadzirana vrijednost prijeđe definiranu kritičnu vrijednost tada će administratoru biti poslana poruka putem elektroničke pošte. U slučaju definiranja kritične razine uzbune administratoru će biti poslan SMS.

Nakon postavljanja graničnih vrijednosti, gumbom Submit se te vrijednosti pohranjuju na uređaju, te se na grafičkom prikazu uz poslužitelj koji se nadzire pojavljuje poseban grafički oblik tvz. Alert status box prikazan na slici 7.35. U ovisnosti koji tip uzbune je detektiran ovaj oblik će imati drugačiju boju. Ukoliko nije prijeđena niti jedna kritična vrijednost oblik će imati zelenu boju, za uzbunu srednje razine boja će biti narančasta, dok će kritičnu grešku predstavljati crvena boja.

U desnom gornjem kutu Alert status box-a se nalazi strelica, klikom na nju prikazat će se detaljne informacije o statusu uzbune. Uz svaku stavku koja se prati moguće je vidjeti broj 0, 1 ili 2. Oznaka 0 znači kako je sve u redu, oznaka 1 kako je neka od nadziranih vrijednosti prešla graničnu vrijednost no kako obavijest administratoru još nije poslana. Dok 2 znači kako je uzbuna detektirana i kako je obavijest administratoru poslana.

Pokretanje nadzora otpočinje klikom na gumb u alatnoj traci i jednom kada je ono pokrenuto nadzorna aplikacije ne mora biti aktivna. Ponovnim pokretanjem nadzorne aplikacije dohvaćaju se podaci o nadzoru i sve vrijednosti je moguće ponovno pratiti i iz nadzorne aplikacije.

Slika 7.34: Postavljanje parametara za nadzor

Page 68: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 64 od 66

Slika 7.35: Zatvoreni i otvoreni Alert status box

Slika 7.36: Prikaz statusnih informacija na samom uređaju

Page 69: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 65 od 66

8. Zaključak

Sve veća prisutnost digitalne tehnologije kao i razvoj društva općenito temelj su novih ideja i rješenja koji će nam pojednostaviti i olakšati život. Jedno takvo rješenje je i sustav za nadzor i upravljanje računalnom sigurnošću.

U ovom radu ostvaren je računalni sustav koji omogućuje nadzor računala u mrežnoj okolini putem WMI tehnologije. Računalni sustav ostvaren je kao sklopovski sustav čije funkcije poput automatske enumeracije mrežne topologije, stvaranje izvještaja o inventaru iz perspektive informacijske sigurnosti i skeniranje mreže uporabom dobro poznatog alata Nmap mogu pružiti potporu dijelovima normi ITIL i ISO 27002, te zbog uporabe NMAP alata ali i detaljnog uvida u konfiguraciju svakog računala sustav može služiti i kao pomoć prilikom analize rizika.

Cjelokupni hardver dizajniran je isključivo za potrebe ovoga rada, a posebno je vođeno računu o elektroničkim komponentama od kojih su neke također specijalno dizajnirane za potrebe ovoga rada, te posebno o vanjskom izgledu uređaja na način da podrži sve funkcije uređaja, poput prikaza imena nadziranih uređaja na vanjskom ugrađenom ekranu i signalizacije statusa nadziranih računala do slanja alarmnih poruka putem SMS-a.

Izrada sklopovskog sustava pokazala se kao težak zadataka, od izrade dizajna u digitalnom obliku do stvaranja opipljivog proizvoda dug je i naporan put, te je priprema, dizajn i nabavka hardverskih dijelova trajala više od 6 mjeseci, a jednako toliko je trajala i izrada softvera za uređaj. No bez obzira na kompleksnost zadatka, na nama, budućim inženjerima, je da iskoristimo svoje znanje i ubrzamo ionako neizbježne procese te tako stvorimo i sebi i drugima bolju i kvalitetniju budućnost.

Page 70: Sustav za nadzor i upravljanje ra čunalnom sigurnoš ćusigurnost.zemris.fer.hr/ISMS/2007_siladi/Diplomski_br.1669_Denis_Siladi.pdf · 7.3.2. Klijentska strana.....53. Sadržaj 7.4

Stranica 66 od 66

9. Literatura

[1] Network Management, MIBs and MPLS: Principles, Design and Implementation, Addison Wesley, 2003.

[2] Essential SNMP, 2nd Edition, O'Reilly, 2005.

[3] Foundation in ITIL Service Management, The Art of Service, 2007. http://www.itsm-learning.com

[4] FCAPS whitepaper, http://www.futsoft.com/pdf/fcapswp.pdf

[5] Penetration Testing and Network Defense, Cisco Press, 2005.

[6] Hack I.T.: Security Through Penetration Testing, Addison Wesley, 2002.

[7] Assessing Network Security, MS Press, 2004.

[8] WMI reference, http://msdn.microsoft.com/library/en-us/wmisdk/wmi/wmi_reference.asp

[9] MSDN Training - Scripting Microsoft® Windows® Management Instrumentation – Course Number 2439A

[10] Jscript 5.5 Reference, MS Press, 2000.

[11] Microsoft Windows 2000 Scripting Guide, MS Press, 2002.

[12] Leveraging WMI Scripting: Using Windows Management Instrumentation to Solve Windows Management Problems, Digital Press, 2003.

[13] NMAP, http://insecure.org/nmap/

[14] Netron GraphLib, http://netron-doc.kuss.dyndns.org/pmwiki/pmwiki.php, https://www2.hosted-projects.com/trac/Swa/Netron

[15] NmapView, http://www.craftysoftwares.com/

[16] Siemens Data Module, http://www.gsmhacking.com/help/cables/siemens/index.htm

[17] Siemens S35i,C35i, M35i AT Command Set Reference Manual

[18] Crystalfontz CFA-635 Data Sheet and Drivers, http://www.crystalfontz.com/products/635/index.html

[19] Aladdin HASP Reference Manual

[20] C# Serial Interface, http://msmvps.com/blogs/coad/archive/2005/03/23/39466.aspx

[21] RiverSpy Monitoring System http://pei.ucc.ie/daithi/m35/m35.html

[22] Vista Style Progress Bar, http://www.codeproject.com/cs/miscctrl/VistaProgressBar.asp

[23] Simple Performance Chart, http://www.codeproject.com/cs/miscctrl/SimplePerfChart.asp

[24] DataGridView Multi-column Sort, http://www.codeproject.com/cs/miscctrl/multicolumn_sort.asp