Sorry! Your browser is not supported on this site and it might be acting a bit wonky. Please use Firefox, Chrome or Edge instead

Tietoturvatestauksen automaatio Mozilla Minionilla

Written by:
Visa Parviainen

Tietoturvatestauksen automaatio Mozilla Minionilla

Tämä on tekninen tutoriaali, jonka tarkoituksena on opettaa tietoturvan testausta käytännössä. Ohjeet on testattu toimivaksi Ubuntun versioilla 14.04 ja 16.04. Pienellä soveltamisella kaiken pitäisi toimia myös OSX:llä.

Tutoriaalin tekemiseen tarvitset noin 20 minuuttia työaikaa, lisäksi levykuvan lataamiseen ja muuhun odotteluun kuluu noin 30 minuuttia verkkoyhteyden nopeudesta riippuen. Mozillan Minion-projekti on tietoturvatestaustyökalu, jonka tarkoituksena on tehdä tietoturvatestien jatkuvasta ajamisesta helppoa. Minion on tuotteena vielä varsin keskeneräinen, mutta sillä on erittäin helppo ajaa perustestit ajastetusti tai manuaalisesti. Minionin vahvuutena on, että se kokoaa eri testeistä saadut tulokset yhteen helppolukuiseen listaan, josta pääsee suoraan tutustumaan ulkoisiin artikkeleihin löydöksien vaikutuksista.

Minionin dokumentaatio löytyy täältä: https://github.com/mozilla/minion-vm/

Avaa ensin terminaali ja syötä seuraavat komennot:
> sudo apt-get install virtualbox vagrant virtualbox-dkms git vim
> mkdir eficode_minion && cd eficode_minion && git clone
https://github.com/mozilla/minion-vm.git && git clone
https://github.com/mozilla/minion-frontend.git && git clone
https://github.com/mozilla/minion-backend.git && mkdir apt-cache

Komento luo eficode_minion -hakemiston ja lataa sinne kolme Git-lähdekoodivarastoa sekä luo lisäksi väliaikaishakemiston APT-pakettienhallintaa varten.

Avaa seuraavaksi minion-vm -hakemisto.

Cd minion-vm

ja muokkaa backend.sh -tiedostoa.

>Vim backend.sh
(voit korvata vim-komennon sopivalla muulla tekstieditorilla).

Aseta riveille 4 ja 5 oma nimesi ja sähköpostiosoitteesi. Sikäli kuin olet käyttänyt jo Mozillan Persona -palvelua kirjautumiseen aikaisemmin, kannattaa käyttää samaa sähköpostiosoitetta.

>Vagrant up
Tämä vaihe kestää todennäköisesti hetken, kun Vagrant lataa palvelimen asennuslevyn. Nyt on hyvä aika hakea kuppi sumppia. Minion koostuu kahdesta virtuaalikoneesta, jotka tässä yhteydessä molemmat rakennetaan.

Vinkki: Mikäli Vagrant ei suostu käynnistämään virtuaalikonetta, koneestasi on todennäköisesti käännetty pois päältä rautatason virtualisointituki. Nämä saa käännettyä päälle koneen BIOS:n konfigurointityökalulla.

Minionin pitäisi nyt olla käynnissä seuraavassa osoitteessa: http://192.168.50.50:8080/

Avataan seuraavaksi SSH-yhteys Minionin backend-koneelle.

> vagrant ssh minion-backend

Tämän jälkeen päivitetään pakettienhallinnan versiotiedot ja asennetaan Java -ajoympäristö ZAP-proxyä varten:

> sudo apt-get update && sudo apt-get --assume-yes install openjdk-7-jre

Ja haetaan itse ZAP:n asennuspaketti, sekä puretaan se oikeaan hakemistoon.

> wget https://github.com/zaproxy/zaproxy/releases/download/2.4.2/ZAP_2.4.2_Linux.tar.gz
> tar -xvf ZAP_2.4.2_Linux.tar.gz
> mv ZAP_2.4.2 zap

Seuraavaksi:

> sudo vim /etc/minion/zap-plugin.json
And input the following into the file:
{
"zap-path": "/home/vagrant/zap/"
}

Sourcaa sitten Minionin ympäristö ja kloonaa Minionin zap-laajennos koneelle:

source /opt/minion/minion-env/bin/activate
$ git clone https://github.com/mozilla/minion-zap-plugin
$ sudo su -
$ source /opt/minion/minion-env/bin/activate
$ cd /home/vagrant/minion-zap-plugin/
$ python setup.py install
$ exit

Minion työjonoineen pitää käynnistää uudelleen, kätevimmin tämä hoituu käynnistämällä koko virtuaalikone uudelleen. Katkaise ensin SSH-yhteys virtuaalikoneeseen ja käynnistä se sitten uudelleen:

$ exit
$ vagrant halt
$ vagrant up

Avaa sitten uudelleen Minionin käyttöliittymä: http://192.168.50.50:8080/

Minionin käyttö edellyttää Mozillan Persona-palvelun käyttöä kirjautumisessa. Käyttöliittymän administration -osion plugins -välilehdelle pitäisi olla syntynyt uusi ZAP-laajennosta koskeva rivi:

minionkuva2

Voit nyt lisätä uuden testaussuunitelman (plan) valitsemalla administration osiosta plans -> create. Anna suunnitelmalle nimi (ilman välilyöntejä tai erikoismerkkejä, esimeriksi zaptest) ja kuvaus.

Kopioi alla olevaan kenttään seuraava konfiguraatio:

[
{
"configuration": {
"auth": {
"type": "basic/session",
"username": "username",
"password": "password",
"realm": "Restricted Area",
"hostname": "example.org",
"port": "https",
"sessions": [
{
"token": "token_name1",
"value": "wp_342423423"
},
{
"token": "token_name2",
"value": "wp_111111"
}
]
},
"excludes": {
"spider": [
"http://localhost:1234/path1",
"http://localhost:1234/path2"
],
"scanner": [
"http://localhost:1234/path1",
"http://localhost:1234/path2"
]
},
"policies": {
"40012": "0"
},
"scan": true
},
"description": "Run the ZAP Spider and Scanner",
"plugin_name": "minion.plugins.zap.ZAPPlugin"
}
]

Jolloin lopputuloksen pitäisi näyttää tältä:

minionkuva

Seuraavaksi lisätään uusi testaussuunnitelma johonkin testattavista sivustoista. Valitse sites-tabi, valitse halutun sivuston edit-nappi, ja lisää zaptest -testisuunnitelma (ctrl-nappi pohjassa, jotta muut valinnat eivät häviä).

Vinkki: Jos haluat testata jotakin omaa sivustoasi, lisää ensin sivusto valitsemalla sites -> add ja syöttämällä sivusto (sekä valitsemalla halutut suunnitelmat). Tämän lisäksi tulee lisätä sivusto ryhmään, jotta se ilmestyy pääsivulle testattavaksi. Voit joko luoda uuden ryhmän, tai lisätä sivustosi olemassa olevaan ‘security’ ryhmään. Mikäli päädyt luomaan uuden ryhmän, on syytä huomata, että ryhmää luotaessa sen sisältöä ei voi editoida. Lisää siis oma käyttäjäsi ja sivustosi ryhmään ryhmän edit-nappia painamalla. Ryhmät ilmestyvät pääsivulle pudotusvalikoksi, josta voit valita mitä ryhmää testataan.

Avaa sitten Minionin pääsivu ja listasta sivusto jota haluat testata. Sivuston alla on listattu kaikki sivustoon kuuluvat testaussuunnitelmat. Suoritetaan nyt kaikki suunnitelmat. Paina kunkin suunnitelman viereisestä scan-napista ja odota että testin tilassa näkyy “Finished”.

Testin tulokset on kerätty eri värisiin palloihin, jotka värillään kertovat löydetyn haavoittuvuuden vakavuusasteesta. Painamalla “Details” saat tarkemman raportin löydetyistä haavoittuvuuksista ja painamalla edelleen haavoittuvuuden kuvauksesta saat tietoa haavoittuvuudesta. Tietosivulla on usein myös linkkejä ulkoisiin artikkeleihin haavoittuvuudesta ja sen mahdollisista korjauksista.

Vinkki: Zapilla voi myös ajastaa turvallisuustarkistuksia ajettavaksi esimerkiksi joka yö. Optio asetetaan päälle pääsivun listauksen schedule -napista.

Kiinnostaako tietoturva? Eficode julkaisee yhdessä kyberhyökkäysyhtiö Silverskinin kanssa ohjelmistoprojektin tietoturvaoppaan. Lue lisää Eficoden syyskuun lopussa järjestettävästä maksuttomasta tietoturvatilaisuudesta, josta saat oppaan ilmaiseksi mukaan! Paina linkistä ja ilmoittaudu pian, sillä paikkoja on rajoitetusti.

Lue lisää ja ilmoittaudu