bit/pA-os.d
18. dubna 2003
Hleda ´nı ´ hesla metodou pokus a omyl ---------------------------------* ruc ˇnı ´ nebo automatizovany ´ pokus uhodnout platne ´ jme ´no a heslo * obrana: - vs ˇechna defaultnı ´ hesla by me ˇla by ´t po nainstalova ´nı ´ syste ´mu zme ˇne ˇna - uz ˇivatele ´ by me ˇli by ´t nuceni zvolit obtı ´z ˇne ˇ uhodnutelna ´ hesla - pokud je ne ˇktery ´ ´ uc ˇet dels ˇı ´ dobu nepouz ˇı ´vany ´, pr ˇihlas ˇova ´nı ´ na ne ˇj by me ˇlo by ´t zaka ´za ´no - vs ˇechna ´ uspe ˇs ˇna ´ i neu ´spe ˇs ˇna ´ pr ˇihla ´s ˇenı ´ by me ˇla by ´t zaznamena ´na - pr ˇi pr ˇihlas ˇova ´nı ´ by syste ´m me ˇl ohla ´sit datum, c ˇas a stroj ze ktere ´ho probe ˇhlo poslednı ´ pr ˇihla ´s ˇenı ´ (= moz ˇnost detekce neopra ´vne ˇne ´ho pr ˇı ´stupu) a pr ˇı ´padne ´ neu ´spe ˇs ˇne ´ pokusy o pr ˇihla ´s ˇenı ´
´toky typu DoS U -------------* denial-of-service attacks = cı ´lovy ´ syste ´m nebude pouz ˇitelny ´ - pokud je cı ´lovy ´ syste ´m kriticky ´, mu ˚z ˇe by ´t znac ˇny ´ proble ´m (syste ´m pro e-komerci, r ˇı ´dı ´cı ´ syste ´my apod.) - ne ˇkdy se pouz ˇı ´va ´ jako souc ˇa ´st ´ utoku proti sı ´ti (napr ˇ. pr ˇi pr ˇevzetı ´ relace) * DoS ´ utoky ve ˇts ˇinou dvou typu ˚: zaplavenı ´ syste ´mu nesmyslny ´m provozem nebo zasla ´nı ´ nespra ´vne ˇ vytvor ˇene ´ho paketu * zaplavenı ´ syste ´mu nesmyslny ´m provozem (packet flood) - napr ˇ. SYN flood - poslat syste ´mu velke ´ mnoz ˇstvı ´ SYN paketu ˚ - jsou interpretova ´ny jako z ˇa ´dost o nava ´za ´nı ´ TCP spojenı ´, pos ˇle se odpove ˇd’ SYN-ACK . spra ´vne ˇ by strana zahajujı ´cı ´ spojenı ´ me ˇla odpove ˇde ˇt ACK, pak se mohou pr ˇena ´s ˇet data . DoS ´ utok - vs ˇechny z ˇa ´dosti majı ´ fales ˇne ´ zdrojove ´ IP adresy, na SYN-ACK nikdo neodpovı ´ . c ˇasem se vyc ˇerpa ´ kapacita serveru pro zaha ´jena ´ spojenı ´ - dals ˇı ´ pokusy o spojenı ´ (i od lega ´lnı ´ch uz ˇivatelu ˚) jsou odmı ´tnuty - dals ˇı ´ typ - smurf attack - zaplavenı ´ sı ´te ˇ ICMP pakety s vyuz ˇitı ´m sı ´tı ´ tr ˇetı ´ch stran . ping na broadcast adresu sı ´te ˇ tr ˇetı ´ strany, zdrojova ´ adresa nastavena na cı ´lovy ´ stroj . pokud konfigurace sı ´te ˇ tr ˇetı ´ strany dovoluje pru ˚chod ICMP broadcastu ˚, vs ˇechny stroje odpovı ´ ICMP ECHO_RESPONSE na adresu cı ´le; mu ˚z ˇe vyc ˇerpat kapacitu pr ˇipojenı ´ cı ´le . podobny ´m zpu ˚sobem pracujı ´ tzv. distributed DoS attacks (DDoS) * zasla ´nı ´ nespra ´vne ˇ vytvor ˇene ´ho paketu (malformed packet attack) - paket forma ´tova ´n neoc ˇeka ´vany ´m zpu ˚sobem, OS pr ˇi zpracova ´nı ´ paketu havaruje - typicky ´ pr ˇı ´klad: IP fragmenty segmentu se pr ˇekry ´vajı ´ * obrana proti DoS ´ utoku ˚m: - sledovat nove ´ patche vy ´robce - nevpous ˇte ˇt do sı ´te ˇ broadcast - vyfiltrovat odchozı ´ pakety s odchozı ´ pakety musejı ´ mı ´t IP
OS, instalovat (po ove ˇr ˇenı ´ fc ˇnosti) co nejdr ˇı ´ve a pakety tvrdı ´cı ´ z ˇe pocha ´zejı ´ z vnitr ˇnı ´ sı ´te ˇ podvrz ˇenou zdrojovou IP adresou (vs ˇechny adresu podcha ´zejı ´cı ´ z nas ˇı ´ podsı ´te ˇ)
´toky zevnitr U ˇ syste ´mu ===================== * kdyz ˇ se cracker dostane do syste ´mu, mu ˚z ˇe zac ˇı ´t s ˇkodit - pokud je syste ´m bezpec ˇny ´, mu ˚z ˇe us ˇkodit pouze uz ˇivateli na jehoz ˇ ´ uc ˇet se dostal - v mnoha pr ˇı ´padech je to pouze vstupnı ´ bod pro zı ´ska ´nı ´ pr ˇı ´stupu k dals ˇı ´m ´ uc ˇtu ˚m - nynı ´ se podı ´va ´me na ne ˇktere ´ ´ utoky, ktere ´ mu ˚z ˇe prova ´de ˇt bud’ cracker ktery ´ se dostal na ´ uc ˇet nelega ´lne ˇ, pr ˇı ´padne ˇ i legitimnı ´ uz ˇivatel (u ´toky na za ´klade ˇ pr ˇetec ˇenı ´ bufferu na za ´sobnı ´ku lze prova ´de ˇt z vne ˇjs ˇku syste ´mu i zevnitr ˇ) * popı ´s ˇu nejzna ´me ˇjs ˇı ´ chyby ve tr ˇech OS: UNIX, TENEX a OS/360, a popı ´s ˇu
1
18. dubna 2003
2
principy na ´vrhu bezpec ˇny ´ch OS * pak se budeme ve ˇnovat trojsky ´m kon ˇ˚ um, zadnı ´m vra ´tku ˚m do syste ´mu apod. Zna ´me ´ chyby v bezpec ˇnosti syste ´mu UNIX ...................................... * utilita ”lpr” tiskne zadany ´ soubor na tiska ´rnu - ”lpr -r soubor” po vytisknutı ´ soubor zrus ˇı ´ - ve stars ˇı ´ch verzı ´ch syste ´mu bylo moz ˇne ´, aby kdokoli vytisknul a zrus ˇil /etc/passwd * pokud je v syste ´mu povoleno vytva ´r ˇenı ´ souboru ˚ core (”ulimit -c unlimited”), syste ´m pr ˇi ukonc ˇenı ´ procesu signa ´lem zapı ´s ˇe obsah pame ˇti procesu do souboru core - vytvor ˇit link s na ´zvem core na soubor /etc/passwd (”ln /etc/passwd core”) - spustit SUID program a vynutit si vytvor ˇenı ´ core (napr ˇ. zasla ´nı ´m SIGQUIT) - novy ´ /etc/passwd mohl obsahovat ne ˇkolik r ˇete ˇzcu ˚ zvoleny ´ch ´ utoc ˇnı ´kem (napr ˇ. argumenty pr ˇı ´kazove ´ho r ˇa ´dku) * ´ utok pomocı ´ mkdir - ve stars ˇı ´ch verzı ´ch UNIXu (SVR3.2) neexistovalo vola ´nı ´ mkdir(), adresa ´r ˇe se vytva ´r ˇely SETUID programem ”mkdir” pomocı ´ vola ´nı ´ mknod() (vytvor ˇilo adresa ´r ˇ vlastne ˇny ´ rootem) a chown() (zme ˇna vlastnı ´ka na uz ˇivatele, ktery ´ program spustil) - ´ utok - pokusit se mezi mknod() a chown() prove ´st: rmdir foo; ln /etc/passwd foo - pr ˇ´ ıkazovy ´ soubor ktery ´ prova ´dı ´ opakovane ˇ dokud se nepovede Zna ´ma ´ chyba v bezpec ˇnosti syste ´mu TENEX ........................................ * sve ´ho c ˇasu popula ´rnı ´ OS na poc ˇı ´tac ˇı ´ch DEC 10 * zajı ´mavy ´ dı ´ky na ´sledujı ´cı ´ chybe ˇ (uva ´de ˇna v kniha ´ch o OS jako typicky ´ pr ˇı ´klad) * OS podporujı ´cı ´ stra ´nkovanou virtua ´lnı ´ pame ˇt’ - aby uz ˇivatel mohl monitorovat chova ´nı ´ programu ˚, mohl si objednat vyvola ´nı ´ fce pr ˇi vy ´padku stra ´nky * soubor chra ´ne ˇne ´ heslem - pr ˇi otevr ˇenı ´ souboru musel program pr ˇedloz ˇit spra ´vne ´ heslo - OS kontroloval heslo znak po znaku a kontrolu hesla ukonc ˇil, jakmile zjistil chybny ´ znak * ´ utok - pec ˇlive ˇ umı ´stit heslo na hranici stra ´nky tak, aby prvnı ´ znak hesla byl na jedne ´ stra ´nce, ostatnı ´ znaky na na ´sledujı ´cı ´ stra ´nce (heslo napr ˇ. ”aaaaaa”) - zajistit, aby druha ´ stra ´nka nebyla v pame ˇti (napr ˇ. zpu ˚sobit tolik odkazu ˚, aby druha ´ stra ´nka musela by ´t vyhozena) - pokusit se otevr ˇı ´t soubor . pokud heslo nebude zac ˇı ´nat znakem ”a”, skonc ˇı ´ kontrolu a ozna ´mı ´ chybu hesla . pokud heslo bude zac ˇı ´nat ”a”, pr ˇejde na kontrolu dals ˇı ´ho znaku => vy ´padek stra ´nky - tj. mı ´sto oc ˇeka ´vany ´ch Nˆ128 pokusu ˚ pro N-znakove ´ heslo v ASCII ko ´du bude zapotr ˇebı ´ maxima ´lne ˇ N*128 Zna ´ma ´ chyba v OS/360 ..................... * OS pr ˇı ´stup k souboru ve dvou krocı ´ch - kontrola zda je pr ˇı ´stup k souboru (pouz ˇito jme ´no souboru uvedene ´ v datove ´ struktur ˇe uloz ˇene ´ v pame ˇti procesu) - pak pr ˇı ´stup k souboru (ope ˇt pouz ˇito jme ´no souboru z datove ´ struktury) * OS umoz ˇn ˇoval asynchronnı ´ c ˇtenı ´, napr ˇ. spustit c ˇtenı ´ ze souboru a pokrac ˇovat v dals ˇı ´ pra ´ci zatı ´mco se zapisujı ´ data do urc ˇene ´ oblasti pame ˇti - trik - syste ´mu uka ´zat soubor, ke ktere ´mu ma ´me pra ´vo pr ˇı ´stupu - nechat pr ˇepsat asynchronnı ´m c ˇtenı ´m, pokud se povedlo mezi dve ˇma c ˇa ´stmi operace pak pr ˇı ´stup k souboru podle volby ´ utoc ˇnı ´ka
Na ´vrh bezpec ˇny ´ch syste ´mu ˚ ........................
bit/pA-os.d
bit/pA-os.d
18. dubna 2003
* obvykle najmout skupinu expertu ˚ (tiger teams, penetration teams) * be ˇhem let se objevilo ne ˇkolik oblastı ´, kde by ´valy c ˇasto chyby (Linde 1975) 1. poz ˇadujte pame ˇt’ovy ´ prostor, diskovy ´ prostor apod. - pokud syste ´m obsah nerus ˇı ´ pr ˇed jeho alokacı ´, mu ˚z ˇete tam najı ´t zajı ´mave ´ informace zanechane ´ pr ˇedchozı ´m uz ˇivatelem 2. pokuste se prova ´de ˇt nelega ´lnı ´ syste ´mova ´ vola ´nı ´, lega ´lnı ´ syste ´mova ´ vola ´nı ´ s nelega ´lnı ´mi parametry nebo nesmyslny ´mi lega ´lnı ´mi parametry (jme ´no souboru ne ˇkolik KB dlouhe ´ apod.); pokud syste ´m chybne ˇ os ˇetr ˇuje vstupnı ´ parametry, mu ˚z ˇete ho zma ´st 3. pr ˇi pr ˇihlas ˇovacı ´ sekvenci stiskne ˇte kla ´vesu generujı ´cı ´ uda ´lost se specia ´lnı ´m vy ´znamem, napr ˇ. Break; v ne ˇktery ´ch syste ´mech tı ´m zrus ˇı ´te pr ˇihlas ˇovacı ´ program a pr ˇihla ´s ˇenı ´ bude povaz ˇova ´no za ´ uspe ˇs ˇne ´ 4. pokud OS uchova ´va ´ sloz ˇite ´ datove ´ struktury v adresnı ´m prostoru uz ˇivatele (obc ˇas OS pro mainframy), pokuste se je modifikovat; napr ˇ. pokud syste ´m uchova ´va ´ informace o otevr ˇene ´m souboru v adresnı ´m prostoru uz ˇivatele a datovou strukturu me ˇnı ´ pr ˇi c ˇtenı ´ a za ´pisu souboru 5. podı ´vejte se do manua ´lu; pokud se ne ˇkde pı ´s ˇe ”nede ˇlejte X”, vyzkous ˇejte tolik variant X, kolik va ´s napadne 6. pr ˇesve ˇdc ˇte syste ´move ´ho programa ´tora, aby do syste ´mu pr ˇidal zadnı ´ vra ´tka 7. pokud vs ˇe selz ˇe, pr ˇedstavte se administra ´torovi jako ubohy ´ uz ˇivatel, ktery ´ zapomne ˇl sve ´ heslo a potr ˇebuje ho rychle; alternativnı ´ moz ˇnost podplacenı ´ sekreta ´r ˇky (by ´va ´ ma ´lo placena ´ a ma ´ pr ˇı ´stup k vs ˇelijaky ´m zajı ´mavy ´m informacı ´m); tomuto poslednı ´mu zpu ˚sobu se r ˇı ´ka ´ ”socia ´lnı ´ inz ˇeny ´rstvı ´” * na ´vrha ´r ˇi novy ´ch syste ´mu ˚ kontrolujı ´ * je zr ˇejme ´, z ˇe navrhnout bezpec ˇny ´ OS nenı ´ snadne ´ * existuje ne ˇkolik principu ˚, ktere ´ by na ´vrha ´r ˇi bezpec ˇny ´ch syste ´mu ˚ me ˇli dodrz ˇet - platı ´ i pro jine ´ SW syste ´my nez ˇ OS - design syste ´mu by me ˇl by ´t ver ˇejny ´; pr ˇedpoklad, z ˇe oponent nepr ˇijde na to jak syste ´m pracuje (”security through obscurity”) slouz ˇı ´ pouze k oklama ´nı ´ na ´vrha ´r ˇ˚ u syste ´mu - defaultnı ´ nastavenı ´ by me ˇlo by ´t ”pr ˇı ´stup odepr ˇen”; chyby kdy je legitimnı ´ pr ˇ´ ıstup odepr ˇen by ´vajı ´ ohla ´s ˇeny podstatne ˇ rychleji nez ˇ opac ˇna ´ situace - syste ´m by me ˇl vz ˇdy kontrolovat souc ˇasna ´ pr ˇı ´stupova ´ pra ´va; mnoho syste ´mu ˚ kontroluje pr ˇı ´stupova ´ pra ´va pouze pr ˇi otevr ˇenı ´ souboru => uz ˇivatel mu ˚z ˇe otevr ˇı ´t soubor a mı ´t ho otevr ˇeny ´, i kdyz ˇ pu ˚vodnı ´ vlastnı ´k zme ˇnil pr ˇı ´stupova ´ pra ´va nebo se pokusil soubor zrus ˇit - kaz ˇdy ´ proces by me ˇl mı ´t nejmens ˇı ´ moz ˇna ´ privilegia; pokud mu ˚z ˇe textovy ´ editor pr ˇistupovat pouze k editovane ´mu souboru, jeho ”trojska ´” verze na ´m nemu ˚z ˇe pr ˇ´ ılis ˇ ublı ´z ˇit (to UNIX nedodrz ˇuje: mnoho serveru ˚ ma ´ privilegia roota) - mechanismy ochrany majı ´ by ´t jednoduche ´, uniformnı ´ a majı ´ by ´t zabudova ´ny do nejniz ˇs ˇı ´ch vrstev syste ´mu; bezpec ˇnost - podobne ˇ jako spra ´vnost - nelze k syste ´mu ”pr ˇidat” - zvolene ´ sche ´ma musı ´ by ´t psychicky akceptovatelne ´; pokud si uz ˇivatele ´ budou myslet, z ˇe chra ´nit soubory da ´ moc pra ´ce, nebudou to de ˇlat Nejdu ˚ lez ˇite ˇjs ˇı ´ pravidlo: KISS = ”Keep It Simple, Stupid” * pokud je syste ´m jednoduchy ´ a elegantnı ´, byl navrz ˇen jednı ´m architektem, ma ´ ne ˇkolik za ´kladnı ´ch pravidel ktera ´ urc ˇujı ´ ostatnı ´ - pak ma ´ s ˇanci by ´t bezpec ˇny ´ * pokud syste ´m naopak musı ´ dodrz ˇovat kompatibilitu se stary ´mi syste ´my ktere ´ nejsou bezpec ˇne ´, nebo je navrhova ´n komisı ´ ktera ´ do na ´vrhu zac ˇlenı ´ oblı ´bene ´ vlastnosti kaz ˇde ´ho sve ´ho c ˇlena (chybı ´ architektonicka ´ koherence) pak budou pravde ˇpodobne ˇ bezpec ˇnostnı ´ proble ´my Instalace pomocny ´ch programu ˚ ´ utoc ˇnı ´kem -------------------------------------* mezi pomocne ´ programy patr ˇı ´ trojs ˇtı ´ kone ˇ, fales ˇne ´ pr ˇihlas ˇovacı ´ programy, logicke ´ bomby, zadnı ´ vra ´tka * nejc ˇaste ˇjs ˇı ´ na ´stroje majı ´ ´ utoc ˇnı ´ci v tzv. rootkitech, o ktery ´ch r ˇeknu ne ˇco na za ´ve ˇr Trojs ˇtı ´ kone ˇ ............
3
18. dubna 2003
4
* trojsky ´ ku ˚n ˇ = zda ´nlive ˇ nes ˇkodny ´ program, obsahujı ´cı ´ nec ˇekanou nebo nez ˇ´ adanou fci (pos ˇkozenı ´ nebo modifikaci souboru ˚ uz ˇivatele, zkopı ´rova ´nı ´ na mı ´sto odkud je ´ utoc ˇnı ´k snadno zı ´ska ´ apod.) * je zapotr ˇebı ´, aby si ho obe ˇt’ spustila => bud’ si ho obe ˇt’ sama nainstaluje nebo je nainstalova ´n tak, aby byl obe ˇtı ´ neu ´myslne ˇ spus ˇte ˇn * prvnı ´ pr ˇı ´pad - obe ˇt’ si trojske ´ho kone ˇ sama nainstaluje . napr ˇı ´klad ´ utoc ˇnı ´k umı ´stı ´ trojske ´ho kone ˇ na WWW jako program, ktery ´ si pravde ˇpodobne ˇ zı ´ska ´ pozornost (hra, program ktery ´ tvrdı ´ z ˇe z CD ROM c ˇtecı ´ mechaniky ude ˇla ´ zapisovacı ´, apod.) . nebo pos ˇle obe ˇti mailem jako spustitelnou ”pohlednici k narozenina ´m” apod. * druhy ´ pr ˇı ´pad - program do syste ´mu nainstaluje ´ utoc ˇnı ´k - v syste ´mech UNIX i Windows prome ˇnna ´ PATH definuje cesty, ktera ´ jsou prohleda ´va ´ny pr ˇi spus ˇte ˇnı ´ programu (napr ˇ. PATH=.:/usr/bin:/bin:/usr/bin/X11) - pokud je ne ˇktery ´ z adresa ´r ˇ˚ u zapisovatelny ´, ´ utoc ˇnı ´k tam mu ˚z ˇe zanechat program - program mu ˚z ˇe mı ´t jme ´no odpovı ´dajı ´cı ´ chybne ˇ zadane ´mu pr ˇı ´kazu, napr ˇ. ”la” (mı ´sto ”ls”) - po spus ˇte ˇnı ´ programu provede nekalou c ˇinnost a pak vypı ´s ˇe: bash: la: command not found - dals ˇı ´ moz ˇnost - lega ´lnı ´ uz ˇivatel mu ˚z ˇe zanechat trojske ´ho kone ˇ s na ´zvem ”ls” ve sve ´m domovske ´m adresa ´r ˇi a ude ˇlat ne ˇco podezr ˇele ´ho; administra ´tor se podı ´va ´ co de ˇla ´, spustı ´ ”ls”; pokud se pr ˇı ´kazy vyhleda ´vajı ´ v aktua ´lnı ´m adresa ´r ˇi (adresa ´r ˇ ”.” je v ceste ˇ), spustı ´ se trojsky ´ ku ˚n ˇ . to je du ˚vod, proc ˇ pr ˇı ´kazove ´ interprety v UNIXu defaultne ˇ nehledajı ´ spustitelne ´ soubory v aktua ´lnı ´m pracovnı ´m adresa ´r ˇi * moz ˇne ´ c ˇinnosti trojske ´ho kone ˇ - vytvor ˇit SUID shell pro pozde ˇjs ˇı ´ pra ´ci (na to postac ˇujı ´ dve ˇ vola ´nı ´: chown(”sh”, 0, 0); chmod(”sh”, 04555);) - pokud je nainstalova ´n program pro on-line banking, mu ˚z ˇe pomocı ´ ne ˇj prove ´st ne ˇjakou financ ˇnı ´ transakci (Denningova ´ 1999) apod. * obrana - nespous ˇte ˇt neprove ˇr ˇene ´ programy - ne ˇktere ´ tradic ˇnı ´ trojske ´ kone ˇ pro Windows jsou detekova ´ny antivirovy ´mi programy Fales ˇne ´ pr ˇihlas ˇovacı ´ programy ............................. * mys ˇlenka pr ˇı ´buzna ´ trojsky ´m kon ˇ˚ um: program, ktery ´ vytvor ˇı ´ obrazovku stejnou jako skutec ˇny ´ pr ˇihlas ˇovacı ´ program, ale zaznamena ´va ´ kombinaci jme ´no/heslo * jedina ´ obrana je zaha ´jit pr ˇihlas ˇova ´nı ´ kombinacı ´ kla ´ves, kterou uz ˇivatel nemu ˚z ˇe zachytit, napr ˇ. Ctrl-Alt-Del ve Windows NT/2000/XP Logicke ´ bomby ............. * ko ´d tajne ˇ vloz ˇeny ´ programa ´torem do firemnı ´ho programu, spous ˇte ˇnı ´ v pr ˇı ´pade ˇ ne ˇjake ´ uda ´losti (napr ˇ. vyhozenı ´ programa ´tora z pra ´ce) - napr ˇı ´klad pokud je programa ´tor na vy ´platnı ´ pa ´sce, nede ˇla ´ nic - pokud se dva me ˇsı ´ce za sebou neobjevı ´, aktivuje se (Spafford et al. 1989) - pr ˇ´ ıklad c ˇinnosti: na ´hodne ´ pos ˇkozova ´nı ´ souboru ˚, zas ˇifrova ´nı ´ du ˚lez ˇity ´ch souboru ˚ (aby byla firma nucena zame ˇstnat jako ”konzultanta” pro vyr ˇes ˇenı ´ proble ´mu) Zadnı ´ vra ´tka ............ * angl. backdoors, trapdoors * umoz ˇn ˇuje ´ utoc ˇnı ´kovi zı ´skat pr ˇı ´stup k syste ´mu bez nutnosti standardnı ´ho pr ˇihla ´s ˇenı ´ * klasicka ´ zadnı ´ vra ´tka - napr ˇ. modifikace pr ˇihlas ˇovacı ´ho programu tak, aby dovolil pr ˇihla ´s ˇenı ´ komukoli, pokud se pr ˇihla ´sı ´ jako ”zzzzzz” while (TRUE) {
while (TRUE) {
bit/pA-os.d
bit/pA-os.d
18. dubna 2003 printf(”login: ”); get_string(name); disable_echo(); get_string(password); enable_echo(); v = check_validity(name, password); if (v) break;
} start_shell(name); // norma ´lnı ´ ko ´d
5
printf(”login: ”); get_string(name); disable_echo(); get_string(password); enable_echo(); v = check_validity(name, password); if (v || strcmp(name, ”zzzzzz”)) break; } start_shell(name); // ko ´d se zadnı ´mi vra ´tky
* obrana v tomto pr ˇı ´pade ˇ + v pr ˇı ´pade ˇ logicky ´ch bomb - code review - napr ˇ. po otestova ´nı ´ modulu programa ´tor vysve ˇtlı ´ co program de ˇla ´ Ota ´zka: co kdyz ˇ bude upraven pr ˇekladac ˇ tak, aby pr ˇi pr ˇekladu nezme ˇne ˇne ´ho zdrojove ´ho ko ´du programu ”login” vloz ˇil zadnı ´ vra ´tka a za ´roven ˇ bude upraven tak, aby pr ˇi pr ˇekladu pr ˇekladac ˇe z nezme ˇne ˇny ´ch zdrojovy ´ch textu ˚ vloz ˇil ko ´d pro upraveny ´ pr ˇeklad pr ˇekladac ˇe? (”Reflections on trusting trust.”) * souc ˇasne ´ programy implementujı ´cı ´ zadnı ´ vra ´tka do syste ´mu ve ˇts ˇinou naslouchajı ´ na urc ˇene ´m portu a c ˇekajı ´ na pr ˇı ´chozı ´ spojenı ´ * obrana proti zadnı ´m vra ´tku ˚m - administra ´tor by me ˇl ve ˇde ˇt co spous ˇtı ´ na sve ´m - pokud se najednou objevı ´ proces poslouchajı ´cı ´ proces pobe ˇz ˇı ´ jako root (v UNIXu i Windows NT administra ´tor musı ´ zjistit proc ˇ - ne ˇktera ´ zadnı ´ vra ´tka pro Windows NT mohou by ´t
syste ´mu na portu nebo existujı ´cı ´ zjistı ´me netstat -a), zjis ˇte ˇna antivirovy ´mi programy
* odposloucha ´vajı ´cı ´ zadnı ´ vra ´tka - aby nebyl detekovatelny ´ programem netstat, odposloucha ´va ´ provoz, reaguje na provoz urc ˇeny ´ pro ne ˇj - ne ˇktere ´ pr ˇepı ´najı ´ do promiskuitnı ´ho rez ˇimu, reagujı ´ na provoz urc ˇeny ´ pro jiny ´ stroj => obtı ´z ˇne ˇjs ˇı ´ detekce * obrana proti odposloucha ´vajı ´cı ´m zadnı ´m vra ´tku ˚m - administra ´tor musı ´ ve ˇde ˇt ktere ´ procesy mohou be ˇz ˇet jako root, jine ´ procesy nutne ´ pr ˇezkoumat . ´ utoc ˇnı ´ci je pojmenova ´vajı ´ ”nevinny ´mi” jme ´ny, napr ˇ. ”scsi”, ”ups” apod.
❉