SQL injection

Prírodné vedy » Informatika

Autor: ivka47
Typ práce: Referát
Dátum: 31.08.2010
Jazyk: Slovenčina
Rozsah: 567 slov
Počet zobrazení: 4 259
Tlačení: 440
Uložení: 440
SQL injection
 
Pojem SQL injection som po prvý krát počul až na prednáške Bezpečnosť IS v praxi a to som si o sebe myslel, že mám aspoň priemerné znalosti z oblasti bezpečnosti IS. Bol to pre mňa šok keď som na názornom príklade videl ako ľahko sa dá zneužiť nesprávne naprogramovaný prístup do databáze.

Webové servere založené na technológiách ako ASP či PHP spolupracujúce s databázou sa mi začali javiť oveľa zraniteľnejšie. Nejedná sa o chybu systému či konkrétneho programu, ale o chybu programátorskú. Tak ako sa aj mne už mnohokrát nevyplatilo pri programovaní niečo ošidiť, aj tu sa aplikácia či script stáva zraniteľný len kvôli tomu, že programátor zabudol na bezpečnosť alebo si proste len zjednodušil programovanie prístupu do databáze.

Zo svojej pozície príležitostného programátora jednoduchých webových stránok som zostal zahanbený. Snáď všetky weby, ktoré som stvoril za rôznymi účelmi by podľahli útoku pomocou SQL injection. Najčastejšie som stránky vytváral v PHP a ako databázu som používal mySQL. Keďže sa jedná o nekomerčné produkty na ich bezpečnosť sa až tak nepozerá. Musím však hneď poznamenať, že v posledných rokoch oba tieto produkty zaznamenali obrovský pokrok čo sa bezpečnosti týka. Ukážkový príklad, kedy sa po zadaní nejakého údaja pošle užívateľovi na email jeho zabudnuté heslo, by sa dal aplikovať na mnohých miestach, kde sa prístup do databáze neošetruje. V prípade, že sa vstup od užívateľa zadáva priamo ako časť dotazu do databáze môže vzniknúť veľa problémov. Úplne najjednoduchšie je nechať užívateľský vstup nezmenený. Takýto postup sa uplatňoval snáď len v začiatkoch používania webových technológii. Ak užívateľ urobí nejakú chybu či už náhodou alebo úmyselne môže vyvolať nejaké neštandardné správanie. Najčastejšie som sa stretával s chybou spôsobeným zlým parsovaním SQL dotazu, napríklad kvôli tomu, že vo vstupe od užívateľa sa objavili úvodzovky či apostrofy. Minimom ktoré by mal programátor ošetriť by malo byť escapovanie špeciálnych znakov vo vstupe. Priznávam, že to je miesto kde som ja skončil a ďalej sa spracovaním požiadaviek od užívateľa nezaoberal. Vychádzal som z naivnej predstavy, že stačí ošetriť nevedomé chyby. Ani som nepomyslel, že niekto by mohol úmyselne zadať nevhodné dáta. Toto je asi najčastejší spôsob vzniku bezpečnostných dier, že si programátor alebo návrhár systému dostatočne neuvedomí čo daná aplikácia dokáže a načo sa dá zneužiť. Zabrániť tomu aby užívateľ mohol zneužiť webový formulár a dostať sa tak k dátam v databáze je skutočne jednoduché. Dá sa tomu zabrániť už na úrovni programu či scriptu ale aj na úrovni databáze.

Tak ako ktosi na prednáške poznamenal nemôžeme všetku vinu za takúto bezpečnostnú trhlinu zvaliť na programátorov. Ak programátor dostane za úlohu naprogramovať jednoduchý webový server, naprogramuje funkčný server. To, že zadávateľ nešpecifikoval žiadne bezpečnostné podmienky je len jeho vina. Programátor urobí len to, čo dostal zadané a za čo dostane zaplatené. Ak by vždy robil niečo navyše šiel by sám proti sebe. Pri návrhu aplikácii povedzme pre banky sa na bezpečnosť myslí na prvom mieste a tak aj špecifikácia zadania je slovami ako bezpečnosť preplnená.

Nie len programátor ale aj správca databáze prípadne jej návrhár musí myslieť na možného strašiaka v podobe SQL injection. Pri nastavovaní účtu, ktorý sa používa pre prístup do databáze zo scriptov by sa mali nastaviť len také práva ako budú naozaj potrebné. Mal by mať prístup len do tých častí databáze kde to skutočne potrebuje a nič viac. Miesto priameho prístupu do databáze by bolo vhodné používať views. Od verzie 5 už aj mySQL view podporuje. Proste tak ako všade aj tu by mal byť prístup k dátam obmedzený na minimum aby tak útočník aj keď prelomí ochranu nemal prístup do celej databáze.

Oboduj prácu: 10 9 8 7 6 5 4 3 2 1

Kľúčové slová

Vyhľadaj ďalšie študentské práce pre tieto populárne kľúčové slová:

#databázové systémy #moj oblubený softver #sql


Odporúčame

Prírodné vedy » Informatika

:: KATEGÓRIE – Referáty, ťaháky, maturita:

Vygenerované za 0.020 s.
Zavrieť reklamu