Brute force атаки засегнали wordpress и joomla - как да се справим?

Здравейте приятели, В последните няколко седмици в световен мащаб сме свидетели на една от най-големите и масирани атаки към системи за управление на съдържанието. Това, което забелязват нашите администратори и инженери по сигурността е изключително голям брой опити за пробив в сигурността(Bruteforce) на едни от най-разпространените системи WordPress и Joomla. Атаката получи доста широк отзвук в световен мащаб.

В следващите няколко абзаца бихме искали да Ви запознаем малко повече в какво се изразяват атаките и какви препоръки Казано с прости думи Bruteforce атаките целят да компрометират вашия потребител и парола за достъп до даденото приложение с множество опити за автентикация, използвайки криптографски алгоритми. Всички тези опити за отгатване водят до множество зареждания на файла за вход до дадената платформа. В WordPress това е файла wp-login.php. Всеки опит за Bruteforce извършва от няколко стотин до няколко хиляди заявки за ден, а понякога дири и за час. Всичко това води до повишаване на натовареността на сървърите обслужващи подобни сайтове. След направена справка, нашите администратори отчетоха над 7000 инсталирани WordPress платформи, хоствани от сървърите на ICN.Bg.имаме към вас, за да направите вашите уеб сайтове по надеждни и сигурни.

Как да разберем дали подлежим на bruteforce атака? Нужно е да проверим заявките в access лога на сайт, който се намира в /home/cpane_user/access-logs/, като заявките от самия Bruteforce изглеждат по сления начин в лога:

*31.59.139.88 - - [09/Apr/2013:13:45:06 +0300] "POST /wp-login.php HTTP/1.1" 200 3146 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1"

31.59.139.88 - - [09/Apr/2013:13:45:06 +0300] "POST /wp-login.php HTTP/1.1" 200 3146 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1" 

31.59.139.88 - - [09/Apr/2013:13:45:06 +0300] "POST /wp-login.php HTTP/1.1" 200 3146 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1" 

31.59.139.88 - - [09/Apr/2013:13:45:06 +0300] "POST /wp-login.php HTTP/1.1" 200 3146 "-" "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))" 

31.59.139.88 - - [09/Apr/2013:13:45:06 +0300] "POST /wp-login.php HTTP/1.1" 200 3146 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1" 

31.59.139.88 - - [09/Apr/2013:13:45:06 +0300] "POST /wp-login.php HTTP/1.1" 200 3146 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" 

31.59.139.88 - - [09/Apr/2013:13:45:06 +0300] "POST /wp-login.php HTTP/1.1" 200 3146 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 Safari/537.15"*

В горепосочения access_log забелязваме, доста заявки в един и същ интервал от време, като с тези заявки се забелязва опит да се направи bruteforce и да бъде разбита паролата за достъп до администрацията на приложението. POST заявките към страницата с вход към администрацията са реални опити за "налучкване" на паролата.

Как да се защитим максимално?

Wordpress: 1) Нужно е да използвате максимално сложна парола за достъп до администрацията на приложението, пример: "93_fK)jutytY%ajyf9G!I29%" 2) Вариант 1: Можете да защитите самата директория, в която се намира Вашия сайт с парола, но по този начин всеки посетител, който се опита да достъпи сайта Ви ще му изисква тази парола, поради тази причина Ви предлагаме да бъде защитен само файла wp-login.php с парола и ако някой се опита да го достъпи да му изиска нужната оторизация, за да може той да изпълни самия скрипт. В този вариант няма да използваме опцията на cPanel "Password Protect Directories", тъй като с нея се прави паролно защитена директория, а ние ще направим защита само за скрипта wp-login.php. Ето как можем да направим това:

2.1) Нужно е първо да си генерираме парола в криптиран вид в който е доста трудно да бъде дешифрирана. Това можем да направим като отидем на следния линк: http://www.web2generators.com/apache/htpasswd_generator, подадем потребителско име по избор от Вас(не е нужно да бъде cPanel потребителя Ви) след което подадем и желаната парола:

*Username: ivan 

Password: Tz5dMG8byC5o 

**Резултат: ivan:$apr1$ig6q0msc$szoyacGVyfuHzRWzD2UJd1***

2.2) Създаваме един файл в директория /home/user/.htpasswds/, в който файл ще поставим резултата от генерираните по-горе данни, нека файл да бъде с името на домейна Ви: mysite след което поставяме в него резултата от генератора:

***ivan:$apr1$ig6q0msc$szoyacGVyfuHzRWzD2UJd1***

2.3) Отваряме с текстов редактор .htaccess файла на приложението и задаваме следите редове в него, за да може да защитим с парола отварянето на wp-login.php скрипта:

* 

<files "wp-login.php"> 

AuthType Basic 

AuthName "Admin secure" 

AuthUserFile "/home/user/.htpasswds/mysite"

ErrorDocument 401 "Unauthorized Admin Access" 

require valid-user 

</files>*

След като сме изпълнили всичко това при опит някой да зареди wp-login.php първо ще му изиска потребител и парола, след което ще го допусне да може да изпълни скрипта: 3) Вариант 2: Можете да ограничите директно достъп до скрипт wp-login.php като подадете само достъп от определени IP адреси(тези от които администрирате приложението си). По този начин ако бот/посетител на сайта се опита да отвори wp-login.php и негово IP не е в разрешените, той ще забележи следната грешка:

***Forbidden 



You don't have permission to access /wp-login.php on this server.***

За да постигнете това е нужно да отворите с текстов редактор .htaccess файла на Вашето приложение и да добавите следните редове:

*<files wp-login.php>

order allow,deny

allow from 1.2.3.4

</files>*

Като на мястото на 1.2.3.4 поставяте Вашето IP, ако желаете да добавите още IP адреси е нужно по реда с IP адрес да добавите ред със същия текст само, че с новото IP, пример:

*<files wp-login.php>

order allow,deny

allow from 1.2.3.4

allow from 5.6.7.8

</files>*

Joomla: Тук отново ще направим защита на администрацията на приложението по два начина, единия е с паролно защитена директория от cPanel, а другия с ограничение по IP адрес чрез .htaccess файла.

Вариант1: 1) Логваме се в cPanel и избираме опцията "Защита на директории с парола"

2) Избираме сайта за който ще направим паролна защита на директория administrator

3) Избираме директория administrator, която ще защитим с парола

4) Подаваме параметри на за безопасност

5) Създаваме потребител и парола за директорията:

Директорията за достъп до администрацията вече е защитена с парола.

Вариант2: 6) Създаваме в директория administrator .htaccess файл в който описваме кой IP адреси да разполагат с достъп по следния начин:

*<files >

order allow,deny

allow from 1.2.3.4

</files>*

Какви могат да бъдат последствията ако не защитите максимално Вашето приложение? Освен ъплоудване на зловреден код и заразяване на целия акаунт, то също така може да бъде използван акаунта Ви за изпращане на SMAP съобщения. При подобен опит за brute force на входа на администрацията може да доведе и до повишение процесорни минути поради многото заявки за опит за логин, както и до спиране на самия хостинг акаунт.

Екипите ни денонощно следят за подобни вълни от атаки към подобни приложения. Много важно е винаги приложенията да бъдат обновявани до най нова стабилна версия, която гарантира максимална сигурност.

В следващи статии ще Ви запознаем в допълнителни методи за сигурност на вашите сайтове.

Етикети: #wordpress #ip-adres #administrator #direktoriya #hosting #algoritam #joomla #bruteforce #parola #skript #hostvan #potrebitel #brute-force-ataka #cpanel