Страницы

Поиск по вопросам

воскресенье, 24 ноября 2019 г.

Как устроить ловушку для хакера, или достойно отбивать атаки?


Ребята выручайте. Меня взломали и в наглую соединились со мной, требуя денег. Я новичок в этом деле и думаю, что пока научусь, то офис скорее снимет меня с работы.

Недавно сайт стал зависать, похоже было на DDOS атаку. Забанил его по IP, но бесполезно
Я устал бегать за IP и банить их, да и в принципе это не выход. Просто когда с хакеро
переписывался, он сделал ряд проколов, сказав, что может сломать даже мою базу данных. Я когда проверял базу во время перегрузок, то на нее никаких нагрузок не было, в основном на сервер. Меняю всякий раз все возможные пароли, но хакер  беспрепятственно обходит их.

И так, шаря, да выискивая слабые места, наткнулся на то, что мой сервер выдает страниц
не только по index.php, но и по abc.php, xyz.php. Не знаю, блин, но носом чую, что гад припрятал какой-то файл и обращается к нему. Где и идут тормоза, заполняя канал на 100%. Базу удалить, в принципе, можно будет изнутри этого файла (DELTE FROM tbl_name).

Как можно найти этот файл, или как можно понять какой-то необычный вход на сервер
У меня Symfony 1.4 PHP фреймворк. Сайт 5 летней давности. Писать его заново? (не вариант, по крайней мере не сейчас). Что я пропустил на уровне хранения лишнего файла? Или не в ту сторону копаю?

Я слышал от друзей что в 90 % за этим стоят конкуренты. И в обратку хакнув его, чащ
всего ддос прекращается. Но мысль навредить кому-то из за своей слабости чего-то не вдохновляет.

Попросил хакера дать время, чтоб якобы уболтать начальство расскошелиться.
    


Ответы

Ответ 1



В принципе не важно вас взломали,или пытаются взломать,ведь рано или поздно мы сталкнёмся с этой угрозой. Всe действия описанные ниже помогут узнать о ваших слабых и уязвимых местах, помогу исправить допущенные ошибки, помогут вам грамотно защищаться и в дальнейшем эффективно бороться с этим злом. Научимся методике и технологиям устраивании ловушек для злоумышленников (Honeypot - горшочек с медом). Приведу действия первой необходимости: Если вас уже взломали: Меняем логины и пароли серверов (Linux, MySQL, .....). Убеждаемся что у нас как минимум две группы пользователей с разными привилегиями.Допусти web и root, где web эта привилегия стоит для всех пользователей с ограниченными возможностями(Запре на закачку файлов кроме image type). Как правильно дать привилегии ? Читаем Как Повысить безопасность и удобство использования Вашего сервера и заложить прочную основу для последующих действий.. Если GIT не показывает необыкновенные изменения,то может быть стоит заглянуть в т директории которые вне него.Чаще всего это те директории куда загружаются изображения или иные файлы которые позволяем пользователям загружать. find . -type f -name '*.php' | xargs grep -l "eval *(str_rot13 *(base64_decode *( --color Эта команда найдет php файлы содержащие eval(str_rot13(base64_decode( (Также можно искать и в базе данных SELCT col_nam FROM tbl_name WHERE col_name LIKE '%eval(str_rot13(base64_decode(%'). Синтаксис grep очень прост и вы можете изменить его под свои нужды. На уровне PHP: **Ограничивать использование опасных php функций в php.ini ** (disable_functions = "show_source, system, shell_exec, exec, eval" ).Можно закрыть mail() функцию.и зафиксировать обращение к SMTP через сокетное соединение на 25 порт. Тут обращу внимание на функцию eval. Если каким то образом в вашем коде припрята PHP код то его исполнение через eval не произойдет.Этот список можно дополнять или убавлять по необходимости.Все отключили любые PHP скрипты которые были написаны надеюсь не нами. Межсайтовая подделка запроса (CSRF (англ. Сross Site Request Forgery )): Много популярных фреймворков имеют полноценную защиту от него в том числе и ваш.Распространённы способом защиты является механизм, когда с каждой сессией пользователя ассоциируетс дополнительный секретный ключ,и при отправки запроса в месте с параметрами и отправляется сгенерированный токен.А потом сравниваются сгенерированный токен и токен пришедший с запросом,если совпадают то этот запрос неподделанный. Эффективен для выполнения POST, PUT, DELETE, STORE-запросов. Межсайтовый скриптинг XSS (англ. Cross-Site Scripting). Выводить текст сохраненной не вами на страницу так как его вводили.Тут есть нюансы. Если пользователь сохраняет текст (К примеру оставляет комментарий, или делает поис по сайту) у вас в базе или еще где нибудь, то надо учесть что если нужен только текст тогда до сохранения очистить его от нежелательных тeгов(Для PHP strip_tags — Удаляет HTML и PHP-теги из строки). Если все таки нужно пропускать теги то сделать какие нибудь предварительные валидации.Ил вводить их маркируя по принципу stackoverflow textarea.Мы же публикуя вопрос или ответ не можем же вводить любой тег.Просто забыл как называется такие типы маркировки текста :) Всегда тщательно проверяйте файлы которые загружаются на сервер через форму или каки нибудь способом.Проверяйте их расширения и содержимое.Часто загрузка файлов без обеспечени надлежащего контроля безопасности приводит к образованию уязвимостей, которые, как показывае практика, стали настоящей проблемой в веб-приложениях на PHP.Чтобы удостовериться, чт это действительно изображение не используйте getimagesize() для проверки того, что файл является файлом с изображением. Для этих целей используйте расширение Fileinfo. Стоит добавить, что желательно сделать приведение файла к конкретному формату, например png. При приведении метаданные картинки потеряются, обеспечив практически гарантируемую безопастность.Наличие в загрузке файлов с расширением типа .php нужно проверять вообще в начале работы сайта, и если они есть сразу же их отбрасывать. На уровне .htaccess Ограничивать точки входа на сайте. Например в фреймворках в основном доступ идет через index.php.Или других вами известны файлах (admin.php,back.php, ...). Всегда можно отследить обращение к другому файлу, и всегда можно логировать информацию об обращениях к подозрительному файлу в отдельном журнале. проверьте .htaccess файлы на подозрительные изменения.auto_append_file и auto_prepend_fil включают другие PHP файлы в начале или в конце всех PHP скриптов, злоумышленники могут использовать их для включения своего кода. find . -type f -name '\.htaccess' | xargs grep -i auto_prepend_file; Следующая команда ищет во всех подкаталогах файлы .htacсess, которые содержат 'http' Результатом поиска будет список всех правил перенаправлений, в которых могут быть и вредоносные правила find . -type f -name '\.htaccess' | xargs grep -i http; . Во все каталоги, доступные для записи добавляем файл .htaccess со следующим содержимым: php_flag engine 0 RemoveHandler .phtml .php .php2 .php3 .php4 .php5 .php7 .phps .cgi .pl .asp .aspx .shtml .shtm .fcgi .fpl .htm .html AddType text/plain .phtml .php .php2 .php3 .php4 .php5 .php6 .php7 .phps .cgi .pl .asp .aspx .shtml .shtm .fcgi .fpl .htm .html Этим самым мы отключаем PHP в данном каталоге и заставляем все скрипты отображаться как HTML. Это можно сделать просто на всякий случай. Лишним уж точно не будет. Или запрет на исполнение: Order Allow,Deny Deny from all На уровне баз данных,частностью MySQL: Всегда пользуйтесь Подготовленными запросами и хранимыми процедурами: Большинство баз данных поддерживают концепцию подготовленных запросов. Что это такое Это можно описать, как некий вид скомпилированного шаблона SQL запроса, который будет запускаться приложением и настраиваться с помощью входных параметров. У подготовленных запросов есть два главных преимущества: Запрос необходимо однажды подготовить и затем его можно запускать столько раз, сколько нужно, причем как с теми же, так и с отличающимися параметрами. Параметры подготовленного запроса не требуется экранировать кавычками; драйвер эт делает автоматически. Если в приложении используются исключительно подготовленные запросы разработчик может быть уверен, что никаких SQL инъекций случиться не может (однако, если другие части текста запроса записаны с неэкранированными символами, SQL-инъекции все же возможны; здесь речь идет именно о параметрах). Защищайтесь от SQL-инъекции Прямое внедрение вредоносных инструкций в SQL-запросы - это методика, в которой взломщи создает или изменяет текущие SQL-запросы для отображения скрытых данных, их изменени или даже выполнения опасных команд операционной системы на сервере базы данных. Атака выполняется на базе приложения, строящего SQL-запросы из пользовательского ввода и статических параметров. На уровне системы Linux ... Лучше этих сервисов, которые реально защищают от DDOS, я пока не знаю.Пользуюсь ими.Пока что отбивают :).Это Cloudflare ,и Incapsula Как устроить ловушку для хакера (Honeypot - горшочек с медом): Не занимайтесь этим если у вас нет достаточных знаний и квалификации, хакер может победить вас в вашей же ловушке. Honeypot (горшочек с медом) давно широко используется в мире компьютерной безопасности.Это ресурс, задача которого отдаться хакеру, цель которого принять тест, атаку и быть взломанным. Это может быть эмулятор другой системы или приложения, некая "темница с засадой" или просто стандартная система. Как бы вы не построили свой горшочек, главная его задача — подвергнутся нападению и рассказать вам в подробностях об этом. Quick and Simple PHP Honey Pot Spam Prevention Simple PHP HoneyPot Tutorial Изучить инструменты, тактику и мотивы, связанные с компьютерными и сетевыми атаками, и поделиться извлеченными уроками. Естественно все в этом посте перечислить невозможно.Но если попытаться реализоват все что в этом посте перечислено,то можно научиться защищаться и не хило.По каждому из пунктов можно всегда задать вопрос или поискать больше информации для более детальной и правильной ее реализации. Полезные материалы : Веб-сервисы для проверки сайтов на вирусы https://habrahabr.ru/post/303956/ Методы борьбы с DDoS-атаками https://habrahabr.ru/post/129181/ 5 советов по борьбе с DDOS-атаками http://www.securitylab.ru/analytics/442099.php Устоять любой ценой: методы борьбы с DoS/DDoS-атаками https://xakep.ru/2009/10/14/49752/ 5 программ для анализа безопасности Вашего сайта https://seo-zona.ru/5-programm-dlya-analiza-bezopasnosti-vashego-sajta-2015-03-31.html Как понять что ваш сайт был взломан https://www.siteguarding.com/ru/kak-poniat-chto-vash-sait-byl-vzloman Бесплатный онлайн-сканеры вирусов: Веб-сканер QUTTERA https://quttera.com/ Веб-сканер ReScan.pro https://rescan.pro/ VirusTotal https://www.virustotal.com/ru/ Веб-сканер Sucuri https://sitecheck.sucuri.net/ Онлайн—сканеры Dr.Web https://vms.drweb.ru/online/ Вооружайтесь знаниями. Будьте бдительней.. Удачи :)

Ответ 2



Как минимум сделай это Сделай бэкапы всего Ищи в проекте новые файлы по дате Проверь где-то свои исходники, мб по уже существующей сигнатуре вируса найдет что-то. И самое главное, не понятно по какой причине вы еще используете Symfony 1.4. Я думаю возможно есть баг в этой версии или у вашем коде. Посмотрите места там где у вас загружаются файлы. Поставьте модуль для Nginx (если он стоит, если нету, ставьте) модуль для анти ддоса. Вот статья https://habrahabr.ru/post/139931/ Соглашусь с комментариями, поищите в проекте grep'ом eval

Ответ 3



Заранее извините за советы на уровне КО. Однако... Обратите внимание на специфику вашего проекта. Если ваши клиенты из России, обрубит все иностранные ip. Очень вероятно, что злоумышленник ходит к вам через зарубежный прокси. Предлагаю разместить на главной форму интересную для злоумышленника, но не интересну для клиентов. Например, вход для дилеров/оптовиков/партнеров. Скорее всего злоумышленник попытается атаковать новую форму, засветив свой ip. Оцените вероятность внутренней угрозы. Возможно ли, что это кто-то из сотрудников организации? Попробуйте публичные сканеры безопасности, типа таких https://observatory.mozilla.org/ Конечно эти сервисы достаточно параноидальны и не все нужно внедрять на рабочих проектах. Но может быть вам удастся закрыть какие-либо дыры. И на мой взгляд хорошо бы поставить в известность руководство. Возможно это поможет найти средства на платный аудит безопасности.

Комментариев нет:

Отправить комментарий