Serialisoidun liikenteen testaaminen – vierailulla sovellustestaamisen konepellin alla
SANS-instituutin Ed Skoudis lähestyi taannoin tietoturva-asiantuntijaamme luettuaan ratkaisuehdotuksia sovellustestaamiseen SANS:n murtotestauskurssien postituslistalta. Jaamme nyt nämä Miika Turkian postituslistalle lähettämät vinkit ja ajatukset kuvankaappauksineen blogin lukijoille.
Monet asiakassovellukset lähettävät tietorakenteita tai olioita sarjallistetussa muodossa palvelimelle. Näitä sovelluksia on paljon sekä älypuhelimissa että perinteisen tekniikan PC-ohjelmistoissa. Tällaisen liikenteen testaus vaatii uusia temppuja tavalliseen HTTP/HTTPS-liikenteeseen verrattuna. Perinteisesti sarjallistetun liikenteen testausta on yritetty tehdä hexa-editorilla, jolloin virheiden mahdollisuus kasvaa ja testauksen kattavuus kärsii merkittävästi. Seuraava kuvaruutukaappaus näyttää perinteisen näkymän sarjalliseen liikenteeseen:
Sarjallistetun protokollan tehokas murtotestaus vaatii liikenteen muuttamiseen ymmärrettävään muotoon tutkimista ja muokkausta varten. Tämän jälkeen viesti muutoksineen sarjallistetaan automaattisesti ennen palvelimelle tai asiakassovellukselle lähettämistä. Tämä voidaan tehdä esimerkiksi PortSwiggerin BurpSuite-nimisen työkalun laajennusrajapintaa ja XStream-kirjastoa käyttäen, jolloin käytettävissä on kaikki tutut BurpSuiten testaustyökalut. Sarjallistettu liikenne muutetaan XML-muotoon analyysiä ja testausta varten, kuten seuraava kuvaruutukaappaus osoittaa:
Kuvassa Javan sarjallistettu olio on selväkielisessä muodossa ja muokkaus on varsin helppoa, kun esimerkiksi tekstikentän pituudet lasketaan automaattisesti taustalla. BurpSuiten Intruder -fuzzaus-työkalu onkin esimerkissämme konfiguroitu testaamaan sekä numeerista että tekstimuotoista kenttää sopivilla syötteillä automaattisesti. Jäljelle jää testin varsinainen suoritus ja tulosten analysointi.
Tällä menetelmällä olemme löytäneet huomattavan määrän ongelmia, jotka olisivat ennen menetelmän kehittämistä suurelta osalta jääneet havaitsematta. Esimerkiksi käyttövaltuuksien nostaminen ja toisena käyttäjänä esiintyminen, mielivaltaisten tiedostojen lataus palvelimelta ja SQL-injektio. Kuitenkin ehkä suurin etu tekniikan käytöstä on liiketoimintalogiikan testauksen merkittävä tehostuminen – ellei peräti mahdollistuminen.
Yleisenä havaintona asiakassovellusten testauksesta voi todeta, että erillisen sovelluksen tuottamaan näennäiseen turvaan luotetaan vielä enemmän kuin mitä web-sovelluksissa usein näkee. Asiakassovelluksen erilaiset tarkistukset ja datan piilottaminen kuvitellaan toimivaksi ratkaisuksi, kun verkon yli lähetettävä tieto ei ole selväkielisessä muodossa. Onneksi tällaiset heikkoudet on helppo havaita, kun verkkoliikenne analysoidaan XML-muodossa perinteisen binäärisen “mössön” sijaan.
Varsinainen artikkeli on kirjoitettu tietoturvaorganisaatio SANS:in uuteen murtotestaukseen keskittyvään blogiin, josta kiinnostuneet voivat käydä lukemassa tarkemmat yksityiskohdat. Koko SANS:in uusi murtotestaussivusto on hyödyllinen tietolähde kaikille aiheen parissa työskenteleville.
Kirjoittaja Miika Turkia toimii Nixussa johtavana tietoturvakonsulttina Inspect-yksikössä.
Kommentoi



Lokakuussa raportoitujen tapausten luonne ja vakavuus vaihtelee, mutta valitettavasti suurin osa tapauksista on edelleenkin korjausta vailla. Mikään uusi asia eivät XSS:t toimijoiden sivuilla ole. Toissa jouluna VISA:n sijoittajasuhteisiin keskittynyt Investor.visa.com-sivusto 

blogi