Назад | Перейти на главную страницу

Правильный способ борьбы с угрозами безопасности веб-сервера в рамках бюджета

Во время нашего ежегодного обзора безопасности мне напомнили об инциденте в начале этого года, когда мы получили угрозу для веб-сервера нашей организации. Это было нарушением политики организации и угрозой DDoS-атак на наш сайт. К счастью, ничего плохого из этого не вышло, и это оказалось пустой угрозой. Тем не менее, мы все же немедленно уведомили ИТ-директора, директора по безопасности, генерального директора и нашего хостинг-провайдера, которые приветствовали наш ответ. Из-за характера нашей организации (в сфере образования) в превентивном реагировании было задействовано много людей, включая координацию с местными правоохранительными органами.

Несмотря на то, что наш ответ был достаточным на пустую угрозу, я понял, как мало претерпело планирование атак на веб-приложение. Прямо сейчас настройка:

Я предполагаю, что мой вопрос, вероятно, можно свести к тому, какие еще шаги я должен предпринять, чтобы заблокировать мой сервер, а также защитить его от DDoS? Мы хотели бы использовать Cloudflare Business с их защитой от DDoS-атак, но она нам не всегда нужна, а 200 долларов в месяц - это немного дорого для организации. Мне это вообще нужно? Есть ли решение, позволяющее временно защитить от DDoS-атак? Если нет, как лучше всего поддерживать стабильность во время / после атаки? Наконец, какое ведение журнала необходимо реализовать, чтобы мы могли помочь правоохранительным органам в случае атаки?

какие еще шаги мне следует предпринять, чтобы заблокировать мой сервер, а также защитить его от DDoS-атак?

  1. Брандмауэр отключит все неиспользуемые порты и протоколы. Ограничьте доступ только доверенными IP-адресами, где это применимо и возможно.
  2. Своевременно применяйте все исправления безопасности и обновления
  3. Внедрить сетевой монитор, который может предупреждать о подозрительных всплесках активности.

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-атак?

  1. если ваше веб-приложение не интерактивно и просто отображает контент: используйте nginx + proxy-cache с коротким временем кеширования (обычно 1-5 минут). это значительно увеличивает производительность и заставляет злоумышленника выделять больше ресурсов

  2. настроить ограниченный брандмауэр, который фильтрует все ненужное И из установив INPUT / OUTPUT / FORWARD-Policy на DROP; не забудьте регистрировать каждую попытку исходящего соединения (кроме порта 53 для UPD :)

  3. если вы не можете ограничить SSH статическим ip-адресом управления, используйте альтернативный порт с высоким уровнем, например 22222, это предотвратит множество "привет, mcfyl - кто-то там" - молотки

  4. Кроме того, используйте fail2ban / denyhosts для защиты ssh от атак грубой силы

  5. если у вас есть админ-ресурсы: используйте OSSEC и легкий WAF (есть naxsi для nginx, облегченный, а не такой PITA, как mod_security), но вам понадобится кто-то для настройки и поддержки таких установок

  6. реализовать резервное копирование и использовать резервный сервер в качестве цели резервного копирования

  7. обновляйте код своего веб-приложения; если вы используете проект с открытым исходным кодом, подпишитесь на их список рассылки по безопасности.

  8. старайтесь избегать программного обеспечения, которое, как известно, имеет много уязвимостей

  9. если вы используете admin-login и / или managament-webapps: установите basic-auth для этих логинов + ssl (самозаверяющий сертификат в порядке).

  10. используйте ssh-tunneling, где вы можете вместо открытия портов, например для разработки

Если нет, то как лучше всего сохранить стабильность во время / после атаки

  1. сохраняй спокойствие
  2. иметь под рукой кого-нибудь с опытом для такого случая
  3. иметь готовые планы действий в чрезвычайных ситуациях

самое важное, что вы уже сделали: обдумывали это (и возможные контрмеры) до того, как это произойдет.