Diplomski rad br. 1783
Penetracijsko ispitivanje sigurnosti Web primjenskih programa
Ivan Tomić 0036399500 | FER | ZEMRIS | HOME |

4. Automatsko otkrivanje vrste Web aplikacija

Prvi korak penetracijskog ispitivanja sigurnosti je prikupljanje što je više moguće informacija o ispitivanom sustavu, u ovom slučaju o Web aplikaciji. Kako bi se uspješno provelo penetracijsko ispitivanje, potrebno je prikupiti što je više moguće informacija o ispitivanoj Web aplikaciji. Prikuplja se cijeli sadržaj Web aplikacije, odnosno sve HTML stranice koje sadrži Web aplikacija. Posebno bitne informacije su svi URL-ovi (s pripadnim parametrima) i forme koje se nalaze u HTML stranicama. Sve prikupljene informacije koriste se u potrazi za uobičajenim ranjivostima Web aplikacija koje su opisane u prethodnom poglavlju. Ako se provodi penetracijsko ispitivanje komercijalnih Web aplikacija ili Web aplikacija otvorenog koda, jako bitan korak penetracijskog ispitivanja je otkrivanje točne vrste i verzije takve Web aplikacije. Za većinu komercijalnih Web aplikacija i Web aplikacija otvorenog koda već postoji lista poznatih otkrivenih ranjivosti. Zbog toga je kod penetracijskog ispitivanja takvih Web aplikacija potrebno utvrditi o kojoj se točno vrsti i verziji Web aplikacije radi. Kod penetracijskog ispitivanja takvih Web aplikacija i otkrivanja ranjivosti prvo što je potrebno napraviti je da se provjeri sadrži li Web aplikacija neku od poznatih otkrivenih ranjivosti. Poznate otkrivene ranjivosti su kritične ranjivosti za Web aplikaciju, jer su dostupne svima, pa ih je zbog toga potrebno što prije otkriti i ukloniti. Ispravno otkrivanje točne verzije i vrste Web aplikacije je zbog toga jako bitno u provođenju penetracijskog ispitivanja komercijalnih Web aplikacija i Web aplikacija otvorenog koda. Neke od takvih Web aplikacija su:

  • sustavi za upravljanje sadržajem (engl. Content Management System - CMS),
  • Web portali,
  • forumi,
  • Web aplikacije za elektronsku poštu i dr.

U ovom poglavlju opisati će se način automatskog otkrivanja vrste Web aplikacije kako je to ostvareno u programskom okviru WSAT (Web Security Assessment Tool). [17] WSAT trenutno podržava nekoliko poznatih i popularnih Web aplikacija otvorenog koda, odnosno podržava otkrivanje nekoliko vrsta CMS sustava i foruma. Podržani CMS sustavi su:

  • Joomla!,
  • Mambo,
  • PHP-Nuke i
  • PostNuke.

Podržani forumi su:

  • MyBB,
  • phpBB,
  • UseBB,
  • bbPress i
  • PunBB.

Automatsko otkrivanje vrste Web aplikacije je samo jedna od mogućnosti programskog okvira WSAT. WSAT je programski okvir za automatizirano ispitivanje sigurnosti Web aplikacija, napisan u programskom jeziku python. Zbog složenosti samog postupka ispitivanja sigurnosti Web aplikacija, a i zbog pojednostavljivanja nadograđivanja programskog okvira, WSAT je realiziran kao modularan sustav. WSAT se sastoji od sljedećih modula:

  • modul za prikupljanje informacija (Crawler modul),
  • modul za otkrivanje vrste Web aplikacije (Fingerprint modul) i
  • modul za otkrivanje ranjivosti (Exploit modul). (Slika 4.1)
slika41
Slika 4.1: Arhitektura WSAT programskog okvira

Modulom za prikupljanje informacija prikupljaju se svi potrebni podaci iz Web aplikacije, te se s njime ostvaruje komunikacija s Web aplikacijom. Modul za prikupljanje informacija jedini je modul koji se koristi za komunikaciju s Web aplikacijom, te se u njemu ostvarene sve potrebne komunikacijske programske strukture. Prikupljanje informacija o pojedinoj Web aplikaciji provodi se analizom HTML stranica koje su sastavni dio Web aplikacije.

Modul za otkrivanje vrste Web aplikacije koristi se za otkrivanje vrste Web aplikacije za podržane tipove Web aplikacija. Za pribavljanje podataka od ispitivane Web aplikacije koristi se modul za prikupljanje informacija. Prikupljeni podaci uspoređuju se s podacima u bazi podataka, te na osnovu usporedbe određuje se koje je vrste Web aplikacija koja je ispitivana. Bazu podataka predstavljaju XML datoteke u kojima se nalaze podaci o određenoj vrsti Web aplikacije.

Modul za otkrivanje ranjivosti koristi se za otkrivanje poznatih ranjivosti za već poznatu vrstu Web aplikacije. Poznate ranjivosti koje ovaj modul koristi nalaze se u XML bazi ranjivosti, odnosno XML datotekama. Otkrivanje ranjivosti se svodi na slanje posebno modificiranog HTTP zahtjeva (POST ili GET), te na analizu dobivenog odgovora. HTTP zahtjev se generira na osnovu podataka o ranjivosti u XML bazi ranjivosti. Modul za otkrivanje ranjivosti trenutno je u eksperimentalnoj fazi i podržava samo otkrivanje poznatih ranjivosti na SQL ubacivanje za podržane Web aplikacije.

U nastavku je opisan postupak automatiziranog otkrivanja vrste Web aplikacije kako je to ostvareno u WSAT-u. Kako se u tom postupku koriste i modul za prikupljanje informacija i modul za otkrivanje vrste Web aplikacije, oba modula su opisana u nastavku. Modul za otkrivanje ranjivosti nije opisivan jer se ne koristi u postupku otkrivanja vrste Web aplikacije. [17]

4.1 Postupak automatskog otkrivanja vrste Web aplikacije

Tijekom penetracijskog ispitivanja određenog tipa Web aplikacija, kao što je već rečeno, jako je bitno odrediti vrstu i verziju Web aplikacije. Velika većina automatiziranih alata za penetracijsko ispitivanje Web aplikacija obično otkriva samo operacijski sustav koji je instaliran na poslužitelju, te vrstu Web poslužitelja na kojem se nalazi Web aplikacija. WSAT je jedan od rijetkih alata otvorenoga koda koji obavlja automatizirano otkrivanje vrste Web aplikacije.

U otkrivanju vrste Web aplikacije WSAT se oslanja na karakterističan sadržaj Web aplikacija otvorenog koda. Navedene Web aplikacije otvorenog koda, odnosno podržani CMS sustavi i forumi imaju predefiniran dio sadržaja unutar HTML stranica, tj. imaju predefiniranu strukturu poveznica i predefinirani niz HTML formi unutar određene HTML stranice. U tim Web aplikacijama dosta informacija o točnoj vrsti Web aplikacije nalazi se u samom HTML kodu. Točna vrsta Web aplikacije obično piše u podnožju početne, ili svih HTML stranica. Na slici 4.2 prikazano je jedno takvo podnožje HTML stranice u kojem se otkriva točna vrsta Web aplikacije.

slika42
Slika 4.2: Otkrivanje vrste Web aplikacije u podnožju HTML stranice

Još jedan od načina na koji se može otkriti vrsta navedenih tipova Web aplikacija je i meta HTML tag unutar HTML stranice. CMS sustavi obično informaciju o točnoj vrsti Web aplikacije zapisuju u meta HTML tag. Na slici 4.3 prikazan je jedan takav meta HTML tag koji otkriva točnu vrstu korištenog CMS sustava.

slika43
Slika 4.3: Otkrivanje vrste Web aplikacije kroz meta tag unutar HTML koda

Administratori tih Web aplikacija rijetko se zamaraju s izmjenama programskog koda kako bi prikrili vrstu Web aplikacije, pa čak ostavljaju i očite informacije opisane u prethodna dva primjera koje otkrivaju vrstu Web aplikacije.

WSAT se prilikom otkrivanja vrste Web aplikacije ne oslanja samo na spomenute očite informacije u otkrivanju vrste Web aplikacije. Spomenute očite informacije administratori Web aplikacija lako mogu izbaciti iz osnovnog koda HTML stranica, a i takve informacije su pogodnije za ručno otkrivanje. WSAT se prilikom otkrivanja vrste Web aplikacije uz očite informacije oslanja i na spomenuti predefinirani sadržaj HTML stranica. Pri automatskom otkrivanju vrste Web aplikacije uzima se u obzir pouzdanost pojedinih informacija. Informacije su pouzdanije ako ih je teže promijeniti ili izbaciti iz sadržaja Web aplikacije, odnosno ako se mogu pronaći u većem broju Web aplikacija iste vrste. Zbog toga se prilikom automatskog otkrivanja Web aplikacije očite informacije prikazane u prethodna dva primjera uzimaju s najmanjom pouzdanošću, a karakterističan predefinirani sadržaj Web aplikacija uzima se s većom pouzdanošću. Što je vrsta informacije pouzdanija to više utječe na odluku o kojoj se vrsti Web aplikacije radi.

WSAT se, uz pretpostavku da nije promijenjen osnovni kod same Web aplikacije, prilikom otkrivanja vrste Web aplikacije oslanja na tri vrste korisnih informacija, a to su:

  • ključne riječi,
  • uzorci poveznica i
  • HTML forme.

Ključne riječi su karakterističan niz znakova koji se nalazi unutar HTML stranice određene vrste Web aplikacije, te otkrivaju informacije o točnoj vrsti Web aplikacije. Ključne riječi obično sadrže točnu vrstu Web aplikacije i Web stranicu "proizvođača" Web aplikacije. Npr. ključne riječi za Joomla! CMS sustav su:

  • Joomla!,
  • Powered by Joomla!,
  • http://www.joomla.org.

Ključne riječi nisu pouzdane informacije za točno otkrivanje vrste Web aplikacije iz dva razloga. Prvi razlog je što se lako mogu ukloniti iz HTML stranica. A drugi razlog je što se ključne riječi za određenu vrstu Web aplikacije mogu pojaviti u HTML stranicama Web aplikacija koja nisu te vrste. Npr. ključna riječ Joomla! se može pojaviti u HTML stranicama koje opisuju Joomla! CMS sustav, a Web aplikacija na kojoj se nalaze takve HTML stranice ne mora biti te vrste. Zbog ta dva razloga ključnim riječima se daje minimalan značaj u postupku automatskog otkrivanja vrste Web aplikacija u WSAT sustavu.

Uzorci poveznica predstavljaju sve moguće kombinacije URL-ova koji se nalaze na određenoj Web aplikaciji. Uzorak se sastoji od nekoliko komponenti, a komponente su:

  • osnovni URL koji sadrži ime domene, te put i naziv do određene datoteke,
  • popis svih parametara koji su sadržani u uzorku i
  • popis svih vrijednosti za svaki od parametara sadržanih u uzorku.

Uzorci poveznica su vrlo pouzdana vrsta informacija dostupna u Web aplikacijama, jer se poveznice u Web aplikaciji isključivo mogu promijeniti samo promjenom osnovnog programskog koda Web aplikacije. Svaka Web aplikacija posjeduje određeni skup uzoraka poveznica, te se ti uzorci poveznica rijetko razlikuju u više Web aplikacija iste vrste. Prikupljanjem i međusobnim uspoređivanjem uzoraka poveznica Web aplikacija može se odrediti točna vrste određene Web aplikacije. Kako bi otkrivanje točne vrste i verzije Web aplikacije bilo uspješno, za proces automatskog otkrivanja vrste Web aplikacije potrebno je prikupiti veliki skup uzoraka poveznica za veliki broj različitih Web aplikacija. Zbog svoje pouzdanosti u otkrivanju točne vrste Web aplikacije, te zbog toga što ih administratori rijetko mijenjaju izmjenom programskog koda, uzorcima poveznica daje se velik značaj u postupku automatskog otkrivanja vrste Web aplikacija u WSAT sustavu.

HTML forme služe kao ulazne točke kako bi korisnici predali svoje podatke Web aplikaciji. HTML forma se obično sastoji od većeg broja različitih ulaznih elemenata za unos korisničkih podataka, pa zbog toga postoje različite vrste i oblici formi. Jedna od najčešćih formi je forma za prijavu korisnika na Web aplikaciju. U HTML stranicama za definiranje forme koristi se HTML tag <form>. Unutar <form> tag-a nalaze se svi ulazni elementi za određenu formu. Forma uz ulazne elemente obično sadrži ime, identifikator, HTTP metodu slanja (obično GET ili POST) i URL na koji se prosljeđuju podaci koje korisnik unosi u formu. Spomenute vrste Web aplikacija obično sadrže niz karakterističnih formi koje se mogu jednostavno identificirati. Identifikacija formi se obavlja uspoređivanjem imena formi, tipova i naziva ulaznih elemenata, te vrijednosti ulaznih elemenata. Jedini problem vezan uz forme prilikom automatskog određivanja vrste Web aplikacije je to da ispitivana Web aplikacija ne mora sadržavati sve karakteristične forme. Administratori jednostavno iz praktičnih razloga mogu ukloniti jedan dio formi, jer se ne koriste unutar Web aplikacije. Ali i dalje obično ostaje određeni skup formi koje se koriste u svakoj Web aplikaciji, a to su forme za prijavu korisnika i forme za pretraživanje sadržaja. Struktura forme koja se nalazi na Web aplikaciji jedino se može promijeniti izmjenom programskog koda Web aplikacije. Kako se administratori inače ne zamaraju izmjenom programskog koda Web aplikacije, karakteristične forme se mogu iskoristiti za otkrivanje određene vrste Web aplikacije. U postupku automatskog otkrivanja vrste Web aplikacija u WSAT sustavu uzima se da su forme pouzdanije od ključnih riječi, ali manje pouzdane od uzoraka poveznica.

WSAT sustav za automatsko otkrivanje vrste Web aplikacije koristi modul za otkrivanje vrste Web aplikacije. Kako bi modul za otkrivanje vrste Web aplikacije mogao otkriti o kojoj vrsti Web aplikacije se radi, mora postojati baza podataka o različitim vrstama Web aplikacije. U bazi podataka nalaze se sve informacije o određenim vrstama Web aplikacija, te se te informacije koriste za usporedbu s informacijama prikupljenima od ispitivane Web aplikacije. Bazu podataka predstavljaju XML datoteke (fingerprint XML datoteke) koje sadrže sve potrebne informacije o određenoj vrsti Web aplikacije. Za generiranje fingerprint XML datoteka koristi se generator koji se nalazi unutar modula za otkrivanje vrste Web aplikacije. Generator za generiranje fingerprint XML datoteka u datoteke zapisuje korisne informacije koje WSAT koristi pri određivanju točne vrste Web aplikacije. Modul za otkrivanje vrste Web aplikacije, pri ispitivanju Web aplikacije i pri korištenju generatora za generiranje fingerprint XML datoteka, koristi modul za prikupljanje informacija kako bi prikupio potrebne informacije s Web aplikacije.

4.1.1 Prikupljanje informacija o Web aplikacijama

Komunikacija s Web aplikacijom i prikupljanje korisnih informacija glavna je zadaća modula za prikupljanje informacija. Ovaj modul koriste svi ostali moduli koji komuniciraju s Web aplikacijom.

Modul za prikupljanje informacija koristi dva osnovna protokola za komunikaciju s Web aplikacijama, a to su HTTP i HTTPS. Isto tako podržava dvije osnovne metode za prijenos podataka, odnosno za prijenos podataka koristi se GET ili POST metoda. U komunikaciji s Web aplikacijom podržano je i korištenje sjedničkih identifikatora, kako bi se korisne informacije mogle prikupljati i sa zaštićenih dijelova Web aplikacije. Sjednički identifikator se prikuplja ispunjavanjem forme za prijavu korisnika koja se ispunjava od strane WSAT korisnika. Dobiveni sjednički identifikator pohranjuje se u određenu datoteku kako bi se mogao koristi. Podržano je i korištenje posredničkog poslužitelja (engl. proxy server) u komunikaciji s Web aplikacijom. Posrednički poslužitelj se obično koristi prilikom ispitivanja aplikacije ili kako bi se obavljao dodatni nadzor HTTP prometa.

Modul za prikupljanje informacija korisne informacije prikuplja iz dohvaćenih HTML stranica Web aplikacije. Kako bi se uspješno izdvojile korisne informacije iz HTML stranice, HTML stranice moraju biti dobro oblikovane i ispravne (engl. well formed and valid HTML). Kako većina HTML stranica na Internetu nije valjana, prije nego što se informacije izdvajaju iz HTML stranice koristi se programska podrška koja popravlja programsku strukturu HTML stranice. Nakon što se ispravi dohvaćena HTML stranica, modul za prikupljanje informacija prolazi kroz HTML stranicu kako bi prikupio korisne informacije. Pod korisnim informacijama misli se na poveznice i forme, odnosno na informacije unutar HTML tag-ova <a> i <form>.

Postupak prikupljanja korisnih informacija započinje zadavanjem početnog URL-a ili domene Web aplikacije. Za snimanje strukture poveznica, modul za prikupljanje informacija korist se s tri liste: posjećene poveznice, neposjećene poveznice i zabranjene poveznice. Na početku rada u listu neposjećenih poveznica stavlja se početni URL Web aplikacije, a ostale liste su prazne. Modul za prikupljanje informacija dohvaća HTML stranicu s početnog URL-a, te provodi analizu HTML tag-ova <a> i <form> u potrazi za novim poveznicama. Za dohvaćene nove poveznice provodi se pretvorba i provjera valjanosti na sljedeći način:

  • Relativni URL se pretvara u apsolutni URL.
  • Za svaki URL se provjerava valjanost protokola. Prihvaćaju se samo HTTP i HTTPS protokoli.
  • Provjerava se domena URL-a. U obzir se uzimaju samo URL-ovi s početnom definiranom domenom.
  • Provjerava se dohvaća li se URL-om dozvoljena datoteka (datoteke s ekstenzijama .html, .htm, .php, .asp, i sl.)
  • Provjerava se nalazi li se URL u listi posjećenih poveznica ili u listi zabranjenih poveznica.

Ako nova poveznica zadovoljava gore navedene uvjete, tada se ona dodaje u listu neposjećenih poveznica skupa sa svim svojim prethodnicima kako bi se pamtio cijeli put do poveznice. Nakon što se završi analiza za HTML stranicu s određenog URL-a, taj URL se dodaje u listu posjećenih poveznica i postupak se iterativno ponavlja za sljedeći URL u listi neposjećenih poveznica. Lista zabranjenih poveznica sadrži popis URL-ova koji se ne smiju pretraživati, odnosno tako se određuje sadržaj Web aplikacije kojem se iz nekog razloga ne smije pristupati i ne smije sudjelovati u ispitivanju.

Zbog relativno dugog trajanja postupka pretraživanja poveznica, ubrzavanje pretraživanja se postiže na sljedeće načine:

  • ograničavanjem dubine pretraživanja,
  • skraćivanjem maksimalnog vremena dohvata pojedine HTML stranice i
  • zabranjivanjem uzoraka poveznica korištenjem pametnog modula.

Prilikom prikupljanja informacija o poveznicama, modul za prikupljanje podataka prikuplja i informacije za forme sa svake dohvaćene HTML stranice. Informacije o prikupljenim formama se zapisuju u listu formi, informacije koje se prikupljaju su:

  • ime forme,
  • HTTP metoda forme (GET ili POST),
  • URL na kojem se forma nalazi,
  • URL na koji se prosljeđuju parametri forme i
  • popis svih polja forme.

Modul za prikupljanje informacija sadrži i pametni modul. Pametni modul se koristi unutar modula za prikupljanje informacija kako bi se ubrzao postupak istraživanja strukture poveznica određene Web aplikacije. Pametni modul prikupljene poveznice organizira u dvije podatkovne strukture: listu uzoraka i rječnik parametara i vrijednosti. Zapis u listi uzoraka sadrži relativnu poveznicu do dokumenta, te sve parametre koji su pronađeni u određenoj poveznici. Svaki zapis sadrži i informaciju o broju pojavljivanja uzorka poveznice u ispitivanoj Web aplikaciji. U rječniku parametara sadržani su parametri svih poveznica sa svim pripadnim vrijednostima. Pri radu pametnog modula zadaje mu se određeni prag. Ako broj pojavljivanja nekog uzorka prijeđe zadani prag, taj se uzorak zabranjuje i modul za prikupljanje informacija više ne prikuplja informacije s HTML stranica čiji se URL podudara sa zabranjenim uzorkom. Na taj način se određuje brzina prikupljanja informacija s Web aplikacije.

4.1.2 Generiranje fingerprint XML datoteka

Modul za otkrivanje vrste Web aplikacije sadrži i generator za generiranje fingerprint XML datoteka. Generator koristi modul za prikupljanje informacija kako bi prikupio korisne informacije s Web aplikacije, te prikupljene informacije sprema u XML datoteke. Struktura jedne takve XML datoteke nalazi se na slici 4.4.

slika44
Slika 4.4: Struktura fingerprint XML datoteke

Početna dva elementa u fingerprint XML datoteci predstavljaju ime (<name>) i identifikator Web aplikacije (<id>). Ime predstavlja točno ime i verziju Web aplikacije, a identifikator je jedinstveni broj pridružen određenoj vrsti Web aplikacije. Ove informacije korisnik mora upisati prije generiranja fingerprint XML datoteke.

Sljedeći element su ključne riječi (<keywords>). Korisnik ručno mora upisati i ključne riječi za pojedinu Web aplikaciju, prije generiranja fingerprint XML datoteke. Ključne riječi se upisuju u podelement <keyword>. Na slici 4.5 prikazan je dio fingerprint XML datoteke u koji se unosi ime i identifikator Web aplikacije, te ključne riječi za Web aplikaciju.

slika45
Slika 4.5: Zapis imena, identifikatora i ključnih riječi u fingerprint XML datoteci

Nakon što se unesu informacije koje je potrebno ručno upisati u XML datoteku, može početi proces prikupljanja informacija pomoću modula za prikupljanje informacija. Za prikupljanje informacija koristi se pametni modul. Pametnom modulu se zadaje prag pretraživanja s kojim se određuje vrijeme trajanja i potpunost pretraživanja. Pri procesu generiranja fingerprint XML datoteke potrebno je koristiti što veći prag pretraživanja, kako bi se prikupilo što više korisnih informacija. Što se više korisnih informacija prikupi u fingerprint XML datoteke, to se više olakšava procjena vrste i verzije Web aplikacije.

Sljedeći element koji se nalazi u fingerprint XML datoteci su uzorci poveznica (<link_patterns>). Sve informacije za ovaj element se automatski prikupljaju i zapisuju u XML datoteku. Ovaj element sadrži dva podelementa <separator> i <pattern>. U podelement <separator> upisuje se znak koji razdvaja parametre unutar URL-a, a element <pattern> predstavlja određeni uzorak poveznice. Podelement <pattern> sadrži tri podelementa (<url>, <weight> i <params>) s kojima se opisuje određeni uzorak poveznice. Podelement <url> sadrži relativan URL do pojedine HTML stranice. Podelement <weight> predstavlja broj koliko je puta uzorak pronađen za vrijeme prikupljanja informacija. Podelement <params> sadrži popis svih imena prikupljenih parametara i njihovih vrijednosti. Na slici 4.6 prikazan je dio fingerprint XML datoteke u koji se zapisuju informacije o uzorcima poveznica.

slika46
Slika 4.6: Zapis uzoraka poveznica u fingerprint XML datoteci

Zadnji element koji se nalazi u fingerprint XML datoteci su forme (<forms>). Sve informacije i za ovaj element se automatski prikupljaju i zapisuju u XML datoteku. Ovaj element sadrži sve pronađene forme, opis za svaku pronađenu formu nalazi se u podelementu <form>. Podelement <form> sa svojim atributima opisuje ime forme i relativnu lokaciju na kojoj se forma nalazi, te sadrži tri vrste podelemenata (<from>, <to> i <field>). Podelement <from> predstavlja URL na kojem se forma nalazi, podelement <to> predstavlja URL na koji se šalju parametri forme, te element <field> opisuje ulazni element forme (atribut predstavlja ime ulaznog elementa, a sadržaj predstavlja vrijednost ulaznog elementa). Na slici 4.7 prikazan je dio fingerprint XML datoteke u koji se zapisuju informacije o pojedinoj formi.

slika47
Slika 4.7: Zapis forme u fingerprint XML datoteci

4.1.3 Određivanje vrste Web aplikacije

Vrsta Web aplikacije određuje se korištenjem modula za otkrivanje vrste Web aplikacije. Modul za otkrivanje vrste Web aplikacije za prikupljanje korisnih informacija od ispitivane Web aplikacije koristi modul za prikupljanje informacija. Postupak određivanja vrste Web aplikacije temelji se na ocjeni podudarnosti korisnih informacija iz fingerprint XML datoteka s prikupljenim korisnim informacijama ispitivane Web aplikacije. Informacije zapisane u jednoj fingerprint XML datoteci predstavljaju Web aplikaciju određene vrste. Usporedbom korisnih informacija iz fingerprint XML datoteke i prikupljenih korisnih informacija ispitivane Web aplikacije može se zaključiti u kojoj mjeri su te dvije Web aplikacije slične.

Kako bi određivanje vrste Web aplikacije bilo uspješno, potrebno je imati kvalitetnu fingerprint XML datoteku. Kvalitetna fingerprint XML datoteka sadrži veliki broj različitih vrsta uzoraka poveznica i većinu formi koje se mogu pronaći u određenoj vrsti Web aplikacije. Što je veći broj korisnih podataka, to se lakše pri usporedbi nalaze podudarnosti između dvije Web aplikacije iste vrste. Velikim brojem korisnih informacija u fingerprint XML datotekama povećava se vjerojatnost uspješnog određivanja vrste ispitivane Web aplikacije i smanjuje se vjerojatnost krivog određivanja vrste Web aplikacije.

Postupak određivanja vrste Web aplikacije u WSAT sustavu započinje zadavanjem domene Web aplikacije koja se ispituje. Nakon toga započinje prikupljanje korisnih informacija s ispitivane Web aplikacije, kako bi se mogla obaviti usporedba korisnih informacija s ispitivane Web aplikacije i korisnih informacija u fingerprint XML datotekama. Uspoređivanje korisnih informacija obavlja se u nekoliko koraka:

  • Uspoređivanje ključnih riječi
  • Uspoređivanje uzoraka poveznica
  • Usporedba formi

Nakon svih usporedbi donosi se konačna odluka o tome koje je vrste ispitivana Web aplikacija. U konačnoj odluci gleda se kojoj fingerprint XML datoteci najviše sliči ispitivana Web aplikacija, odnosno s kojom fingerprint XML datotekom ispitivana Web aplikacija ima najveći broj podudarnosti ključnih informacija. Vrsta Web aplikacije se određuje prema vrsti Web aplikacije čije se informacije nalaze u fingerprint XML datoteci koja ima najviše sličnosti s ispitivanom Web aplikacijom.

4.2 Ispitivanje djelotvornosti WSAT sustava u određivanju vrste Web aplikacije

Provedeno je ispitivanje djelotvornosti WSAT sustava u određivanju vrste Web aplikacije u svrhu prikupljanja potrebnih podataka za provođenje statističke analize uspješnosti WSAT sustava. Statistička analiza uspješnosti WSAT sustava nije dio ovog diplomskog rada, pa zbog toga statistička analiza nije niti objašnjavana u ovom diplomskom radu. Cilj ispitivanja je bio prikupiti veliki broj rezultata ispitivanjem vrste Web aplikacije koristeći WSAT sustav, kako bi se dobio dovoljno veliki uzorak rezultata za statističku analizu djelotvornosti WSAT sustava.

Za potrebe ispitivanja napravljeno je nekoliko promjena na WSAT sustavu. Napravljene su male promjene u načinu rada modula za otkrivanje vrste Web aplikacije. Normalno ponašanje modula za otkrivanje vrste Web aplikacije je da mu se za rad preda URL samo jedne Web aplikacije. Kako ovakvo ponašanje nije pogodno za ispitivanje velikog broja Web aplikacija, modul za otkrivanje vrste Web aplikacije je prepravljen tako da umjesto URL-a jedne Web aplikacije prima listu URL-ova Web aplikacija. Lista URL-ova Web aplikacija nalazi se u konfiguracijskoj datoteci (sites.txt) u istom direktoriju u kojem se nalazi i izvršna datoteka modula za otkrivanje vrste Web aplikacije. Jedan zapis za određenu Web aplikaciju unutar konfiguracijske datoteke sastoji se od dva elementa. Prvi element je vrsta Web aplikacije. Vrsta Web aplikacije utvrđena je ručno pregledom HTML koda za svaku Web aplikaciju. Drugi element je URL na kojem se nalazi Web aplikacija. Primjer jedne takve datoteke nalazi se na slici 4.8.

slika48
Slika 4.8: Konfiguracijska datoteka s popisom Web aplikacija koje se ispituju

Drugi dio promjena odnosi se na način prikazivanja rezultata modula za otkrivanje vrste Web aplikacije. Uobičajeno ponašanje modula za otkrivanje vrste Web aplikacije je da nakon završetka ispitivanja određene Web aplikacije ispiše otkrivenu vrstu Web aplikacije. Kako su se s ovim ispitivanjem prikupljale informacije potrebne za obavljanje dodatne analize uspješnosti, takvo ponašanje modula za otkrivanje vrste Web aplikacije nije bilo dovoljno. Modul za otkrivanje vrste Web aplikacije je prepravljen tako da ispisuje broj pronađenih ključnih informacija za svaku ispitivanu Web aplikaciju. Svi dobiveni rezultati zapisivali su se u HTML stranice u obliku tablica, na slici 4.9 prikazan je jedan takav zapis rezultata.

slika49
Slika 4.9: Primjer spremanja dobivenih rezultata u WSAT-u

Nakon što se dodaju željene Web aplikacije u datoteku s popisom Web aplikacija nad kojima se obavlja ispitivanje, proces ispitivanja se pokreće izvođenjem naredbe: python main.py (prije izvođenja naredbe potrebno je se pozicionirati u direktorij u kojem se nalazi modul za otkrivanje vrste Web aplikacije). Na slici 4.10 prikazano je pokretanje ispitivanja i početak ispitivanja za prvu Web aplikaciju koja se nalazi u datoteci.

slika410
Slika 4.10: Ispitivanje u tijeku

Ispitivanje je provedeno nad velikim brojem stvarnih Web aplikacija. U ispitivanju su ispitivane sve podržane Web aplikacije, odnosno svi podržani CMS sustavi i forumi. U nastavku su prikazani samo dobiveni rezultati za Joomla! CMS sustav, zbog toga što je dobiven veliki broj rezultata zbog velikog broja ispitivanih Web aplikacija. Rezultati za ostale Web aplikacije nalaze se u dodatku A. Rezultati su prikazani u tablicama, za svaku ključnu informaciju (ključne riječi, uzorci poveznica i forme) po jedna tablica za svaku Web aplikaciju. U svakoj tablici nalazi se popis svih podržanih Web aplikacija u WSAT sustavu, te maksimalan broj ključnih informacija za svaku Web aplikaciju. Maksimalan broj ključnih informacija predstavlja broj zapisanih ključnih informacija unutar fingerprint XML datoteka.

Dobiveni rezultati su broj pronađenih ključnih informacija u ispitivanoj Web aplikaciji koje su identične ključnim informacijama u fingerprint XML datotekama za određenu vrstu Web aplikacije.

Dobiveni rezultati za ključne riječi za Joomla! CMS sustave nalaze se u tablici 4.1. Dobiveni rezultati su zadovoljavajući. WSAT je za većinu ispitanih Joomla! CMS sustava ispravno otkrio pojavljivanje ključnih riječi karakterističnih za Joomla! CMS sustav. U manjem broju ispitanih Joomla! CMS sustava nisu otkrivene nikakve ključne riječi, što je isto očekivano jer administratori jednostavno mogu iz koda HTML stranica izbaciti karakteristične ključne riječi.

Tablica 4.1: Rezultati za ključne riječi za Joomla! CMS sustave
tablica41

Dobiveni rezultati za forme za Joomla! CMS sustave nalaze se u tablici 4.2. Dobiveni rezultati za forme su također zadovoljavajući. U većini slučajeva WSAT je ispravno otkrio pojavljivanje karakterističnih formi unutar HTML stranica ispitivanog CMS sustava. U manjem broju ispitanih Joomla! CMS sustava nisu otkrivene karakteristične forme, što je isto očekivano. Administratori mogu izmijeniti strukture karakterističnih formi ili jednostavno ispitivani Joomla! CMS sustav ne sadrži karakteristične forme.

Tablica 4.2: Rezultati za forme za Joomla! CMS sustave
tablica42

Dobiveni rezultati za uzorke poveznica za Joomla! CMS sustave nalaze se u tablici 4.3. Dobiveni rezultati i za uzroke poveznica su zadovoljavajući. U većini slučajeva WSAT je ispravno otkrio pojavljivanje karakterističnih uzoraka poveznica u ispitivanom CMS sustavu. Iz rezultata se vidi i to da je u većini slučajeva WSAT zaključio da se pronađeni uzorci poveznica prikupljeni iz Joomla! CMS sustava podudaraju s nekoliko karakterističnih uzoraka poveznica Mambo CMS sustava. To podudaranje nastaje iz razloga što su Mambo i Joomla! dva dosta slična CMS sustava, pa imaju i sličnu strukturu uzoraka poveznica.

Tablica 4.3: Rezultati za uzorke poveznica za Joomla! CMS sustave
tablica43

Gledajući općenito na sve prikupljene rezultate ispitivanja, može se zaključiti da je WSAT u većini slučajeva uspješno otkrio vrstu ispitivane Web aplikacije. Stoga se može zaključiti da je WSAT djelotvoran programski alat u automatiziranom otkrivanju podržanih vrsta Web aplikacija.

Prethodna
Gore
Sljedeca
© 2009 Ivan Tomić