Fórum Root.cz

Hlavní témata => Server => Téma založeno: KapitánRUM 30. 11. 2011, 23:47:32

Název: Bezpečnější prostředí pro webové aplikace
Přispěvatel: KapitánRUM 30. 11. 2011, 23:47:32
Ahoj,

mám dotaz na ty nejzkušenější.

Jak učinit prostředí pro běh webové aplikace bezpečnější?

Co považujete za BEST PRACTICES na zabezpečení běhu webové aplikace na VPS?
Řekněme třeba Joomla nebo nějaký E-shop na VPS, což je asi nejobvyklejší a nejlepší příklad.
Aplikace potřebuje Postfix, MySQL, Apache, PHP a podporu SSL.

Pointa je, že TO důležité, TO co má jediné cenu, je stejně JEN uvnitř té webové aplikace.
Vycházím z toho, že po získání přístupu k webové aplikaci a stažením její zálohy klesá cena zbytku k nule.

Chroot mi přijde až nesmyslné používat, pokud mi to někdo nabourá a vykrade, pak to stejně udělá přes Apache/PHP/díru v té aplikaci a získá všechno co chtěl. Je to jako hlídat garáž zevnitř, když auto stojí venku!

Tedy:
- přehodit porty SSH
- nastavit dobrá hesla
- na MySQL umožnit připojení jen z localhost
- pro přístup do MySQL lze klidně použít root, jiný uživatel nemá smysl, protože stejně musí mít právo na čtení a pokud to přečte, tak to i vykrade
- aktualizovat všechny služby
- hlídat si tu webovou aplikačku, jestli v ní nejsou zranitelnosti
- zálohovat
- monitorovat přístupy k serveru, hlavně změny souborů

Nebo máte někdo v rukávu nějaký úžasný trik?

Název: Re:Jak učinit prostředí pro běh webové aplikace bezpečnější
Přispěvatel: Zopper 01. 12. 2011, 00:26:59
Ad mysql účty - naopak, samostatný účet na každou databázi a samostatnou databázi na každou aplikaci (a omezit přístup jen a pouze na tuto DB). Pokud se útočník k DB dostane přes SQL injection, omezí ho to na konkrétní aplikaci a přes chybu na blogu nemůže změnit data v eshopu.

Rovněž stojí za úvahu mít většinu systému na read-only oddílu, takže vám nikdo nebude moct přepsat binárky. Zapisovatelné oddíly mít jen tam, kde se něco zapisovat musí.
Název: Re:Jak učinit prostředí pro běh webové aplikace bezpečnější
Přispěvatel: branchman2 01. 12. 2011, 00:40:30
Název: Re:Jak učinit prostředí pro běh webové aplikace bezpečnější
Přispěvatel: Mordae 01. 12. 2011, 09:30:31
Nejake to pocteni k tematu je na virtualmaster blogu (http://blog.virtualmaster.cz/post/9626829138/zakladni-zabezpeceni-lamp-serveru).
Název: Re:Jak učinit prostředí pro běh webové aplikace bezpečnější
Přispěvatel: Ondřej Caletka 01. 12. 2011, 10:25:47
Rovněž stojí za úvahu mít většinu systému na read-only oddílu, takže vám nikdo nebude moct přepsat binárky. Zapisovatelné oddíly mít jen tam, kde se něco zapisovat musí.
Aby mohl přepsat binárky, musí mít práva roota. Když už bude mít práva roota, může si oddíl remountnout do RW. Nebo víš o nějakém způsobu, jak udělat oddíl semipermanentně (=do rebootu) zamčený na read only? Nějaký patch do kernelu by to nejspíš řešil.
Název: Re:Jak učinit prostředí pro běh webové aplikace bezpečnější
Přispěvatel: Mirek Prýmek 01. 12. 2011, 11:25:02
Aby mohl přepsat binárky, musí mít práva roota. Když už bude mít práva roota, může si oddíl remountnout do RW. Nebo víš o nějakém způsobu, jak udělat oddíl semipermanentně (=do rebootu) zamčený na read only? Nějaký patch do kernelu by to nejspíš řešil.

Např. ve FreeBSD je možné u souboru nastavit flagy tak, aby do nich ani root nemohl při zvýšeném securelevel zapisovat.
- viz http://www.freebsd.org/cgi/man.cgi?security(7)

Na Linuxu určitě podobné patche existují taky, ale nakolik je distra používají, to netuším.
Název: Re:Bezpečnější prostředí pro webové aplikace
Přispěvatel: Zopper 01. 12. 2011, 11:28:55
Read-only FS: Buď úpravou jádra, nebo, pokud je systém uvnitř virtuálního stroje, to může být řešeno v rámci hostitelského systému - možná by stačilo jen neumožnit zápis uživateli, pod kterým hypervisor běží.
Název: Re:Bezpečnější prostředí pro webové aplikace
Přispěvatel: Mirek Prýmek 01. 12. 2011, 11:55:15
Co považujete za BEST PRACTICES na zabezpečení běhu webové aplikace na VPS?
Řekněme třeba Joomla nebo nějaký E-shop na VPS, což je asi nejobvyklejší a nejlepší příklad.
Aplikace potřebuje Postfix, MySQL, Apache, PHP a podporu SSL.

Pointa je, že TO důležité, TO co má jediné cenu, je stejně JEN uvnitř té webové aplikace.
Vycházím z toho, že po získání přístupu k webové aplikaci a stažením její zálohy klesá cena zbytku k nule.

Moc nechápu, co chceš vlastně docílit:

1. aplikace musí mít k datům přístup pro čtení
2. nechci, aby mi ta data někdo neoprávněně přečetl

...z toho mi celkem jasně vychází, že alfa a omega je, aby byla bezpečná samotná aplikace. Jestli to běží v rámci VPS nebo ne, je úplně jedno.
Název: Re:Bezpečnější prostředí pro webové aplikace
Přispěvatel: Mirek Prýmek 01. 12. 2011, 11:57:57
Read-only FS: Buď úpravou jádra, nebo, pokud je systém uvnitř virtuálního stroje, to může být řešeno v rámci hostitelského systému - možná by stačilo jen neumožnit zápis uživateli, pod kterým hypervisor běží.

Tím bych si nebyl tak úplně jist. Záleží na tom, jak se hypervisor zachová, když zjistí, že data nemůže zapsat na disk. Skoro bych dal ruku do ohně za to, že alespoň u části hypervizorů se data na úrovni hostovaného systému zapíší, čili putují do nějaké cache a když se zjistí, že z cache na fyzický disk nejdou zapsat, stane se kdoví co.
Název: Re:Bezpečnější prostředí pro webové aplikace
Přispěvatel: Zopper 01. 12. 2011, 14:44:15
Alternativou by tedy možná bylo udělat nějaké "live cd" iso a bootovat systém z něj - a datové oddíly připojit už jako normální disk pro rw.
Název: Re:Bezpečnější prostředí pro webové aplikace
Přispěvatel: PCnity 01. 12. 2011, 15:17:21
Neviem si pomoct... Ale pokial je to najhodnodtnejsie v databaze tej webovej aplikacie, zameral by som sa hlavne na tu aplikaciu samu. Vsemozne veci ako prehodit SSH port a podobne sa viac dotykaju script kiddies...
Ked mam pristup k PHP exec alebo system, mam vyhrate. Skor ci neskor najdem vhodny exploit a /tmp je skoro vzdy zapisovatelne :)
Staci netcat a bindovat bash. Jednym smerom alebo opacny, je jedno.

Moje best practices su:

*chroot
*ro fs az na absolutne potrebne minimum
*rw fs ak je nutny (ak sessions nie su v memcached alebo koli uploadom) tak s nosuid a noexec!
*updaty, updaty, upday!
*Stale cledovat ci nie zverejneny novy 0day alebo hocikay zavaznejsi bug pre dany projekt [sql injection, eval(), ...]
*Urcite sa vyhrat napriklad s PHP diable functions
*Mozno by ani aplikacny firewall neskodil ktory by sledoval na zaciatok aspon GET requesty a pokial niekto donekocena sekvence meni nejake id vo velkom rozsahu, cez iptables bloknut IP a notifikacia admina.
Název: Re:Bezpečnější prostředí pro webové aplikace
Přispěvatel: KapitánRUM 01. 12. 2011, 16:54:15
A jaký aplikační FW, jsou různé, můžete něco doporučit ZE SVÉ ZKUŠENOSTI?

Dík.
Název: Re:Bezpečnější prostředí pro webové aplikace
Přispěvatel: PCnity 01. 12. 2011, 17:03:02
Budem velmi rad az raz budem moct. Aktualne mame nasadene len NIDS (snort). Ale je to tema ktorej sa mienim venovat ked bude cas :)
Název: Re:Bezpečnější prostředí pro webové aplikace
Přispěvatel: KapitánRUM 03. 12. 2011, 02:27:59
Takže nikdo neporadí žádný konkrétní nástroj?
Název: Re:Bezpečnější prostředí pro webové aplikace
Přispěvatel: Zdeněk 03. 12. 2011, 03:55:55
má základní pravidla: