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

1,00
р.
Ребята выручайте. Меня взломали и в наглую соединились со мной, требуя денег. Я новичок в этом деле и думаю, что пока научусь, то офис скорее снимет меня с работы.
Недавно сайт стал зависать, похоже было на DDOS атаку. Забанил его по IP, но бесполезно. Я устал бегать за IP и банить их, да и в принципе это не выход. Просто когда с хакером переписывался, он сделал ряд проколов, сказав, что может сломать даже мою базу данных. Я когда проверял базу во время перегрузок, то на нее никаких нагрузок не было, в основном на сервер. Меняю всякий раз все возможные пароли, но хакер беспрепятственно обходит их.
И так, шаря, да выискивая слабые места, наткнулся на то, что мой сервер выдает страницы не только по index.php, но и по abc.php, xyz.php. Не знаю, блин, но носом чую, что гад припрятал какой-то файл и обращается к нему. Где и идут тормоза, заполняя канал на 100%. Базу удалить, в принципе, можно будет изнутри этого файла (DELTE FROM tbl_name).
Как можно найти этот файл, или как можно понять какой-то необычный вход на сервер? У меня Symfony 1.4 PHP фреймворк. Сайт 5 летней давности. Писать его заново? (не вариант, по крайней мере не сейчас). Что я пропустил на уровне хранения лишнего файла? Или не в ту сторону копаю?
Я слышал от друзей что в 90 % за этим стоят конкуренты. И в обратку хакнув его, чаще всего ддос прекращается. Но мысль навредить кому-то из за своей слабости чего-то не вдохновляет.
Попросил хакера дать время, чтоб якобы уболтать начальство расскошелиться.

Ответ
В принципе не важно вас взломали,или пытаются взломать,ведь рано или поздно мы сталкнёмся с этой угрозой. Вс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_file включают другие 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:/eo-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:/itecheck.sucuri.net/ Онлайн—сканеры Dr.Web https://vms.drweb.ru/online/
Вооружайтесь знаниями. Будьте бдительней..
Удачи :)