Защита от DDoS-атак: методы и примеры кода

Распределенные атаки типа «отказ в обслуживании» (DDoS) по-прежнему представляют собой серьезную угрозу для онлайн-бизнеса и организаций по всему миру. В 2020 году многочисленные громкие DDoS-атаки выявили уязвимости в сетях, что привело к перебоям в обслуживании и финансовым потерям. В этой статье блога мы рассмотрим различные методы защиты от DDoS-атак, сопровождаемые примерами кода, иллюстрирующими их реализацию.

  1. Ограничение скорости.
    Одним из эффективных методов смягчения последствий DDoS-атак является ограничение скорости. Установив пороговые значения для входящих запросов, вы можете предотвратить перегрузку сервера. Вот пример на Python с использованием Flask:
from flask import Flask
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
app = Flask(__name__)
limiter = Limiter(app, key_func=get_remote_address)
@app.route("/")
@limiter.limit("10/minute")
def index():
    return "Hello, World!"
if __name__ == "__main__":
    app.run()
  1. Внесение в белый/черный список IP-адресов.
    Другой подход заключается в создании белого списка доверенных IP-адресов или черного списка известных вредоносных IP-адресов. Вот пример использования iptables в Linux:
# Whitelist IP address
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
# Blacklist IP address
iptables -A INPUT -s 123.45.67.89 -j DROP
  1. Фильтрация трафика.
    Реализация фильтрации трафика может помочь выявить и заблокировать подозрительные шаблоны трафика, связанные с DDoS-атаками. Вот пример использования инструмента с открытым исходным кодом Snort:
sudo snort -A console -q -c /etc/snort/snort.conf -i eth0
  1. Сеть доставки контента (CDN).
    Использование CDN позволяет распределять входящий трафик между несколькими серверами, снижая воздействие DDoS-атаки. Популярные провайдеры CDN — Cloudflare, Akamai и Fastly.

  2. Проблемы CAPTCHA.
    Реализация задач CAPTCHA может помочь отличить пользователей-людей от автоматизированных ботов, что усложняет злоумышленникам организацию DDoS-атак. Вот пример использования reCAPTCHA:

<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<form action="/submit" method="post">
  <div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
  <br/>
  <input type="submit" value="Submit">
</form>

Защита от DDoS-атак требует многоуровневого подхода. Комбинируя такие методы, как ограничение скорости, внесение в белый/черный список IP-адресов, фильтрацию трафика, использование CDN и реализацию задач CAPTCHA, организации могут значительно повысить свою устойчивость к DDoS-атакам. Сохраняйте бдительность, обновляйте свою защиту и постоянно отслеживайте свою сеть на предмет потенциальных угроз.