Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

bezpieczeństwo serwerów PHP

51 views
Skip to first unread message

Lemat

unread,
Mar 5, 2007, 6:16:04 AM3/5/07
to
Witam wszystkich.

Jest to update mojego posta z pl.comp.lang.php z soboty.

Tak jakoś napatoczyło mi się przed oczy:
http://newsroom.chip.pl/news_178877.html

Przy okazji chciałem więc coć niecoś tu napisać o tym, co ostatnio
obserwuję u siebie - a obserwuję zwiększoną ilość prób włamania z
użyciem PHP injection. Pobawiłem się więc w śledzenie i rozwalanie
botnetów. Przez ostatnie 2 miesiące zauważyłem 3 grupy/osoby stosujące
PHP injection: z Brazylii, Rumunii i z Niemczech (inne źródło wskazuje
Turcję). Zasada działania jest zbliżona:

1a) poprzez google są wyszukiwane serwisy podatne na włamanie (phpBB,
joomle, wordpressy, mombo etc), stosowane są frazy "inurl" oraz "powered
by".
1b) są uruchamiane crawlery chodzące po sajtach i testujące parametry w
URLu - każda zmienne jest po kolei testowana.
1c) są skanery skanujące po kolei adresy IP w danych sieciach, szukające
otwartego portu 80 i testujące nawet do kilkudziesięciu URLi - czy
dany serwer www zawiera "odpowiednie" skrypty podatne na włamanie.

2) po znalezieniu serwisu podatnego na włamanie jest includowany skrypt
PHP ze zdalnego serwera. Tutaj wersje się różnią w zależności od grupy -
począwszy od echo "own3d"; do całego kombajnu wyświetlającego rozmiar
buta admina.

3) Następnie przez znalezioną lukę są ściągane na serwer moduły
realizujące pewne czynności:
a) powiadomienie samego hackera o miejscu występowania dziury
b) połączenie się z serwerem IRC i oczekiwanie na komendy
c) próba wejścia na uprawnienia roota (rootkit)
d) wyszukiwanie kolejnych serwerów podatnych na włamanie (patrz punkt 1)

moduł łączący się z serwerem IRC (zrobiony w PHP) na początku sobie
zapewnia sobie nieskończone działanie:
@set_time_limit(0);
@ini_set('max_execution_time',0);
więc proces apacza cały czas wisi i go mieli (trudno go wykryć, jeżeli
się nie wie czego szukać).

podobny moduł innej osoby to już binarka:
na przykład taka: http://www.baietibuni.org/graph/xfs
opisana trochę tu (przynajmniej podobieństwo jest uderzające):
http://archives.neohapsis.com/archives/incidents/2001-12/0258.html
http://marc.theaimsgroup.com/?l=focus-virus&m=100966949416708&w=2
odpalana jest na uprawnieniach apacza (więc łatwo dość ją wykryć)

na serwerach undernetu są specjalne kanały założone przez hackerów,
które służą kontrolowaniu botnetów. Są to #vx8, #the, #rophp. Jeżeli
hacker nie wykonuje żadnych specjalnych akcji to takie połączenie z
serwerem IRC może wisieć tygodniami a admin zaatakowanego serwera nic o
tym nie wie - nie ma żadnych plików tymczasowych (a jak są to są od razu
kasowane), ruch sieciowy wtapia się w szum... Cały czas wisi tylko
proces apacza obsługujący dany skrypt PHP lub jakieś procesy chodzące na
użytkowniku apacza.
Połączenie z serwerem IRC pozwala hackerowi na wykonywanie dowolnych
komend (zdalny shell).

Z tego co się zorientowałem zauważone przeze mnie grupy zajmują się
phishingiem - kradzieżą informacji takich jak numery kart kredytowych
etc. Co dziwne nie zajmują się spamem i pewnie dlatego zaatakowane
serwery maja długi czas życia.

Jakie z tego wszystkiego można wyciągnąć wnioski:
1)
allow_url_fopen = Off
disable_functions = dl, exec, passthru, system, shell_exec, popen

2) są admini, którzy nie rozumieją słowa pisanego - na hoście, który
niby został "wyczyszczony" przez admina a nie zostały wprowadzone moje
propozycje zmian do php.ini zostały wkopiowane z backupu identyczne
skrypty PHP i zabawa zaczęła się od nowa.

3) są programiści, którzy nie zasługują na to miano

4) są serwisy, które postawione na "kombajnie" X lat temu działają
niezmiennie w swojej postaci, mimo, że od tego czasu producent wypuścił
5 ton poprawek z gatunku "security"

5) są serwery, gdzie trudno się doszukać kontaktu do admina (dziękujemy
Wam spamerzy) a najbliższy kontakt jest rzędu TPSA z kilkudziesięcioma
tysiącami adresów IP i człowiekiem grającym w quejka w dziale abuse.

Aby zrozumieć skalę zjawiska to przytoczę liczby: przez ostatni weekend
(weekendy to czas wzmożonej aktywności) udało im się dodać około 80
serwerów do botnetu. Serwerów na szybkich łączach a nie windowsy na dslach.

--
Pozdrawiam
Lemat
pomóż zwalczyć spam z ICIC:
http://www.lemat.priv.pl/index.php?m=page&pg_id=106
podlinkuj się do http://icic.pl


Marek Wierzbicki

unread,
Mar 5, 2007, 10:57:17 AM3/5/07
to
> Tak jakoś napatoczyło mi się przed oczy:
> http://newsroom.chip.pl/news_178877.html
>
> Przy okazji chciałem więc coć niecoś tu napisać o tym,
> co ostatnio obserwuję u siebie - a obserwuję zwiększoną
> ilość prób włamania z użyciem PHP injection.

A co z serwerami Tomcat i stronami w JSP - czy tu (poza formularzami, które
zależą od programisty) da się coś injectnąć?

Marek

Piotr KUCHARSKI

unread,
Mar 7, 2007, 9:29:17 AM3/7/07
to
Marek Wierzbicki <marek.wier...@azymuttttt.pl> wrote:
>> Przy okazji chciałem więc coć niecoś tu napisać o tym,
>> co ostatnio obserwuję u siebie - a obserwuję zwiększoną
>> ilość prób włamania z użyciem PHP injection.
> A co z serwerami Tomcat i stronami w JSP - czy tu (poza formularzami, które
> zależą od programisty) da się coś injectnąć?

Przecież w PHP to też zależy od programisty...

p.

--
http://freedns.sgh.waw.pl/ -- bezpłatny DNS.
http://nerdquiz.sgh.waw.pl/ -- polska wersja quizu dla nerdów.
http://42.pl/u/ -- skracacz URL-i.


Lemat

unread,
Mar 7, 2007, 1:54:27 PM3/7/07
to
Lemat napisał(a):

> Przy okazji chciałem więc coć niecoś tu napisać o tym, co ostatnio
> obserwuję u siebie - a obserwuję zwiększoną ilość prób włamania z
> użyciem PHP injection.

no i długo nie trzeba było czekać:
http://www.cskmswia.pl/images/

Cassius

unread,
Mar 8, 2007, 11:00:11 AM3/8/07
to
Piotr KUCHARSKI wrote:

> Marek Wierzbicki <marek.wier...@azymuttttt.pl> wrote:
>>> Przy okazji chciałem więc coć niecoś tu napisać o tym,
>>> co ostatnio obserwuję u siebie - a obserwuję zwiększoną
>>> ilość prób włamania z użyciem PHP injection.
>> A co z serwerami Tomcat i stronami w JSP - czy tu (poza formularzami,
>> które zależą od programisty) da się coś injectnąć?
>
> Przecież w PHP to też zależy od programisty...
>
> p.
>

Wystarczy zainstalować mod_security i zaopatrzyć go w mądre reguły
filtrujące :) Dzięki temu już na starcie eliminujesz moim zdaniem ponad 90%
zagrożeń.


--
contact: qris4 at wp.pl
[ GPG KeyID: 1F7969B8 ]
fp: 4E13 4F89 0A17 A47F 883B 6855 421B E4E8 1F79 69B


Przemek

unread,
Mar 10, 2007, 6:37:02 PM3/10/07
to
Dnia Thu, 08 Mar 2007 17:00:11 +0100, Cassius napisał(a):

> Piotr KUCHARSKI wrote:
> Wystarczy zainstalować mod_security i zaopatrzyć go w mądre reguły
> filtrujące :) Dzięki temu już na starcie eliminujesz moim zdaniem ponad
> 90% zagrożeń.

mod_security dobra rzecz, ale nie ochroni przed wszystkich. Warto jeszcze
wylaczyc allow_url_fopen w php.ini - skutecznie uniemozliwi includowanie
ze zdalnych serwerow.

--
http://www.cyberdusk.pl - konto 1GB, www, php5, mysql5 - 39zl/rok


0 new messages