[LUGOS-SEC] Re: [LUGOS-PROG] PHP chown()

Jure Koren jure at aufbix.org
Wed Mar 17 06:07:19 CET 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tuesday 16 March 2004 20:46, Borut Mrak wrote:
> On Tuesday 16 of March 2004 20:29, "Branko F. Grac(nar" wrote:
> > Nejc Skoberne wrote:
> > | Delam eno skripto, ki bo administrirala userje v bazi. Ko dodam novega
> > | uporabnika, zelim da se mu naredita mail in ftp direktorija. Ce ju
> > | naredim, je lastnik seveda nobody, ker Apache laufa kot nobody. Chown
> > | pa lahko izvede le root. Kako bi tole naredil? Nekje sem zasledil s
> > | sudotom? Kaksen hint?

Najlazje je tako, kot je rekel Borut. Malo tezje in bolj realtime je tako, da 
vsakic ko naredis userja v bazi na nek socket (unix, tcp ali udp) posljes 
username, da zbudis tisti daemon, ki potem podatke prebere iz baze. To je 
hitro, lahko je popolnoma varno in nima nobenega resnega overheada (in php 
lahko po potrebi tece na masini a, baza na masini b, userji so pa na masini 
c).

Take utilityje, ki tecejo kot root, je najbolje pisat v jeziku, ki ga dobro 
poznate. Ne pozabit na preverjanje canonical path, ki naj bo nekje znotraj 
recimo /home/virtual/ in seveda cim manj uporabljat system() ali exec(). 
Najbolje je, ce lahko uporabis funkcije znotraj jezika, pri katerih nimas 
tezav z escapanjem parametrov, tako kot jih imas, ce klices shell.

> Slabi ideji.
> Se najbolj pametno (po mojem) je, da PHP zapise svoje potrebe po kreiranju
> direktorijev v bazo, ti pa napises program, ki spremlja to bazo, ko se
> pojavi nov vnos naredi sanity checking (recimo to, da lahko chown-a samo
> datoteke pod doloceno potjo v filesystem-u, da v poti ne sme bit ../, da
> lahko chown-a samo na dolocenega userja ipd.) in izvede request.
> To sicer ni realtime, ampak bistveno bolj odporno proti nekomu, ki pridobi
> dostop do apache-ja, ki tece kot root oz. apacheja, ki tece kot navaden
> user, ampak lahko izvaja chown kot root. S primerno bazo in triggerji se da
> stvar izvesti skoraj real-time, brez pollinga baze.
> Ce pa varnost ni pretirano pomembna, pridejo v postev tudi zgornje 3
> moznosti.
> Mogoce bo znal kaj bolj pametnega pripomnit se kdo na lugos-sec.

Mogoce. Vsekakor zgornje 3 moznosti klicejo po katastrofi.

- -- 
Jure Koren, n.i.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (Darwin)

iD8DBQFAV90H9iFCvmuhrCIRAjUbAKC2GCrBr4WAWxvGgCUOqUE0fyce6wCg0n6y
9RRsDiQ/lwwNojfLJizhhOM=
=KNwA
-----END PGP SIGNATURE-----



More information about the lugos-sec mailing list