TigerTeam - suomalainen tietoturvablogi

huhtikuu 2010

Haasteen ratkaisseet ja Top 25 -lukemista

Nixu Challenge on päättynyt ja tarkka pähkinän ratkaisseiden henkilöiden lukumäärä on selvillä – 19 henkilöä. Suurin osa toimitti meille myös CV:nsä ja haastatteluprosessi on jo pitkällä käynnissä.

Kerromme myöhemmin myös haasteen toteutustavasta hieman tarkemmin.

Tässäkin blogissa käsitellystä vuoden 2010 Top 25 -listasta on ilmestynyt laaja kirjoitussarja SANS-instituutin AppSec Street Fighter -blogissa. Kaikkiaan 22 kirjoitusta käsittelevä sarja alkaa Jason Lamin cross-site scripting -kirjoituksesta helmikuun lopulta ja päättyy reaalielämän esimerkin sisältävään race condition -tilannetta käsittelevään kirjoitukseen. Kaikille sovellusturvallisuudesta kiinnostuneille hyödyllistä luettavaa.

Toivotamme samalla blogin lukijoille rentouttavaa ja turvallista pääsiäisaikaa.

Tagit: top-25 Delicious Kommentoi

Näin Nixun haaste ratkesi (How to resolve Nixu Challenge)

Haasteen ratkaisi kaikkiaan 19 henkilöä, joista 12 kutsuttiin haastatteluun.

Sivulatauksia haastepalvelimelle tehtiin noin 200 000 kaikkiaan 66 eri maasta.

Julkaisemme ratkaisun englanniksi, koska haastetta yritti ratkaista myös moni ulkomaalainen henkilö:

The browser starts by fetching a simple JavaScript from r.php without parameters. Typing the script URL in the location bar causes the user’s IP to be banned as the script contains a JavaScript comment that also can be interpreted as an HTML meta redirect. The ban can be removed by visiting the base64 encoded address hidden in the source code of the “403 Forbidden” page. The first script does a few simple loops and calculations to fetch the next script.

Every script except the first one can be fetched only once and this needs to be done within a short timeframe. The scripts are dynamically generated and different every time.

The next script contains xor-encrypted code to get the script of the next phase. This script sends the browser local time in the rand-parameter to the server.

The first two scripts can be bypassed e.g. by using a proxy tool (Burp etc.) in order to directly fetch the last phase script. This script implements an obfuscated stack-based virtual machine processing the byte-code which in turn does the actual validation of the password.

The virtual machine contains an embedded time-check comparing the local time into the timestamp sent to the server during the second phase. In case the local time differs too much from the expected time, the bytecode execution is disrupted. The password is converted into a base-63 number system and the resulting number is compared to a known value.

During the first week the password was aeIrfYh and then it was changed to dEys56_.

Congratulations to all who were able to solve the puzzle!

Pekka Sillanpää vastaa Nixun tarkastuspalvelutuotteiden kehittämisestä ja on tehnyt teknisiä tarkastuksia ja penetraatiotestejä vuodesta 2005 lähtien.

Tagit: penetraatiotestaus Delicious Kommentoi (4 kommenttia)

Uudessa OWASP Top 10:ssä injektiot jylläävät

OWASP-yhteisö on julkaissut hiljattain uuden, vuoden 2010 version merkittävimpiä web-turvariskejä käsittelevästä Top 10 -dokumentistaan.

Merkillepantavaa nyt julkaistussa listassa on se, että OWASP haluaa puhua tietoturvariskeistä – ei enää haavoittuvuuksista ja tietoturvaongelmista.

Listan kolmen kärkeen kuuluvat riskit ovat hyvinkin tuttuja. Ykkösenä ovat injektiohyökkäykset, joilla tarkoitetaan taustajärjestelmäkyselyn, esimerkiksi tietokantakyselyn rakenteen muutoshyökkäystä. Myös Suomessa merkittäviä salasanamurtoja on tehty tällä menetelmällä, jossa esimerkiksi käyttöliittymien tekemiin SQL-kyselyihin liittyvä puutteellinen syötteentarkistus mahdollistaa salasanojen varastamisen tietokannasta. Muutaman kuukauden välein nähtävissä massiivisissa SQL-injektiohyökkäyksissä, joissa haittaohjelmia levitetään verkkosivuille injektoituun koodiin, on aina ollut mukana myös suomalaispalvelimilla toimivia sivustoja.

Listan toista sijaa pitävä cross-site scripting eli XSS oli vielä edellisen, vuoden 2007 Top 10 -listauksen ensimmäisellä sijalla, mutta niiden määrä ei ole tekemissämme tarkastuksissa osoittanut vähenemisen merkkejä.

Isoin sijoitusmuutos on uuden listan kolmonen - Puutteellisesti toteutettu tunnistusmenettely ja istunnonhallinta, joka oli edellisessä dokumentissa vasta sijalla 7. Myös tähän liittyviä havaintoja tehdään lähes jokaisessa Nixun tekemässä tarkastuksessa, ja se onkin ansainnut nykyisen sijansa.

Salasanat selväkielisinä saatavilla

Lopullinen lista muuttui julkaisukandidaattivaiheen sisältäneen Failure to Restrict URL Access -luokan osalta siten, että RC1-listalla vielä sijalla 7. ollut luokka putosi lopullisella listalla kahdeksanneksi. Puutteellinen tietojen salaus (Insecure Cryptographic Storage) puolestaan nousi lopullisella listalla sijalta 9. seitsemänneksi.

Tyypillisin tähän liittyvä havainto on edelleen salasanojen tallentaminen selväkielisenä, vaikka tämä on jo pitkään ollut vastoin kaikkia suosituksia.

Myös kuljetuskerroksen riittämätön suojaus (Insufficient Transport Layer Protection) nousi yhtä pykälää korkeammalle viime marraskuussa alkaneella kommentointikierroksella.

Tässä kirjoituksessa on käytetty luokista suomenkielisiä vastineita, jotka OWASP Helsinki julkaisi viime kesänä.

Mikä OWASP?

Verkkosovelluksien tietoturvaan keskittyneen, kansainvälisen vapaaehtoisjärjestö OWASP:n (Open Web Application Security Project) tarkoituksena on edesauttaa turvallisten sovellusten kehitystä ja ylläpitoa. Järjestö on voittoa tavoittelematon ja se toimii jo lähes sadassa maassa. Suomen OWASP Helsinki Chapter -niminen alajaos perustettiin reilut kolme vuotta sitten.

Tagit: owasp, sovellusturvallisuus, tietomurto Delicious Kommentoi