Discussion:
Apache i grsec
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
jacki
2013-05-10 08:19:49 UTC
Permalink
Hej,

Od kilku dni mam pewien problem, w logach pojawia się coś takiego:

May 10 07:12:18 x kernel: [11163676.048754] ps[27128]: segfault at
40ed04 ip 00000000004059d2 sp 000070cd14ae1df8 error 7 in ps
(deleted)[400000+2b000]
May 10 07:12:18 x kernel: [11163676.048865] grsec: bruteforce prevention
initiated against uid 33, banning for 15 minutes

uid 33 to www-data

Po tym apache2 umiera i trzeba go zrestartować. Nie mam pojęcia gdzie
zacząć szukać rozwiązania.

# dpkg -l|grep apache|awk '{print $2" "$3}'
apache2 2.2.16-6+squeeze11
apache2-doc 2.2.22-13
apache2-mpm-prefork 2.2.16-6+squeeze11
apache2-prefork-dev 2.2.16-6+squeeze11
apache2-suexec 2.2.22-13
apache2-utils 2.2.16-6+squeeze11
apache2.2-bin 2.2.16-6+squeeze11
apache2.2-common 2.2.16-6+squeeze11
libapache2-mod-evasive 1.10.1-1
libapache2-mod-perl2 2.0.4-7+squeeze1
libapache2-mod-php5 5.3.3-7+squeeze15
libapache2-mod-suphp 0.7.1-3
libapache2-mod-wsgi 3.3-2
libapache2-reload-perl 0.12-1

# dpkg -l|grep php|awk '{print $2" "$3}'
libapache2-mod-php5 5.3.3-7+squeeze15
libapache2-mod-suphp 0.7.1-3
php-pear 5.3.3-7+squeeze15
php5-cgi 5.3.3-7+squeeze15
php5-cli 5.3.3-7+squeeze15
php5-common 5.3.3-7+squeeze15
php5-curl 5.3.3-7+squeeze15
php5-dev 5.3.3-7+squeeze15
php5-gd 5.3.3-7+squeeze15
php5-mcrypt 5.3.3-7+squeeze15
php5-mysql 5.3.3-7+squeeze15
php5-sqlite 5.3.3-7+squeeze15
php5-suhosin 0.9.32.1-1
phpmyadmin 4:3.4.11.1-2
suphp-common 0.7.1-3

/var/log/apache2# cat *.access.log|grep -e "07:12:17"
83.5.24.164 - - [10/May/2013:07:12:17 +0200] "GET /favicon.ico HTTP/1.1"
404 511
/var/log/apache2# cat *.access.log|grep -e "07:12:18"
/var/log/apache2# cat *.error.log|grep -e "07:12:17"
[Fri May 10 07:12:17 2013] [error] [client 83.5.24.164] File does not
exist: /home/dhn/public_html/favicon.ico
/var/log/apache2# cat *.error.log|grep -e "07:12:18"

Ma ktoś jakiś pomysł cóż to może się dziać?
qed
2013-05-10 11:10:59 UTC
Permalink
Post by jacki
Hej,
May 10 07:12:18 x kernel: [11163676.048754] ps[27128]: segfault at
40ed04 ip 00000000004059d2 sp 000070cd14ae1df8 error 7 in ps
(deleted)[400000+2b000]
May 10 07:12:18 x kernel: [11163676.048865] grsec: bruteforce prevention
initiated against uid 33, banning for 15 minutes
uid 33 to www-data
Po tym apache2 umiera i trzeba go zrestartować. Nie mam pojęcia gdzie
zacząć szukać rozwiązania.
# dpkg -l|grep apache|awk '{print $2" "$3}'
apache2 2.2.16-6+squeeze11
apache2-doc 2.2.22-13
apache2-mpm-prefork 2.2.16-6+squeeze11
apache2-prefork-dev 2.2.16-6+squeeze11
apache2-suexec 2.2.22-13
apache2-utils 2.2.16-6+squeeze11
apache2.2-bin 2.2.16-6+squeeze11
apache2.2-common 2.2.16-6+squeeze11
libapache2-mod-evasive 1.10.1-1
libapache2-mod-perl2 2.0.4-7+squeeze1
libapache2-mod-php5 5.3.3-7+squeeze15
libapache2-mod-suphp 0.7.1-3
libapache2-mod-wsgi 3.3-2
libapache2-reload-perl 0.12-1
# dpkg -l|grep php|awk '{print $2" "$3}'
libapache2-mod-php5 5.3.3-7+squeeze15
libapache2-mod-suphp 0.7.1-3
php-pear 5.3.3-7+squeeze15
php5-cgi 5.3.3-7+squeeze15
php5-cli 5.3.3-7+squeeze15
php5-common 5.3.3-7+squeeze15
php5-curl 5.3.3-7+squeeze15
php5-dev 5.3.3-7+squeeze15
php5-gd 5.3.3-7+squeeze15
php5-mcrypt 5.3.3-7+squeeze15
php5-mysql 5.3.3-7+squeeze15
php5-sqlite 5.3.3-7+squeeze15
php5-suhosin 0.9.32.1-1
phpmyadmin 4:3.4.11.1-2
suphp-common 0.7.1-3
/var/log/apache2# cat *.access.log|grep -e "07:12:17"
83.5.24.164 - - [10/May/2013:07:12:17 +0200] "GET /favicon.ico HTTP/1.1"
404 511
/var/log/apache2# cat *.access.log|grep -e "07:12:18"
/var/log/apache2# cat *.error.log|grep -e "07:12:17"
[Fri May 10 07:12:17 2013] [error] [client 83.5.24.164] File does not
exist: /home/dhn/public_html/favicon.ico
/var/log/apache2# cat *.error.log|grep -e "07:12:18"
Ma ktoś jakiś pomysł cóż to może się dziać?
Hi
Ja siedzę w bezpieczeństwie sieciowym i przypomina mi to reakcję na
automatyczne próby złamania hasła; wielokrotnym logowaniem.
W wyniku tego banowane jest na 15 minut konto www-data, na którym
prawdopodobnie działa serwis www, będący celem ataku, a skoro pada
apache, to także i on zostaje zatrzymany.
To ma uchronić Twój serwer przed przejęciem hasła próbami wielokrotnego
logowania (brute-force).
Za tą reakcję odpowiada grsec - zwiększajacy bezpieczeństwo kernela i
słusznie zresztą ;) Zapewne w jego konfiguracji mógłbyś zapobiec
banowaniu, ale to nie będzie dobre rozwiązanie, bo może doprowadzić do
zhackowania serwisu.
Spróbuj przejrzeć inne logi sieciowe (może masz też ips/ids po drodze?);
powinny pokazać natrętne próby logowania. Moim zdaniem jesteś "under
siege" i trzeba namierzyć natręta.

QED
jacki
2013-05-10 12:31:10 UTC
Permalink
Post by qed
Hi
Ja siedzę w bezpieczeństwie sieciowym i przypomina mi to reakcję na
automatyczne próby złamania hasła; wielokrotnym logowaniem.
W wyniku tego banowane jest na 15 minut konto www-data, na którym
prawdopodobnie działa serwis www, będący celem ataku, a skoro pada
apache, to także i on zostaje zatrzymany.
To ma uchronić Twój serwer przed przejęciem hasła próbami wielokrotnego
logowania (brute-force).
Za tą reakcję odpowiada grsec - zwiększajacy bezpieczeństwo kernela i
słusznie zresztą ;) Zapewne w jego konfiguracji mógłbyś zapobiec
banowaniu, ale to nie będzie dobre rozwiązanie, bo może doprowadzić do
zhackowania serwisu.
Spróbuj przejrzeć inne logi sieciowe (może masz też ips/ids po drodze?);
powinny pokazać natrętne próby logowania. Moim zdaniem jesteś "under
siege" i trzeba namierzyć natręta.
Nie mam nic po drodze. Innych logów nie mam, ale mogę włączyć np.
logowanie INPUT na iptables. Coś jeszcze przychodzi Ci do głowy?

W dokumentacji grsec mam coś takiego

CONFIG_GRKERNSEC_BRUTE
If you say Y here, attempts to bruteforce exploits against forking
daemons such as apache or sshd, as well as against suid/sgid binaries
will be deterred. When a child of a forking daemon is killed by PaX or
crashed due to an illegal instruction or other suspicious signal, the
parent process will be delayed 30 seconds upon every subsequent fork
until the administrator is able to assess the situation and restart the
daemon.

In the suid/sgid case, the attempt is logged, the user has all their
processes terminated, and they are prevented from executing any further
processes for 15 minutes.

Czytam, ale nadal nie bardzo rozumiem co się dzieje. Ok, jest to próba
włamania ale jak namierzyć atakującego?

Kontynuuj czytanie narkive:
Loading...