DNS etc.
Petr Novotny
Petr.Novotny na antek.cz
Čtvrtek Duben 6 17:19:51 CEST 2000
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 6 Apr 00, at 16:59, Pavel Kankovsky wrote:
> > 2. Je bezpecne napsan. :-)
>
> Vzhledem k tomu, jak moc ma DJB v oblibe nadratovane konstanty (mam na
> mysli veci jako "header[2] & 120"), globalni promenne a podobne chyby
> skryvajici konstrukce, tak bych toto tvrzeni povazoval ze ponekud
> diskutabilni (ale aspon uz opustil K&R styl).
Stejne tak vidi clovek spoustu chyb v tom, ze si takovehle veci da
do maker, a po par letech s prekvapenim zjistuje, ze si prepisuje
pamet; a ejhle, nahle byl porusen vztah mezi symbolickymi
konstantami, a pole se adresuje minus trojkou.
Zadratovane konstanty nejsou primarne proti bezpecnosti. I kdyz
samozrejme udrzbu znesnadnuji hodne silne.
Ovsem podivejte se na RFC, ktera jsou v djb programech
implementovana. Tak se opravdu mluvi o presnych offsetech. Takze
i ta RFC by mela kvuli tomu byt nebezpecna? :-)
> > 1. Musite vzit v potaz, ze cache a autoritativni zdroj jsou rozdilne
> > programy, a tedy kazdy poslouchaji na jinem interface. (Normalne
> > mate k dispozici interfejsu spoustu - udelate si loopback na
> > 127.0.0.2, 127.0.0.3 atd. :-))
>
> Bohuzel zadny z nich neni videt zvenku. Pro ty, co z jakehokoli duvodu
> nechteji/nemohou aliasovat skutecny interfejs, to predstavuje veliky
> (a IMHO dost zbytecny) problem pri migraci z bindu, ktery umi delat na
> jednom interfejsu kes i autoritativni ns.
Ano. Za cenu toho, ze buffer oveflow v cache vam zrusi
administrativni ns.
> > 3. Zonovy format vypada vyrazne jinak. (Je snadno parsovatelny
> > pocitacem, a clovek se uci snaze nez pocitac.)
>
> Ovsem pocitac neni narozdil od cloveka liny a ma spoustu energie na
> vykonavani cinnosti, ktere nevyzaduji tvurci pristup. :)
Jenze clovek, ktery ho uci, aby tyto cinnosti delal, je ve svem
konani omylny. V kritickych systemech (a DNS _je_ kriticky
system) je treba co nejvice chyb v parsovani vyloucit - nejlepe tim,
ze se neparsuje.
> > Pokud se s uvedenymi body smirite, dostanete se do sveta
> > mnohych vyhod, kde treba split-DNS triky jsou uplne za babku,
>
> Pokud mate IP adresy za babku.
Pokud chci split DNS, mam aspon dve IP adresy. Nebo myslite
"kazdemu odpovez jinak"? Na to mam ipfwadm a transparent proxy
(ruzne prichozi rozhazuji na ruzne porty).
> > 2. Program neni navrzen bezpecne; je bezpecny ve smyslu "pokud jsme
> > to tentokrat napsali dobre, tak to uz je snad OK"; historie rika, ze
> > nelze bezpecnost zalozit na tom, ze v programu neni prehlednuti.
>
> Mozna vyse napsanemu rozumim spatne, ale tomu, ze bezpecnost zavisi na
> tom, ze se nektere komponenty (treba TCB) musi v podstate
> bezpodminecne chovat spravne, se asi nevyhneme (aspon pomineme-li
> "byzantske" replikovane systemy, kde to lze nekdy preformulovat tak,
> ze se musi spravne chovat aspon urcity pocet zucastnenych).
To je mysleno jinak. Program lze matematicky dokazat. Lze tedy
matematicky dokazat, ze pokud neni v programu _preklep_, je
program spravny. To je fundamentalni rozdil od pocitu programatora
"jo, dneska se mi to povedlo".
> > 3. Nema omezeni pouzite pameti.
>
> Ale ma. Rozhodne nesezere vic, nez kolik ma ta masina k dispozici. :)
Pokud mate omezenou pamet a vite to, umite prizpusobit strategii.
Pokud mate omezenou pamet pres ulimit a nikdo vam to nerekne,
tak se akorat divite, az se nepovede malloc(); a pak budete dlouho
vymyslet, co udelate, nebo zahodite nove RR a stare nechate v
cachi hnit.
> > 5. Neni oddelena autoritativni cast od cache.
>
> Pod slovem "oddelena" si lze predstavit ruzne veci. Pocinaje tim, ze
> obe casti se nachazeji v ruznych galaxiich, konce tim, ze se pocitac v
> jednom okamziku zabyva pouze jednou z techto uloh. :)
"Oddelena" = jiny proces, i jine uid, k nemuz se soubory vraceji.
> Navic zakladni funkcni vyhoda, ktera z toho rozdeleni IMHO plyne...
> totiz znesnadneni cache poisoningu
Ne. Hlavni vyhoda NENI znesnadneni poisoningu. Hlavni vyhoda je,
ze i kdyby byla chyba v jedne casti, tak tu druhou cast neohrozi.
"Nedavej si vsechna vejce do stejneho kosiku."
> tim, ze neumoznime kazdemu, aby se
> ptal na cokoli, neni az tak tak velka vyhra, protoze presvedcit nejaky
> stroj, ktery ma k dane kesi pristup, aby se na neco konkretniho
> zeptal, neni vetsinou tak obtizne (a casto to jde udelat i v realnem
> case).
Tim dostanete jen cache, ne autoritativni ns. Nesestreleni
autoritativniho ns je mnohem jednodussi; to paket nikam do sve
pameti neuklada - to si ho jen prohledne, a pak odesle patricnou
odpoved.
> Bind samozrejme nesezere uplne vsechno,
> co mu prijde. Otazka zni, jak je tezke vyrobit presvedcivy podvrh
> spravne odpovedi. U bindu je to bohuzel pomerne snadne.
Spravne. U dnscache je to vyrazne obtiznejsi. (Musite podvrhnout
paket prichazejici jakoby z autoritativniho nameserveru pro danou
domenu, a navic obsahujici spravne, kryptograficky silne, id; navic
musite vsechny ostatni pakety od jinych ns potlacit. To je
ekvivalentni tomu, ze drzite v ruce celou linku, kterou dnscache jde
do sveta. Proti tomuto stavu obrana stejne neni - protoze muzete
cely Internet emulovat. DNS jeste stale - preze vsechna slibovani
NSI od roku 1993 - neni chranena asymetrickym podpisem (takze
by nesla odpoved root serveru zfalsovat). --- Na DNS spoofing pro
BIND vam pouze staci poslat paket ve spravnem okamziku. Ten
puvodni (dotazovy) paket videt nemusite.)
-----BEGIN PGP SIGNATURE-----
Version: PGP 6.0.2 -- QDPGP 2.60
Comment: http://community.wow.net/grt/qdpgp.html
iQA/AwUBOOydB1MwP8g7qbw/EQLlFgCg3hDlBJ5xBBxmmT1aHw3bRevJv2YAnimg
b++LdkVyVFN+QzEjTnQcRNOY
=QJo5
-----END PGP SIGNATURE-----
--
Petr Novotny, ANTEK CS
Petr.Novotny na antek.cz
http://www.antek.cz
PGP key ID: 0x3BA9BC3F
-- Don't you know there ain't no devil there's just God when he's drunk.
[Tom Waits]
Další informace o konferenci Linux