Pääsynhallinta - testauksen helpottaminen autorize lisäosalla
Pääsynhallinnan dilemma
Monesti oikean maailman sovellusten tietoturvatestauksessa törmätään haasteeseen: kuinka määritellään, onko jokin pääsynhallinnan haavoittuvuus vai ei? Sovellukset koostuvat erilaisista toiminnallisuuksista ja näkymistä, eikä aina ole yksiselitteistä, mitä tietoja kenenkin pitäisi nähdä. Kehittäjä voi helposti väittää, että "tämän käyttäjän kuuluukin nähdä tämä tieto", mikä tekee arvioinnista haastavaa.
Erityisesti sovelluksissa, joissa on useita rooleja ja monimutkaisia pääsynhallintamalleja, voi olla vaikeaa hahmottaa, mitä käyttäjillä tulisi tai ei tulisi olla oikeus tehdä. Joissain tapauksissa rajanveto on selkeämpää, esimerkiksi silloin, kun sovelluksessa on yksiselitteisiä käyttöoikeusrajoja, kuten henkilökohtaiset toiminnallisuudet. Toisinaan taas ulkopuolisen on lähes mahdotonta varmistaa, mikä kuuluu kenellekin.
Tästä syystä on aina suositeltavaa vaatia kehittäjältä tai asiakkaalta selkeä roolikuvaus jokaisesta käyttäjäroolista. Tämä mahdollistaa systemaattisen vertailun todellisen pääsynhallinnan ja sovelluksen vaatimusten välillä, jolloin haavoittuvuuksien tunnistaminen helpottuu.
Miksi käyttää Autorize:n kaltaisia työkaluja?
Useimmiten varmin tapa varmistaa, että sovelluksen pääsynhallinta on kunnossa, on käydä läpi sen lähdekoodi ja tarkistaa, että asianmukaiset kontrollit on toteutettu oikein. Tämä ei kuitenkaan aina ole mahdollista, jos lähdekoodia ei ole saatavilla. Mitä siis voidaan tehdä tällaisessa tilanteessa?
Manuaalinen tarkistus jokaisen toiminnallisuuden osalta olisi äärimmäisen aikaa vievää ja tehotonta. Siksi on kehitetty erilaisia työkaluja, jotka nopeuttavat ja tehostavat pääsynhallinnan arviointia, mahdollistaen kattavamman ja systemaattisemman tarkastelun. Katsotaan tätä seuraavaksi käytännössä.
Autorize -lisäosan asentaminen
Aloitetaan autorize -lisäosan käytön harjoittelu asentamalla se BurpSuite työkaluun. Tämä onnistuu helposti navigoimalla BApp kauppaan ja etsimällä sieltä autorize.

Autorize -lisäosan toimintalogiikka
Autorize -lisäosan toimintalogiikka on suhteellisen yksinkertainen. Meillä on sovellus, jossa on erilaisia rajoituksia siihen, että kuka saa nähdä ja mitä. Kirjaudutaan ensin sovellukseen käyttäen yhtä käyttäjää. Jos sovelluksessa on useita eri käyttäjätasoja, niin valitaan matalampi käyttäjätaso näistä kahdesta vertailussa olevasta käyttäjästä. Kun olet kirjautunut, niin kopioidaan kyseisen käyttäjän tunnistetiedot (esimerkiksi keksit) ja asetetaan ne autorize -asetuksiin.

Scope items only!
Tässä vaiheessa on hyvä olla tarkkana, ettei pyynnöt eksy väärille teille. Yksi hyvä tapa varmistaa tämä on määrittää ensin scope (jos tämä ei ole tuttua, niin katso BurpSuite -perusteet kurssi täältä) ja sitten asettaa Scope items only -asetus.

Voidaan myös tarkentaa, että vain tietyn merkkijonon sisältämät pyynnöt halutaan testata. Tämä voi olla hyödyllistä esimerkiksi, jos halutaan testata vain tietyn rajapinta-alueen pyyntöjä tai vastaavaa.
Kun asetukset ovat mieluiset (ainoat pakolliset ovat nuo tunnistetiedot), niin voidaan jatkaa avaamalla esimerkiksi uusi ikkuna incognito-moodissa. Tässä ikkunassa kirjaudutaan sitten sillä toisella vertailussa olevalla käyttäjällä, jolla tässä esimerkissä olisi enemmän oikeuksia, eli korkeamman tason käyttäjällä.
Kun olet kirjautunut molemmilla tileillä ja autorize on valmis, niin laitetaan autorize lisäosa päälle.

Nyt kun suoritat minkä vain pyynnön sillä korkeamman tason käyttäjällä, niin autorize lisäosa kaikessa yksinkertaisuudessaan vain toistaa saman kyseisen pyynnön siten, että korvaa siitä ne olemassa olevat tunnistetiedot (korkeamman tason käyttäjän evästeet) autorize lisäosaan asetetuilla tunnistetiedoilla. Samoin lisäosa myös kokeilee toistaa kyseisen pyynnön ilman mitään tunnistetietoja, eli täysin kirjautumattomana. Näistä pyynnöistä ja vastauksista jää tämän jälkeen jälki autorize lisäosan lokiin.

Itsenäinen harjoittelu
Harjoittele seuraavaksi autorize -lisäosan käyttöä itsenäisesti. Alla olevan tehtävän sovelluksessa on kolme käyttäjätasoa. Admin, User ja kirjautumaton käyttäjä. Normaalin käyttäjän tunnukset ovat user:user . Käytä näitä ja etsi ensin sovelluksesta toiminnallisuus, josta puuttuu pääsynhallinnantarkistus. Hyödynnä sitten tätä puutetta ja vuoda sovelluksesta jotain sinulle kuulumatonta tietoa, niin saat lipun.


Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.
Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.