GreenSQL: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Khobemae (talk | contribs)
No edit summary
Lliba (talk | contribs)
 
(67 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Pooleli
== Autorid ==


Autorid
Priit Lume AK41 (GreenSQL paigaldamine)


Priit Lume AK41
Ulvar Petmanson AK31 (GreenSQL testimine)


== Muudatuste ajalugu ==
Viimati muudetud: 27.05.2013 Veiko Virk
Versioon 1.1


==Sissejuhatus==
==Sissejuhatus==
Line 10: Line 15:
Käesolev juhend tutvustab GreenSQL andmebaasi tulemüüri paigaldamist ja testimist.
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.
GreenSQL on vabavaraline andmebaasi tulemüür mida kasutatakse andmebaaside kaitseks SQL Injection rünnete eest. Tulemüüri tööpõhimõtte seisneb SQL päringute riskianalüüsil, kus SQL käske hinnatakse kasutades selleks spetsiaalset riskide maatriksit. Sammuti blokeeritakse enimlevinud administratiivseid andmebaasi käske nagu (DROP, CREATE) jne.
 
GreenSQL arhidektuur
GreenSQL töötab kui vahemehena veebiserveri ja SQL serveri vahel. See tähendab, et ühendus ei tekitata otse veebiserverist SQL serveriga vaid, ühendus suunatakse esmalt GreenSQL server pihta ja seal edasi andmebaasi serverisse. GreenSQL tarkvara analüüsib SQL päringuid ja edastab need SQL serverile.
 
Järgnev pilt illustreerib GreenSQL arhitektuuri


Juhend tutvustab vabavaralise GreenSQL 1.3.0 paigaldamist, mida saab laadida lehelt http://www.greensql.net/download .
[[File:clienttoDB.jpg]]
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 .
Nagu näha saab SQL andmebaas oma käsud läbi GreenSQL  tulemüüri mis omakorda saab oma käsud läbi veebirakendust jagava serveri. GreenSQL tarkvara saab paigaldada koos andmebaasi tarkvaraga kas sama või eraldi serveri peale. Vaikimisi kasutab GreenSQL kuulamiseks lokaalset ühendust ja porti 127.0.0.1:3305 mis suunab SQL päringud edasi 127.0.0.1:3306  pordi pihta (algsed MySQL seaded). Neid seadeid saab muuta kasutades GreenSQL konsooli.


Juhendi koostamisel on kasutatud Ubuntu 10.10, kuid see peaks sobima ka muude Ubuntu versioonide puhul.
Juhendi koostamisel on kasutatud Ubuntu 10.10, kuid see peaks sobima ka muude Ubuntu versioonide puhul.
Line 20: Line 30:


==GreenSQL paigaldamine==
==GreenSQL paigaldamine==
Järgnevalt tutvustab juhend 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 .


Paigaldamiseks tuleb alla laadida paigaldusmeedia, mida saab teha käsuga:
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"
  wget http://elab.itcollege.ee:8000/Day3/greensql-fw_1.3.0_amd64.deb
 
GreenSQL paigalduse alustamiseks kasutada käsku:
dpkg -i greensql-fw_1.3.0_amd64.deb
 
GreenSQL installatsioon küsib paigalduse käigus MySQL või PostgreSQL andmebaasi seadeid, kus hakkab hoidma oma sisemist konfiguratsiooni ja logisid. Seejärel kuvatakse kasutajale andmebaasi seadistusega seotud küsimusi. Kui paroolid välja arvata, sobivad ka vaikimisi seaded.
 
Esimesest valikaknast valida MySQL andmebaasi tüüp.
 
 
[[File:Greensqldatabase1.JPG]]
 
 
Kuna antud juhul paigaldame GreenSQL tulemüüri kohaliku serveri peale, seega valime selleks localhost.
 
[[File:Greensqldatabase2.JPG]]
 
 
Vaikimisi suunatakse MySQL päringud pordi :3306 pihta.
 
[[File:Greensqldatabase3.JPG]]
 


Arhiivi lahti pakkimiseks käsk:
Sisestada MySQL andmebaasi administraatori kasutajanimi 'root'.


tar -zxvf greensql-fw-1.3.0.tar.gz
[[File:Greensqldatabase41.JPG]]


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:
Mysql administraatori parooliks määrasime eelnevalt 'student'.
apt-get install flex
apt-get install bison
apt-get install devscripts
apt-get install debhelper
apt-get installlibpcre3-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:
[[File:Greensqldatabase5.JPG]]
./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:
Edasi kasutame vaikeseadeid kuni kuvatakse välja kus küsitakse GreenSQL andmebaasi kasutajatunnust milleks saab 'student' ja parooliks 'student'.
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.
[[File:Greensqldatabase8.JPG]]
Kui paroolid välja arvata, sobivad ka vaikimisi seaded.


[[File:IT-Infra-Greensql.png]]


Kui vaja sisestatud seadeid muuta, siis seda saab teha käsuga:
Kui tekib vajadus seadeid muuta, siis selleks saab kasutada käsku:
  dpkg-reconfigure greensql-fw
  dpkg-reconfigure greensql-fw


Programmi saab käivitada käsuga
Programmi saab käivitada käsuga:


  /etc/init.d/grensql-fw start
  /etc/init.d/grensql-fw start
 
Või:
Juhuks, kui käivitamine ei õnnestu ja vaja põhjus välja selgitada, siis logifaili leiab /var/log/greensql.log
service greensql-fw start
Juhul kui käivitamine ei õnnestu asub GreenSQL logifail /var/log katalogis failinimega greensql.log


== GreenSQL Console seadistamine ==
== 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/
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 kasutamisule võtmiseks on kataloogi linkimine veebilehe kataloogi
Lihtsaim viis selle kasutamisele võtmiseks on kataloogi nimelingi tegemine veebilehe kataloogi:
  cd /var/www
  cd /var/www
  ln -s /usr/share/greensql-fw/ greensql
  ln -s /usr/share/greensql-fw/ greensql


Seejärel tuleb anda kõigile kirjutamisõigused kataloogi templates_c, mida kasutatakse lehtede vahemäluna.
Seejärel tuleb anda kõigile kirjutamisõigused kataloogi templates_c, mida kasutatakse lehtede vahemäluna:
  cd /var/www/greensql
  cd /var/www/greensql
  chmod 0777 templates_c
  chmod 0777 templates_c


Samuti tasuks kontrollida, et config.php failis andmebaasiseaded korras oleks.
Samuti tasuks kontrollida, et config.php failis andmebaasiseaded korras oleks.
Siis võib juba veebilehitsejat kasutada, vaikimisi kasutajanimi on admin ja parool pwd
Siis võib juba veebilehitsejat kasutada, vaikimisi kasutajanimi on "admin" ja parool "pwd".
Kui sama masin serveerib mitut veebilehte, siis näpunäiteid Apache seadistamiseks leiab failist /etc/greensql/greensql-apache.conf
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 ('''asenda allpool näidetes ''/home/$USER'' sobiva varukoopia asukohaga'''):
 
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]]
 
== Testimine ==
 
Et veenduda GreenSQL'i tulemüüri toimimises SQL Injection rünnete vastu on GreenSQL tarkvara vaja testida. Järgnevalt on samm-sammult kirjeldatud GreenSQL'i lihtne katsetamiskäik.
GreenSQL'i testimiseks on vaja rakendust, mille vastu ründeid sooritada. Selle eesmärgi saavutamiseks kasutame spetsiaalselt loodud '''Damn Vulnerable Web Application'''' teenust ja '''MySQL''' andmebaasi. '''DVWA''' paigaldamise kohta leiab asjaliku eestikeelse juhendi [[DVWA|siit]].
 
Kui DVWA ja GreenSQL on paigaldatud ning mõlemad teenused töötavad, seadistame DVWA suhtlema MySQL'iga läbi GreenSQL'i. Selleks tuleb leida DVWA konfiguratsioonifail '''config.inc.php''' ja muuta  rida ja lisada port, mille pealt GreenSQL kuulama seadistati:
 
$_DVWA[ 'db_server' ] = '127.0.0.1:3305';
 
 
Taaskäivitame Apache teenuse:
 
sudo service apache2 restart
 
Logime sisse GreenSQL'i veebilidesesse http://serverinimi/greensql (vaikimisi kasutaja "admin" ja parool "pwd").
Lisame "dvwa" andmebaasi:
 
[[File:Createdatabasedvwa.JPG]]
 
Vaikimisi on GreenSQL seadistatud kohe '''IPS''' režiimi mis blokeerib enamus '''SQL''' ründeid. '''IPS''' kaitse väljalülitamiseks navigeerime DVWA andmebaasi seadete alla ja valime Blocking Mode '''IDS''' režiimi mis ei blokeeri ründeid, aga tekitab logi kuhu salvestatakse erinevaid andmeid kõrge riskiastmega SQL käskudest.
 
[[File:Greensqldatabases.JPG]]
 
[[File:Greensqldatabasessettings.JPG]]
 
 
Liigu GreenSQL veebilehel, ''''Dashboardi''' ribale. '''Latest Security Alerts''' tabelsse tekivad nüüdsest SQL päringud mida GreenSQL peab ohtlikeks. GreenSQL'i veebileht jäägu avatuks, siis saame pidevalt oma "töö" tulemusi jälgida.
Avame DVWA veebilehe, logime sisse ja kontrollime, et DVWA turvalisuse tase '''Security''' oleks sätitud madalamale tasemele:
 
[[File:Dvwaseclow.JPG]]
 
 
Kuna GreenSQL kaitseb SQL serverit, siis lähme SQL Injection lehele ja proovime kõigepealt lihtsamat tautoloogiat:
 
User ID: a'or 1=1 --
 
(Antud näite puhul kui ei tööta, siis kontrollige, et real lõpus oleks tühik)
 
[[File:gsql1test.PNG]]
 
Tulemus:
 
[[File:gsql1testtulem.PNG]]
 
 
Katsetame keerulisemat päringut:
 
User ID: ' union all select user, password FROM dvwa.users --
 
Tulemus:
 
[[File:gsqldvwausersandpasswords.PNG]]
 
 
Turvalisuse taastamiseks. Lülitame GreenSQL'st dvwa andmebaasi '''IPS''' režiimi (samast kohast, kust enne IDS'i peale seati).
Proovime uuesti eelnevaid päringuid:
 
User ID: a'or 1=1 --
 
 
Ei õnnestunud. Proovime uuesti küsida kasutajanime ja paroole user tabelist:
 
User ID: ' union all select user, password FROM dvwa.users --
 
Õnnestus! Kui GreenSQL'ist alert lehekülge vaadata, siis näeme, et viimane päring on saanud märke "warning", aga mitte "blocked" nagu eelmine päring:
 
[[File:Greensqlalerts2.PNG]]
 
 
Et selliseid ohtlike päringuid tõkestada mida tulemüür ei blokeerinud, 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
 
[[File:gsqltavaparing.PNG]]
 
 
Veendume, et GreenSQL on lisanud meie päringu valgesse nimekirja:
 
[[File:gsqlwhitelistafterlearningmode.PNG]]
 
 
Lülitame dvwa '''"Firewall"''' režiimi ja proovime, kas tavaline päring veel töötab:
 
User ID: 3
 
Töötab.
 
 
Üritame uuesti "union all select user, password FROM dvwa.users" päringut:
 
User ID: ' union all select user, password FROM dvwa.users --
 
Ei õnnestunud!
 
[[File:gsqlresultfirewall.PNG]]
 
 
== Testimise kokkuvõte ==
Testimise käigus kasutatud DVWA andmebaasi kasutajanimede ja paroolide konfidentsiaalsus on nüüd märgatavalt tõusnud. Töökeskkonnas tuleks "Learning" režiimile palju rohkem rõhku panna ja õpetada GreenSQL'le kõik-võimalike päringuid, mida teenus kasutab, et vähendada ründevõimalusi ja teha ründaja elu võimalikult keeruliseks.
Rohkem SQL Injection'i kohta leiab näiteks sellelt lehelt: http://n0security.blogspot.com/2011/04/sql-injection-in-dvwa.html
 


== Viited ==
== Viited ==


http://www.greensql.net/howto
http://www.greensql.net/howto
http://n0security.blogspot.com/2011/04/sql-injection-in-dvwa.html


[[Category:IT infrastruktuuri teenused]]
[[Category:IT infrastruktuuri teenused]]

Latest revision as of 17:26, 11 May 2015

Autorid

Priit Lume AK41 (GreenSQL paigaldamine)

Ulvar Petmanson AK31 (GreenSQL testimine)

Muudatuste ajalugu

Viimati muudetud: 27.05.2013 Veiko Virk

Versioon 1.1

Sissejuhatus

Käesolev juhend tutvustab GreenSQL andmebaasi tulemüüri paigaldamist ja testimist.

GreenSQL on vabavaraline andmebaasi tulemüür mida kasutatakse andmebaaside kaitseks SQL Injection rünnete eest. Tulemüüri tööpõhimõtte seisneb SQL päringute riskianalüüsil, kus SQL käske hinnatakse kasutades selleks spetsiaalset riskide maatriksit. Sammuti blokeeritakse enimlevinud administratiivseid andmebaasi käske nagu (DROP, CREATE) jne.

GreenSQL arhidektuur GreenSQL töötab kui vahemehena veebiserveri ja SQL serveri vahel. See tähendab, et ühendus ei tekitata otse veebiserverist SQL serveriga vaid, ühendus suunatakse esmalt GreenSQL server pihta ja seal edasi andmebaasi serverisse. GreenSQL tarkvara analüüsib SQL päringuid ja edastab need SQL serverile.

Järgnev pilt illustreerib GreenSQL arhitektuuri

Nagu näha saab SQL andmebaas oma käsud läbi GreenSQL tulemüüri mis omakorda saab oma käsud läbi veebirakendust jagava serveri. GreenSQL tarkvara saab paigaldada koos andmebaasi tarkvaraga kas sama või eraldi serveri peale. Vaikimisi kasutab GreenSQL kuulamiseks lokaalset ühendust ja porti 127.0.0.1:3305 mis suunab SQL päringud edasi 127.0.0.1:3306 pordi pihta (algsed MySQL seaded). Neid seadeid saab muuta kasutades GreenSQL konsooli.

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

Järgnevalt tutvustab juhend 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 .

Paigaldamiseks tuleb alla laadida paigaldusmeedia, mida saab teha käsuga:

wget http://elab.itcollege.ee:8000/Day3/greensql-fw_1.3.0_amd64.deb

GreenSQL paigalduse alustamiseks kasutada käsku:

dpkg -i greensql-fw_1.3.0_amd64.deb

GreenSQL installatsioon küsib paigalduse käigus MySQL või PostgreSQL andmebaasi seadeid, kus hakkab hoidma oma sisemist konfiguratsiooni ja logisid. Seejärel kuvatakse kasutajale andmebaasi seadistusega seotud küsimusi. Kui paroolid välja arvata, sobivad ka vaikimisi seaded.

Esimesest valikaknast valida MySQL andmebaasi tüüp.



Kuna antud juhul paigaldame GreenSQL tulemüüri kohaliku serveri peale, seega valime selleks localhost.


Vaikimisi suunatakse MySQL päringud pordi :3306 pihta.


Sisestada MySQL andmebaasi administraatori kasutajanimi 'root'.


Mysql administraatori parooliks määrasime eelnevalt 'student'.


Edasi kasutame vaikeseadeid kuni kuvatakse välja kus küsitakse GreenSQL andmebaasi kasutajatunnust milleks saab 'student' ja parooliks 'student'.


Kui tekib vajadus seadeid muuta, siis selleks saab kasutada käsku:

dpkg-reconfigure greensql-fw

Programmi saab käivitada käsuga:

/etc/init.d/grensql-fw start

Või:

service greensql-fw start

Juhul kui käivitamine ei õnnestu asub GreenSQL logifail /var/log katalogis failinimega 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 nimelingi tegemine 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 (asenda allpool näidetes /home/$USER sobiva varukoopia asukohaga):

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 tulemüüri toimimises SQL Injection rünnete vastu on GreenSQL tarkvara vaja testida. Järgnevalt on samm-sammult kirjeldatud GreenSQL'i lihtne katsetamiskäik. GreenSQL'i testimiseks on vaja rakendust, mille vastu ründeid sooritada. Selle eesmärgi saavutamiseks kasutame spetsiaalselt loodud Damn Vulnerable Web Application' teenust ja MySQL andmebaasi. DVWA paigaldamise kohta leiab asjaliku eestikeelse juhendi siit.

Kui DVWA ja GreenSQL on paigaldatud ning mõlemad teenused töötavad, seadistame DVWA suhtlema MySQL'iga läbi GreenSQL'i. Selleks tuleb leida DVWA konfiguratsioonifail config.inc.php ja muuta rida ja lisada port, mille pealt GreenSQL kuulama seadistati:

$_DVWA[ 'db_server' ] = '127.0.0.1:3305';


Taaskäivitame Apache teenuse:

sudo service apache2 restart

Logime sisse GreenSQL'i veebilidesesse http://serverinimi/greensql (vaikimisi kasutaja "admin" ja parool "pwd"). Lisame "dvwa" andmebaasi:

Vaikimisi on GreenSQL seadistatud kohe IPS režiimi mis blokeerib enamus SQL ründeid. IPS kaitse väljalülitamiseks navigeerime DVWA andmebaasi seadete alla ja valime Blocking Mode IDS režiimi mis ei blokeeri ründeid, aga tekitab logi kuhu salvestatakse erinevaid andmeid kõrge riskiastmega SQL käskudest.


Liigu GreenSQL veebilehel, 'Dashboardi ribale. Latest Security Alerts tabelsse tekivad nüüdsest SQL päringud mida GreenSQL peab ohtlikeks. GreenSQL'i veebileht jäägu avatuks, siis saame pidevalt oma "töö" tulemusi jälgida. Avame DVWA veebilehe, logime sisse ja kontrollime, et DVWA turvalisuse tase Security oleks sätitud madalamale tasemele:


Kuna GreenSQL kaitseb SQL serverit, siis lähme SQL Injection lehele ja proovime kõigepealt lihtsamat tautoloogiat:

User ID: a'or 1=1 -- 

(Antud näite puhul kui ei tööta, siis kontrollige, et real lõpus oleks tühik)

Tulemus:


Katsetame keerulisemat päringut:

User ID: ' union all select user, password FROM dvwa.users -- 

Tulemus:


Turvalisuse taastamiseks. Lülitame GreenSQL'st dvwa andmebaasi IPS režiimi (samast kohast, kust enne IDS'i peale seati). Proovime uuesti eelnevaid päringuid:

User ID: a'or 1=1 -- 


Ei õnnestunud. Proovime uuesti küsida kasutajanime ja paroole user tabelist:

User ID: ' union all select user, password FROM dvwa.users -- 

Õnnestus! Kui GreenSQL'ist alert lehekülge vaadata, siis näeme, et viimane päring on saanud märke "warning", aga mitte "blocked" nagu eelmine päring:


Et selliseid ohtlike päringuid tõkestada mida tulemüür ei blokeerinud, 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 "Firewall" režiimi ja proovime, kas tavaline päring veel töötab:

User ID: 3

Töötab.


Üritame uuesti "union all select user, password FROM dvwa.users" päringut:

User ID: ' union all select user, password FROM dvwa.users -- 

Ei õnnestunud!


Testimise kokkuvõte

Testimise käigus kasutatud DVWA andmebaasi kasutajanimede ja paroolide konfidentsiaalsus on nüüd märgatavalt tõusnud. Töökeskkonnas tuleks "Learning" režiimile palju rohkem rõhku panna ja õpetada GreenSQL'le kõik-võimalike päringuid, mida teenus kasutab, et vähendada ründevõimalusi ja teha ründaja elu võimalikult keeruliseks. Rohkem SQL Injection'i kohta leiab näiteks sellelt lehelt: http://n0security.blogspot.com/2011/04/sql-injection-in-dvwa.html


Viited

http://www.greensql.net/howto

http://n0security.blogspot.com/2011/04/sql-injection-in-dvwa.html