Во время нашего ежегодного обзора безопасности мне напомнили об инциденте в начале этого года, когда мы получили угрозу для веб-сервера нашей организации. Это было нарушением политики организации и угрозой DDoS-атак на наш сайт. К счастью, ничего плохого из этого не вышло, и это оказалось пустой угрозой. Тем не менее, мы все же немедленно уведомили ИТ-директора, директора по безопасности, генерального директора и нашего хостинг-провайдера, которые приветствовали наш ответ. Из-за характера нашей организации (в сфере образования) в превентивном реагировании было задействовано много людей, включая координацию с местными правоохранительными органами.
Несмотря на то, что наш ответ был достаточным на пустую угрозу, я понял, как мало претерпело планирование атак на веб-приложение. Прямо сейчас настройка:
Я предполагаю, что мой вопрос, вероятно, можно свести к тому, какие еще шаги я должен предпринять, чтобы заблокировать мой сервер, а также защитить его от DDoS? Мы хотели бы использовать Cloudflare Business с их защитой от DDoS-атак, но она нам не всегда нужна, а 200 долларов в месяц - это немного дорого для организации. Мне это вообще нужно? Есть ли решение, позволяющее временно защитить от DDoS-атак? Если нет, как лучше всего поддерживать стабильность во время / после атаки? Наконец, какое ведение журнала необходимо реализовать, чтобы мы могли помочь правоохранительным органам в случае атаки?
какие еще шаги мне следует предпринять, чтобы заблокировать мой сервер, а также защитить его от DDoS-атак?
200 долларов в месяц - это немного дорого для организации. Мне это вообще нужно?
Нет. Пока это не добавит ценности и не станет необходимостью.
Есть ли решение, позволяющее временно защитить от DDoS-атак?
Да. Они могут потребовать изрядных предварительных вложений времени для устранения сложностей, связанных с внедрением их службы DDoS. http://www.blacklotus.net/protect/emergency-ddos-protection одна из таких услуг по запросу.
Если нет, то как лучше всего поддерживать стабильность во время / после атаки?
Просто сядь и возьми. Такова природа DDoS. Вы можете попробовать установить брандмауэр с IP-адресов, но если атака действительно распределена ... ну, это как бороться с лесным пожаром из пистолета.
Наконец, какое ведение журнала необходимо реализовать, чтобы мы могли помочь правоохранительным органам в случае атаки?
Ведение журналов входящих IP-адресов и временных меток источников, а также любых других соответствующих данных судебной экспертизы. Например, если это веб-сервер, попробуйте зарегистрировать пользовательский агент, запрошенные ресурсы. Полезны скорости трафика, такие как количество пакетов в секунду и количество запросов в секунду.
DDoS сводится к математическому анализу. Если кто-то пытается вымогать у вас, он делает ставку на то, что он может настолько подорвать ваш бизнес, чтобы заставить вас платить деньги за защиту, чтобы предотвратить это. Масштаб - это фактор, мелких операторов легче снимать, но они могут платить меньше. Если вы получаете угрозу по электронной почте, лучше всего ее игнорировать. Для инициирования и поддержки DDoS-атак требуются значительные ресурсы ботнета - они не могут просто взорвать всех, как спамеры. Скорее всего, они просто устроили массовую фишинговую атаку в поисках легких целей, которые можно запугать. Из-за природы зверя DDoS жертвы довольно беспомощны, если они не могут развернуть сложную схему предотвращения фильтрации пакетов или иметь бюджет для заключения контрактов со сторонними службами.
Ответ inetplumber отличный.
Я бы добавил, что еще один вариант - настроить ваше приложение для масштабирования, чтобы вы могли справиться с более крупной атакой, не затрагивая вашего пользователя. Вы можете настроить виртуальное частное облако (VPC) на Amazon AWS, например, с вашим сервером PostgreSQL, доступным только из вашего VPC. Вы можете настроить внешний интерфейс балансировщика нагрузки для распределения нагрузки между несколькими серверами.
Преимущество такого подхода в том, что вы можете быстро масштабировать до 100 (или более) серверов без предварительных вложений и очень быстро (если вы уже были настроены), что делает вас гораздо более сложной целью. Вам нужно будет платить за эти серверы только в те часы, когда вы действительно подвергались атаке. Когда вы не подвергались атаке, вам нужно было бы заплатить только за один веб-сервер и один сервер базы данных.
Сложнее всего будет настроить, и это, безусловно, несколько сложнее, чем ваша текущая конфигурация. Для быстрого масштабирования потребуется еще больше работы. Но если вы ищете что-то, что можно было бы сделать по плану (особенно если из-за других проблем вы думаете, что можете стать целью в будущем), то это будет именно то.
какие еще шаги мне следует предпринять, чтобы заблокировать мой сервер, а также защитить его от DDoS-атак?
если ваше веб-приложение не интерактивно и просто отображает контент: используйте nginx + proxy-cache с коротким временем кеширования (обычно 1-5 минут). это значительно увеличивает производительность и заставляет злоумышленника выделять больше ресурсов
настроить ограниченный брандмауэр, который фильтрует все ненужное И из установив INPUT / OUTPUT / FORWARD-Policy на DROP; не забудьте регистрировать каждую попытку исходящего соединения (кроме порта 53 для UPD :)
если вы не можете ограничить SSH статическим ip-адресом управления, используйте альтернативный порт с высоким уровнем, например 22222, это предотвратит множество "привет, mcfyl - кто-то там" - молотки
Кроме того, используйте fail2ban / denyhosts для защиты ssh от атак грубой силы
если у вас есть админ-ресурсы: используйте OSSEC и легкий WAF (есть naxsi для nginx, облегченный, а не такой PITA, как mod_security), но вам понадобится кто-то для настройки и поддержки таких установок
реализовать резервное копирование и использовать резервный сервер в качестве цели резервного копирования
обновляйте код своего веб-приложения; если вы используете проект с открытым исходным кодом, подпишитесь на их список рассылки по безопасности.
старайтесь избегать программного обеспечения, которое, как известно, имеет много уязвимостей
если вы используете admin-login и / или managament-webapps: установите basic-auth для этих логинов + ssl (самозаверяющий сертификат в порядке).
используйте ssh-tunneling, где вы можете вместо открытия портов, например для разработки
Если нет, то как лучше всего сохранить стабильность во время / после атаки
самое важное, что вы уже сделали: обдумывали это (и возможные контрмеры) до того, как это произойдет.