GreenSQL: Difference between revisions
Line 87: | Line 87: | ||
== Varundamine ja taastamine == | == Varundamine ja taastamine == | ||
GreenSQL seadete varundamine ja taastamine on äärmisel hõlbus veebiliidese abil. Selleks tuleb liideses minna SYSTEM > BACKUB&RESTORE, kus paiknevad vastavad nupud Backup (varunda) ja Restore (taasta). Seaded salvestatakse XML faili. | GreenSQL teenuse kiireks taastamiseks oleks kasulik varundada ka teenuse konfiguratsiooni failid. Selleks tuleb kopeerida ohutusse kohta kõik .conf lõpuga failid kataloogist ''/etc/greensql'' näiteks nii: | ||
mkdir /home/user/greensqlcfgbackup | |||
cp /etc/greensql/*.conf /home/user/greensqlcfgbackup/ | |||
Taastamiseks tuleb kopeerida kõik .conf lõpuga failid tagasi /etc/greensql kataloogi ja taaskäivitada greensql teenus: | |||
cp /home/user/greensqlcfgbackup/*.conf /etc/greensql/ | |||
/etc/init.d greensql-fw restart | |||
GreenSQL sisemiste seadete (k.a. valge nimekirja) varundamine ja taastamine on äärmisel hõlbus veebiliidese abil. Selleks tuleb liideses minna SYSTEM > BACKUB&RESTORE, kus paiknevad vastavad nupud Backup (varunda) ja Restore (taasta). Seaded salvestatakse XML faili. | |||
[[File:backup.png]] | [[File:backup.png]] |
Revision as of 09:21, 9 June 2012
Autorid
Priit Lume AK41 (GreenSQL paigaldamine)
Ulvar Petmanson AK31 (GreenSQL testimine)
Muudatuste ajalugu
Viimati muudetud: 06.06.2012
Versioon 1.0
Sissejuhatus
Käesolev juhend tutvustab GreenSQL andmebaasi tulemüüri paigaldamist ja testimist.
Andmebaasi tulemüür on lahendus, mis pakub kaitset nn SQL injection rünnete vastu. Sedasorti rünnete korral proovitakse legaalsete päringute varjus anda andmebaasile käske, millega baasist varjatud andmeid pärida või midagi veel hullemat korda saata.
Juhend tutvustab vabavaralise GreenSQL 1.3.0 paigaldamist, mida saab laadida lehelt http://www.greensql.net/download . See versioon ühildub MySQL ja PostgreSQL andmebaasidega. Saadaval on ka uuem versioon GreenSQL Express, mis toetab ka MS SQL andmebaasi, kuid see eeldab registreerimist lehel http://www.greensql.com .
Juhendi koostamisel on kasutatud Ubuntu 10.10, kuid see peaks sobima ka muude Ubuntu versioonide puhul. GreenSQL paigaldamiseks ja kasutamiseks võiksid olla vähemalt algteadmised linux käsurea keskkonnast ja andmebaasidest.
GreenSQL paigaldamine
Paigaldamiseks tuleb alla laadida paigaldusmeedia, mida saab teha käsuga:
wget -O greensql-fw-1.3.0.tar.gz "http://www.greensql.net/download/get?os=Source_Code&platform=Any&filename=greensql-fw-1.3.0.tar.gz"
Arhiivi lahti pakkimiseks käsk:
tar -zxvf greensql-fw-1.3.0.tar.gz
Kahjuks pole antud arhiivis Debiani/Ubuntu paigaldusfaili, see tuleb ise tekitada. Kuna GreenSQL vajab paigaldamiseks mitmeid teisi rakendusi, siis peab vajalikud rakendused installeerima. Minul tuli paigaldada järgnevad programmid: flex, bison, devscripts, debhelper, libpcre3-dev, libmysqlclient-dev, libpq-dev. Nõutavaid rakendusi võib olla veel, kuid see sõltub sellest, mis masinasse juba paigaldatud on. Antud juhul olid PostgreSQL ja MySQL juba varasemalt paigaldatud. Kui mõni programm puudu on, annab skript selle kohta veateate. Käsurealt paigaldades saab üles-alla kerida kasutades klahve Shift+Page Up/Page Down. Kuna nõutud rakendusi on üsna palju, võtan kasutusele juurkasutaja õigused käsuga
sudo -i
Seejärel tuleb paigaldada vajalikud rakendused kasutades järgnevaid käske:
apt-get install flex apt-get install bison apt-get install devscripts apt-get install debhelper apt-get install libpcre3-dev apt-get install libmysqlclient-dev apt-get install libpq-dev
Nüüd saab tekitada GreenSQL paigaldusfaili. Selleks tuleb lahti pakitud kataloogis käivitada käsk:
./build.sh
Kui kõik läheb hästi, teatab skript, et tekitas kataloogi võrra ülespoole .deb faili. Kui mitte, siis tuleb veateateteist välja selgitada, milline programm on puudu ja ka see paigaldada.
Nüüd saab siis lõpuks asuda GreenSQL installeerimise juurde. Selleks tuleb käivitada käsk:
dpkg -i greensql-fw_1.3.0.deb
GreenSQL Debian/Ubuntu installatsioon küsib paigalduse käigus MySQL või PostgreSQL andmebaasi seadeid, kus hakkab hoidma oma sisemist konfiguratsiooni ja logisid. Seejärel seadistatakse vastav andmebaas automaatselt. Kui paroolid välja arvata, sobivad ka vaikimisi seaded.
Kui vaja sisestatud seadeid muuta, siis seda saab teha käsuga:
dpkg-reconfigure greensql-fw
Programmi saab käivitada käsuga:
/etc/init.d/grensql-fw start
Juhuks, kui käivitamine ei õnnestu ja vaja põhjus välja selgitada, siis logifaili leiab /var/log/greensql.log
GreenSQL Console seadistamine
GreenSQL haldamiseks saab kasutada ka veebipõhist liidest, kuid eelnevalt tuleb see seadistada. Veebiliidese failide vaikimisi asukoht on /usr/share/greesnql-fw/ Lihtsaim viis selle kasutamisele võtmiseks on kataloogi linkimine veebilehe kataloogi:
cd /var/www ln -s /usr/share/greensql-fw/ greensql
Seejärel tuleb anda kõigile kirjutamisõigused kataloogi templates_c, mida kasutatakse lehtede vahemäluna:
cd /var/www/greensql chmod 0777 templates_c
Samuti tasuks kontrollida, et config.php failis andmebaasiseaded korras oleks. Siis võib juba veebilehitsejat kasutada, vaikimisi kasutajanimi on "admin" ja parool "pwd". Kui sama masin esitab mitut veebilehte, siis näpunäiteid Apache seadistamiseks leiab failist /etc/greensql/greensql-apache.conf
Varundamine ja taastamine
GreenSQL teenuse kiireks taastamiseks oleks kasulik varundada ka teenuse konfiguratsiooni failid. Selleks tuleb kopeerida ohutusse kohta kõik .conf lõpuga failid kataloogist /etc/greensql näiteks nii:
mkdir /home/user/greensqlcfgbackup cp /etc/greensql/*.conf /home/user/greensqlcfgbackup/
Taastamiseks tuleb kopeerida kõik .conf lõpuga failid tagasi /etc/greensql kataloogi ja taaskäivitada greensql teenus:
cp /home/user/greensqlcfgbackup/*.conf /etc/greensql/ /etc/init.d greensql-fw restart
GreenSQL sisemiste seadete (k.a. valge nimekirja) varundamine ja taastamine on äärmisel hõlbus veebiliidese abil. Selleks tuleb liideses minna SYSTEM > BACKUB&RESTORE, kus paiknevad vastavad nupud Backup (varunda) ja Restore (taasta). Seaded salvestatakse XML faili.
Testimine
Et veenduda GreenSQL'i töötamises ja väljareklaamitud SQL Injection rünnete tõrjumises ning omandada esialgne kogemus GreenSQL'i seadistamisest on vaja testida. Allpool ongi samm-sammult toodud välja GreenSQL'i lihtne katsetamiskäik. GreenSQL'i testimiseks on vaja rakendust, mille vastu ründeid sooritada. Kasutame selliseks otstarbeks spetsiaalselt loodud Damn Vulnerable Web Application'it ja MySQL andmebaasi. DVWA'd installeerimise kohta leiab asjaliku eestikeelse juhendi siit.
Kui DVWA ja GreenSQL on installeeritud ja GreenSQL ka käivitatud, siis seadistame DVWA suhtlema MySQL'iga läbi GreenSQL'i. Selleks tuleb otsida DVWA konfiguratsioonifailist config.inc.php üles järgmine rida ja lisada port, mille pealt GreenSQL kuulama seadistati:
$_DVWA[ 'db_server' ] = '127.0.0.1:3305'
Restardime Apache teenuse:
sudo service apache2 restart
Logime nüüd GreenSQL'i sisse http://serverinimi/greensql (vaikimisi kasutaja "admin" ja parool "pwd"). Lisame "dvwa" andmebaasi:
Kuna vaikimisi on GreenSQL seadistatud kohe IPS režiimi, aga me tahaks ikka oma rünnakutes esialgu õnnestuda ka, siis lülitame ta DVWA baasi jaoks ringi IDS režiimi:
Las GreenSQL'i leht jääb avatuks, siis saame pidevalt oma "töö" tulemusi jälgida. Avame DVWA, logime sisse ja kontrollime, et DVWA oleks sätitud kõige madalamale turvalisuse tasemele:
Alustame häkkimist. Kuna GreenSQL kaitseb SQL serverit, siis lähme SQLInjection lehele ja proovime kõigepealt kõige lihtsamat tautoloogiat:
User ID: a'or 1=1 --
(kui ei tööta, siis kontrollige, et tühik ka rea lõppu sai)
Tulemus:
Proovime midagi põnevamat:
User ID: ' union all select user, password FROM dvwa.users --
Nüüd hakkame turvama. Lülitame GreenSQL'st dvwa baasi IPS režiimi (samast kohast, kust enne IDS'i peale sättisime). Proovime uuesti eelnevaid päringuid:
User ID: a'or 1=1 --
Ei õnnestunud. Proovime uuesti virutada kasutajanimesid ja paroole:
User ID: ' union all select user, password FROM dvwa.users --
Õnnestus! Kui GreenSQL'ist alertide lehekülge vaadata, siis näeme, et viimane päring on saanud märke "warning", aga mitte "blocked" nagu eelmine päring:
Et selliseid mitte kõikjal maailmas pahasid päringuid ka tõkestada, selleks on GreenSQL'l režiimid "Learning" ning "Firewall". "Learning" režiimis lisatakse kõik andmebaasi vastu tehtud päringud valgesse nimekirja (whitelist) ja "Firewall" režiimis tõkestatakse kõik need päringud, mida valges nimekirjas pole. Proovime. Lülitame GreenSQL'i dvwa baasi jaoks "Learning" režiimi (samast kohast, kust enne IPS'i peale sättisime) ja teeme DVWA SQL Injection aknas paar tavalist päringut:
User ID: 2
Veendume, et GreenSQL on lisanud meie päringu valgesse nimekirja:
Lülitame dvwa baasi jaoks sisse "Firewall" režiimi ja proovime, kas tavaline päring veel töötab:
User ID: 3
Töötab, üritame veel paroole küsida:
User ID: ' union all select user, password FROM dvwa.users --
Ei õnnestunud!
Testimise kokkuvõte
Meie veebiteenuse kasutajanimede ja paroolide konfidentsiaalsus on nüüd märgatavalt tõusnud, kuid, kui teenus ei kasuta ainult ühte päringut, ei saa mingist käideldavusest juttugi olla. Töökeskkonnas tuleks "Learning" režiimile palju rohkem rõhku panna ja õpetada GreenSQL'le kõik-võimalike päringuid, mida teenus kasutab. Rohkem SQL Injection'i kohta leiab näiteks sellelt lehelt: http://n0security.blogspot.com/2011/04/sql-injection-in-dvwa.html
Viited
http://n0security.blogspot.com/2011/04/sql-injection-in-dvwa.html