방화벽 및 트래픽 필터링
(섹션: 기술 및 인프라)
간단한 요약
방화벽은 주변에있는 하나의 상자가 아니라 L3-L4에서 L7까지의 레이어 필터링 모델: 클라우드 보안 그룹/NACL, Kubernetes의 네트워크 정책, 가장자리의 탈출 제어, WAF 및 봇 관리, 서비스를위한 mSL/소스 진실 서비스. iGaming의 핵심은 결제 흐름 및 게임 제공 업체, 지리 정치, DNA 제어 및 관찰 가능성 (누가, 언제, 왜) 을 보호하는 것입니다.
1) 목표와 원칙
기본 거부: 기본적으로 필요한 최소값을 허용합니다.
심층 방어-주변, 클라우드, 클러스터 및 응용 프로그램에 대한 동일한 정책.
우선 출력: 출력 트래픽은 입력 (PSP, 게임 제공 업체, 우편, 분석) 과 동일한 위험입니다.
아이덴티티> 주소: 가능하면 베어 IP 대신 아이덴티티 (mSL/Spiffe) 로 승인됩니다.
관찰 및 감사: 의사 결정 로그 (허용/거부), 추적, 사건과의 상관 관계.
2) 여과 층 맵
1. 가장자리: CNC/WAF/DDoS/봇 보호, L7 규칙, TLS 종료.
2. 클라우드: VPC/서브넷/VM 레벨의 보안 그룹/NACL/방화벽 규칙.
3. 클러스터: Kubernetes NetworkPolicy, mTLS 및 L7 필터가 장착 된 서비스 메쉬 (Envoy/Istio).
4. 호스트: iptables/nftables/ufw, 에이전트 eBPF 필터.
5. 응용 프로그램: 요율 제한/idempotency/WAF 인앱, 탈출을위한 도메인 목록.
6. DNA: 분할 수평선, 허용 목록 해결, 위험 도메인/유형 차단.
3) 경계계: WAF, DDoS 및 봇 관리
WAF: API에 대한 기본 서명 + 사용자 정의 규칙 (JSON 체계, 메소드/컨텐츠 유형).
내기: 행동 점수, 장치 지문, 이상에 대한 동적 캡차.
DDoS: L3/4 (volum/synapse) 및 L7 (해 홍수) -가장자리에서 자동 폐기.
Geo/ASN: 위험한 영역 (예: 관리자 패널) 에 대한 영역/자율 시스템을 제한합니다.
nginx
Разрешаем только JSON POST/GET на /api/
location /api/ {
limit_req zone=rl_api burst=50 nodelay;
if ($request_method!~ ^(GET POST)$) { return 405; }
if ($http_content_type!~ "application/json") { return 415; }
proxy_pass http://api_upstream;
}
ModSecurity CRS + собственные правила modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/crs.conf;
4) 클라우드: 보안 그룹 및 NACL
보안 그룹 (stateful) -포트/프로토콜/세그먼트 별 필터.
NACL (국적자) -서브넷의 거친 메쉬 필터링.
yaml security_group:
name: api-sg ingress:
- proto: tcp; port: 443; cidr: 0.0.0.0/0 # через CDN/WAF egress:
- proto: tcp; port: 443; cidr: 203.0.113.0/24 # PSP-X
- proto: tcp; port: 443; cidr: 198.51.100.0/24 # ProviderA
- proto: udp; port: 53; cidr: 10.10.0.10/32 # только наш DNS
실습: 지불을 위해 특정 PSP/게임 제공 업체 범위에 대해 별도의 SG 및 탈퇴 허용량을 유지하십시오. IaC를 통한 업데이트 및 검토.
5) Kubernetes: 네트워크 정책 및 서비스 메시
NetworkPolicy는 클러스터 내에서 L3/4를 제한합니다. 기본적으로 "모든 사람이 모든 사람에게 이야기합니다" -닫
Deny-all + 해상도 만 필요합니다
yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: { name: deny-all, namespace: prod }
spec:
podSelector: {}
policyTypes: [Ingress, Egress]
ingress: []
egress: []
---
Разрешаем API разговаривать с платежным сервисом и DNS apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: { name: api-allow-specific, namespace: prod }
spec:
podSelector: { matchLabels: { app: api } }
policyTypes: [Ingress, Egress]
egress:
- to:
- namespaceSelector: { matchLabels: { name: prod } }
podSelector: { matchLabels: { app: payments } }
ports: [{ protocol: TCP, port: 8080 }]
- to:
- ipBlock: { cidr: 10.10.0.10/32 }
ports: [{ protocol: UDP, port: 53 }]
서비스 메시 (Istio/Linkerd/Consul) 는 다음을 추가합니다
mTLS는 어디에나 있습니다 (IP가 아닌 신원별로 서비스 인증).
L7 필터링 (메소드/호스트/경로/헤더), 회로 차단기, 특이 치 배출.
서비스 계정/Spiffe ID 별 액세스 정책.
yaml apiVersion: security.istio.io/v1 kind: AuthorizationPolicy metadata: { name: api-to-payments, namespace: prod }
spec:
selector: { matchLabels: { app: payments } }
action: ALLOW rules:
- from:
- source:
principals: ["spiffe://prod/ns/prod/sa/api-sa"]
to:
- operation:
methods: ["POST"]
paths: ["/deposit","/withdraw"]
6) 호스트 방화벽: iptables/nftables/eBPF
nftables의 예 (주정부, 거부):nft table inet filter {
sets {
psp { type ipv4_addr; elements = { 203.0.113.10, 203.0.113.11 } }
}
chains {
input { type filter hook input priority 0; policy drop;
ct state established,related accept iifname "lo" accept tcp dport {22,443} accept
}
output { type filter hook output priority 0; policy drop;
ct state established,related accept udp dport 53 ip daddr 10.10.0.10 accept # только наш DNS tcp dport 443 ip daddr @psp accept # egress к PSP
}
forward { type filter hook forward priority 0; policy drop; }
}
}
eBPF 에이전트 (Cilium 등) 는 얇은 L3-L7 정책 및 가시성 (흐름, 디스플레이, 도표 메타 데이터) 을 제공합니다.
7) 탈출 제어 및 대상 디렉토리
외부 통화에 대한 할당량 도메인/IP (PSP, 메일, KYC, 게임 제공 업체).
DNA 피닝/SNI 정책: 신뢰할 수있는 리졸버를 통해서만 해결하십시오. 원시 IP 탈출을 금지합니다.
결제, 게임 및 일반 회로를위한 별도의 VPC/VNet 출구.
PII 이외의 트래픽에 대한 TLS 검사가있는 프록시; 결제 흐름-MITM 없음, 직접 mSL/PII 안전 전용.
8) TLS/mTLS 및 암호화 정책
TLS 1. 2 +, 현대 암호, OCSP 스테이플 링, HSTS.
mTLS 내부-Spiffe ID/서비스 계정 인증에 구속력이 있습니다.
트러스트 체인의 정기적 인 인증서 회전 및 검증.
L7 프록시의 CORS/CSP는 전면의 공격 소스를 차단합니다.
9) 요율 제한 및 L7 할당량
IP/ASN/접두사에 의한 에지 제한; 신원 제한 - 신원 (계정/테넌트/키).
배상이 중복을 생성하지 않도록 POST 결제 작업을위한 이데올로기 키.
지터가있는 누수/토큰 버킷; 분해 중에- "회색 답변 "/captcha/감속.
10) DNA 보안
기업 리졸버 (VPC 리졸버/제기 CoreDNS) 만 허용됩니다.
분할 수평선: 내부 이름이 외부에서 해결되지 않습니다.
유해한 TLD/카테고리를 차단하고 난로에서 DoH/DoT를 금지하십시오.
이상에 의한 로그 요청 및 경고 (새로운 도메인, 빈번한 NXwasher).
11) 로그, 관찰 및 테스트
방화벽 로그 (허용/거부, 규칙, 바이트), WAF 감사, DNA 로그 → SIEM/SOAR.
Exemplars: 'trace _ id' 가있는 메트릭을 잠그십시오. → 문제 쿼리 추적으로 빠르게 점프하십시오.
합성: 올바른 지역에서 PSP/게임 제공 업체의 가용성을 정기적으로 점검합니다.
네트워크 혼돈 테스트: 패킷 손실, RTT, DNA 오류-규칙 및 자동 치료 반응을 확인하십시오.
12) 자동화 및 IaC
모든 규칙은 코드 (Terraform/Ansible/Helm/Kyverno/Gatekeeper) 와 같습니다.
보안 정책 (OPA) 을 통한 풀 요청 검토.
Versioning 및 Ansimation-그래프의 규칙 변경 사항을 표시합니다.
카나리아 변경: 네트워크 정책을 점진적으로 출시합니다 (네임 스페이스/레이블, 피치의 5-10%).
13) iGaming의 세부 사항
결제 경로 (PSP): 개별 탈출 그룹, 엄격한 허용 목록, 코드/타임 아웃 모니터링.
게임 제공 업체: 화이트리스트 CNC 도메인, 갑작스런 리디렉션 방지.
지리 규칙: 지역 제한 사항 준수, 가장자리의 지역 블록.
백 오피스/KYC: 신뢰할 수있는 네트워크에서만 액세스/요새 + MFA를 통해 액세스하십시오.
사기: L7의 속도 제한 및 비정상적인 소스의 API에 대한 "무거운" 요청.
14) 빠른 규칙의 예
UFW (호스트)
bash ufw default deny incoming ufw default deny outgoing ufw allow 22/tcp ufw allow 443/tcp ufw allow out to 10.10.0.10 port 53 proto udp ufw allow out to 203.0.113.0/24 port 443 proto tcp
Istio EnvoyFilter (비표준 방법, 아이디어 금지)
yaml typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router до роутера — Lua/Match для блокировки методов not in [GET,POST,OPTIONS]
NGINX 속도 제한
nginx limit_req_zone $binary_remote_addr zone=rl_api:10m rate=10r/s;
server {
location /api/ { limit_req zone=rl_api burst=50 nodelay; proxy_pass http://api; }
}
15) 구현 점검표
1. 클라우드 레벨 (SG/NACL), 클러스터 (NetworkPolicy) 및 호스트에서 기본 거부합니다.
2. 신뢰할 수있는 DNS를 통해서만 해결되는 PSP/공급자에 대한 탈퇴 허용 목록.
3. 가장자리의 WAF/봇 관리/DDoS, REST/JSON에 대한 L7 규칙 및 다운로드.
4. 서비스, 신원 인증 (Spiffe/SA) 간의 mTLS.
5. 가장자리와 앱의 요율 제한/할당량, 결제를위한 demempotency 키.
6. DNA 정책: DoH/DoT 금지, 분할 수평선, 로깅.
7. 로그 및 SIEM: 중앙 집중식 컬렉션은/WAF/DNS를 허용/거부하고 이상에 대한 경고를 허용합니다.
8. IaC 프로세스: 규칙 코드, PR 검토, 카나리아 롤, 주석.
9. 테스트/혼돈: RTT/손실/DNA 실패, 대체 경로 및 자동 스크립트 확인.
10. 정기적 인 감사: 사용하지 않은 규칙 감사, PSP/CDN의 회전 주소.
16) 반 패턴
"모든 것을 열고 WAF에 대한 희망" -주변은 내부 트래픽을 절약하지 못합니다.
탈출 제어 없음-누출/C2를위한 튜브 터널 외부.
Kubernetes의 모든 네트워크 정책 허용-측면 이동이 보장됩니다.
도메인/DNS를 제어하지 않고 동적 CNC/PSP 세계에서 IP 전용 필터링.
내부에 mTLS가없는 유일한 TLS 종료 지점은 서비스 대체입니다.
IaC/감사없이 판매의 수동 규칙 변경-재현성 및 부채.
방화벽은 "아무데도" 로그합니다-관찰 가능하지 않으면 "블랙 박스" 일뿐입니다.
결과
효율적인 트래픽 필터링은 에지 -WAF 및 클라우드 SG에서 클러스터 내의 네트워크 정책 및 mTLS에 이르기까지 플랫폼의 아키텍처 패브릭이며, IaC를 통한 PSP/제공 업체 및 관리에 대한 엄격한 출구 제어 기능이 있습니다. 이러한 시스템은 누출 및 공격의 위험을 줄이고 SLO 내에서 지불 및 게임을 유지하며 전체 감사 및 감시를 통해 사건을 신속하게 조사하는 데 도움이됩니다.