Apache biztonsag

Fórumok

Van egy webszerver, kb 1500-2000 userrel. debian sarge, apache-ssl 1.3.33

Az a problema, hogy valakinek feltortek a homepagejat, vagy szandekosan toltott fel hulyeseget, es nehany orankent indul valami perl script, ami egy megadott ip cimre kuld apro UDP szomagokat, ezzel viszi a savszelesseget.

Lehet, hogy hulye a kerdes, de ti hogy keresnetek meg, hogy melyik user inditja ezt ? A logokban semmit nem talaltam sajna.

a top-ban latszik, hogy fut a perl, a /proc/$PID nel latom, hogy a @exe a perl-re mutat.
a cron.d neztem, semmi.

Mivel az apache a www-data alatt fut, jelenleg a perl-t csak root indithatja egyenlore, de kellene a cgi scripek miatt, hogy barki indithassa.....

Esetleg valami otlet, hogy hogyan tudom ellenorizni a veletlenul vagy szandekosan feltoltott karos kodokat (valami automatikus szoftver) ? Mas ezt, hogy csinalja ?

Elore is koszonom.

Hozzászólások

En biztos azzal kezdenem, hogy az exec cgi opciot letiltanam, es minden cgi cucc menne egy cgi-bin/user ala, amit
csak te irhatsz. Bar ha ez nem kapasbol igy lett kitalalva, akkor nyug lehet az atteres.

ASK Me No Questions, I'll Tell You No Lies

tripwire, aide

shorewall a tűzfal beállítgatására - ha ez szerver, kifelé is csak a szükséges szoláltatásokat engedd!

A cron vagy crontab parancsnak van listazo parametere, amivel meg tudod nezni, hogy az adott juzernek (www) milyen cronjai vannak belove, ezek a /etc/crontab fileban nem lathatok.

Ha PHP is van, akkor open_basedir, safe_mode es disable_functions (Amelyik járható, de legalább a közös /home-ra érdemes open_basedirt tenni). A dolgot még mod_security-val lehet picit megdobni, amivel egeszen jol lehet vedekezni sok olyan hiba ellen is, ami támadási mintát/típust szűr ki. A mod_security elég egyszerűen tudja chroot-olni is az apache-ot.

Én a httpd-audit.log -ba gyűjtöm a szűrön fennakadókat. A mod_securityval azt hiszem olyan szabályt is lehet csinálni ami "noaction" jellegű és csak logol. Néhány pattern-t bele lehet tenni, amik általában gyanúsak de nem lehetnek egyértelműen támadások is egyben. Az utóbbi időben egyébként az derült ki, hogy nem csak a nyiltforrásos alapú oldalakat, hanem bármilyen php-s oldalt egyre inkább próbálnak XSS és egyéb ügyeskedésekkel megnyomni.

Bónusz tipp mindenkinek: A `` között is értelmez a php a shell parancsot és ezt alaphangon a "disable_functions shell_exec" -el lehet lapátra tenni.

A mod_securityval azt hiszem olyan szabályt is lehet csinálni ami "noaction" jellegű és csak logol.

Jah, es lehet szabalygyujtemenyt letolteni hozza, ami jopar ilyen mintat tartalmaz, alapbol mind noactionra teve, tehat csak logolja a gyanus alakokat, igy kb IDSkent mukodik.

Az utóbbi időben egyébként az derült ki, hogy nem csak a nyiltforrásos alapú oldalakat, hanem bármilyen php-s oldalt egyre inkább próbálnak XSS és egyéb ügyeskedésekkel megnyomni.

Jah, olyanon is probalkoztak mar, tobb-kevesebb sikerrel, amit az egyik juzer maga irt, tehat a forrashoz ugyan nem ferhetett hozza az illeto, megis sikerult ugyeskednie...

Bónusz tipp mindenkinek: A `` között is értelmez a php a shell parancsot és ezt alaphangon a "disable_functions shell_exec" -el lehet lapátra tenni.

Jah, ezzel csak az a gond, hogy alapbol engedelyezve van/volt, es most a franc tudja hany kedves ugyfel hasznalja, emiatt hogy tiltsam le? A php meg sajnos - legalabbis tudomasom szerint - csak php.inibol engedi tiltani a fuggvenyeket, per directory illetve per user alapon nem. Ha pedig most kikapcsolom a rizikosabb fuggvenyeket, letepik a felhasznalok (es a fonok) a fejem... Nehez ugy.

Be kell jelenteni a juzereknek hogy biztonsági okokból és a saját érdekükben adott naptól ez lesz (legalább a shell_exec es proc_open meg ilyenek). Nekem ilyen szempontból elég könnyű a helyzetem, mert egyrészt nem túl demokratikusan viszonyulok a szerverhez, másrészt én vagyok a főnök is ezen a téren. A PHP4->PHP5.1 es mysql4->mysql4.1 átállást is egészen kevés véráldozattal sikerült átvinni az Ügyfeleken. (A PHP5-ben egyébként sok eddig kevésbé előtérben levő beállítás változott default off-ra, pl. shortopentags és voltak ilyen szintű gondok, amiknél nekem totálisan homályos hogy mi a túróért változtattak egyáltalán.)

A szabálygyűjteményeket tudom énis persze, csak nem biztos hogy egy sokezer sorosat akarok használni. :)

Nem a snort rule-okra gondoltam, nem olyan sok soros az, amit en mondok. De gondolom neked mar megvan a sajat :)

Na igen, a masik a mysql5 es majd a php5 atallas, lovesem sincs hogy lesz, pedig elobb utobb muszaj meglepni. Arrol almodni se merek, hogy siman menne egy ilyen valtas :)

"Lehet, hogy hulye a kerdes, de ti hogy keresnetek meg, hogy melyik user inditja ezt ? A logokban semmit nem talaltam sajna."

Haaat, ha nem letfontossagu a perl mukodese egy kis idore, akkor kicserelnem a perl binarist egy picike shell scriptre, amivel kiiratnam a szamomra erdekes adatokat...

Bar ha shebanggel lett meghivva, akkor nem tudom mit csinalna ez.

ha tudod, hogy mikor fut le, akkor netstat -ap
program neve alapjan meg ratudsz keresni a home dirben, tmp-ben.