Portál AbcLinuxu, 25. dubna 2024 18:14


Dotaz: Vymazání paměti po provedení PHP skriptu

30.8.2010 03:10 seqvoja
Vymazání paměti po provedení PHP skriptu
Přečteno: 468×
Odpovědět | Admin
Vytvořil jsem php skript, který se připojuje k databázi uživatelských účtů. Heslo pro připojení k databázi není nikde uloženo, zadává se při přihlašování přes HTTPS. Tím jsem rapidně zvýšil bezpečnost, nicméně ještě je tu riziko memory dumpu na serveru (a koneckoncu i na klientovi). Jakým způsobem se proti tomu dá bránit neboli jakým způsobem lze na konci provádění php skriptů vymazat pamět kterou to předtím alokovalo? Mám za to, že minimálně pod linuxem zůstanou data (včetně zadaného hesla) nacachované v paměti.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 30.8.2010 03:49 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vymazání paměti po provedení PHP skriptu
Odpovědět | | Sbalit | Link | Blokovat | Admin
V PHP (a jiných vyšších jazycích) asi dost špatně, v nižších jazycích (C) se to tuším dělá tak, že se schová pointer na adresu, na které jsou uložena citlivá data, a po ukončení práce se na tu adresu uloží něco bezcenného, čímž se data přepíší. Příkladem implementace je luksSuspend z kolekce cryptsetup (od verze 1.1).

Bojíš se spíš toho, že se ti někdo proláme na roota a stáhne si /dev/kmem, nebo cold boot útoku? Pokud je server v datacentru (rozuměj nemáš fyzický dohled), tak ti tam útočník stejně může nasadit backdoor… Jinak coldboot se dá taky řešit spínačem zevnitř case, který odpojí napájení, případně ještě obalením pamětí nějakým termoizolačním materiálem, aby nešly dostatečně rychle ochladit (ale zase ne moc, aby se nepřehřívaly…).

P.S. FireWire se dá zrušit šroubovákem.

</paranoia>
Já to s tou denacifikací Slovenska myslel vážně.
30.8.2010 06:45 seqvoja
Rozbalit Rozbalit vše Re: Vymazání paměti po provedení PHP skriptu
Server není v datacentru. Bojím se spíš o to, že se tam někdo dostane přes roota a stáhne si paměť nebo úniku paměti skrze nějakou díru v php. Jak těžké je vlastně v posledních kernelech získat obsah paměti? /dev/mem je limitováno a /dev/kmem je nefunkční.
30.8.2010 08:12 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Vymazání paměti po provedení PHP skriptu
Ta databáze běží na jiném stroji? Jak máte ošetřeno, že když někdo bude mít roota, neunese spojení k databázi v okamžiku, kdy k ní bude někdo legitimně přihlášen? A jak ošetříte, že si z paměti (nebo třeba úpravou vašeho skriptu) heslo nezjistí v okamžiku, kdy se uživatel připojuje? Myslím, že to řešíte zbytečně – že případný útočník má spoustu jiných a snazších možností, jak případně získaného roota zneužít.
Jendа avatar 30.8.2010 14:38 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Vymazání paměti po provedení PHP skriptu
default avatar 30.8.2010 17:04 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: Vymazání paměti po provedení PHP skriptu
v nižších jazycích (C) se to tuším dělá tak, že se schová pointer na adresu, na které jsou uložena citlivá data, a po ukončení práce se na tu adresu uloží něco bezcenného, čímž se data přepíší.
Ještě si ten blok paměti musíš ale exkluzivně uzamknout, aby se ti neodswapoval. A některý OS tohle "podporují" tak trochu po svém…
31.8.2010 01:22 Non_E | skóre: 24 | blog: hic_sunt_leones | Pardubice
Rozbalit Rozbalit vše Re: Vymazání paměti po provedení PHP skriptu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle pokud vím neovlivníš. Pokud nedůvěřuješ hostingu, který má fyzický přístup ke tvému skriptu, hostuj jinde (doma třeba).
Only Sith deals in absolutes.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.