bit/p9-net.d
10. dubna 2003
* rozpozna ´va ´nı ´ hlasu - telefon, mikrofon - minima ´lnı ´ na ´roky na HW - pouz ˇı ´va ´ se pro ne ˇktere ´ syste ´my objedna ´vek po telefonu - proble ´my: schopnost rozpozna ´va ´nı ´ negativne ˇ ovlivn ˇuje hluc ˇne ´ prostr ˇedı ´, nemoc, sta ´r ˇı ´, zrane ˇnı ´ uz ˇivatele * rozpozna ´nı ´ pohybu pera pr ˇi podpisu - je jedinec ˇne ´, nelze napodobit jen na za ´klade ˇ znalosti podpisu - specia ´lnı ´ pero poskytuje informaci o rychlosti, sme ˇru a tlaku - pr ˇi za ´pisu (enrollment) se uz ˇivatel 5x podepı ´s ˇe - zatı ´m se pr ˇı ´lis ˇ nepouz ˇı ´va ´, protoz ˇe jsou prakticke ´ proble ´my - senzory dlouhodobe ˇ nevydrz ˇı ´ hrube ´ zacha ´zenı ´ ver ˇejnosti - ma ´ podporu v oblastech, kde se tradic ˇne ˇ pouz ˇı ´va ´ podpis, tj. bankovnictvı ´, podpis smluv apod. * integrace rozpozna ´va ´nı ´ tva ´r ˇe, hlasu a pohybu rtu ˚ - komerc ˇne ˇ dostupny ´ syste ´m (BioID) * dals ˇı ´ vy ´voj: - pr ˇenositelna ´ (portable) nebo nositelna ´ (wearable) zar ˇı ´zenı ´ - integrovana ´ napr ˇ. do bry ´lı ´ (testova ´no napr ˇ. US arma ´dou pro pohranic ˇnı ´ stra ´z ˇ v Bosne ˇ) - c ˇipy pro otisky prstu ˚ na bankovnı ´ch karta ´ch (pr ˇı ´stup k tajne ´mu klı ´c ˇi pouze pro osobu vlastnı ´ka) - pokusy o standardizaci - v souc ˇasnosti na trhu vı ´ce nez ˇ 150 vy ´robcu ˚, kaz ˇdy ´ vlastnı ´ HW a SW rozhranı ´ - standard BioAPI - Microsoft pu ˚vodne ˇ BioAPI Consortium spoluzakla ´dal, ale odpojil se a od r. 2000 integruje do MS Windows technologii zı ´skanou od I/O Software
Externı ´ ´ utoky na syste ´m a obrana proti nim ========================================== * ´ utok proti poc ˇı ´tac ˇove ´mu syste ´mu probı ´ha ´ obvykle v na ´sledujı ´cı ´ posloupnosti: - vyhleda ´nı ´ vhodne ´ho poc ˇı ´tac ˇe (uzlu sı ´te ˇ, poc ˇı ´tac ˇe pr ˇipojene ´ho pr ˇes modem) - zjis ˇte ˇnı ´ informacı ´ o poc ˇı ´tac ˇi (OS, spus ˇte ˇne ´ servery apod.) - napadenı ´ syste ´mu * pro vs ˇechny tyto kroky existujı ´ na sı ´ti na ´stroje, tj. ´ utoc ˇnı ´k nemusı ´ by ´t ˇa z ´dny ´m odbornı ´kem na te ´ma poc ˇı ´tac ˇova ´ bezpec ˇnost
Pozna ´mka (cracking jako trestna ´ c ˇinnost) ˇR je cracking povaz V C ˇova ´n za trestnou c ˇinnost proti majetku. Ve vs ˇech krajı ´ch ma ´ Policie ”odde ˇlenı ´ poc ˇı ´tac ˇove ´ expertı ´zy”. []
Vyhleda ´va ´nı ´ vhodny ´ch poc ˇı ´tac ˇ˚ u ----------------------------* ´ utoc ˇnı ´ci pouz ˇı ´vajı ´ nejc ˇaste ˇji na ´sledujı ´cı ´ tr ˇi pr ˇı ´buzne ´ techniky: - mapova ´nı ´ sı ´te ˇ - wardialing - hleda ´nı ´ bezdra ´tovy ´ch sı ´tı ´ Mapova ´nı ´ sı ´te ˇ ............. * dnes nejc ˇaste ˇji na TCP/IP sı ´te ˇ (Internet, intranet podniku) * ´ utoc ˇnı ´k nejprve zjis ˇt’uje IP adresu nebo mnoz ˇinu IP adres, ktere ´ by mohl napadnout * jeden zpu ˚sob je dotaz do DNS, zı ´ska ´ dome ´nove ´ jme ´no instituce a ne ˇktere ´ IP adresy * pokud chce vı ´ce informacı ´, zjis ˇt’uje topologii sı ´te ˇ a ktere ´ adresy jsou aktivnı ´ * pouz ˇı ´vajı ´ se mapovacı ´ programy - pouz ˇı ´vajı ´ 2 za ´kladnı ´ zpu ˚soby:
1
10. dubna 2003
2
- ping . vynucuje si odpove ˇd’ vzda ´lene ´ho stroje pomocı ´ ICMP datagramu ECHO_REQUEST . testovany ´ stroj nebo gateway odpovı ´ ICMP ECHO_RESPONSE - zaha ´jit TCP spojenı ´ zasla ´nı ´m TCP ”SYN” na ne ˇjaky ´ port . pokud je na portu server, odpovı ´ TCP ”SYN ACK”, pokud nenı ´ odpovı ´ ICMP PORT_UNREACHABLE . pouz ˇı ´va ´ se na sı ´tı ´ch ktere ´ blokujı ´ ICMP ECHO_REQUEST * obrana proti mapova ´nı ´ sı ´te ˇ: - administra ´tor by me ˇl periodicky kontrolovat sı ´t’ a zjis ˇt’ovat zda nejsou pr ˇipojeny nepotr ˇebne ´ syste ´my (syste ´my ktere ´ nikdo nepouz ˇı ´va ´) - pokud ano, nepotr ˇebne ´ syste ´my odpojit
Wardialing .......... * wardialers = programy ktere ´ vyta ´c ˇejı ´ mnoz ˇinu telefonnı ´ch c ˇı ´sel, snaz ˇı ´ se najı ´t c ˇı ´slo na ktere ´m je pr ˇipojen modem * ´ utoc ˇnı ´k napr ˇı ´klad zjistı ´ telefonnı ´ c ˇı ´slo cı ´love ´ instituce (napr ˇ. z WWW stra ´nek), pak vola ´ na vs ˇechny klapky * zı ´ska ´ seznam c ˇı ´sel, na ktery ´ch jsou pr ˇipojene ´ modemy * pak se mu ˚z ˇe pr ˇipojit pomocı ´ termina ´love ´ho programu, zjistit typ syste ´mu a zda je vyz ˇadova ´no heslo * obrana proti wardialing - instituce by me ˇla mı ´t pravidla pro pr ˇipojova ´nı ´ modemu ˚ na telefonnı ´ linky - vs ˇechny modemy by me ˇly by ´t centra ´lne ˇ registrova ´ny (databa ´ze by neme ˇla by ´t ver ˇejne ˇ pr ˇı ´stupna ´) - zodpove ˇdna ´ osoba by me ˇla periodicky prova ´de ˇt kontrolu pomocı ´ wardialing, neregistrovana ´ zar ˇı ´zenı ´ by me ˇla by ´t odpojena Pozna ´mka pro zajı ´mavost (podle Denningove ´ 1999) Experiment s obvola ´nı ´m 2.6 milionu c ˇı ´sel Berkeley nas ˇel 20 000 modemu ˚, z nichz ˇ 200 bylo zcela nezabezpec ˇeno. [] * pokud je vyz ˇadova ´no heslo, pokous ˇı ´ se ho uhodnout - zkous ˇı ´ statisticky pravde ˇpodobne ´ kombinace jme ´no/heslo (root/root, guest/guest, uucp/uucp, ...) Hleda ´nı ´ bezdra ´tovy ´ch sı ´tı ´ ......................... * c ˇasto jsou pouz ˇity neoficia ´lne ˇ nezkus ˇeny ´mi uz ˇivateli => dals ˇı ´ pr ˇı ´stupove ´ body do sı ´te ˇ * ´ utoc ˇnı ´k mu ˚z ˇe zjistit jejich pr ˇı ´tomnost do vzda ´lenosti ne ˇkolika set metru ˚ * ve ˇts ˇina pr ˇı ´stupovy ´ch bodu ˚ v sı ´tı ´ch zaloz ˇeny ´ch na protokolu 802.11b odpovı ´ na SSID broadcast sve ´ SSID (Services Set Identifier, tj. na ´zev pr ˇı ´stupove ´ho bodu) * proble ´m i pokud nakonfigurova ´ny tak, z ˇe neodpovı ´, protoz ˇe SSID se posı ´la ´ jako plaintext => lze odposlechnout * ´ utoc ˇnı ´kovi postac ˇuje laptop, bezdra ´tova ´ karta, ante ´na a pr ˇı ´slus ˇny ´ SW * po nalezenı ´ sı ´te ˇ se pokusı ´ zı ´skat IP adresu pomocı ´ DHCP (v mnoha sı ´tı ´ch dostane IP adresu kdokoli o nı ´ poz ˇa ´da ´), pak mu ˚z ˇe pr ˇistupovat k sı ´ti * obrana proti ´ utoku ˚m na bezdra ´tove ´ sı ´te ˇ - podobne ˇ jako u modemu ˚ - pravidla pro pr ˇipojova ´nı ´ a registrace - nastavit SSID na nepr ˇedvı ´datelnou hodnotu a zaka ´zat odpove ˇd’ na SSID broadcast - filtrova ´nı ´ MAC adres - pouz ˇı ´t virtua ´lnı ´ soukromou sı ´t’ - autentizace a s ˇifrova ´nı ´
bit/p9-net.d
bit/p9-net.d
10. dubna 2003
Zjis ˇte ˇnı ´ informacı ´ o poc ˇı ´tac ˇi ----------------------------Ve chvı ´li kdy ´ utoc ˇnı ´k zı ´ska ´ pr ˇı ´stup k sı ´ti (prostr ˇednictvı ´m chyby v aplikaci nebo firewallu, nezabezpec ˇene ´ho modemu nebo bezdra ´tove ´ karty) a zna ´ topologii sı ´te ˇ, obvykle se pokusı ´ zjistit ne ˇco o strojı ´ch pr ˇı ´stupny ´ch na sı ´ti. * zjis ˇte ˇnı ´ OS stroje (OS fingerprinting), mu ˚z ˇe by ´t aktivnı ´ nebo pasivnı ´ * scan portu ˚ - zjis ˇte ˇnı ´ na ktery ´ch portech be ˇz ˇı ´ servery * hleda ´nı ´ zranitelny ´ch bodu ˚. Zjis ˇte ˇnı ´ typu OS ................ * protokoly TCP/IP jsou sice definova ´ny v pr ˇı ´slus ˇny ´ch RFC, RFC ale nepokry ´vajı ´ odpove ˇdi na vs ˇechny typy nespra ´vne ˇ vytvor ˇeny ´ch paketu ˚ - napr ˇ. odpove ˇd’ na TCP SYN ma ´ by ´t ACK, jak ale odpovı ´ pokud jsou nastaveny nesmyslne ´ pr ˇı ´znaky (SYN-FIN-URG-PUSH)? - kaz ˇdy ´ OS a protokolovy ´ za ´sobnı ´k odpovı ´ jinak => lze urc ˇit typ OS * pokud oponent umı ´ sı ´t’ odposloucha ´vat (broadcast technologie + je na stejne ´ sı ´ti nebo na sı ´ti se kterou cı ´lovy ´ stroj c ˇasto komunikuje), mu ˚z ˇe analyzovat probı ´hajı ´cı ´ provoz a na jeho za ´klade ˇ urc ˇit typ OS - napr ˇ. podle poc ˇa ´tec ˇnı ´ho TTL, velikosti oke ´nka, maxima ´lnı ´ velikosti segmentu atd. * obrana proti zjis ˇte ˇnı ´ typu OS (sama o sobe ˇ pr ˇı ´lis ˇ nepomu ˚z ˇe) - v Linuxu 2.4 mu ˚z ˇeme nastavit ”osobnost OS” pro chova ´nı ´ IP stacku pomocı ´ http://ippersonality.sourceforge.net - obrana proti pasivnı ´ analy ´ze - proxy firewall => vs ˇechny syste ´my budou skryty za firewallem, informace v hlavic ˇce neprojdou mimo loka ´lnı ´ sı ´t’ Scan portu ˚ .......... * vzda ´leny ´ konec komunikace je urc ˇeny ´ IP adresou, protokolem a portem - servery poslouchajı ´ na urc ˇene ´m portu (administra ´tor mu ˚z ˇe urc ˇit) - nejc ˇaste ˇjs ˇı ´ sluz ˇby na dobr ˇe zna ´my ´ch portech, napr ˇ. port 80 je urc ˇeny ´ pro WWW server apod. (viz napr ˇ. RFC1700) * scan portu ˚ identifikuje na ktery ´ch TCP a UDP portech jsou spus ˇte ˇne ´ servery
port
port
* protoz ˇe scan portu ˚ ve ˇts ˇinou pr ˇedcha ´zı ´ ´ utoku, ma ´ smysl instalovat na ´stroje ktere ´ ho detekujı ´ a pos ˇlou napr ˇ. mail administra ´torovi (napr ˇ. iplogger) - zjistı ´ zda v urc ˇite ´m c ˇase zasla ´ny pakety na ru ˚zne ´ porty se stejne ´ IP adresy * nanes ˇte ˇstı ´ moz ˇne ´ zamlz ˇit distribuovany ´m scanem - vı ´ce stroju ˚, kaz ˇdy ´ pos ˇle pouze jeden paket => obtı ´z ˇne ˇji detekovatelne ´
source network address
source network address
Hleda ´nı ´ zranitelny ´ch bodu ˚ ......................... * ve chvı ´li kdy zna ´ cı ´love ´ syste ´my a jejich servery, bude ´ utoc ˇnı ´k vyhleda ´vat slaba ´ mı ´sta - existujı ´ tisı ´ce chyb, aby je nebylo nutne ´ zkous ˇet ruc ˇne ˇ existujı ´ scanery - majı ´ obvykle databa ´zi do ktere ´ je moz ˇne ´ snadno pr ˇida ´vat nove ´ testy pomocı ´ skriptovacı ´ho jazyka * obrana proti hleda ´nı ´ zranitelny ´ch bodu ˚: - zrus ˇit vs ˇechny sluz ˇby ktere ´ nejsou nutne ´ - periodicky kontrolovat vlastnı ´ sı ´t’, detekovane ´ potı ´z ˇe vc ˇas vyr ˇes ˇit
3
10. dubna 2003
4 Napadenı ´ sı ´te ˇ -------------
* pokud ruc ˇnı ´ napadenı ´, ´ utoc ˇnı ´k se pokous ˇı ´ pr ˇihla ´sit - odhadnout jme ´no a heslo - pr ˇihlas ˇovacı ´ jme ´no je c ˇasto pr ˇı ´jmenı ´, pr ˇı ´padne ˇ kr ˇestnı ´ jme ´no - podle klasicke ´ho c ˇla ´nku (Morris & Thompson 1979) je cca 90% hesel jme ´na a pr ˇı ´jmenı ´, jme ´na me ˇst, slova ze str ˇedne ˇ velke ´ho slovnı ´ku apod. - podle (Kabay 1997) na bylo financ ˇnı ´m ´ ur ˇadu v Londy ´ne ˇ 82% hesel snadno uhodnutelny ´ch - neslus ˇna ´ slova, jme ´na lidı ´ (nejc ˇaste ˇji c ˇlenove ´ rodiny nebo oblı ´beny ´ sportovec), mı ´sto dovolene ´ nebo be ˇz ˇne ´ objekty vyskytujı ´cı ´ se v okolı ´ ´ ur ˇadu * ve chvı ´li kdy je ´ utoc ˇnı ´k v syste ´mu a ma ´ administra ´torska ´ pra ´va, mu ˚z ˇe nainstalovat program pro odposlech sı ´te ˇ apod. Odposlechy sı ´te ˇ ............... * pokud je sı ´t’ zaloz ˇena ´ na broadcast technologii, jako je Ethernet + HUBy, mohou vs ˇechny poc ˇı ´tac ˇe na segmentu monitorovat provoz * v ne ˇktery ´ch OS programy defaultne ˇ, napr ˇ. v UNIXu program tcpdump, ngrep apod. (pouz ˇı ´vajı ´ dals ˇı ´ utility pro sledova ´nı ´ provozu sı ´te ˇ, napr ˇ. pro detekci scanu ˚ portu ˚) * mnoho protokolu ˚ zası ´la ´ hesla v OT (telnet, ftp, POP) - je moz ˇne ´ vyfiltrovat hledane ´ sekvence, napr ˇ. v protokolu ftp: user luki 331 Password required for luki. pass ****** 230 User luki logged in. * ´ utoc ˇnı ´k mu ˚z ˇe odposlechnute ´ kombinace jme ´no/heslo pouz ˇı ´t pro zı ´ska ´nı ´ pr ˇı ´stupu k dals ˇı ´m syste ´mu ˚m * obrana proti odposlechu ˚m: - eliminace broadcast sı ´tı ´, napr ˇ. pro Ethernet pouz ˇı ´t mı ´sto HUBu ˚ switche - zaka ´zat nes ˇifrovane ´ sluz ˇby, s ˇifrovat pr ˇena ´s ˇena ´ data, napr ˇ. SSH, SSL Telnet * protoz ˇe mnoho sı ´tı ´ pr ˇecha ´zı ´ na technologii pr ˇepı ´nane ´ho Ehernetu, objevily se programy pro tzv. aktivnı ´ odposlech (active sniffing) * ne ˇktere ´ pouz ˇı ´vane ´ techniky: - zaplavenı ´ pr ˇepı ´nac ˇe MAC adresami - pr ˇepı ´nac ˇ autodetekuje MAC adresy souvisejı ´cı ´ s jednotlivy ´mi rozhranı ´mi; pokud se vyc ˇerpa ´ pame ˇt’, c ˇasto pr ˇepne do broadcast mo ´du - pr ˇesme ˇrova ´nı ´ provozu pomocı ´ protokolu ARP (RFC 826, RFC 920) . pouz ˇı ´va ´ se pokud syste ´m zna ´ IP adresu cı ´le, ktery ´ je na stejne ´ podsı ´ti, ale nezna ´ jeho HW adresu: pos ˇle ARP dotaz jako broadcast, cı ´l odpovı ´, odpove ˇd’ se uloz ˇı ´ do cache . na stroji slouz ˇı ´cı ´m pro odposlech IP forwarding na bra ´nu sı ´te ˇ, ostatnı ´m stroju ˚m ARP z ˇe jsem bra ´na - fales ˇne ´ DNS odpove ˇdi - pr ˇeda ´ vlastnı ´ IP adresu, mu ˚z ˇe pracovat jako relay (tı ´mto zpu ˚sobem je moz ˇny ´ i man-in-the-middle ´ utok proti SSL) * obrana proti aktivnı ´mu odposlechu: - s ˇifrovat data, pokud SSH klient vypı ´s ˇe varova ´nı ´ z ˇe se zme ˇnil ver ˇejny ´ klı ´c ˇ serveru je zapotr ˇebı ´ zjistit, co se stalo - na kriticky ´ch podsı ´tı ´ch pouz ˇı ´vat staticke ´ nastavenı ´ pr ˇepı ´nac ˇ˚ u, staticke ´ ARP tabulky Pr ˇevzetı ´ relace ............... * na ´stroje pro na ´silne ´ pr ˇevzetı ´ relace umoz ˇn ˇujı ´ ´ utoc ˇnı ´kovi bud’ pr ˇevzı ´t existujı ´cı ´ relaci (a vyhodit z nı ´ pu ˚ vodnı ´ho uz ˇivatele) nebo se k existujı ´cı ´ relaci pr ˇipojit a vkla ´dat do nı ´ vlastnı ´ pr ˇı ´kazy * spole ´ha ´ ope ˇt na broadcast technologii - Oskar je na sı ´t’ove ´m segmentu Alice, Boba, nebo mezi nimi - program Oskara odposlechne sekvenc ˇnı ´ c ˇı ´sla paketu ˚ atd. putujı ´cı ´ch mezi Alicı ´ a Bobem
bit/p9-net.d
bit/p9-net.d
10. dubna 2003
5
- pr ˇi pr ˇevzetı ´ relace pouz ˇı ´va ´ IP spoofing - pr ˇedstı ´ra ´ IP adresu Alice * obrana proti pr ˇevzetı ´ relace: - nepouz ˇı ´vat nezabezpec ˇene ´ protokoly pro citlive ´ relace (syste ´mova ´ administrace) * s pr ˇevzetı ´m relace souvisı ´ jednodus ˇs ˇı ´ IP spoofing - podvrz ˇenı ´ IP adresy - nastavenı ´ zdrojove ´ IP adresy podle potr ˇeby - proble ´m tam kde ove ˇr ˇova ´nı ´ podle IP adresy, napr ˇ. rlogin, rsh, rexec, rcp * obrana: nepouz ˇı ´vat IP adresu jako za ´klad pro autentizaci
Napadenı ´ syste ´mu ---------------* v syste ´mech je mnoho chyb, prostr ˇednictvı ´m ktery ´ch je moz ˇne ´ zı ´skat neautorizovany ´ pr ˇı ´stup do syste ´mu * jako prvnı ´ pr ˇı ´klad uvedu chybu pocha ´zejı ´cı ´ z tradic ˇnı ´ch BSD UNIXovy ´ch syste ´mu ˚ (v nynı ´ pouz ˇı ´vany ´ch syste ´mech je pochopitelne ˇ opravena) - norma ´lnı ´ pr ˇihlas ˇova ´nı ´ v UNIXovy ´ch syste ´mech: . pro kaz ˇdy ´ termina ´l proces getty, ktery ´ otevr ˇe termina ´l a vypı ´s ˇe uz ˇivateli pr ˇihlas ˇovacı ´ vy ´zvu login: . uz ˇivatel zada ´ pr ˇihlas ˇovacı ´ jme ´no -> getty spustı ´ mı ´sto sebe ”login username” . program login si vyz ˇa ´da ´ zada ´nı ´ hesla, pokud bylo jme ´no a heslo zada ´no spra ´vne ˇ, login mı ´sto sebe spustı ´ pr ˇı ´kazovy ´ interpret - shell - v BSD ma ´ administra ´tor moz ˇnost spustit login -f username => administra ´tor je pr ˇihla ´s ˇen jako uz ˇivatel - chyba: login akceptoval i bez mezery, tj. -fusername => bylo moz ˇno se pr ˇihla ´sit jako root: login: -froot Pr ˇetec ˇenı ´ bufferu uloz ˇene ´ho na za ´sobnı ´ku ........................................ * te ´me ˇr ˇ vs ˇechny OS a ve ˇts ˇina syste ´movy ´ch programu ˚ je vytvor ˇena v jazyce C (programa ´tor ˇi ho majı ´ ra ´di a lze efektivne ˇ pr ˇeloz ˇit) - nanes ˇte ˇstı ´ C nekontroluje meze polı ´ - pole jsou ve skutec ˇnosti pouze jiny ´ za ´pis operace nad ukazatelem, tj. a[i] je tote ´z ˇ co (a+i) - umoz ˇn ˇuje pr ˇepsat c ˇa ´sti pame ˇti, coz ˇ mu ˚z ˇe zpu ˚sobit potı ´z ˇe * vede k ´ utoku ˚m na ´sledujı ´cı ´ho charakteru - program be ˇz ˇı ´, vola ´ proceduru A (viz obra ´zek a) - pr ˇi vola ´nı ´ vloz ˇı ´ na za ´sobnı ´k na ´vratovou adresu, spustı ´ proceduru A a ta vytvor ˇı ´ na za ´sobnı ´ku mı ´sto pro loka ´lnı ´ prome ˇnne ´, napr ˇ. buffer B velikosti 1024 bytu ˚ (viz obra ´zek b) - uz ˇivatel zada ´ dels ˇı ´ r ˇete ˇzec, napr ˇ. 2000 bytu ˚ a tı ´m pr ˇepı ´s ˇe c ˇa ´st dals ˇı ´ pame ˇti, vc ˇetne ˇ na ´vratove ´ adresy (viz obra ´zek c) - pr ˇi vykona ´nı ´ instrukce RET se zac ˇnou vykona ´vat instrukce od adresy dane ´ daty, ktera ´ pr ˇepsala pu ˚vodnı ´ na ´vratovou adresu - pokud na ´hodne ´, program ve ˇts ˇinou havaruje
0xfff... SP
stack
0xfff...
SP
program 0
main’s local variables return addr. A’s local variables B
SP
program 0
a) initial situation
0xfff...
main’s local variables return addr. A’s local variables B
program 0
b) A has been called
c) buffer overflow
* data ovs ˇem nemusejı ´ by ´t na ´hodna ´, mu ˚z ˇe to by ´t program + na ´vratova ´ adresa na
6
10. dubna 2003
bit/p9-net.d
zac ˇ´ atek programu (resp. bufferu B) - po na ´vratu z podprogramu se program v B spustı ´, obvykle spustı ´ shell - lze pro servery v UNIXu i ve Windows - notoricky ´m zdrojem te ˇchto proble ´mu ˚ byl podprogram gets(s), ktery ´ nekontroluje de ´lku bufferu (proto by me ˇl pouz ˇı ´vat rade ˇji fgets(); napr ˇ. gcc pr ˇi pouz ˇitı ´ gets() vypı ´s ˇe varova ´nı ´ ”the ‘gets’ function is dangerous and should not be used.”) * obrana: - programy by me ˇly kontrolovat zda se vstup vejde do alokovane ´ pame ˇti - programu ˚ ktere ´ majı ´ specia ´lnı ´ pra ´va by v syste ´mu me ˇlo by ´t co nejme ´ne ˇ - OS nakonfigurovat tak, aby nespous ˇte ˇl ko ´d umı ´ste ˇny ´ na za ´sobnı ´ku (lze v mnoha UNIXovy ´ch syste ´mech, napr ˇ. v Linuxu a Solarisu; ne ˇktere ´ programy to ale potr ˇebujı ´)
❉