ugrás a tartalomhoz

suPHP - programok futtatása felhasználóként

Hojtsy Gábor · 2003. Szep. 5. (P), 10.46
Sok szerveren problémát okozhat az Apache modulként használt PHP azon tulajdonsága, hogy minden szkriptet az Apache felhasználójával futtat. Ennek elkerülésére leginkább CGI módban alkalmazzák a PHP-t, amivel megoldható a szkriptek tulajdonosai szerinti felhasználó használata futtatáskor. A suPHP éppen erre a problémára ad egy másik megoldást.

A mod_suphp Apache modulból és a suphp programból álló páros lehetővé teszi, hogy az Apache modul használat előnyeit továbbra is élvezzük, de a közös felhasználó alkalmazásának problémájától megszabaduljunk.

A fejlesztő gondot fordít arra, hogy a telepítés veszélyeire felhívja a figyelmet, azaz hogy bármilyen biztonsági rést is találnak a suPHP programban, azt kihasználva root jogokkal garázdálkodhatnak gépünkön a rosszindulatú betörők.
 
1

Re: suPHP - programok futtatása felhasználóként

dtaylor · 2003. Szep. 5. (P), 12.16
A tudomany szerint, ha a php safe_mode-ban fut, akkor "juzer" jogokkal fut. Ha egy file-ra irasi jog kell, akkor annak a juzernek kell irasi jogot adni ra, amelyik a php file tulajdonosa...

Dönci
2

Re: suPHP - programok futtatása felhasználóként

Hojtsy Gábor · 2003. Szep. 5. (P), 12.30
Nem teljesen. Safe_modeban is ugyanazt az egy felhasználót alkalmazza a PHP, de ellenőrzi a jogosultságokat is. Ha azonban az oprendszerre bízzuk ezt, akkor az sokkal biztonságosabb megoldás lehet (alapvetőbb szolgáltatás az oprendszer jogosultság ellenőrzése elenyésző hiba lehetőséggel).
3

Re: suPHP - programok futtatása felhasználóként

Bártházi András · 2003. Szep. 5. (P), 12.44
Kiegészíteném ezt azzal, hogy ha egy adott felhasználó nevében fut a program, akkor a home könyvtárához, a leveleihez, stb. hozzáférhet, a jogokkal sokkal jobban lehet bűvészkedni. Azonban valóban veszélyes ez a módszer, és nagyon helyes hozzáállás, hogy odafigyel nagyon a szerző a biztonságra.
4

Re: suPHP - programok futtatása felhasználóként

dtaylor · 2003. Szep. 5. (P), 20.08
Most a kerdes az:

Ha a php-nek a tulaja user1, akkor a php safe modban az user1 altal elerheto dolgokat eri el. Ez jo.

A suPHP-meg az user1 teljes jogaival futtatja, (mint a cgiwrap), emiatt suid-os a proggi. Ez azt jelenti, h. root-nak kell lenni ahhoz, h. valamit mas jogaba at tudjak adni. A web szervert futtato user (www-data, pl) nem tud user1 lenni, csak a jogait tudja leellenorizni.

Kerdes az, megelegszunk a safe-mode-al, amikor az apache user csak jogokat ellenoriz, vagy kell egy kozbulso root altal krealt reteg, es a thread user1-kent fut.

A 2 kozott hasznalat szempontjabol nem latok lenyeges kulonbseget. Ott mar inkabb, h. ha valami elore nem latott lep fel (TM windoz), akkor a suphp-nal nagyobb a gaz, mert ott egy root thread-et lehet szerezni...

Illetve: ha hasznalat szempontjabol nem nagy a kulonbseg, akkor minek meg 1 reteg, es lassitani a folyamatokat? :) de ez mar csak kotozkodes.

Szerintem eleg a safe_mode es az open_basedir-es korlatozasok...

Dönci
7

Re: suPHP - programok futtatása felhasználóként

Hojtsy Gábor · 2003. Szep. 6. (Szo), 11.48
A PHP fejlesztok velemenye a safe_moderol tudomasom szerinte korulbelul az, hogy egy kenyszerhelyzet szulte felmegoldas, amit azert epitettek a PHPbe, hogy ne kelljen a biztonsagosabb megoldasok miatt CGI-kent futtatni, ami zabalna az eroforrasokat. Tehat ezt inkabb egy foltnak mint megoldasnak tekintik.

Az mas kerdes, hogy betoresi szempontbol biztonsagosabb lehet. A suidos progikat viszont nem csak a betorok miatt hasznaljak ugy, hanem hogy egymas munkajaban se tudjanak kart tenni (vagy belenezni) a felhasznalok, amit a safe_mode szinten valamennyire megold, de az oprendszer szintu jogosultsag ellenorzes mindennel biztosabb.

Egyebkent nem szeretnek allast foglalni, csak egy potencialis lehetoseget gondoltam bemutatni a veszelyeire felhivva a figyelmet.
9

Re: suPHP - programok futtatása felhasználóként

sunz · 2003. Szep. 7. (V), 01.50
Oda kellene lépni keményebben, és radikális lépéseket tenni a biztonságosabb jövő felé. De ekkor valószínűnek tartom, h vkik forkolnának egy új ágat, amin futnának a régebbi unsecure programok, és a felhasználók nagy része ezt használná.
Jól sejtem, így mindenféle -dev lista olvasása nélkül? Esetleg létezik vmi cool security patch, amiről nem tudok?
10

Re: suPHP - programok futtatása felhasználóként

Hojtsy Gábor · 2003. Szep. 7. (V), 10.37
A szolgaltatasok es a biztonsag kozott mindig meg kell talalni a megfelelo hatarvonalat. Lasd Microsoft scripting technologiak, mint a vbscript. Az, hogy mindenfelehez csatolhato, tobbfele kiterjesztessel futtathato, stb. mind mind kenyelmi okokbol keszult igy, aztan kemenyen visszacsapott a biztonsag oldalan. Ahogy mondani szokas, akkor biztonsagos egy szamitogepes rendszer ha nem kapcsoljak ra az elektromos halozatra sem (persze igy nem is tul hasznos).

A PHPben olyan dolgok, mint az eval(), system(), include(), tavoli fopen() mind mind nagyon kenyelmesek, ha jol hasznaljak, de ugyanakkor ordogi hatalmat adnak egy betoro kezebe, ha nem kello korultekintessel kerulnek egy programba.
5

Re: suPHP - programok futtatása felhasználóként

sunz · 2003. Szep. 6. (Szo), 02.35
Jól tudom, hogy a 2.x-es apacheokban van vmi olyan opció, amivel külböző uid-ekkel (+gid) lehet futtatni az egyes child processzeket?
Mert ha igen, akkor a suphp eléggé feleslegesnek energiabefektetésnek tűnik számomra.
6

Re: suPHP - programok futtatása felhasználóként

Hojtsy Gábor · 2003. Szep. 6. (Szo), 11.44
Nem is hasznalhato Apache2-vel, csak Apache1-el :)
8

Re: suPHP - programok futtatása felhasználóként

sunz · 2003. Szep. 7. (V), 01.34
persze, de ezek szerint akkor csak én nem látom azt a hatalmas és virágzó jövőt, ami még az 1.3.x előtt áll, s amiért érdemes ilyenbe belevágni a fejszét :-)