You are on page 1of 9

Informatika a felsoktatsban 2008

Debrecen, 2008. augusztus 27-29.

SQL INJEKCIRA PL TMADSOK S VDEKEZSI LEHETSGEK


SQL INJECTION ATTACK AND ITS PREVENTION

Fleiner Rita
Budapesti Mszaki Fiskola Neumann Jnos Informatikai Kar
sszefoglal
A publikci clja az adatbzis httrrel rendelkez alkalmazsok biztonsgt fenyeget
tmadsok egyik tpusnak, az SQL injekcinak a bemutatsa, ismertetve a tmads alapjait, tpusait
s az ellene val vdekezsi lehetsgeket. Az SQL injekcis tmads dinamikusan szerkesztett SQL
utastsba illeszt kros tevkenysget megvalst kdot, a behatols az adatbzisokra pl
alkalmazsoknak, klns tekintettel a webes alkalmazsoknak a srlkenysgt kihasznlva
valsulhat meg. A tmad megszerezheti az alkalmazs mgtt ll teljes adatbzis tartalmt,
megvltoztathatja az adatbzis felptst, illetve tartalmt, st az adatbzis szervert futtat
szmtgpet is kompromittlhatja. A srlkenysg oka mgtt legtbbszr magnak az
alkalmazsnak a programozsi hibja ll, nem pedig az alkalmazs mgtt ll adatbzis krnyezet
vagy annak teleptsi konfigurcija. Ez is indokolja, hogy az SQL injekci elleni vdekezst nem
kizrlag az informatikai infrastruktra biztonsgnak vdelme jelenti, fontos magra az alkalmazsra
s annak kdjra is figyelmet szentelni.

Kulcsszavak
SQL injekci, informatikai biztonsg, adatbzis

Abstract
In this paper we describe the SQL injection based attack threatening the security of
applications with database backend. The bases and the typesof the attack are studied, and the
possibilities of the prevention and detection are considered. SQL injection is a class of attacks where
un-sanitized user input is able to change the structure of a dynamically built SQL query, injecting
malicious code into the database.The exploitation can occur through the vulnerability of application,
especially web application that utilize a database server. The attacker is able not only to steal the entire
content of the database, but also to make changes to the database schema and content or even to
compromise the infrastructure behind the database server. An application is vulnerable to SQL
injection as a result of faulty programming of the application itself. It is not the result of a bad
architecture or wrong deployment. The right solution lies not only in securing the infrastructure, but
also in writing secure code and applying correct database acess.

Keywords
SQL injection, IT security, database

Informatika a felsoktatsban 2008

Debrecen, 2008. augusztus 27-29.

1. Bevezets
Napjainkban az informatikai szolgltatsok jelents rsze adatbzisokban trolt
informcik kezelshez, rendelkezsre bocstshoz kapcsoldik. Az adatbzisok
kezelsnek, elrsnek legelterjedtebb mdja az SQL (szabvnyos adatbzis kezel nyelv)
alap hozzfrs.
Az adatbzisok lekrdezsre alapul tmads az SQL injekci, melynek igen szleskr
kvetkezmnyei lehetnek, mint pldul bizalmas informcik kiszivrgsa, adatok
integritsnak megsrtse, hozzfrsi szablyok fellrsa, tvoli parancsok lefuttatsa s
szolgltats megtagadsa tpus tmads (DoS) indtsa. A tmad megszerezheti az
alkalmazs mgtt ll teljes adatbzis tartalmt, megvltoztathatja az adatbzis felptst
(smjt), illetve tartalmt, st az adatbzis szervert futtat szmtgpet is
kompromittlhatja. A mdiban is nagy visszhangot kivlt esemnyek, mint pldul
kreditkrtya informcik megszerzse illetve szemlyes adatok kiszivrogtatsa, gyakran
SQL injekcira plve jnnek ltre.
Jelen publikci clja az adatbzisok biztonsgt fenyeget tmadsok egyik fontos
tpusnak, az SQL injekcinak a felvzolsa, elemezve a tmads alapjait, tpusait s az ellene
val vdekezs lehetsgeit. Az 2. fejezetben bemutatom az SQL injekcis tmadsok
fogalmt, lnyegt s a kvetkezmnyeinek tpusait, a 3. fejezetben a tmads elleni egyik
legrgebbi vdekezs kvetkezmnyeknt kialakult tpust, a bekttt szem SQL injekci
sajtossgait, mdszereit ismertetem, a 4. fejezetben elemzem az SQL injekci elleni
vdekezs lehetsgeit, majd az 5. fejezetben sszegzem a trgyalt informcikat.
2. SQL injekci bemutatsa
Az SQL injekcis tmads lnyege egy tervezett tartalm, dinamikusan szerkesztett SQL
utastsba kros tevkenysgeket megvalst SQL utastsok beillesztse (hozzfzse).
Ezen tpus tmads az adatbzisokra pl alkalmazsoknak, klns tekintettel a webes
alkalmazsoknak a srlkenysgt kihasznlva valsul meg. A srlkenysg oka mgtt
legtbbszr magnak az alkalmazsnak a programozsi hibja ll, nem pedig az alkalmazs
mgtt ll adatbzis krnyezet vagy annak teleptsi konfigurcija. Ez is indokolja, hogy az
SQL injekci elleni vdekezst nem kizrlag az informatikai infrastruktra biztonsgnak
vdelmben kell keresni, fontos magra az alkalmazsra s annak kdjra is figyelmet
szentelni.
A webes alkalmazsok architektrjnak legfels szintjn felhasznli interfsz szerept
ellt web bngsz tallhat. A kzps szinten az zleti logikt kpvisel web szerver s
alkalmazs szerver llnak. A web szerver a listener szolgltats segtsgvel fogadja a kliens
gpen lv bngsz ltal kldtt krseket, amiket az ltalban ugyanazon fizikai gpen lv
alkalmazs szerverhez tovbbt. Az alkalmazs szerver SQL utastsok elkldse tjn
kezdemnyezi az adatbzisban trolt adatok elrst az architektra legals szintjn lv
adatbzis szervertl.
Az alkalmazs a felhasznltl bekrt paramterek segtsgvel lltja el az SQL
szerverhez eljuttatand lekrdezst, amit egyetlen sztring fog kpviselni. A tmads lnyege
abban rejlik, hogy az alkalmazson keresztl meg lehet vltoztatni az SQL lekrdezs
jelentst, mivel egyetlen sztring tartalmazza a lekrdezsi utasts szintaktikjt s a
felhasznl ltal megadott paramtereket. Ezt a sztringet kldi el az alkalmazs az adatbzis
szerverhez, ltalban input paramterek ellenrzse nlkl. A tmad a paramter rtknek
olyan kompromittl karaktersorozatot ad meg, ami megvltoztatja az eredeti lekrdezs
2

Informatika a felsoktatsban 2008

Debrecen, 2008. augusztus 27-29.

szintaktikjt, ezltal a tmad egszen ms feladatot valst meg, mint amit a programoz a
kdjval szndkozott volna. Meg kell emlteni, hogy a dinamikusan ellltott utasts nem
csak a felhasznltl bekrt adatokbl ptkezhet, hanem a kliens gpen fut bngszn
megjelen rlapok rejtett mezibl, tovbb a szerver oldali munkamenet vagy alkalmazs
vltozibl, mert ezek stibe (cookie) gyazva megtallhatak a felhasznlk gpn, s
viszonylag knnyen hamisthatk.
Az SQL injekcis tmads brmely adatbzis platformon vgrehajthat. A tmadst a clja
szerint a kvetkez hrom tpusba sorolhatjuk:
1) Adatokhoz val jogosulatlan hozzfrs
A tmad az alkalmazs kijtszsa ltal elri, hogy az adatbzisbl szmra nem
megengedett adatokat krdezzen le, belertve jelszavakat s felhasznli azonostkat is. A
jogosulatlan hozzfrs gyakran a felhasznli hitelests kijtszsval jn ltre.
2) Adatbzis mdostsa
A tmad adatokat szrhat be, mdosthat, illetve trlhet ki az adatbzisbl, illetve
megvltoztathatja az adatbzis struktrjt, smjt. Azonostk, jelszavak, adatbzis
hozzfrsek ltrehozsa, mdostsa s trlse is ebbe a kategriba tartozik.
3) Adatbzis szervert futtat szmtgp kompromittlsa
SQL injekcival el lehet rni j felhasznl felvtelt az adatbzis szervert futtat gpen,
ami ltal a tmad a szmtgphez hozzfrsi jogot tud nyerni s akr opercis rendszer
szint parancsokat hajthat vgre SYSTEM jogosultsggal.
A tmads pontosabb megrtshez pldkat mutatok be [7] alapjn:
1) Plda: Hitelests kijtszsa
Az alkalmazs kdrszlete:
SqlQry = "SELECT * FROM Users WHERE Username = '" & Request.QueryString("User")
& "' AND Password = '" & Request.QueryString("Pass") & "'"
LoginRS.Open SqlQry, MyConn
If LoginRS.EOF Then Response.Write("Invalid Login")
Jhiszem felhasznl esetn, John felhasznl nv s Smith jelsz megadsa utna
kvetkez SQL lekrdezs jn ltre:
SELECT * FROM Users WHERE Username = John AND Password = Smith
A tmad jelsznak megadja a X OR 1=1 sztringet, akkor a kvetkez SQL lekrdezs
keletkezik:
SELECT * FROM Users WHERE Username = John AND Password = X OR 1=1
Ez az adatbzis lekrdezs tetszleges felhasznl nv megadsa mellett a teljes Users
tbla tartalmt kilistzza, ami teljesen klnbzik attl, ami a programoz szndka lett volna.

Informatika a felsoktatsban 2008

Debrecen, 2008. augusztus 27-29.

2) Plda: Adatok megszerzse UNION SELECT tpus tmadssal


Az SQL nyelvben a UNION SELECT utasts lehetsget ad arra, hogy tbb tblbl
hasonl informcikat krdezznk le s fzznk ssze. A kt (vagy tbb), helyesen felptett,
UNION-nal sszefztt SELECT utasts oszlopneveinek nem kell egyeznie, viszont a
SELECT-eknek azonos szm s tpus attribtumokbl kell felplnik. A UNION
SELECT SQL utasts segtsgvel slyos kiaknzs jhet ltre, pldnak tekintsk a
kvetkez kdrszletet:
SqlQry = "SELECT * FROM Products WHERE ProdDesc LIKE & %
Request.QueryString(SearchTerm") & %
ProdsRS.Open SqlQry, MyConn
A kvetkez SQL lekrdezs jn ltre a matrix paramter megadsa esetn:
SELECT * FROM Products WHERE ProdDesc LIKE %matrix%
Azaz kivlasztja (majd megjelenti a bngszben) azokat a termkeket, melyek neveiben
szerepel a matrix sztredk.
Ha a tmad a kvetkez sztringet adja meg paramternek:
XXX UNION SELECT 1, 1, Username + : + Password, 1, CCNumber, 1 FROM Users -A kvetkez SQL lekrdezs keletkezik:
SELECT * FROM Products WHERE ProdName LIKE %XXX UNION SELECT 1, 1,
Username + : + Password, 1, CCNumber, 1 FROM Users --%
Ez az utasts kivlasztja (majd megjelenti a bngszben) azokat a termkeket, melyek
nevei XXX-re vgzdnek (valsznleg nem lesz ilyen tallat), tovbb a felhasznlk
neveit, jelszavait s kreditkrtya szmait.
3. Bekttt szem SQL injekci
Az SQL injekcik elleni vdekezs legrgebbi formja a bngszben megjelen adatbzis
szerver hibazeneteinek letiltsa s helyettestse egy felhasznlbart, ltalnos zenettel. Az
ilyen felttelek melletti SQL injekcikat bekttt szemnek (angolul blindfolded-nek)
nevezzk. Az adatbzis zenetek informcit tartalmaznak az adatbzisrl, amiket a tmad
gyesen ki tud hasznlni a sikeres tmadshoz szksges bemeneti paramterek
elksztshez. Az zenetek letiltst egy egyszer web konfigurcis belltssal lehet elrni.
Ez a mdszer azonban nem szolgl teljes vdelemmel, igazbl a srlkenysg eltitkolst
prblja elrni, mikzben a tmads csak bonyolultabb, de nem lehetetlenn vlik.
A kvetkezkben [7] alapjn felvzolom a lpseket, amivel sikeres bekttt szem SQL
injekcikat lehet felderteni s vgrehajtani. A mdszer lnyege tesztek lefuttatsa bizonyos
dolgok kidertse rdekben. A tesztek lefutsa sorn vizsgljuk, hogy hibba tkztnk-e

Informatika a felsoktatsban 2008

Debrecen, 2008. augusztus 27-29.

vagy sem, majd ebbl vonunk le kvetkeztetseket a sikeres SQL injekci vgrehajtsa
rdekben. Ezek segtsgvel
1) SQL injekcira pl tmads lehetsgt tudjuk felderteni
2) Kitallhatjuk az injekci szintaktikjt s az adatbzis tpust
3) UNION SELECT tpus tmadst tudunk felpteni
4) Ezek utn ms tpus injekcis tmadsokat (pl. WHERE felttelre pl vagy utasts
befecskendez) mr knny megalkotni.
4. SQL injekcis tmadsok elleni vdekezs
Ebben a fejezetben bemutatom az SQL injekcis tmads elleni vdekezsi lehetsgeket,
azokat hrom kategriba csoportostva aszerint, hogy az informatikai infrastruktra melyik
szintjn valsulnak meg
Az SQL injekcira pl tmads az alkalmazsban rejl biztonsgi rst hasznlja ki
lehetsget adva arra, hogy a felhasznl ltal megadott bemeneti paramter a szksges
formai ellenrzs nlkl kerljn be az adatbzis lekrdezst meghatroz sztringbe. Az
alkalmazsok fejleszti ltalban nem informci biztonsgi szakemberek, a program rsa
kzben nem biztonsgi krdsekre koncentrlnak, inkbb az id korltra s a helyesen fut
kdokra helyezik a figyelmet. Ez jelentsen hozzjrul ahhoz, hogy az ltaluk rott programok
biztonsgi rseket tartalmaznak. A hibkat s problmkat sokszor nem k, hanem az IT
biztonsggal foglalkoz szakemberek szlelik s prbljk utlagos eszkzkkel megoldani.
A teljes biztonsgot az jelenten, ha mr a kdok rsakor tudatosan tervezs s megvalsts
trtnne. Ebben a fejezetben megvizsgljuk, hogy az emltett kt szakterlet a maga szintjn
milyen vdekezsi mdokkal tud lni.
Egy msik rdekes krds, hogy a tmadsok elleni vdekezsben gyakran hasznlt
behatols rzkel (IDS) s behatols megelz (IPS) rendszerek az adatbzis vdelemben
milyen szerepet tudnak betlteni, s ehhez milyen technikt hasznlnak. Bemutatok hrom
klnbz mdszerre alapozott behatols rzkel s behatols megelz rendszert.
Adatbzis biztonsg szempontjbl alkalmazott IDS s IPS rendszerek a megfigyel
pontjaikat, ms nven szenzoraikat nem a hlzati szinten, hanem az architektrban
magasabban elhelyezked adatbzis szerverben vagy a szerver eltti proxy-n helyezik el. A
szenzort gy ptik fel, hogy az SQL adatfolyamot figyel meg.
4.1. Hlzat szintjn megvalsthat vdekezs
A tzfalak s a hlzati szint IPS, IDS rendszerek nem nyjtanak megfelel vdelmet,
hisz ezen a szinten a kiaknzst megvalst, rosszindulat lekrdezs nem klnbztethet
meg a normlis tpustl. SQL injekcis behatols rzkelshez az SQL utastst
megvalst karaktersorozatot kell rtelmezni valamilyen eszkz tjn, ez pedig az
architektrban a hlzati szint fltti rtegben valsthat meg.
4.2. Alkalmazs szintjn megvalsthat vdekezs
Az elzekben mr lttuk, hogy kiemelten fontos az alkalmazsok programkdjnak
ksztsekor tudatban lenni a biztonsgi krdseknek, illetve rdemes meghatrozott

Informatika a felsoktatsban 2008

Debrecen, 2008. augusztus 27-29.

technikkat hasznlni a srlkenysg kikszblse rdekben. A [5], [1], [3] munkkban


pldkkal szemlltetett magyarzatot tallunk a helyes programozsi technikkra.
sszegzskppen a kvetkez programozsi technikkat tartom fontosnak kiemelni:

1) Alkalmazs szmra megadott inputok ellenrzse


Az inputokat ellenrizni kell tpus, hossz, formtum s tartomny alapjn. rdemes
meghatrozni a lehetsges helyes karakterek halmazt, majd ettl eltr bemen karakter
esetn az adatbzis lekrdezst meg kell szaktani. A szakirodalom kiemeli, hogy fontos a
helyes karakterek megllaptsa, szemben a helytelenek halmazval, mivel az utbbi sokkal
tgabb, ezrt annak a valsznsge is nagyobb, hogy valamit kifelejtnk kzlk. A web
illetve alkalmazs szerver szintjn regulris kifejezsek s ezek rutinjai segtsgvel lehet az
input ellenrzst vgrehajtani. Azaz lteznek a programozsi nyelvek ltal nyjtott elre
megrt eljrsok s fggvnyek, amiket az alkalmazs programozja felhasznlhat a bemeneti
vltozk rtkeinek rvnyestsre. Trolt eljrsok s dinamikus SQL utastsok szmra az
input rtkt ne kzvetlenl, hanem paramterek formjban adjuk meg, aminek az rtkt le
lehet ellenrizni a trolt eljrs vagy dinamikus utasts futtatsa eltt, ezzel kivdhetjk a
rosszindulat kd befecskendezst. Ismert mdszer az eszkpels hasznlata is, amivel a
veszlyes karakterek, pldul idzjelek becsempszst tudjuk elkerlni. Az inputban
tallhat egyszeres idzjel veszlyes lehet, mert rosszindulat kd bevezetsre adhat
lehetsget. A programozsi nyelvek rendelkeznek eszkpel rutinokkal (pldul MySQL
nyelvben a mysql_real_escape_string() fggvny), melyek az inputot gy alaktjk t, hogy a
veszlyes karaktereket megfelelekkel helyettestik (pldul az egyszeres macskakrmket
megduplzzk).
2) Az adatbzis szerver hibazeneteinek elrejtse
Nem clszer hibazenetekben adatbzisra jellemz informcit - klnsen szerkezetit
kirni. A bekttt szem SQL injekci trgyalsakor azonban lttuk, hogy ez a vdekezsi
mdszer nem szolgltat teljes vdettsget.
4.3. Adatbzis szerver szintjn megvalsthat vdekezs
1) Adatbzis hozzfrs helyes belltsa
Ahhoz, hogy egy alkalmazs az adatbzist elrhesse, ltre kell hozni az adatbzis szerveren
egy adatbzis felhasznlt, akinek a nevben az adatbzist meg tudja szltani. Minden
adatbzis alapbl egy felhasznl tulajdona lesz, mghozz az, aki a ltrehoz utastsokat
lefuttatta. Annak rdekben, hogy az adatbzishoz a tulajdonoson s a superuseren kvl
msok is hozzfrjenek, jogosultsggal kell ket elltni. Az alkalmazsnak nem szabad
tulajdonosknt vagy superuserknt csatlakoznia az adatbzishoz, mert ezek brmilyen
utastst s lekrdezst tetszs szerint futtathatnak, pl. a szerkezeti mdostst (tblk
megszntetse) vagy tblk komplett trlse.
Mindig kevs jogosultsggal rendelkez, testreszabott felhasznlkat clszer hasznlni,
melyek mindegyike az adatbzis manipulcinak egy-egy klnbz nzpontjrt felelsek.
Mindig csak a legszksgesebb jogokat szabad engedlyezni, s el kell kerlni, hogy
ugyanazt a felhasznlt hasznljuk egy adott adatbzis elrshez klnbz alkalmazsok
szmra. Ez azt jelenti, hogy ha a behatol meg is szerzi valamelyik jogosultsgot (hitelestsi
informcit = felhasznli nv + jelsz), akkor is csak akkora vltozst tud okozni, mint az
alkalmazs maga. Clszer tovbb az adatbzis kezel rendszer sszes alaprtelmezett

Informatika a felsoktatsban 2008

Debrecen, 2008. augusztus 27-29.

felhasznlnevt s a hozzjuk tartoz jelszavakat trlni, ha szksgnk van ugyanolyan


jogkr felhasznlra, akkor hozzuk azt ltre magunk j nvvel s jelszval.
2) Audit logok hasznlata
Fontos feladat a lekrdezsek, hozzfrsek naplzsa az zleti logika szintjn, hisz az
adatbzis szerveren egyetlen, az alkalmazshoz kttt felhasznl jelenik csak meg.
Nyilvnvalan a naplzs nem tud megakadlyozni egyetlen rtalmas prblkozst sem, de
segtsget nyjthat annak feldertsben, hogy melyik alkalmazs s ki ltal lett kijtszva. A
naplzs megtervezsnl t kell gondolni, milyen informcikat trolunk el. ltalnossgban
elmondhat, hogy minl tbb rszletet jegyznk, annl biztonsgosabb a rendszernk.
3) IPS s IDS alap vdekezs
A behatols-rzkel rendszerek (IDS) olyan hardver vagy szoftver eszkzk, melyek
rzkelik a lehetsges behatolsokat, tmadsokat, majd rtestik a megfelel szemlyeket,
esetleg vlaszlpseket tesznek [6],[2],[9]. Ezek a rendszerek figyelik a szmtgpeken zajl
folyamatokat, forgalmat, gyan esetn sajt szablyrendszerk alapjn eldntik, hogy egy
adott tevkenysg a vdett rendszeren illeglis tevkenysgnek minsl-e. Pozitv vlasz
esetn a rendszer valamilyen formban rtesti a felhasznlt vagy a rendszergazdt. Az IDS
rendszereket kt nagy csoportba oszthatjuk az alapjn, hogy a kirtkelend informcit
milyen mdon gyjtik ssze. A hlzat-alap IDS-ek a szmtgp hlzat forgalmt
monitorozzk, mg a hoszt-alap IDS-ek szmtgpeken futnak s az opercis rendszer,
illetve a gpen fut alkalmazsok viselkedst figyelik. SQL injekcis tmadsok elleni
vdekezsben az utbbiak hasznlatosak s a tovbbiakban ebbe a kategriba es IDS-eket
fogunk vizsglni.
A behatols-megelz (IPS) rendszerek proaktvan mkdnek, a tmads megelzse a
cljuk az IDS-eknl megismert technolgikat hasznlva. AZ IPS rendszereknek is ltezik
hoszt- s hlzat-alap vltozata. Az IDS s IPS rendszerek kztti leglnyegesebb klnbsg
a kvetkez. Mg az IDS rendszerek megfigyelik a szmtgp folyamatait s csak korltozott
beavatkozsra kpesek, addig az IPS rendszerek a tmads kialakulsa eltt beavatkoznak.
Jelen publikciban a ktfajta rendszert az SQL injekci elleni vdekezs szempontjbl
ugyanannak a kategrinak tekintem.
Kt f technolgia ltezik az esemnyek analizlsra, a tmadsok szlelsre. Az egyik a
visszalst rzkel modell, a msik a rendellenessget rzkel modell.
A visszalst rzkel modell mkdse sorn azltal elemzi a rendszer folyamatait, hogy
esemnyek lenyomatait keresi s hasonltja ssze a sajt adatbzisban trolt tmads
lenyomatokkal. Mivel ezeket a specilis tmads lenyomatokat angolul signature-nek
hvjk, ezrt ezt a modellt signature based IDS-nek is nevezik. Ezek a rendszerek a tmads
mdjt elre kell, hogy ismerjk, ismeretlen incidensek ellen nem vdenek. Tovbb a
lenyomatokat trol adatbzisukat folyamatosan frisstenik kell ahhoz, hogy hatkonyan
tudjanak mkdni. SQL injekci kiszrshez az adatbzis szervernek kldtt SQL utastst
vizsglja az IDS s abban tipikus injekcis mintkat keres. A lenyomatokat hasznl IDS-eket
gyakran a web alkalmazsok rszeknt valstjk meg s nem az adatbzis szerver el
helyezik el. Ezen tpus behatols rzkelk kt htrnyt fontos megemlteni. Az egyik, hogy
az injekcis sztringet elre ismernie kell a rendszernek s annak szerepelnie kell a lenyomat
adatbzisban, a msik pedig a [4] publikciban rszletesen ismertetett mdszer, ami
segtsgvel egy gyes tmad ki tudja jtszani a vdelmet. A kijtszs alapulhat szkz
karakterek beszrsra, az SQL utasts rszekre vgsra, vagy a lenyomattl klnbz, de
hatsban egyenrtk SQL utasts hasznlatra.

Informatika a felsoktatsban 2008

Debrecen, 2008. augusztus 27-29.

Rendellenessget rzkel modell a szmtgpen bekvetkez nem normlis jelensgeket,


anomlikat figyeli (angolul anomaly based model-nek hvjk). Az IDS mkdst kt fzisra
oszthatjuk. Az elsben megfigyeli, megtanulja, hogy egy adott krnyezetben mi szmt
norml mkdsnek, majd kvetkezik a msodik fzis, amikor is a normlistl eltr
esemnyeket figyeli s szlelsk esetn riaszt. A normlis mkds megtanulsa,
meghatrozsa tbbfle technikra (pldul statisztikai szmtsokra, adatbnyszatra,
mestersges intelligencira) plve valsulhat meg, ezek jelenleg foly kutatsok trgyt is
kpezik.[9]
Az SQL injekci vdelmre kifejlesztett IDS-ek az adatbzis szerverhez kiadott SQL
lekrdezseket figyelik, s ennek alapjn alaktanak ki felhasznli vagy mkdsi profilokat,
majd a msodik, detektl fzisban azt vizsgljk, hogy rkezik-e az AB szerverhez olyan
lekrdezs, ami nagyon eltr a megllaptott profiltl. Ilyen esetben riasztssal, vagy
visszautastssal vlaszolva prbljk a vdelmet megvalstani.
A mzesmadzag (angolul honeytoken vagy honeypot) betrs-detektlk az informcis
rendszerben, pldul esetnkben, az adatbzisban csali elhelyezsvel (pl. hres emberek
rekordjainak szerepeltetsvel) s azok lekrdezsnek figyelsvel szri ki a betrseket,
vagy az arra irnyul prblkozsokat. [8] Az adatbzisban olyan rekordot elhelyezsre
kerl sor, amihez nem tartozik vals informci, de jellegbl addan kvncsisg
felkeltsre kivlan alkalmas. Ha egy kvncsi felhasznl a rekord hozzfrst
kezdemnyezi s az IDS figyeli a rekord trtnett, akkor szlelheti, hogy a rendszerben
szablytalan hozzfrst hajtottak vgre
5. sszegzs
Az SQL injekcira bemutatott s az irodalomban tallhat pldk tbbsgben a
tmadnak rendelkeznie kell valamennyi elzetes informcival az adatbzis felptsrl,
illetve az alkalmazs kdjrl. Abbl kell azonban kiindulni, hogy a behatolk klnbz
forrsokbl megszerezhetik a szksges informcikat, teht nem nyilvnos voltuk nem nyjt
elgsges vdelmet a tmadsok ellen.
sszegzskppen megllapthat, hogy a tmadsok alapveten olyan programok
kijtszsn alapulnak, amelyek a vdelmet, illetve biztonsgot figyelmen kvl hagyva
szlettek. Ezrt alapveten szksges, hogy a fejlesztk krben is az IT biztonsg egy
hangslyos terlet legyen. Programozs sorn soha nem szabad megbzni semmilyen bejv
adatban, fleg ha az a kliens oldalrl rkezik, mg akkor sem, ha az egy alkalmazs szerver
oldalrl megadott sti (cookie), vagy rejtett mez (hidden input) rtke esetleg egy legrdl
lista eleme.
Irodalomjegyzk
[1]

A.
Agarwal:
SQL
injection:
Developers
fight
back,
2006.
http://searchsoftwarequality.techtarget.com/tip/0,289483,sid92_gci1179106,00.html

[2]

Ficsor Pter:Incidenskezel rendszerek (sszehasonlt elemzs). Szakdolgozat 2005


Etvs Lornd Tudomnyegyetem Informatikai Kar

[3]

S.
Friedl:
SQL
Injection
Attacks
http://www.unixwiz.net/techtips/sql-injection.html

[4]

O. Maor, A. Shulman. Sql injection signatures evasion: An overview of why sql


injection
signature
protection
is
just
not
enough,
2004.

by

Example,

2007.

Informatika a felsoktatsban 2008

Debrecen, 2008. augusztus 27-29.

http://www.imperva.com/application_defense_center/white_papers/sql_injection_signat
ures_evasion.html
[5]

J.D. Meier, A. Mackman, B. Wastell, P. Bansode, A. Wigley: How To: Protect From
SQL
Injection
in
ASP.NET,
2005.
http://msdn.microsoft.com/enus/library/ms998271.aspx

[6]

F. S. Rietta: Application layer intrusion detection for SQL injection. ACM Southeast
Regional Conference 2006: 531-536.

[7]

A. Shulman: Traditional SQL Injection Protection:. The Wrong Solution for the Right
Problem.
CTO.
Imperva
Inc.
http://webcourse.cs.technion.ac.il/236350/Spring2005/ho/WCFiles/AdvancedSQLInject
ion.pdf

[8]

L.
Spitzner.
Honeytokens:
The
other
http://www.securityfocus.com/infocus/1713

[9]

F. Valeur, D. Mutz, G. Vigna: A learning-based approach to the detection of SQL


attacks. In: Proceedings of the Conference on Detection of Intrusions and Malware &
Vulnerability Assessment (DIMVA), Vienna, Austria, July 2005

honeypot.

July

2003.

You might also like