VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:21/94
RoΦnφk:1994
Rubrika/kategorie: Co (ne)najdete ve slovnφku

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek

Ji°φ Peterka

Trap door

Ne nadarmo se °φkß, ₧e v ka₧dΘm programu je chyba. To p°itom platφ i pro pon∞kud specifickou kategorii program∙, kterΘ majφ za ·kol dohlφ₧et na bezpeΦnost informaΦnφch systΘm∙ a implementovat nejr∙zn∞jÜφ zabezpeΦovacφ mechanismy. Ka₧dß chyba v takovΘmto programu vÜak m∙₧e mφt dalekosßhlΘ d∙sledky: m∙₧e se stßt mφstem Φi prost°edkem neoprßvn∞nΘho vniknutφ do zabezpeΦenΘho systΘmu. Nap°φklad kdy₧ n∞kdo chybn∞ naprogramuje rutinu vyhodnocujφcφ sprßvnost zadanΘho hesla, m∙₧e tφm otev°φt p°φstup do systΘmu i n∞komu, kdo by k tomu nem∞l b²t oprßvn∞n - kdo sice neznß sprßvnΘ heslo, ale dokß₧e sprßvn∞ otev°φt "zadnφ vrßtka", kterß se vinou chyby v programu vytvo°ila.

Takov²mto zadnφm vrßtkßm v nejr∙zn∞jÜφch programech se v angliΦtin∞ °φkß p°φznaΦn∞ back door nebo alternativn∞ trap door. Za svou existenci mohou vd∞Φit zcela ne·mysln²m chybßm, ale stejn∞ tak dob°e mohou b²t vytvß°ena zßm∞rn∞: nap°φklad r∙znΘ operaΦnφ systΘmy pamatujφ na pot°eby servisnφch technik∙, kte°φ p°ichßzφ k zßkaznφk∙m opravovat vÜelijakΘ zßvady, a majφ v sob∞ p°edem zabudovßny zvlßÜtnφ u₧ivatelskΘ ·Φty a hesla, jejich₧ pomocφ se tito technici mohou dostat vÜude tam, kam pot°ebujφ. N∞kdy pak mohou b²t zadnφ vrßtka zp∙sobovßna i soub∞hem programov²ch chyb a organizaΦnφch opat°enφ, p°φpadn∞ mohou mφt i Φist∞ organizaΦnφ charakter. Jako nap°φklad tehdy, kdy₧ na boku monitoru jinak velmi dob°e zabezpeΦenΘho systΘmu je samolepka a na nφ je napsßno heslo n∞kterΘho superu₧ivatele - z°ejm∞ kdyby n∞kdo zapomn∞l ....

Zadnφ vrßtka (trap doors, back doors) jsou p°φle₧itostφ k neoprßvn∞nΘmu vniknutφ do zabezpeΦenΘho systΘmu nejen pro "lidskΘ" naruÜitele, ale i pro nejr∙zn∞jÜφ viry, trojskΘ kon∞ (Trojan horses) a Φervy (worms, viz minule). Nap°φklad slavn² Φerv, kter² v roce 1988 dostal na kolena cel² Internet (viz minule), vyu₧φval ke svΘmu Üφ°enφ prßv∞ takovßto zadnφ vrßtka v tehdy provozovan²ch verzφch BSD Unixu a operaΦnφm systΘmu SunOS a v n∞kter²ch jejich systΘmov²ch utilitßch.

Z°ejm∞ neslavn∞jÜφ a nejdokonalejÜφ zadnφ vrßtka v celΘ poΦφtaΦovΘ historii mß na sv∞domφ pan Ken Thompson, jeden z autor∙ Unixu. V roce 1983 p°i p°ebφrßnφ presti₧nφ Turingovy ceny (The Turing Award) sßm na sebe vyzradil, ₧e do prvnφch verzφ Unixu si zabudoval velmi d∙myslnß zadnφ vrßtka: do p°ekladaΦe jazyka C (kter²m je operaΦnφ systΘm Unix p°eklßdßn) zabudoval takov² kus k≤du, kter² dokßzal rozpoznat, ₧e prßv∞ kompiluje p°φkaz login (pro p°ihlaÜovßnφ do systΘmu), a vygenerovan² k≤d upravit tak, aby sprßvn∞ vyhodnotil i jedno konkrΘtnφ heslo, kterΘ bylo znßmo prßv∞ a pouze panu Thompsonovi. Ten tak zφskal mo₧nost vstupu do kterΘhokoli unixovskΘho systΘmu, bez ohledu na to, zda na n∞j m∞l vytvo°en u₧ivatelsk² ·Φet Φi nikoli.

Zajφmavß byla na t∞chto zadnφch vrßtkßch i jejich maximßlnφ "v²dr₧" - za b∞₧n²ch okolnostφ by toti₧ staΦilo odstranit ze zdrojovΘho tvaru p°ekladaΦe jazyka C tu Φßst k≤du, kterß p°φsluÜnß vrßtka v p°elo₧enΘm programu vytvß°φ. OvÜem Ken Thompson se proti tomu pojistil: chcete-li p°elo₧it novou verzi kompilßtoru jazyka C (napsanΘho op∞t v jazyce C), musφte k tomu pou₧φt stßvajφcφ verzi tohoto kompilßtoru. Thompson ale za°φdil v∞ci tak, ₧e kompilßtor poznß, kdy p°eklßdß sßm sebe, a do novΘ verze vlo₧φ k≤d, kter² se postarß nejen o samotnß zadnφ vrßtka, ale kter² dß i novΘ verzi schopnost rozpoznat, ₧e kompiluje sama sebe atd. Dφky tomu se pak Thompsonova zadnφ vrßtka stala prakticky neostraniteln²mi - sama se s nov²mi verzemi Unixu Üφ°ila dßl.

Uznejte, nenφ ten Unix bßjeΦn²?


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm