Autor Subiect: cpanel - securitate  (Citit de 6348 ori)

serban

  • Oaspete
  • **
  • Mesaje postate: 23
  • Karma: +0/-0
  • Serban G.
    • Vezi Profilul
    • Serban Ghita
cpanel - securitate
« : Mai 01, 2004, 04:27:05 pm »
salut

dupa o lunga perioada de cercetari si teste, si dat fiind faptul ca majoritatea providerilor de hosting web din Romania folosesc cpanel, am decis sa deschid acest subiect, si anume al securitatii serverului care ruleaza cpanel.

nu stiu cati dintre dumneavoastra cunosc ultimele buguri cpanel, dar sunt sigur ca 99% folosesc si ruleaza PHP sau Perl pentru clienti.

problema este urmatoarea:
cpanel nu ofera un environment chrooted corect, deci utilizatorul (clientul) poate iesi din propriul 'box' (/home/client/, cu ajutorul unor functii din php mai mult sau mai putin restrictionate.
adica sa zicem ca rulati PHP pe server, si nu folositi safe_mode, pentru ca nu ati rezolva nimic, si nu ar merge corect majoritatea scripturilor.
optiunea open_basedir din php.ini nu este nici ea eficienta la acest capitol, pentru ca incep problemele la scripturi care folosesc include(), si acceseaza fisiere aflate in alt nivel de directoare.
singurul refugiu in php.ini este restricted_functions, unde putem insirui o serie de functii care au legatura directa cu shellul, de pilda exec, popen, shell_exec, etc.

toate bune si frumoase, sa zicem ca folosim directiva restricted_functions pe toate aceste functii, insa raman celelate cu ajutorul carora se pot mani*ula fisiere, ex virtual, show_source, readfile, fopen, fread etc. care NU POT fi restrictionate pentru ca scripturile clientilor nu ar mai merge corect.

ideea este ca in comparatie cu plesk si ensim, cpanel nu ofera siguranta permisiilor corecte, prin care sa ne asigure ca utilizatorul x nu face browsing prin directorul utilizatorului y.

dupa ce am discutat cu cateva persoane din stafful cpanel (care au inceput sa piarda clienti din aceasta cauza), se pare ca se are in vedere un proiect prin care sa se ofere o mai mare siguranta clientilor (vezi. http://forums.cpanel.net/showthread.php?s=&threadid=18902&perpage=15&pagenumber=6 ).

Cititi ce am scris in acel post, despre conturile de tip demo, si despre anumite reguli de securitate care ar trebui insusite.

Astept reply-uri cu completari, sugestii, corectari. Poate nu m-am facut inteles, si nu am scris destul de clar totul. Doresc sa discut pe aceasta tema cu oricine interesat.

Serban Gh. Ghita

kwha_net

  • Moderator
  • Oaspete
  • *****
  • Mesaje postate: 88
  • Karma: +0/-0
    • Vezi Profilul
    • http://rohost.com/
cpanel - securitate
« Răspuns #1 : Mai 02, 2004, 03:26:55 pm »
open_basedir e setat pe home directory pt. fiecare user in parte si asta elimina problemele cu php-ul, cgi-urile ruleaza cu uid/gid individual iar pe directorul de mail/public_html/etc, "others" nu au nici un drept deci iarasi nu e nici o problema. poate imi dai un exemplu concret de vulnerabilitate.

Marius

dt

  • Moderator
  • Hostmaster
  • *****
  • Mesaje postate: 1418
  • Karma: +8/-5
    • Vezi Profilul
    • http://www.webdev.ro
cpanel - securitate
« Răspuns #2 : Mai 03, 2004, 02:22:18 am »
open_basedir este ok pentru functiile PHP dar nu si pentru executia de comenzi externe (cu exec). Un shell-script rulat din PHP se executa ca user nobody si teoretic poate citi toate fisierele celorlalti utilizatori (fisiere la care are acces serverul web).

Problema nu este doar la CPanel .. este mai mult din cauza PHP/Apache, ca nu poate rula scripturile cu alt user. Frumos ar fi fost ca apache-ul sa acceseze fiecare virtualhost cu un alt user/grup si atunci nu mai apareau probleme.

Pe mine ma deranjeaza sa dezactivez "exec" pt ca folosesc imagemagick din linia de comanda .. dar am impresia ca exista si un modul pt php.

serban

  • Oaspete
  • **
  • Mesaje postate: 23
  • Karma: +0/-0
  • Serban G.
    • Vezi Profilul
    • Serban Ghita
re
« Răspuns #3 : Mai 03, 2004, 10:32:15 am »
Citat din: "dt"
open_basedir este ok pentru functiile PHP dar nu si pentru executia de comenzi externe (cu exec). Un shell-script rulat din PHP se executa ca user nobody si teoretic poate citi toate fisierele celorlalti utilizatori (fisiere la care are acces serverul web).

corect, cu open_basedir am experimentat si eu o gramada de probleme, chiar daca este o solutie buna.

Citat din: "dt"

Pe mine ma deranjeaza sa dezactivez "exec" pt ca folosesc imagemagick din linia de comanda .. dar am impresia ca exista si un modul pt php.

mi se pare ok sa ramana toate functiile din php active, atat timp cat utilizatorul nu poate iesi din home-ul lui, iar atunci cand da sa zicem 'ps ax' prin intermediul unei functii care interactioneaza cu shellul, sa nu o faca cu privilegii de apache, si sa vada numai procesele pornite de el insusi.

un modul exista si el se numeste mod_suphp (www.suphp.org), dar eu nu m-as risca sa-l folosesc.

am testat servere virtuale care rulau plesk, si nu aveau aceleasi probleme ca cele care rulau cpanel.

serban

  • Oaspete
  • **
  • Mesaje postate: 23
  • Karma: +0/-0
  • Serban G.
    • Vezi Profilul
    • Serban Ghita
re
« Răspuns #4 : Mai 03, 2004, 10:38:24 am »
Citat din: "kwha_net"

poate imi dai un exemplu concret de vulnerabilitate.


o sa postez cateva screenshoturi cu exploitul local modificat de mine, pentru serverele virtuale care ruleaza php si nu sunt configurate corect.
o sa incerc sa le fac pe categorii, adica atunci cand sunt deactivate functiile exec, popen, etc si cand este safe_mode, open_basedir ,etc.

serban

dt

  • Moderator
  • Hostmaster
  • *****
  • Mesaje postate: 1418
  • Karma: +8/-5
    • Vezi Profilul
    • http://www.webdev.ro
Re: re
« Răspuns #5 : Mai 03, 2004, 12:15:50 pm »
Citat din: "serban"
am testat servere virtuale care rulau plesk, si nu aveau aceleasi probleme ca cele care rulau cpanel.

si atunci care e solutia lor?

Poate s-or trezi si programatorii de la CPanel .. ca in ultimul timp s-au adunat cam multe probleme..

serban

  • Oaspete
  • **
  • Mesaje postate: 23
  • Karma: +0/-0
  • Serban G.
    • Vezi Profilul
    • Serban Ghita
test
« Răspuns #6 : Mai 06, 2004, 05:54:29 pm »
mod_become: http://www.snert.com/Software/mod_become/index.shtml
mod_suid: http://www.jdimedia.nl/igmar/mod_suid/
mod_diffprivs: http://ftw.zamosc.pl/~lw/mdp/index.html
mod_cgiwrap: http://people.masterwebnet.com/steven/mod_cgiwrap/mod_cgiwrap.html

-----------------------------
a incercat careva de pe forum solutiile de mai sus?
stiu ca nu este ok sa rulezi apache sau php sau alte binare cu permisii de root...

serban

dt

  • Moderator
  • Hostmaster
  • *****
  • Mesaje postate: 1418
  • Karma: +8/-5
    • Vezi Profilul
    • http://www.webdev.ro
cpanel - securitate
« Răspuns #7 : Mai 06, 2004, 06:50:46 pm »
n-am testat, dar ar cam fi nevoie .. dintre toate, mod_suid 'arata' cel mai bine

Am mai gasit ceva .. poate putin mai vechi, un patch pt apache 1.3.20
http://luxik.cdi.cz/~devik/apache/
Testez si va spun.

Cosmin L. Neagu

  • Moderator
  • Hostmaster
  • *****
  • Mesaje postate: 1501
  • Karma: +15/-5
    • Vezi Profilul
    • clneagu
cpanel - securitate
« Răspuns #8 : Mai 17, 2004, 07:28:52 pm »
(restul a fost mutat de moderator in sectiunea dedicata partenerilor - discutii tehnice si potentiale vulnerabilitati ce nu trebuie neaparat facute publice :)