Стаття захищаємо свій сайт dle від кулхацкер

Захищаємо свій сайт DLE від кулхацкер

Написати цю статтю мене поддёрнул вчорашній інцедент, коротше хакнули один з моїх сайтів. Залили йшов, вставили посилань в шаблони і підключили шкідливий код в шаблон. Сайт просто потонув і гугл з яндексом на нього "образилися", посещуха впала в 10 разів. Мені звичайно стало прикро і я вирішив розібратися з питанням захисту свого сайту і заодно поділитися своїм досвідом.

Як завжди ламають сайти:

Всім відомо що DLE скрипт найпоширеніший і тому його постійно перевіряють на уразливості всякі кулхацкер і деяким вдається знайти діри про які вони мовчать. Більшість же "шкільних" кулхацкер користуються матеріалами які є в паблік, а саме вони заливають Шелл (shell). Для цього зазвичай потрібні права адміністратора які можна отримати якимось хитрим способом, який я не знайшов. Далі в адмінці вони заходять в налаштування сайту і в меню завантаження файлів додають розширення php і завантажують через стандартний аплоадер php файли (а саме йшов). Через нього вони вже можуть вільно оперувати файлами вашого движка і базою. Ну природно тепер вони отримують повну свободу дій. На цьому власне я поки і закінчу мій міні Файк про те як ламають.
Ось приклад одного зі старих Шелов:

Прихований текст (ви повинні увійти під своїм ім'ям або зареєструватися і мати 100 повідомлення (ий)):

У вас немає прав щоб бачити прихований текст, що міститься в цьому.


Огляд вразливостей DataLife Engine:

Прихований текст (ви повинні увійти під своїм ім'ям або зареєструватися і мати 100 повідомлення (ий)):

У вас немає прав щоб бачити прихований текст, що міститься в цьому.

Зрозумівши вище описане я зрозумів що для найбільшого протидії заливці шела потрібно закрити доступ до можливості виконання скриптів в папці аплоад, для цього в корінь папки upload потрібно вкласти файл: .htaccess з вмістом:

Цією дією ми перекриваємо можливість виконувати або звертатися до файлів з розширеннями відмінними від jpg | gif | png | xml. Залишаю для доступу формати картинок і xml карту сайту. Про всяк випадок наставлю на сам файл .htaccess права CHMOD 444, щоб їх не можна було змінити скриптом або ще як (або відредагувати файл). а тільки з під FTP.
Далі, подібний файл варто заштовхати в папку з шаблонами, тільки внести в нього додатково tpl, css, html.

Якщо у Вас DLE 9.х і старше. то на папку upload обов'язково поставте права CHMOD 0777, це автоматично забороняє виконання php скриптів в цій папці на рівні самого скрипта.

Що ще може зробити зломщик. забрати базу даних. Він зайде в менеджер управління базою даних, зробить бекап бази і зіллє її, якщо версія вашого DLE нижче ніж 9.0. Що робити. да все просто, потрібно в папці backup розмістити .htaccess з вмістом:

Все, бекапи можна зливати тільки з під FTP.

Захист файлу адмінпанелі:
Йдемо далі, що ще варто захистити. Варто заховати панель адміністратора, перейменуйте файл admin.php у що небудь ще і вкажіть в настройках системи нове ім'я файлу admin.php. Зберігаємося, панель адміністратора переховали.

Так само якщо у Вас статичний IP, то можна зробити хід конем і відсікти доступ до панелі всім хто захоче в неї прорватися, для цього в кінець кореневого файлу .htaccess прописуємо:


Order Deny, Allow
Deny from all
Allow from 95.106.70.220

Де admin.php - ім'я файлу адмінки, а 95.106.70.220 - Ваш IP. В цьому випадку в адміку зайде тільки власник IP 95.106.70.220, інші отримають 500-ую помилку сервера.


Order Deny, Allow
Deny from all
Allow from 95.106.0.0/17

Заборона запуску будь-яких лівих скриптів (підвищуємо надійність захисту):

Відкриваємо кореневої .htaccess і дописуємо в нього рядки:

Що це робить. Ця секція забороняє виклик будь-яких скриптів крім index.php, go.php, ajax.php і download.php, яких достатньо для роботи Вашого сайту. Якщо Ви помітили що якийсь елемент сайту відвалився - то тупо підключіть його в цю секцію, наприклад щоб працювала админка - допишіть | admin.php в кінець, вийде ось так:

Туди ж можна включити скрипт вилову голосування vote.php, я думаю що далі все зрозуміло. Таким чином якщо буде залитий будь-якої скрипт, його не зможуть виконати. Ось така ось політика партії.

Так само сидів і думав, а якщо все ж цим товаришам вдасться потрапити в адмінку і яким нитка чадним способом залити мені йшов або що то зіпсувати. Для того щоб залити йшов, їм потрібно буде вирішити до завантаження тип файлів і додати php. Я подумав і придумав. Коротше кажучи я виставляю всі налаштування в Основних налаштуваннях системи так як мені треба і я розумію що зміню тепер тут може що нитка раз в 100 років, тому що я зазвичай настройки не міняю. Тепер я перекриваю кисень зловмисник, а саме. Я йду в папку engine / data / і ставлю на файл config.php і dbconfig.php права 444, за рекомендаціями захисту скрипта я виставляю на саму папку data права 765 (це взяв тут). Все, тепер настройки системи з адмнкі міняти не можна, і соотвественно тип файлів php додати не вийде.

Далі, після того як ви можете перейменувати файл адмінки - зайдіть в Антивірус скрипта, зробіть тестування, там долен бути показаний новий файл адмінки як невідомий системі файл. Вам пропонується зробити новий знімок - НІКОГА НЕ РОБІТЬ ЦЬОГО. Чому. Тому що Ви можете контролювати зміни в ФС, а саме. Якщо наприклад кулхацкер все ж вдасться залити вам йшов, то зайшовши в антивірус ви його знайдете як невідомий системі файл. А якщо зловмисник заллє йшов і вирішить його приховати від вас зробивши новий знімок системи - то він приховає і свій йшов і ваш новий файл адмінки і при черговому скануванні якщо ви не бачите свій файл адмінки як невідомий файл - значить що хтось робив знімок і варто почати копати скрипт.

2. Вибирайте нормальних хостерів, зі слів одного хакера з сайту антічат, він залив йшов на сайт через саппорт хостера, давши хостера всього 10 WMZ. Так що ШКОЛОХОСТ - це не наш вибір.