Samurai WTF
Sissejuhatus
Samurai Web Testing framework (Samurai WTF) on veebirakenduste turvalisuse testimiseks ning turvaaukude leidmiseks koostatud Linuxi distributsioon, mis põhineb Ubuntul. Eesmärgiks oli koostada ühtne süsteem, mille abil on võimalik veebirakendusi kontrollida levinumate turvaaukude ja ründevektorite vastu - selleks on Samurai WTF distributsiooni koondatud üle paarikümne spetsiifilise nii graafilise kui käsureatööriista kui ka brauserilisa Mozilla Firefoxile. Peamiselt on antud distributsioon mõeldud veebirakenduste arendajatele, kes võivad kontrollida vastupidavust rünnetele ja veebipõhiste rakenduste hulgas levinud turvaaukude olemasolu/puudumist. Sealjuures peaks kasutajatel olema olnud varasemat kokkupuudet Linuxi ja käsurealt töötavate programmidega.
Esimene versioon (0.1) tuli välja augustis 2008 ja hetkel kõige uuem versioon on 0.9.5, mis on allalaadimiseks saadaval detsembrist 2010.
Paigaldus ja käivitamine
Nõuded Ametlikult pole kirjas milliseid on nõuded süsteemile, et edukalt antud distributsiooni käivitada, kuid teades et see põhineb Ubuntu v9.04-l, siis tõenäoliselt on nõuded samad:
700 MHz x86 protsessor
384 MB RAM
8 GB vaba kettaruumi
Graafikakaart mis toetaks 1024x768 resolutsiooni
Helikaart
Paigaldus
Samurai WTF on kõigile kasutajatele tasuta allalaetav lehelt samurai.inguardians.com [1](praeguse seisuga on uusim versioon 0.9.5). Saadud .iso fail tuleb kirjutada CD-le või DVD-le ja on seejärel kasutatav live-CD-na ja süsteemi saab käivitada ja ilma seda enda arvutisse installeerimata. Sisse logimiseks tuleb kasutada kasutajanime "samurai" ja parooli "samurai". Seejärel on süsteem täies funktsionaalsuses.
Macintosh/Apple arvutitel on lihtsaim viis kirjutada iso fail plaadile ning süsteem virtualiseeritult käivitada kasutades näiteks Parallelsi või VMWare tööriistu.
Tööriistad
BurpSuite - graafiline tööriistade komplekt, mis võimaldab kontrollida erinevaid veebirakenduste turvaauke. Sisaldab proxyt, mille abil saab jälgida ja muuta infot, mida vahetatakse brauseri (kliendi) ning rakenduse (serveri) vahel; skänner kogumaks infot laialdasemalt levinud turvaaukude esinemise kohta rakenduses ning ründetööriist (intruder) vähemlevinud ja komplitseeritud rünnakute läbiviimiseks.
CeWL - ehk Custom Word List generator võimaldab läbi käia kogu lehe sisu (vaikimisi 2 lingi sügavusele) ning indekseerida kõik esinenud sõnad, võimaldades hiljem nende baasilt teha rakendusele sõnastikründeid, näiteks Jack The Ripperit või mõnda analoogset tööriista kasutades.
DirBuster - efektiivne tööriist peidetud kaustade ja failide leidmiseks veebirakendustes.
Fierce Domain Scanner - Perlis kirjutatud skript etteantud domeeni skänneerimiseks, vaadatakse mis pordid on lahti, mis portidel jookseb mingi teenus.
Flare - võimaldab swf failidest kätte saada nende actionscriptis kirjutatud lähtekoodi (piltide ja videote salvestamise võimalus puudub).
Grendel-Scan - tööriist automatiseeritud kontrolliks levinumate turvaaukude vastu.
GooScan - automatiseeritud põringute saatmiseks Google Search Appliance'ile (Google'i tasuline otsinguteenus, mis on mõeldud firmade kodulehtedele ja intranettidele) eesmärgiga leida päringute vastustest viiteid lehe turvaaukudele.
GPScan - ehk Google Profile Scan on Ruby skript, mis võimaldab leida kasutaja poolt sisestatud firmas töötanud inimeste nimed ja lingid nende Google Profile'ile.
Laudanum - kogumik SQL skripte, mis on mõeldud testimaks lehti, millel on tuvastatud SQL-injection tüüpi turvaauke.
Metasploit - laialdaste võimalustega raamistik nõrkade kohtade ja turvaaukude leidmiseks.
MonkeyFist - on väiksemahuline veebiserver, mis payloads.xml failis kirjeldatud info põhjal ründab etteantud serverit kasutaja poolt koostatud/kohandatud päringutega.
Nikto - veebiserverite skännimiseks ja turvaaukude otsimiseks. Kaasas on 6400 potensiaalset ohtlikku faili/CGI skripti ning kontrollmehhanism leidmaks vananenud tarkvaraversioonidega servereid ning teostamaks nende ründeid.
ParosProxy - Javas kirjutatud rakendus, mis võimaldab üle HTTP/HTTPS ühenduse toimuvat liiklust jälgida ja päringuid ja nende parameetrid vaadata ning muuta (näiteks vormi väljade väärtused).
RatProxy - automatiseeritud tööriist veebirakenduste turvaauditite läbiviimiseks. Avastab, kategoriseerib ja prioritiseerib leitud turvaaugud.
SQLninja - tööriist SQL injection tüüpi turvaaukude ärakasutamiseks ja andmebaaside ülevõtmiseks. Võimaldab koos töötada Metasploit’iga kasutades viimase graafilist liidest kui ligipääs andmebaasile on saadud.
UserNameGen - pythonis kirjutatud skript kasutajanimede genereerimiseks.
w3af - ehk Web Application Attack and Audit Framework - raamistik otsimaks veebirakenduste turvaauke ja kasutades neid lehe/rakenduse üle kontrolli saamiseks.
w3af GUI - sama mis eelmine aga graafilise kasutajaliidesega.
Wapiti - tööriist erinevate injection-tüüpi turvaaukude ärakasutamiseks (andmebaaside injection, XSS injection, LDAP injection, CRLF injection).
Watobo - poolautomaatne tööriist veebirakenduste turvaauditi tegemise tarbeks. Sisaldab vaid vahendeid nõrkade kohtade leidmiseks kuid mitte rünnete teostamiseks.
WebScarab - toimib proxyna, mis võimaldab vaadata päringuid serveri ja kasutaja vahel ning neid vastavalt enda vajadusele muuta. Võimaldab ka toimunud liiklust ja andmevahetuse infot salvestada.
Websecurify - rikkaliku võimekusega veebirakenduste turvalisuse testimise tööriist, mis toetab nii automatiseeritud kui manuaalseid teste.
WebShag - veebiserveri skännimise tööriist läbi proxy ja kasutades HTTP autentifitseerimist.
Yokoso - rakendus kogumaks infot vaatluse all oleva serveri, tarkvara ja rakenduse spetsiifika kohta, mida hiljem kasutada infoks rünnaku planeerimisel või võimalike nõrkuste või turvaaukude avastamisel.
Zed Attack Proxy - Paros Proxyst välja arenenud tööriist kliendi ja serveri vaheliste päringute jälgimiseks ja muutmiseks.
Zenmap - graafiline kasutajaliides Nmap rakendusele.
Firefoxile installeeritud lisad (add-ons):
Access Me - sessioonide turvalisuse kontrollimiseks.
Add N Edit Cookies - cookie'de ehk küpsiste redaktor, mille abil saab salvestatud ja kehtivate sessioonide poolt pandud küpsiseid vaadata, muuta ja lisada.
Advanced Dork - lisab google otsingus parema kliki menüüsse edasijõutnutele mõeldud otsinguoperaatoreid (“intitle:”, “ext:”, “site:” jne).
DOM Inspector - võimaldab vaadata lehe struktuuri ja ülesehitust.
Firebug - laialt levinud tööriist veebiarenduseks, lehe lähtekoodi mugavaks vaatamiseks ja muutmiseks otse brauserist.
FoxyProxy Standard - proxyde haldustöörist Firefoxile.
Greasemonkey - võimaldab kontrollida lehtede käitumist, lisades neile JavaScripti koodi.
HackBar - tööriistariba, mille abil on võimalik tuvastada ja proovida veebivormi väljadele sisestada SQL lauseid (SQL injection).
HeaderSpy - näitab brauseri olekuribal lehe HTTP headerite infot.
JavaScript Deobfuscator - näitab, milliseid JavaScriptis kirjutatud skripte lehel käivitatakse.
JSView - stiililehtede (CSS) ja skriptide vaatamiseks.
RefControl - võimaldab kontrollida, mis infot saadetakse lehele tagasi HTTP referer väljal.
SQL Injection! - vormielementide testimiseks SQL injection tüüpi rünnakute vastu.
SQL Inject Me - vormielementide testimiseks SQL injection tüüpi rünnakute vastu.
Tamper Data - HTTP/HTTPS headerite vaatamiseks ja muutmiseks.
User Agent Switcher - võimaldab brauseril teeselda, et ta on muud tüüpi kui Firefox muutes serverile saadetavad user-agent infot.
View Dependencies - näitab millist infot laeb leht enda domeenist väljastpoolt.
View Source Chart - lehe lähtekoodi ja DOM-i (Document Object Model) vaatamiseks.
Wappalyzer - näitab, milliseid tehnoloogiad, raamistikke, sisuhaldussüsteeme ja lisamooduleid antud leht kasutab.
Web Developer - veebiarendajete mõeldud tööriistadega lisamenüü.
XSS Me - XSS turvaaukude leidmiseks.
Kokkuvõtteks
Samurai WTF on hea vahend veebirakenduste arendajatele ja administraatoritele, et kontrollida veebirakenduste turvalisust läbi levinumate turvaaukude kontrollimise. Kuigi antud distributsiooniga on kaasas väga mitmekülgseid tööriistu, alates algajatele sobivatest kuni eksperdi teadmisi ja mõningast õppimist nõudvateni ei tohiks sellise testimise järel teha järeldust, et kui kaasasolevad tööriistad vigu ei leidnud, siis neid pole ja rakendust saab turvaliseks pidada. Ärikriitiliste süsteemide testimisel peaks tähelepanu pöörama süsteemi laialdasemale testimisele. Lisaks sellele peab silmas pidama, et nii distributsioon kui selles sisalduvad tööriistad oleksid uuendatud ja ajaga kaasas käinud ja sisaldaks endas ka võimalusi uusimate ründevektorite testimiseks.
Rene Haavre A32
Lingid
http://www.linuxjournal.com/article/10874
http://www.taddong.com/docs/Samurai-WTF_RaulSiles_IBWAS09_Dec09.pdf
http://www.irongeek.com/i.php?page=videos/mutillidae-samurai-wtf-owasp-10
https://addons.mozilla.org/en-US/firefox/collections/rsiles/samurai/
Autor
Rene Haavre A32
Viimati täiendatud: 30. mai 2011