Portál AbcLinuxu, 13. května 2025 22:02

Dotaz: PHP bezpecnost

20.3.2011 17:45 secit
PHP bezpecnost
Přečteno: 818×
Odpovědět | Admin
Budu ted muset nainstalovat na server PHP. Docela se toho bojim kvuli bezpecnosti serveru. PHP ma plno bugu a zranitelnosti. Jak to resite na svych serverech, tak aby utocnik nemel sanci se na server dostat a nebo to bude neresite? Nechci porad updatovat PHP verze. Reseni je Debian + Apache + PHP.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.3.2011 18:16 chrono
Rozbalit Rozbalit vše Re: PHP bezpecnost
Odpovědět | | Sbalit | Link | Blokovat | Admin
Keď nechceš update-ovať Php, tak ho tam proste neinštaluj.
20.3.2011 19:04 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: PHP bezpecnost
Odpovědět | | Sbalit | Link | Blokovat | Admin
mod_selinux
In Ada the typical infinite loop would normally be terminated by detonation.
poky74 avatar 20.3.2011 22:32 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: PHP bezpecnost
Odpovědět | | Sbalit | Link | Blokovat | Admin

Když něco v PHP píšu tak přemýšlím.

Nechci porad updatovat PHP verze.

PHP se snad bude updatovat se vším ostatním ne? Pokud neupdatuješ systém tak se nějaké zabezpečené PHP moc nezachrání.

Chcete Linuxové samolepky nebo Tuxe na klíče? ->
Jakub Lucký avatar 20.3.2011 23:25 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: PHP bezpecnost
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bezpečnost a PHP jdou k sobě jen velmi velmi těžko, Bezpečnost a PHP a neupdatování PHP k sobě opravdu nejdou...

Update jsou opravdu základem bezpečnosti, pak budete muset updateovat pravidelně, pokud si vyberete rozumné stable distro, tak vám zaručí, že se nebude měnit funkčnost...

Další zabezpečení jsou bezpečnostní patche (Suhosin, v Debianu default), spouštění PHP pod různými uživateli (suphp, fcgid + suexec) a následné využití Unixových zabezpečení, zmíněný SELinux, mod_security...
If you understand, things are just as they are; if you do not understand, things are just as they are.
21.3.2011 04:26 v
Rozbalit Rozbalit vše Re: PHP bezpecnost
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejlepší druh zabezpečení je virtualizace OS.
21.3.2011 16:00 R
Rozbalit Rozbalit vše Re: PHP bezpecnost
Zabezpecenie proti comu?
21.3.2011 17:18 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: PHP bezpecnost
Asi komárům ... :)
In Ada the typical infinite loop would normally be terminated by detonation.
21.3.2011 18:32 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: PHP bezpecnost
Na to je Raid.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
21.3.2011 18:33 jirkamailto | skóre: 31
Rozbalit Rozbalit vše Re: PHP bezpecnost
Odpovědět | | Sbalit | Link | Blokovat | Admin
No ja PHP pouzivam dost. V prve rade bych doporucil patch suhosin, ktery zvysuje bezpecnost instalace PHP. Pokud delas PHP aplikace tak bych doporucoval hlavne premyslet, protoze kdyz si udelas v aplikaci diry, tak je jedno co pouzivas. PHP si myslim ze samo o sobe neni spatne, dost der si delaji programatori sami. Ja jsem osobne nikdy nemel problem. Tak pokud Ti system aktualizaci nabidne PHP a Ty ho nebudes chtit updatovat, tak to je hazarderstvi u kazdeho baliku, nejen u PHP. Ty updaty maji svuj smysl.
AraxoN avatar 21.3.2011 19:12 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: PHP bezpecnost
Mňa osobne suhosin dosť prudil, pretože niektoré default limity sú veľmi nízke. Ale so zbytkom súhlasím do bodky. Adminujem servery už sedem rokov a tvrdím, že PHP nie je hrozba. Hrozbami sú neznalosť a nepozornosť.
22.3.2011 20:20 dusan
Rozbalit Rozbalit vše Re: PHP bezpecnost
PHP že nie je nebezpečné? Tak si skús stiahnuť PHP shell c99 a prelistuj si svoj server.

Jakub Lucký avatar 22.3.2011 20:31 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: PHP bezpecnost
C99 dokáže jen tolik, kolik mu restriktivní nastavení systému dovolí... A c99 je hrozba v případě špatného nastavení, a v případě špatného nastavení je rizikový každý skript, který tam může nahrát někdo jiný než já (čti:admin) (a i ty, co nahraju já jsou rizikové)
If you understand, things are just as they are; if you do not understand, things are just as they are.
22.3.2011 20:47 dusan
Rozbalit Rozbalit vše Re: PHP bezpecnost
To je pravda, ale nastaviť idealne server na použivanie PHP je uplna veda.
22.3.2011 21:10 VSi | skóre: 28
Rozbalit Rozbalit vše Re: PHP bezpecnost
Otázka je, co to je ideálně. Ale v případě PHP je to úplně stejně těžké, jako u jiných technologií, co přes Apache (nebo jiný webserver) umožňují spouštět libovolný kód. Spíš bych řekl, že u PHP je to nastavení lehčí, protože tento problém řeší hodně lidí a existují standardní zdokumentované postupy.

Obecně u všech podobných technologií - perl/python/php/ruby/... - co běží jako (F)CGI skripty je bezpečnostní problém stejný - izolace aplikací (webů) mezi sebou a popř. zamezení možnosti spouštět externí programy a číst systémové soubory (obsah /etc apod. - ale tam by nic tajného být nemělo). Obsahuje-li jedna apliakce chybu, nesmí být tato cestou např. ke čtení zdrojových kódů a konfigurace ostatních aplikací.

Obvyklé řešení je pouštět každou aplikaci pod vlastním UID, popř. využít security moduly typu apparmor (tady přesné možnosti neznám). U PHP je ještě celkem účinná možnost zakázat všechny funkce manipulující se sestémovými procesy, a použít open_basedir. Nelze se na to ale spolehnout natolik, jako na izolaci pomocí rozdílných UID.
Jakub Lucký avatar 22.3.2011 21:18 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: PHP bezpecnost
Já zrovna kvůli bezpečnosti provozuji PHP přes fcgi(+suexec), uživatel má dokonce možnost vlastního php.ini (díky wrapperu) ...

Co se týče omezení funkcí, je to možné, ale výhra to není, bezpečnost se má ladit jinde...

U open_basedir se nedá než říct: Debian-fu:Osvěta pokračuje
If you understand, things are just as they are; if you do not understand, things are just as they are.
22.3.2011 21:32 VSi | skóre: 28
Rozbalit Rozbalit vše Re: PHP bezpecnost
Jistě, fcgi+suexec taky považuju za nejlepší řešení, vč. těch možností separátní konfigurace php.ini. Ale má to i nevýhody - hlavně při velkém množství méně zatížených webů/aplikací - zbytečně velké množství fcgi procesů čeká a zabírá paměť, nebo při krátkém timeoutu (fcgi procesy pro nevyužité weby se ukončují) trvá obsluha prvního requestu dlouho. Další nevýhoda může být v nemožnosti sdílet opcode cache (APC, eaccelerator) mezi různými uživateli - používají-li např. všechny aplikace stejný Zend Framework. Ale to už jde možná o trochu speciální případy.

open_basedir je ideově určitě špatně, ale nezatracoval bych ho. Je třeba znát jeho omezení a souvislosti a vzít na vědomí, že to není na 100 % čisté, ale může se hodit. Proč ho nevyužít v případě, když se na něj nebudu spoléhat, ale v případě prolomení aplikace je šance, že útočníka zastaví?
22.3.2011 21:36 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: PHP bezpecnost
Obvyklé řešení je pouštět každou aplikaci pod vlastním UID
To je bohužel nedostatečné... i ne root uživatel má v unixu příliš mnoho práv.
In Ada the typical infinite loop would normally be terminated by detonation.
22.3.2011 21:45 VSi | skóre: 28
Rozbalit Rozbalit vše Re: PHP bezpecnost
Záleží, co je cílem. Vlastní UID zajistí, že jedna aplikace namá přístup k souborům jiné. Je-li cílem zabránit i jiným věcem, např. vyčerpání systémových prostředků, čtení obsahu /etc, spouštění jiných programů, nebo síťové komunikaci, je třeba použít další nástroje. Jenže tato omezení mohou jít proti potřebám dané aplikace, takže se musí řešit konkrétně. Pokud bychom se bavili o konfiguraci pro "veřejný" php hosting, pak budou potřeby zase jiné.
Jakub Lucký avatar 22.3.2011 22:26 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: PHP bezpecnost
vyčerpání systémových prostředků
Zrovna na to je běh pod vlastním UID nejlepší (/etc/security/limits.conf)

Ale jinak souhlasím, že čistě UID neřeší všechno...
If you understand, things are just as they are; if you do not understand, things are just as they are.
23.3.2011 06:36 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: PHP bezpecnost
Vlastní UID zajistí, že jedna aplikace namá přístup k souborům jiné.
To za podmínky že druhá strana "kooperuje" a nenastaví práva pro přístup.
Jenže tato omezení mohou jít proti potřebám dané aplikace, takže se musí řešit konkrétně.
Jo, tak už to se zabezpečením chodí :)
In Ada the typical infinite loop would normally be terminated by detonation.
22.3.2011 21:42 dusan
Rozbalit Rozbalit vše Re: PHP bezpecnost
Mám server kde je asi 5 velkých portalov a vela malých.

Pri PHP som musel riešiť mnohé problémy: - premenne PHP, get, post, a ďalších 100 nastavení. V standardnom nastaveni su postavene dost restriktivne. Vela zakaznikov sa sťažovalo. Nefungovali im mnoho funkcií. - odosielanie mailov. Každý veľký portal využíva mailovanie cez php. Takmer vsetci maju v php funkciach dieru a robot veselo cez ich web spamoval. - MySQL. kvoty na množstvo spojení, prenesených dát atď. Samozrejme, neošetrené formuláre na SQL injection a s tým spojené množstvo dopytov na MySQL. Pri štandardnej ištalácii, MySQL padal 1x do mesiaca. - Vyťaženie HW zdrojov, kvoty na využitie CPU, hdd, sieť. Bez toho vám moze zle napísaný php kód zhodiť stroj. - Spúšťanie bináriek. Z vypnutím exec by som u svojich zákazníkov neuspel. Zase treba riešiť ktoré sa môžu spúšťať ktoré nie. Či bude mať každá doména chroot alebo nie. Ako ich u všetkých updatovať, atď. - Existuje množstvo funkcií v php, ktoré využívajú systémové veci, najprv treba vedieť ktoré to sú, a ktoré možeš povoliť.

Keď to zhrniem, tak nastaviť php nieje až také jednoduché.
22.3.2011 21:49 VSi | skóre: 28
Rozbalit Rozbalit vše Re: PHP bezpecnost
Vše, co jste napsal, je buď problémem konkrétní aplikace nebo obecným problémem webových aplikací. Tj. je budete úplně stejně řešit nezávisle na tom, jestli je aplikace v PHP nebo v něčem jiném. Možná se takové problémy častěji objevují u PHP aplikací než u jiných technologií, ale to nebude jazykem, ale spíš kvalitou programátorů a rozšířením PHP.
22.3.2011 22:00 dusan
Rozbalit Rozbalit vše Re: PHP bezpecnost
Súhlasím, ale ťažko to vysvetlím mojím zákazníkom. Na ich programátorov, nemám dosah. A keďže neviem ovplivniť kvalitu kodu v php na ich weboch, tak chcem od problemov ochraniť ostatných, ktorý nemajú tak sprasený kod.
Jakub Lucký avatar 22.3.2011 22:27 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: PHP bezpecnost
Dobré nastavení, každý zákazník vlastní UID... Jestli má děravý web, tak mu to hacknou, ale to není problém poskytovatele hostingu, ale jeho vlastní...
If you understand, things are just as they are; if you do not understand, things are just as they are.
Jakub Lucký avatar 22.3.2011 21:28 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: PHP bezpecnost
Ano, a proto se systémový správce studuje 5 (3+2) let :-) A já jsem bohužel ignorant, který na to žádný papír nemá a dělá to, nicméně jestli u něčeho z nastavování mám pocit, že vím co dělám, je to právě nastavování věcí okolo PHP...
If you understand, things are just as they are; if you do not understand, things are just as they are.
22.3.2011 21:32 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: PHP bezpecnost
C99 dokáže jen tolik, kolik mu restriktivní nastavení systému dovolí
Přesně tak. A pokud použijete MAC systém (selinux/apparmor/smack/...) tak můžete klidně místo php dát bash s konzolí na web a "útočník" může udělat prd.
In Ada the typical infinite loop would normally be terminated by detonation.
AraxoN avatar 22.3.2011 22:28 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: PHP bezpecnost
Tak som si to stiahol do kópie serveru vo Virtualboxe. Ten skript sa dostal len do adresára, do ktorého sa dostane aj ten čo to tam cez FTP umiestňuje. To sa ani pri najlepšej vôli nedá nazvať bugom. C99 zistil len tie údaje, ktoré zistí aj phpinfo() - verzia php, uname a tak. Inak si ani neškrtol. A to nepoužívam ani safe mode, ani suhosin.
21.3.2011 21:39 ms | skóre: 7 | blog: msblog
Rozbalit Rozbalit vše Re: PHP bezpecnost
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co zkusit Apparmor nebo SELinux? Nastavoval jsem teď Apparmor s libapache2-mod-apparmor a není to těžké.

Škoda že to není zrovna nejrozšířenější způsob zabezpečení systému :( ...

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.