DDoS 보호 및 패킷 필터링
간략한 요약
DDoS 공격은 L3/L4 체적 (막힘 채널/장비), 상태 소진 (밸런서/방화벽의 배기 상태 테이블/CPU) 및 L7 (응용 프로그램에 "그럴듯한" 요청 생성) 의 세 가지 클래스로 제공됩니다. 효과적인 방어는 주변의 네트워크 측정, 네트워크 외부의 필터링/스크러빙, 밸런서/프록시 및 응용 프로그램의 보호 및 측정 가능한 SLO의 운영 절차와 같은 여러 계층으로 구축됩니다.
위협 조경
Volumetric (UDP/ICMP 플러드, PS/NTP/SSDP/CTP/Memcached 증폭): 목표는 채널과 포트를 막는 것입니다.
상태 소진 (SYN/ACK 플러드, 할 단편화, 하프 콘 연결): 배기 연결/청취자.
L7 TH (S )/WebSocket/GraphQL 플러드, 캐시 버스팅, "느린" 요청: CPU/IO 응용 프로그램 및 캐시 계층을 먹습니다.
반사/증폭: IP 소스 대체와 함께 오픈 리플렉터/앰프 사용.
카펫 폭격: 여러 IP/접두사에 걸친 트래픽 분포, 복잡한 포인트 필터링.
기본 네트워크 측정 (공격 전)
1. 스푸핑 방지: 국경에서 uRPF/BCP38; 나가는 패킷을 다른 사람의 소스와 함께 떨어 뜨립니다
2. 에지/PE의 ACL: 원치 않는 프로토콜/포트 거부; mgmt 세그먼트에 대한 별도의 목록.
3. CoPP (Control Plane Policing): 라우터로 연마 (BGP, OSPF, SS, SNMP).
4. 포트의 속도 제한/연마: "잡음" 클래스의 경우 bps/PPS, 버스트 설정.
5. 로드 공유: 공개 IP, 지리 자원에 대한 모든 캐스트; 정적 및 캐시 된 CNC/WAAP.
6. RPKI/ROA + 엄격한 BGP 수입: 교통 체증/방향 전환 위험을 줄입니다.
7. 표면 축소: 게시 된 서비스를 최소화하고 프록시 뒤에 "원시" 원산지를 닫습니다.
공격 할 때 빠른 반응: 네트워크 레버
RTBH (원격 트리거 블랙홀): 경로 0/32 (또는/128) 피해자를위한 BGP 커뮤니티.
BGP Flowspec: PE/edge로 L3/L4 규칙 (src/htly/port/할 수 있는 플래그) 을 빠르게 전파합니다.
스크럽 센터/항 -DDoS 제공 업체: GRE/VRF 터널 또는 직접 업스트림; 필터링 한 다음 "순수한" 트래픽을 사용하십시오.
Anycast-antiDDoS: 존재 지점별로 흐름이 분할되어 국소화가 손상됩니다.
CDNA/에지 캐시: 화면 원점, L7 한계 및 "도전" 메커니즘 제공.
호스트 및 L4 보호
SYN 쿠키/SYNPROXY: 클라이언트가 확인할 때까지 상태를 유지하지 마십시오.
Linux: 'sysctl net. ipv4. 입력 밸런서의 tcp _ syncookie = 1 '또는' SYNPROXY '.
튜닝 연결 트랙 (사용되는 경우):- 해시 사이즈를 올리면 Temper 'nf _ contrack _ max' 가 현명하게 나타납니다.
- "반 개방" 및 비활성 상태의 타임 아웃을 줄입니다.
- eBPF/XDP: NIC (PPS 보호) 의 조기 하락, 코어에 대한 서명/속도 필터링.
- nftables/iptables: PPS 제한, "의심스러운" 플래그 폐기, 연결 제한.
- UDP 강화: 서비스가 UDP를 사용하지 않으면 국경에서 하락합니다. 사용하는 경우 소스/포트를 제한하십시오.
nft table inet filter {
sets {
bad_ports { type inet_service; elements = { 19, 1900, 11211 } } # chargen/SSDP/memcached
}
chains {
input {
type filter hook input priority 0; policy drop;
ct state established,related accept ip saddr 127. 0. 0. 0/8 drop ip6 saddr::1/128 drop
limit new TCP tcp flags & (syn ack) == syn limit rate 200/second burst 400 accept tcp flags & (syn ack) == syn drop
deny bad UDP ports udp dport @ bad _ ports drop
ICMP rate-limit icmp type echo-request limit rate 50/second burst 100 accept icmpv6 type echo-request limit rate 50/second burst 100 accept
}
}
}
입력 밸런서의 SYNPROXY (예: 'iptables'):
bash iptables -t raw -A PREROUTING -p tcp --syn -j CT --notrack iptables -A INPUT -p tcp -m tcp --syn -m hashlimit --hashlimit 100/second --hashlimit-burst 200 --hashlimit-mode srcip --hashlimit-name syns -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460 iptables -A INPUT -m state --state INVALID -j DROP
L7 보호 (짧은)
WAAP/WAF: 중요 경로, 속도 제한, 챌린지/JS, 행동 점수에 대한 긍정적 인 모델.
캐싱/정적 오프로드: 원산지 요청 감소; 캐시 버스팅 보호 (정규화/매개 변수 블랙리스트).
GraphQL 리미터: 'maxDepth', 'maxCost', 판매의 내성 금지.
BFF 패턴: 얇은 클라이언트 토큰, 서버의 무거운 논리/제한.
이데올로기 및 대기열: 분해 중에 눈사태와 같은 반복을 방지하십시오.
원격 측정 및 발견
네트워크 흐름: NetFlow/sFlow/IPFIX (pps, 톱 토커, 프로토콜/포트/ASN).
패시브 L7 센서: 밸런서/프록시 로그 (nginx/snature), p95/99 메트릭, 오류율.
기본 임계 값: "예기치 않은 PPS/CPU 성장 가장자리", "SYN-RECV 서지", "UDP는 보답하지 않습니다".
서명/동작: IP/ASN/JA3 주파수, 4xx/5xx 스파이크, 사용자 에이전트 이상.
시각화: 개별 대시 보드 L3/L4/L7; Geo/ASN 트래픽 맵 시간을 RTBH/Flowspec으로 표시합니다.
SLO/SLI 및 경고
SLO 예:- "DDoS 이상의 MTTD는 60 초, MTTM (RTBH/Flowspec 활성화)
- "공격을 통한 p95 대기 시간은 외부 50ms; 완화중인 소 200ms를 공격 할 때 "
- "폐기 된 악성 트래픽의 비율은 99% 이상이며 합법적 인 트래픽의 98% 이상을 유지합니다".
- 네트워크 노드의 PPS/CPU/IRQ> 임계 값;
- SYN-RECV/half-Open> X;
- 공개 엔드 포인트에서 5xx/대기 시간 증가;
- WAF> 임계 값 (FP 위험) 에서 백분율 챌린지/거부
방어 아키텍처 패턴
1. 계층 방어: Edge (ACL/CoPP) → Scrubbing/Anycast → L7 Proxy/WAAP → Application.
2. 교통 전환: BGP 커뮤니티가 스크러빙으로 이동하고 GRE는 다이빙 시간을 보냅니다.
3. Stateless Edge: 연결에 대한 최대 무국적 필터링; 고마워-응용 프로그램에 더 가깝습니다.
4. eBPF/XDP 우선: 코어로의 조기 하락 (JA3/포트/속도).
5. 황금 경로: 모든 것을 완전히 "철거" 하지 않도록 중요한 API를위한 별도의 IP/도메인.
운영 절차 및 사건
런북: RTBH/Flowspec/scrubing, Anycast/pool을 전환하는 방법.
블랙리스트 및 TTL: "오버 슈트" 하지 않도록 단기 블록; 자동 재테스트 소스.
통신: 공급자/파트너/공급 업체를위한 메시지 템플릿; 공격 된 도메인 외부의 통신 채널.
사건 후: 타임 라인이있는보고 (T0... Tn), "작동/작동", 테스트 카탈로그 업데이트
운동: 정기적 인 게임 일: RTBH 드라이 런, Anycast 지역 손실, 링크 채도, "느린" 공격.
Linux/Balancer 튜닝 (샘플)
bash
TCP sysctl -w net. ipv4. tcp_max_syn_backlog=4096 sysctl -w net. ipv4. tcp_syncookies=1 sysctl -w net. ipv4. tcp_fin_timeout=15 sysctl -w net. ipv4. tcp_tw_reuse=1
Conntrack (if enabled)
sysctl -w net. netfilter. nf_conntrack_max=1048576 sysctl -w net. netfilter. nf_conntrack_tcp_timeout_syn_recv=30 sysctl -w net. netfilter. nf_conntrack_udp_timeout=15
NIC/IRQ ethtool -G eth0 rx 4096 tx 4096
공통 오류
모든 트래픽을 가장자리에 고정 방화벽을 통해 유지하십시오 → 연결 트랙 소진. 당신이 할 수있는 곳에서 무국적자를하
늦은 RTBH/Flowspec → 채널은 이미 "0입니다. "임계 값과 활성화를 자동화하십시오.
"all" 에 대한 하나의 IP/하나의 모서리 → 폭발 반경 절연이 없습니다. 분할 도메인/IP 및 할당량.
제로 캐시 → 각 L7 호출은 원점을 이깁니다. 캐싱 및 매개 변수 정규화 사용
합법적 인 분석없이 국가/ASN의 맹인 차단-전환을 차단합니다. 미묘한 규칙/도전 과제를 사용하십시오.
비즈니스 정점에서 너무 공격적인 한계 → 대규모 FP.
구현 로드맵
1. 표면 평가: IP/접두사/포트/프로토콜 인벤토리, 임계 경로 맵.
2. 네트워크 위생: 스푸핑 방지, ACL, CoPP, RPKI/ROA, 불필요한 UDP 서비스 거부.
3. 교통 전환: 스크러빙 제공 업체, Anycast/CNC, BGP 커뮤니티와의 계약.
4. 에지 튜닝: 무국적 필터링, SYNPROXY/eBPF, 합리적인 연결 시간 초과.
5. L7/WAAP: 긍정적 인 모델, 한계/도전, 캐시.
6. 관찰 가능성: NetFlow/sFlow, 대시 보드 L3/L4/L7, 경고, SLO.
7. 자동화: RTBH/Flowspec 버튼, 규칙에 대한 IaC, 컨피그의 카나리아 레이아웃.
8. 드릴 및 RCA: 정기적 인 테스트, 플레이 북 업데이트.
iGaming/fintech의 기능
피크 이벤트 (토너먼트, 프로모션, 경기): 계획 용량/제한, 예열 캐시, 예열 CDN입니다.
지불 통합: 전용 IP/도메인, anti-DDoS 제공 업체를 통한 우선 순위 채널, mTLS to PSP, 중요한 종점에 대한 엄격한 제한.
사기 방지/봇 제어: 등록/로그인/프로모션 코드에서의 행동 점수 및 인적 문제.
UX 및 변환: 적극적인 보호를 통해 VIP/파트너를위한 그레이스 목록 사용, 소프트 저하 (캐시/읽기 전용).
법적 요구 사항: 로그 투명성, 원격 측정 스토리지, 측정 값이 월렛 시간 및 회전율 지표에 미치는 영향을 디버깅합니다.
예: Flowspec 및 RTBH (개념적으로)
커뮤니티를 통한 RTBH (예):
route 203. 0. 113. 10/32 blackhole set community 65535:666 announce to upstream
Flowspec (포트 19/1900 당 UDP 단위> 1Mbit/인터페이스):
match destination 203. 0. 113. 0/24 protocol = udp destination-port {19,1900}
then rate-limit 1000
FAQ
WAF는 DDoS를 해결합니까?
L7의 경우 부분적으로. L3/L4 및 체적에 대해 스크러빙/애니 캐스트/네트워크 측정이 필요합니다.
SYN 쿠키가 충분합니까?
이것은 SYN 플러드에 대한 기본 보호이지만 네트워크 제한과 스크러빙이 없으면 채널을 여전히 막을 수 있습니다.
ICMP를 비활성화해야합니까?
아니요, 그렇지 않습니다. 더 나은 속도 제한과 위험한 유형 인 ICMP는 진단/PMTU에 유용합니다.
문지르는 GRE 터널은 대기 시간을 추가하지 않습니까?
예, 그러나 일반적으로 허용됩니다. 캐시와 가장 가까운 PoP에 대한 정확한 경로를 보상하십시오.
합계
신뢰할 수있는 DDoS 보호는 네트워크 위생 (스푸핑 방지/ACL/CoPP), 빠른 트래픽 전환 (RTBH/Flowspec/scrubing/Anycast), 호스트 및 L7 메커니즘 (SYNPROXY, eBPF/XDP, WAAP), 텔레 미트리, SLO 및 방식 플레그 북 북. 이 방법은 다운 타임을 최소화하고 채널을 생생하게 유지하며 분산 공격으로 인한 압력을 받아도 비즈니스 메트릭을 유지합니다