Mais conteúdo relacionado Semelhante a GS Neotek aws_Amazon_CloudFrontDay2018_session3 (20) GS Neotek aws_Amazon_CloudFrontDay2018_session31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Max Ha (하명호)– Specialized SA, Edge Services
July, 2018
CDN을 통한 클라우드 보안
2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• Cloud Security
• AWS Shield
• AWS WAF
• Summary
What will be covered:
4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Cloud Security
5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
TCP SYN Flood
UDP Flood
UDP Amplification
TCP ACK SYN/ACK Flood
HTTP Flood
SQL Injection
XSS
Web Crawler/scraper
Bot
DNS Poisoning
Trojan
Brute force
Man in the Middle Attack
Slowloris
Types of Attack
6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Types of Attack
7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
CDN & Cloud Security
Load
Distribution
Performance
Scalable
Secure
Cost Effective
Availability
9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Benefit of Security Protection at Edge
Web Server
Traditional Security
protection placed on the
network and data center
borders can experience HW
and Network bottlenecks
Traditional
WAF
10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Benefit of Security Protection at Edge
Web Server
CloudFront brings the added
distribution, capacity and
scalability of a CDN to WAF
• Decreases origin load by
blocking attacks close to the
source
• Can distribute sudden traffic
spikes using CDN
• Avoid a single points of
failure with increased
redundancy of CDN
CloudFront Edge
CloudFront Edge
11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Cloud Security at Edge
https://aws.amazon.com/cloudfront/details/
REC (11)
• Oregon
• Ohio
• N. Virginia
• London
• Frankfurt
• Sao Paulo
• Mumbai
• Singapore
• Seoul
• Tokyo
• Sydney
Edge Location (108)
• NA: 38
• SA: 4
• EU: 33
• ASIA: 29
• AUS: 3
• Africa:1
12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Cloud Security Architecture at Edge
corporate data center
AND, OR
edge
location
Static Content Origin
Dynamic Content Origin
CNAME: cdn.mysite.com
FOR: abc123.cloudfront.net
AWS WAF
AWS SHIELD
Amazon Elastic
Transcoder
13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Multi-Layer Protection
Bad BotsDDoS Application Attacks
Reflection
Layer 4 floods
SSL abuse
HTTP floods
Amplification
Content scrapers
Scanners & probes
Crawlers
SQL injection
Application exploits
Social
engineering
Sensitive data
exposureApplication
Layer
Network /
Transport
Layer
AWS Shield
AWS WAF
14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Shield
15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
디도스 공격의 유형
16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
물량기반 디도스 공격
정상적으로 처리할 수 있는 수준을 상회하는
트래픽을 전송하여 네트웍 기능을 마비시킴
(e.g., UDP reflection attacks)
디도스 공격의 유형
17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
상태 소진 형 디도스 공격
프로토콜 특성을 악용하여 방화벽, IPS,
로드밸런서 같은 시스템을 무력화
(e.g., TCP SYN flood)
디도스 공격의 유형
18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
어플리케이션 레이어 기반 디도스 공격
정상 요청으로 가장하지만, 방어수단을 우회하고
어플리케이션 리소스를 소진하기 위한 악의적인
요청을 통한 공격
(e.g., HTTP GET, DNS query floods)
디도스 공격의 유형
19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Volumetric State exhaustion Application layer
65%
물량기반
17%
상태 소진형
18%
어플리케이션
레이어
디도스 공격 트렌드
20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
디도스 공격 대응의 어려움
21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
디도스 공격 대응의 어려움
적용이 어려움
복잡한 구성절차 충분한 밴드위쓰 확보 어플리케이션
아키텍쳐 재 구성
22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
수작업 대응 과정
공격 대응에
필요한 관계자
참여 과정
원격에 있는
정제장소를
경유토록 트래픽
라우팅 변경
대응 시간의
증가
전통적인
데이터센터
디도스 공격 대응의 어려움
23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
트래픽 라우팅 변경 = 사용자 지연시간 증가
전통적인
데이터센터
디도스 공격 대응의 어려움
24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
비싼 사용료
디도스 공격 대응의 어려움
25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
고객들은 여전히…
AWS가 고객별로
디도스 공격을
방어해 주나요?
대규모로 디도스
공격이 발생하면
어찌 됩니까?
공격받을 때
어떻게 알 수
있죠?
AWS가 어플리케이션 레이어
공격도 방어합니까?
공격에 따른
스케일링 비용이
걱정되요
디도스 전문가와
상의하고 싶어요.
26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
관리형 디도스 방어 서비스로서의 AWS
Shield 소개
27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Shield
Standard Protection Advanced Protection
추가비용 없이 모든 AWS
고객에게 적용됨
추가적인 보호와 기능 및
잇점을 제공하는 비용 기반
서비스.
28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Shield
레이어 3/4 보호
자동 탐지 및 대응
가장 흔한 공격유형에 대한
방어 (SYN/UDP Floods,
Reflection Attacks, 등)
AWS 서비스에 밀결합
레이어 7 보호
레이어 7 디도스 공격 대응을
위해 AWS WAF 활용
셀프서비스 및 사용량 과금
29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Shield Standard
AWS상에서 운영되는 여러분들의 어플리케이션에 대한 보다 나은
보호
• 독자적인 BlackWatch 시스템을 이용한 향상된 방어
• 추가적인 방어 여력
• 탐지 및 방어 수준의 지속적인 향상에 대한 약속
• 추가비용 부담 없음
30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Shield Advanced
다음 서비스들에 적용 …
Application Load Balancer
Classic Load Balancer
Amazon CloudFront
Amazon Route 53
Network Load Balancer
EC2
31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Shield Advanced
상시 모니터링 및 탐지
고도화된 L3/4 & L7
디도스 방어
공격 통보 및 리포팅24x7 기반 DDoS 대응 팀
연계
AWS 청구 보호
32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
상시 모니터링 및 탐지
고도화된 L3/4 & L7
디도스 방어
공격 통보 및 리포팅24x7 기반 DDoS 대응 팀
연계
AWS 청구 보호
AWS Shield Advanced
33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
상시 모니터링 및 탐지
네트웍 플로우
모니터링
어플리케이션 트래픽
모니터링
34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
시그니쳐 기반 탐지 휴리스틱 기반
비정상 상태 탐지
기본 패턴 비교
상시 모니터링 및 탐지
35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
다음과 같은 속성을 기반으로 비정상 상태 탐지:
• 소스 IP
• 소스 ASN
• Traffic levels
• 검증된 소스
휴리스틱 기반 비정상 상태 탐지
상시 모니터링 및 탐지
36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
상시 모니터링 및 탐지
평상시 트래픽 패턴을 기준으로 상시 비교:
• 초당 HTTP 요청 수
• 소스 IP 주소
• URLs
• User-Agents
기본 패턴 비교
37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Shield Advanced
상시 모니터링 및 탐지
고도화된 L3/4 & L7
디도스 방어
공격 통보 및 리포팅24x7 기반 DDoS 대응 팀
연계
AWS 청구 보호
38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
레이어 7
어플리케이션 방어
레이어 3/4
인프라 방어
고도화된 디도스 방어
39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
고도화된 디도스 방어
레이어 7
어플리케이션 방어
레이어 3/4
인프라 방어
40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
고도화된 방어 기법들
필터링 규칙 점수 기반 트래픽
처리 순위화
고도화된
라우팅 정책
레이어 3/4 인프라 방어
41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
비정상적인 TCP패킷을 자동으로 필터링:
• IP checksum
• TCP valid flags
• UDP payload length
• DNS request validation
필터링 규칙
레이어 3/4 인프라 방어
42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
낮은 의심도의 속성들
• 정상적인 패킷 혹은 요청 헤더
• Traffic composition and volume is
typical given its source
• 목적지가 검증된 트래픽
높은 의심도의 속성들
• 의심스러운 패킷 혹은 요청 헤더
• 헤더 속성의 트래픽 복잡도
• 트래픽 소스와 볼륨의 복잡도
• 트래픽 소스의 나쁜 평판
• 목적지가 틀린 트래픽
• ‘cache-busting’속성을 가진 요청
점수 기반 트래픽 처리 순위화
레이어 3/4 인프라 방어
43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• 인라인 방식의 점검 및 점수화
• 낮은 순위(공격으로 의심되는) 트래픽에 대한 우선 제거
• 오탐 회피와 적법한 사용자 보호
점수 기반 트래픽 처리 순위화
높은 의심도 패킷 드랍
낮은 의심도 패킷 유지
레이어 3/4 인프라 방어
44. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
레이어 3/4 인프라 방어
• 분산된 정화 처리 및 밴드위쓰 용량
• 대규모 공격을 흡수할 수 있는 자동화된 라우팅 정책
• 필요시, 수작업 트래픽 처리
고도화된 라우팅 정책
45. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
고도화된 디도스 방어
레이어 7
어플리케이션 방어
레이어 3/4
인프라 방어
46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS WAF – 레이어 7 어플리케이션 방어
커스텀 규칙
기반 웹 트래픽
필터링
악의적인 요청
차단
액티브
모니터링과 튜닝
47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
상시 모니터링 및 탐지
고도화된 L3/4 & L7
디도스 방어
공격 통보 및 리포팅24x7 기반 DDoS 대응 팀
연계
AWS 청구 보호
AWS Shield Advanced
48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
공격 통보 및 리포팅
공격 모니터링
및 탐지
• Amazon CloudWatch 를 통해 공격에 대한 실시간 통보
• 준 실시간 메트릭과 공격 분석을 위한 패킷 캡춰
• 과거 공격 이력 리포트
49. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
상시 모니터링 및 탐지
고도화된 L3/4 & L7
디도스 방어
공격 통보 및 리포팅24x7 기반 DDoS 대응 팀
연계
AWS 청구 보호
AWS Shield Advanced
50. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• 중대하고 급박한 우선순위의 케이스에 대해 신속
하게 답변이 제공될 수 있도록 디도스 전문가와
직접 연결됨
• 복잡한 케이스를 AWS 및 아마존을 비롯한 기타
서비스들을 보호하고 있는 경험많은 AWS 디도스
대응팀(DRT)으로 바로 요청할 수 있음.
24x7 기반 DDoS 대응 팀 연계
51. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
24x7 기반 DDoS 대응 팀 연계
공격 이전
선제적으로 컨설팅과
모범사례 가이드
전달
공격 도중
공격에 대한 대응
조치
공격 이후
사후 분석
52. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Shield Advanced
상시 모니터링 및 탐지
고도화된 L3/4 & L7
디도스 방어
공격 통보 및 리포팅24x7 기반 DDoS 대응 팀
연계
AWS 청구 보호
53. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS 청구 보호
디도스 공격으로 인한 스케일링 비용을 AWS가 흡수
• Amazon CloudFront
• Elastic Load Balancer
• Application Load Balancer
• Amazon Route 53
54. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS DDoS Shield: 선택 방법
• 대부분의 일상적인 디도스
공격의 방어를 위해
• AWS 상의 디도스 방어를
강화하기 위한 도구 및 모
범사례들을 이용하고자 할
때
• 좀더 규모가 크고 복잡한 형태
의 공격에 대한 추가적인 보호
를 위해
• 공격에 대한 가시성 확보를 위
해
• 공격으로 인한 손해를 회피하기
위해
• 24X7 기반으로 디도스 전문사
에게 복잡한 케이스들을 요청하
기 위해
Standard Protection Advanced Protection
55. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
56. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS WAF
57. AWS WAF 제공 기능
• 요청율 기반 규칙
• IP Match & Geo-IP 필터
• 정규식 및 문자열 탐지
• 크기 제한
• CloudWatch
메트릭/경보
• 샘플 로그
• 집계 모드
• SQLi
• XSS
• IP 블랙리스트
악의적인 트래픽 차단 웹 트래픽 필터링 모니터링 및 튜닝
58. AWS WAF의 탐지/방어 내역
어플리케이션
레이어
악성 봇디도스 OWASP 타입 공격
HTTP floods
과다 요청자
크롤러SQL 인젝션
XSS
어플리케이션 취약점 스캐너 & probes
컨텐츠 수집기
59. AWS WAF 사용 방식
1. 직접 룰 설정
(셀프서비스)
3. Automation템플릿2. 관리형 룰셋 사용
3가지 전부 활용 가능!
61. CloudFront로 컨텐츠에
대한 HTTP/HTTPS요청
전달
WAF 요청을 검사하고
결과를 CF로 리턴
(allow/deny)
CF에서 WAF의
검사를 받아야
하는지를 판단
WAF는 Cloud
Watch로 메트릭 전송;
API를 이용하여 규칙
업데이트
CloudFront에 의해 요청된 컨텐츠
전송
CloudFront에 설정된 Error페이지
전송
AWS WAF: 동작 개요
63. 1. Web Access Control Lists (WebACL)
• ‘Rule’, Condition, Action들의 집합
• 각 Rule 별로 처리방법(Action) 설정
2. Rules
• condition들의 집합
3. Condition
• 문자열, 크기제한 정규식 패턴
• SQLi、XSS
• IP 주소대역, 지리적인 위치(국가)
4. Action
• Allow/Block/Count
5. Resource
• CloudFront Distribution
• ALB Endpoint
Web ACL
Rule A
Condition 1
Condition 2
Condition 3
Action
Rule B
Condition 1
Condition 4
Action
Order
・
・
・
필터링 구조
64. 1) WebACL 생성
2) 필요한 Conditions (IP, string, SQLi 등) 생성
3) 필요한 Rules 생성 및 Action/Order 설정
4) 생성된 WebACL을 CloudFront 혹은 ALB 리소스에 연계
5) 리뷰 및 적용
필터링 구조 : 구성 절차
65. Negative
• 주로 운영 환경에 적용
• 디폴트로 ALLOW 모드
• 알려진 위협에 대한 BLOCK
처리
Positive
• 주로 제한된 환경에 적용
• 디폴트로 BLOCK 모드
• 허용해도 되는 접근만 ALLOW
처리
Examples
• BLOCK MalwareIncIPRange
• BLOCK “{;}”
Examples
• ALLOW SeattleOfficeIPRange
• ALLOW referrer header “example.com”
AWS WAF: Rule 설정 방식 비교
67. AWS 콘솔
• 100% 셀프서비스
• WAF 구성내역1분 이내 글로벌로 전파
AWS WAF API
• http://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html
WAF API 기반으로 리소스를 관리
Ex: 의심 IP 블랙리스팅
(“Update*Set” API)
$ aws waf
update-ip-set
--ip-set-id
--change-token d4c4f53b-9c7e-47ce-9140-0ee5765d6bff
--updates
[
{"Action": "INSERT",
"IPSetDescriptor":
{"Type": "IPV4",
"Value": "192.168.0.0/16"}
},
{"Action": "INSERT",
"IPSetDescriptor":
{"Type": "IPV4",
"Value": "192.168.5.0/24"}
}
]
필터링 규칙의 자동 변경 혹은
개발환경과의 통합
API 및 관리 콘솔
68. AWS WAF API를 이용하여 IP
Blacklist와 WAF rule 갱신
정상 사용자
악의적인 사용자
혹은 bot
CloudFront
AWS
WAF
위협 분석
보안 담당자
S3
Bucket
Access Logs
Lambda
Script
주기별 로그 분석
・HTTP Flood
・Bad Request
(4xx,5xx)
・Bots, Scrapers
Amazon
SNS
악성 IP 탐지
메일 통보
Rule Updater
Ex: AWS WAF API를 활용한 자동화
70. • CloudWatch Real-Time Metrics
• Blocked web requests
• Allowed web requests
• Counted web requests
• Rule의 실제 작동 결과를 용이하게
확인 가능
AWS WAF: Reporting
73. • The AWS WAF Security Automation 솔루션은 사전 정의된 AWS WAF의 방어 규칙을 고객이 쉽게 설정할 수 있도록
해주는 CoudFormation템플릿(아래 Rule들 중 선별 적용 가능)
• 적용후, AWS WAF는 바로 고객의 리소스(CloudFront 혹은 ALB)로 유입되는 웹 요청들을 검사하기 시작.
• 탑재된 Rule:
1. Bots and scrapers: robot.txt의 설정을 우회하는 bad bot과 컨텐츠 스크랩퍼를 식별하고 차단.
2. SQL injection: 어플리케이션의 DBMS를 침해할 수 있는 악성 SQL쿼리를 담고 있는 웹 요청을 차단.
3. Cross-site scripting (XSS): 유입되는 웹 요청들의 통상적으로 사용되는 HTML구성요소들 중 XSS공격을 식별/차단하여 클라이언트 측의
악의적인 스크립트로 부터 다른 일반 사용자들을 보호.
4. Known attacker origins (IP reputation lists): 파트너가 제공하는 IP평판 정보를 업로드하여 악성 IP들을 차단.
5. Scanners and probes: Creates an CloudFront의 Access Log를 AWS Lambda function을 이용하여 파싱해서 악의적인 스캐닝이나 침투
시도를 한 요청자 IP를 식별하고 WAF IP차단 Rule에 등록하여 차단.
6. HTTP floods: 지정된 임계치를 초과하는 양의 요청을 보내는 요청자 IP를 식별하고, WAF의 IP차단 Rule에 등록하여 더이상 요청을 받지
않도록 보호.
AWS WAF Security Automation이란
(* CloudFormation 템플릿을 적용할 때는 반드시 AWS Lambda 와 Amazon API Gateway가 지원되는 리전을 선택할 것.)
75. • bad bots 과scraper를 유인하기 위한 Honeypot(A): 이
구성요소는 Amazon API G/W의 Endpoint를 포함한
honeypot를 자동으로 구성하고, 이 링크를 고객의 웹사이트에
포함해서 bad bot과 Scraper를 유인하게 구성됨.
AWS Lambda의 Access Handler를 통해 Honeypot Endpoint
로 유입되는 요청들을 가로채서 요청 IP를 식별하고 WAF의
차단 규칙에 포함시킴.
• SQL injection (B) 과 cross-site scripting (C) 방어: 이 구성 요소는 AWS WAF의 2가지 기본 Rule을 이용하여
일반적인 SQL 인젝션 혹은 cross-site scripting pattern들을 웹 요청의 URI, query string 또는 body에서 찾도록
구성됨.
Honeypot 구성도
제공 기능
76. • Log parsing (D): AWS Lambda를 이용하여 Amazon CloudFront의 access log에서 비정상적인 요청양 이나 error 양을
식별하도록 구성됨. 식별된 요청자 IP는 지정된 시간동안 차단되도록 처리.
• Manual IP lists (E): 이 구성 요소는 AWS WAF의 Rule을 이용하여 수동으로 차단(blacklist)/허용 (whitelist)처리할 IP들을
담을 수 있도록 구성됨.
• IP-list parsing (F): 이 구성 요소는 AWS Lambda
function을 이용하여 아래 3개의 IP평판 정보의 업데이트
사항을 시간 단위로 확인하여 IP Rule에 반영하도록 구성됨:
Spamhaus Don’t Route Or Peer (DROP) and
Extended Drop (EDROP)
Proofpoint Emerging Threats IP list
Tor exit node list.
IP Lists Parser 구성도
제공 기능(continued)
77. 1. Click 2. Configure 3. Deploy
소개페이지 : https://aws.amazon.com/answers/security/aws-waf-security-automations/
적용 가이드 : http://docs.aws.amazon.com/solutions/latest/aws-waf-security-automations/welcome.html
AWS WAF Security Automation 적용
80. AWS WAF가 제공하는 장점
신속한 침해사고 대응 강력하고 유연한 규칙설정
저렴한 가격자동화된 대응 룰 템플릿
쉬운 적용
81. 여전히 존재하는 고객 요건들.
“규칙을 만들기 위해 비싼 Pro-Serv 참여를 원하기
않는다.”
“보안 규칙보다 웹 어플리케이션 코딩에
집중하고 싶다.”
“계속 진화하는 공격형태에 맞추어 규칙을
업데이트할 능력이 없다.”
82. 파트너 제공 룰셋을 AWS WAF에서 적용
• 선별된 보안 벤더들이 제공하는 AWS
WAF상에서 구동되는 관리형 규칙셋!
• AWS의 신뢰할 수 있는 공급자들이
작성하고 관리하는 규칙 셋
• AWS 마켓플레이스 또는 WAF콘솔에서
이용 가능
• AWS WAF 상에 적용
• 사용 시간 기준 과금
83. Managed Rule Set 이용 방법
WAF 콘솔 또는 AWS
마켓플레이스 상에서
원하는 룰 선택
클릭 및
subscribe
AWS WAF의 룰과
연계
84. Managed Rule Set의 5가지 장점
1. 보안 전문가가 관리해 주는 룰
2. 선택적인 적용
3. 자동 업데이트
4. 사용량 기반 과금
5. 손 쉬운 적용
85. 더 자세한 내용은 아래 싸이트를 방문하세요
https://aws.amazon.com/mp/security/WAFManagedRules/
86. AWS Cloud Security
AWS 연계성
인프라 구성을 변경
할 필요없이 디도스
방어 기능 적용 가능
적절성
비용과 가용성 간에
저울질할 필요없음
유연성
여러분의 어플리케
이션에 대한 맞춤식
보호
상시탐지 및 대응
어플리케이션
지연시간의 영향 최소화
87. AWS Cloud Security with Cloud Front
유해 트래픽의 근원지와 가장 가까운 곳에서 차단 가능
글로벌 분산 시스템을 필요시에 설정하여 즉시 사용 가능
Overprovisioning 및 Under utilization 고민이 필요 없음
CAPEX 및 OPEX 절감
Single Point of Failure에 서비스 단절없이 지속 가능
Efficiency
Agility
Elasticity
Cost Saving
Availability
89. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Q&A
90. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Appendix
91. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Appendix-Shield
92. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
디도스 방어를 위한 AWS의 접근방법
93. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
디도스 방어를 위한 AWS의 접근방법
https://d0.awsstatic.com/International/ko_KR/whitepapers/DDoS_White_Paper.pdf
94. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS가 지향하는 목표는…
획일적인 대규모 변경 필
요성 제거
통상적인 공격 형태에 대한 자
동화된 보호
가용성에 대한 확신
높은 가용성을 제공하는
AWS 서비스들
95. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS에 적용된 디도스 방어체계
• AWS 글로벌 인프라에 적용
• 상시 운영, 외부 라우팅 없이 신속한 방어
• 여분의 AWS 데이터 센터 인터넷 연결성
96. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS에 적용된 디도스 방어체계
• 가장 흔한 공격 유형들 방어
• SYN/ACK Floods, UDP Floods,
Refection attacks 등.
• 별도 비용 없음
디도스 대응
시스템
디도스 공격
사용자
97. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Volumetric State exhaustion Application layer
65%
물량기반
17%
상태 소진형
18%
어플리케이션
레이어
SSDP reflection 공격이
가장 흔한 유형
Reflection 공격은 분명한
시그니쳐가 있으며, 가용
밴드위쓰를 전부 점유하는
형태임
디도스 공격의 트랜드
98. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
디도스 공격의 트랜드
Volumetric State exhaustion Application layer
65%
물량기반
17%
상태 소진형
18%
어플리케이션
레이어
다른 유형의 물량 기반 공격들:
NTP reflection, DNS reflection,
Chargen reflection, SNMP reflection
99. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
디도스 공격의 트랜드
Volumetric State exhaustion Application layer
65%
물량기반
17%
상태 소진형
18%
어플리케이션
레이어
정상적인 커넥션 시도처럼
가장한 SYN flood
흔히 대규모로 발생하며, 일반
사용자의 정상적인 이용을 방해함.
100. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
디도스 공격의 트랜드
Volumetric State exhaustion Application layer
65%
물량기반
17%
상태 소진형
18%
어플리케이션
레이어
정상적인 DNS 요청을
가장한 DNS query
flood
보통, DNS서버의 가용성을
훼손하기 위해 수시간 동안
지속됨.
101. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
디도스 공격의 트랜드
Volumetric State exhaustion Application layer
65%
물량기반
17%
상태 소진형
18%
어플리케이션
레이어
다른 유형의 어플리케이션
레이어 공격들:
HTTP GET flood, Slowloris
102. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Shield Advanced
다음 리전에서 이용 가능 …
US East (N. Virginia) us-east-1
US West (N. California) us-west-1
US West (Oregon) us-west-2
EU (Ireland) eu-west-1
Asia Pacific (Tokyo) ap-northeast-1
103. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS WAF – 레이어 7 어플리케이션 방어
3 가지 이용 형태
셀프 서비스 디도스 전문가
에게 요청
선제적으로 DRT팀
개입
104. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS WAF – 레이어 7 어플리케이션 방어
• 추가 비용 부담 없이 AWS WAF 이용
셀프서비스
105. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS WAF – 레이어 7 어플리케이션 방어
1. AWS DDoS Response Team (DRT) 참여 요청
2. DRT팀에 의한 공격 유형 및 규모 분석
3. DRT팀 도움을 통해 고객이 AWS WAF 룰 생성
하고 대처
디도스 전문가 참여
106. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS WAF – 레이어 7 어플리케이션 방어
1. AWS DDoS Response Team (DRT)에 의한 상시
모니터링
2. DRT팀에 의한 AWS WAF 룰 적용 (사전에 권한
설정 필요함)
선제적인 DRT 개입
107. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS DDoS Shield: 이용 요금
• 약정기간 없음
• 추가 비용 없음
• 1 년 약정 기간
• 월간 기본 이용 요금: $3,000
• 데이터 전송 요금
Standard Protection Advanced Protection
데이터 전송 요금 ($ per GB)
Route53 CloudFront ELB NLB EC2
First 100 TB
추가비용 없음
$0.025 $0.050 $0.050 $0.050
Next 400 TB $0.020 $0.040 $0.040 $0.040
Next 500 TB $0.015 $0.030 $0.030 $0.030
Next 4 PB $0.010 Contact Us Contact Us Contact Us
Above 5 PB Contact Us Contact Us Contact Us Contact Us
108. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Appendix-WAF
109. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Soft
Limit
리소스 기본 제한
AWS 계정당 웹 ACL 50
AWS 계정당 규칙 100
AWS 계정당 조건 각 조건 유형에 대해 100(예: 100개의 크기 제약 조건, 100개의 IP 일치 조건 등)
초당 요청 웹 ACL당 10,000*
*이 제한은 ALB의 AWS
WAF에만 적용됩니다.
CloudFront에서 AWS WAF에
대한 초당 요청 수(RPS)
제한은 CloudFront 개발자
안내서에서 설명하는
CloudFront의 RPS 제한
지원과 동일합니다.
Hard
Limit
리소스 제한
웹 ACL당 규칙 10
규칙당 조건 10
IP 일치 조건당 IP 주소 범위(CIDR 표기법 사용) 10,000개
비율 기반 규칙에 따라 차단된 IP 주소 10,000개
5분당 최소 비율 기반 규칙 비율 제한 2000
교차 사이트 스크립팅 일치 조건당 필터 10
크기 제약 조건당 필터 10
SQL 명령어 주입 일치 조건당 필터 10
문자열 일치 조건당 필터 10
웹 요청의 헤더를 검사하여 지정된 값을 확인하도록 AWS WAF를 구성한 경우 문자열 일치 조건에서 HTTP 헤더 이름의 문자 수 40
문자열 일치 조건에서는 AWS WAF에서 검색할 값의 바이트 수 50
http://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/limits.html
AWS WAF 제한조건
110. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
•WebACL은 conditions, rules, actions의
집합.
•WebACLs 한개 이상의 CloudFront
distribution 혹은 ALB Endpoint와 연계될 수
있음.
•WebACLs 실시간 메트릭 정보와 Rule별
샘플링 된 웹 요청 처리 내역을 제공.
필터링 구조 : WebACL
OR
111. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Condition들과 처리규칙(Action)의 집합.
Rule에 연결되는 Action의 유형:
• Block
• Allow
• Count – 최초 적용시, 학습모드 권장
Rule은 복수개의 Condition들이 “AND” 조건으로 구성됨.
Rule Types:
• Regular rule
• Rate-based rule – 요청 IP별 5분당 요청수 기준(최소 2,000건), 넘는 IP차단
복수개의 WebACL에 중복 포함 가능
필터링 구조 : Rules
AND
112. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
복수개의 필터로 구성.
지원되는 Conditions:
• IP address Match
• Geographic Match
• String Match
• Regex Match
• Size Constraints
• SQLi Match
• XSS Match
한 Condition 내의 필터들 간에는 “OR” 조건
필터링 구조 : Conditions
OR
OR
OR
113. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
WebACL의 모든 부분을 재사용 가능.
CloudFront Distribution / ALB Endpoint 를 보호 리소스로 설정
필터링 구조 : Resource
CloudFront
distributions
Web ACL #1
Web ACL #2
공유된 블랙리스트
114. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Condition : IP Match
IP v4, IP v6 지원
CIDR Block:
192.0.0.0/8 – Matches 192.*.*.*
192.168.0.0/16
192.168.32.0/24
92.168.32.64/32 – 단일 IP 주소 조건 부여
115. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Condition : Geographic Match
Location type : 현재는 Country별로만 제한
Location : 2자리 국가 코드
한국 – KR
북한 – KP
중국 – CN
러시아 - RU
116. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Condition : SQLi Match
검사 부분 지정
Header
HTTP Method : DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Query String : ? 문자(있는 경우) 뒤에 나타나는 URL의 부분
URI : 리소스를 식별하는 URL의 부분(예: /images/daily-ad.jpg)
Body : 처음 8,192바이트(8KB)만 검사
변환(Transformation) : 공격자가 WAF를 우회하기 위해 사용하는 일부 비정상적인 서식 제거
None
Convert to lowercase
HTML decode : HTML로 인코딩된 문자를 인코딩되지 않은 문자로 변경, ", , <, >, 등
Normalize whitespace : 공백 문자(10진수)로 변경, f, t, n, r, v, truncate 등
Simplify command line : OS 커맨드를 삽입하고 비정상적인 서식을 사용하여 명령의 일부 또는 전부를 위장하는
경우
URL decode : URL 인코딩된 요청을 디코딩
SQLi를 위한 세부 탐지 규칙은 AWS WAF 자체적으로 관리됨
한개의 Condition에 복수개의 필터를 포함하는 것을 권장(OR조건)
117. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
/login?x=test%20Id=10%20AND=1
/login?x=test%27%20UNION%20ALL%20select%20NULL%20--
/login?x=test’ UNION ALL select NULL --
Transform: URL Decode
Match: SQL Injection
탐지 실패
Transformation : URL Decode
탐지 성공
118. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Condition : XSS Match
검사 부분 지정
Header
HTTP Method : DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Query String : ? 문자(있는 경우) 뒤에 나타나는 URL의 부분
URI : 리소스를 식별하는 URL의 부분(예: /images/daily-ad.jpg)
Body : 처음 8,192바이트(8KB)만 검사
변환(Transformation) : 공격자가 WAF를 우회하기 위해 사용하는 일부 비정상적인 서식 제거
None
Convert to lowercase
HTML decode : HTML로 인코딩된 문자를 인코딩되지 않은 문자로 변경, ", , <, >, 등
Normalize whitespace : 공백 문자(10진수)로 변경, f, t, n, r, v, truncate 등
Simplify command line : OS 커맨드를 삽입하고 비정상적인 서식을 사용하여 명령의 일부 또는 전부를 위장하는
경우
URL decode : URL 인코딩된 요청을 디코딩
XSS를 위한 세부 탐지 규칙은 AWS WAF 자체적으로 관리됨
한개의 Condition에 복수개의 필터를 포함하는 것을 권장(OR조건)
119. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Condition : String Match
검사 부분 지정
Header
HTTP Method : DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Query String : ? 문자(있는 경우) 뒤에 나타나는 URL의 부분
URI : 리소스를 식별하는 URL의 부분(예: /images/daily-ad.jpg)
Body : 처음 8,192바이트(8KB)만 검사
일치 유형
Contains
Exactly matches
Starts with
Ends with
Contains word
변환(Transformation) : 공격자가 WAF를 우회하기 위해 사용하는 일부 비정상적인 서식 제거
None
Convert to lowercase
HTML decode : HTML로 인코딩된 문자를 인코딩되지 않은 문자로 변경, ", , <, >, 등
Normalize whitespace : 공백 문자(10진수)로 변경, f, t, n, r, v, truncate 등
Simplify command line : OS 커맨드를 삽입하고 비정상적인 서식을 사용하여 명령의 일부 또는 전부를 위장하는 경우
URL decode : URL 인코딩된 요청을 디코딩
검색 패턴의 최대 길이는 50바이트(Base64 인코딩 지원)
120. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Condition : Regex Match
PCRE(Perl Compatible Regular Expression)기준 지원. 일부 미지원 내역은
http://docs.aws.amazon.com/waf/latest/developerguide/web-acl-regex-conditions.html 에서 확인
검사 부분 지정
Header
HTTP Method : DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Query String : ? 문자(있는 경우) 뒤에 나타나는 URL의 부분
URI : 리소스를 식별하는 URL의 부분(예: /images/daily-ad.jpg)
Body : 처음 8,192바이트(8KB)만 검사
변환(Transformation) : 공격자가 WAF를 우회하기 위해 사용하는 일부 비정상적인 서식 제거
None
Convert to lowercase
HTML decode : HTML로 인코딩된 문자를 인코딩되지 않은 문자로 변경, ", , <, >, 등
Normalize whitespace : 공백 문자(10진수)로 변경, f, t, n, r, v, truncate 등
Simplify command line : OS 커맨드를 삽입하고 비정상적인 서식을 사용하여 명령의 일부 또는 전부를 위장하는 경우
URL decode : URL 인코딩된 요청을 디코딩
자주 쓰는 정규식 패턴 재활용.
검색 패턴의 최대 길이는 70 문자(Base64 인코딩 지원)
121. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Condition : Size Constraints
검사 부분 지정
Header
HTTP Method : DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
Query String : ? 문자(있는 경우) 뒤에 나타나는 URL의 부분
URI : 리소스를 식별하는 URL의 부분(예: /images/daily-ad.jpg)
Body : 처음 8,192바이트(8KB)만 검사
비교 연산자 : <, >, =, <=, >= 등
변환(Transformation) : 공격자가 WAF를 우회하기 위해 사용하는 일부 비정상적인 서식 제거
None
Convert to lowercase
HTML decode : HTML로 인코딩된 문자를 인코딩되지 않은 문자로 변경, ", , <, >, 등
Normalize whitespace : 공백 문자(10진수)로 변경, f, t, n, r, v, truncate 등
Simplify command line : OS 커맨드를 삽입하고 비정상적인 서식을 사용하여 명령의 일부 또는 전부를 위장하는
경우
URL decode : URL 인코딩된 요청을 디코딩
Size 제한을 바이트 단위로 설정
122. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
https://aws.amazon.com/waf/preconfiguredrules/
Setup guides and Cloud Formation templates
Preconfigured Rules and Tutorials
123. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API Actions
Create
Delete
Get
List
Update
API Data Types
• ChangeToken
• ChangeTokenStatus
• Activated Rule
• HTTP Header
• HTTP Request
• Predicate
• Rule
• Time Window
• WAF Action
• WebACL
• IPSet
• StringMatchSet
• SQLinjectionMatchSet
• Rule
AWS WAF: API Actions and Data Types
124. Managed 룰셋의 가격 체계
2가지 가격 디멘션:
Rule 그룹 월간 사용료 ($/month)
백만 요청 건 당 처리 비용 ($/Million Request)
공급업체 별 자체 요금 체계(AWS Marketplace 확인 필요)
기존 WAF가격에 공급업체 룰셋 가격이 추가됨
125. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Token 기반 프로세스:
Get Change Token: WAF 리소스를 변경하기 위해선 우선 최초
한번 변경된 토큰을 획득하는 것이 필요
Use Token to Make a Change: 획득한 토큰을 이용하여 변경
요청을 실행
Check Status Using Token: 토큰을 이용하여 변경의 반영 상태를
확인. ‘INSYNC’ 상태는 변경내역 반영이 완료되었다는 의미
1
2
3
AWS WAF: API를 통한 WAF 리소스 변경 절차
126. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
GetChangeToken
모든 API 요청의 시작은 Change Token으로 컨텍스트를 변경하는 것부터 시작
$ aws --endpoint-url https://waf.amazonaws.com/ waf get-change-token
Returns ::
{
"ChangeToken”:"d4c4f53b-9c7e-47ce-9140-0ee5765d6bff"
}
127. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Create* Set
받아온 토큰을 이용하여 WebACL, Rule, Conditions 생성 작업 수행
$ aws --endpoint-url https://waf.amazon.com/ waf create-web-acl
--name BetaTest
--metric-name BetaTest
--default-action Type=ALLOW
--change-token d4c4f53b-9c7e-47ce-9140-0ee5765d6bff
128. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
GetChangeTokenStatus
ChangeToken 작업의 처리 상태를 리턴
$ aws --endpoint-url https://waf.amazonaws.com/ waf get-change-token-status
--change-token d4c4f53b-9c7e-47ce-9140-0ee5765d6bff
Returns ::
{
"ChangeTokenStatus”: ["PROVISIONED", OR "PENDING", OR "INSYNC”]
}
• Provisioned : 토큰이 발급되었지만 아직 작업 수행할 수 있는 상태는 아님
• Pending : 모든 WAF인스턴스로 변경 작업이 전파되고 있는 중.
• InSync : 토큰 변경에 대한 내용이 전파 완료됨
129. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Update*Set
토큰을 가지고 WebACL, Rule, Conditions Update. 예) IPSet 에 IP 추가
$ aws --endpoint-url https://waf.amazonaws.com/ waf update-ip-set
--ip-set-id
--change-token d4c4f53b-9c7e-47ce-9140-0ee5765d6bff
--updates
[
{"Action": "INSERT",
"IPSetDescriptor":
{"Type": "IPV4",
"Value": "192.168.0.0/16"}
},
{"Action": "INSERT",
"IPSetDescriptor":
{"Type": "IPV4",
"Value": "192.168.5.0/24"}
}
]
130. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
GetSampledRequests
최대 3시간동안의 처리건 중,
지정된 시간 구간에 해당하는
최대 500건의 상세 처리 내역을
리턴.
{
"MaxItems": number,
"RuleId": "string",
"TimeWindow": {
"EndTime": number,
"StartTime": number
},
"WebAclId": "string"
}
Return ::
{
"SampledRequests": [
{
"Action": "BLOCK",
"Timestamp": 1441839596.476,
"Request": {
"Country": "IE",
"URI": "/",
"Headers": [
{
"Name": "Host",
"Value": "d123abc.cloudfront.net"
},
{
"Name": "User-Agent",
"Value": "curl/7.30.0"
},
"ClientIP": "54.240.197.225",
"Method": "GET",
"HTTPVersion": "HTTP/1.0”
……
131. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
필요한 부분…
• IPSet: 차단되는 IP들을 담고 있는 IP차단그룹
• Rule: IPSet의 IP들을 차단하는 Rule
• WebACL: default로 모든 요청을 허용하고 상기 IP Rule을 담고 있는 WebACL
• Bad Bot을 탐지하는 로직(detection)
• Bad Bot IP주소를 IPSet에 포함시키는 로직(blacklisting)
• 동작 순서
1. 웹 루트에 있는 robots.txt 를 이용하여 스크랩을 불허하는 영역을 지정
2. non-scrapable 컨텐츠를 가리키는 링크 생성
3. 일반 사용자나 정상적인 Bot은 보이지 않도록 설정
4. Bad bot은 robots.txt를 무시하고 hidden link를 요청하게 됨.
5. Lambda 함수가 해당 요청건의 요청 IP를 식별하고 AWS WAF API를 이용하여 식별된 Ip를 IPSet blacklist에 추가.
6. IPSet rule을 포함한 WebACL은 들어오는 동일 IP로 부터 들어오는 요청들을 차단시킴
WAF Example: Blocking Bad Bots
$ cat webroot/robots.txt
User-agent: *
Disallow: /honeypot/
<a href="/honeypot/" class="hidden" aria-
hidden="true">click me</a>
132. Fortinet
3.
General+Known
취약점•고도화된 룰셋
•OWASP Top10의
일반적인 공격 유형
•알려진 취약점 기반
•FortiGuard Lab. 최신
탐지 내역 포함
•Injection 공격
•URL redirects
•HTTP response
splitting
2. BAD BOTS
•탐지 내역
•악성 봇
•컨텐츠 스크랩퍼
•취약점 스캐너
•특화된 보호
•알려진 허가되지
않은 자동화
클라이언트들로
부터 방어
1. SQLi+XSS
•기본 보호 규칙
•SQL Injection
•Cross Site
Scripting
•부가적으로 AWS
WAF의 XSS/SQLi
방어 규칙을 함께
적용 가능
4. OWASP Rules
• OWASP Top10의 모든
공격 유형들
• 왼쪽 3가지 룰셋을
전부 포함
• FortiGuard Lab. 최신
탐지 내역 포함
133. Imperva
• 평판 정보 기반 보호
• Spammer, 봇 감염 싸이트 등에 대한 Black
listing
• 구글, 빙, 바이두 등 검색엔진 싸이트 등에 대한
White listing
1. Managed Rules for IP Reputation 2. Managed Rules for WordPress
Protection
• WordPress를 기반으로 만들어진 웹
어플리케이션에 대한 보호
• WordPress 취약점들에 대한 탐지 및 요청 차단
• 수십년간의 보안 분야 경험과 모범 사례 – Imperva의 시장 선도적인 WAF 기술 기반
• 새롭게 발견되는 보안 위협들에 대한 보호 강화 – 정기적으로 Imperva 보안 연구팀이 모니터링,
룰 튜닝, 업데이트 등을 수행
134. Trend Micro
2. Content Management Servers (CMS)
Rules
WordPress, Joomla, Drupal 등의 CMS및
EMS환경을 알려진 취약점 기반
공격으로 부터 보호하고 PCI DSS 요건을
준수하는데 도움을 줌.
Trend Micro는 zero-hour 공격을
방어하기 위한 선제적인 글로벌 지능형
방어 체계를 제공.
1. Rules for Nginx and Apache servers
Protects web servers, including the
Apache Suite (Apache Httpd, Apache
Struts, Apache Tomcat)와 Nginx를
토대로 운영되는 웹 싸이트에 대해
알려진 취약점 기반 공격으로 부터
보호하고, PCI DSS요건을 준수하는데
도움을 줌.
135. Trustwave
2. CMS Virtual Patches1. ModSecurity Virtual Patches
Adobe, Apache, MS제품들, SAP 등의
환경들에 대한 총 150개 이상의 Virtual
Patch 기능 제공.
Trustwave Spider Lab.에서 계속해서
추가중임.
WordPress, Joomla, Drupal 등의 CMS
환경들에 대한 175개 이상의 Virtual
Patch 기능 제공.
Trustwave Spider Lab.에서 계속해서
추가중임.
136. Alert Logic
• 보안 전문가가 직접 작성한 보호 규칙
• 룰 튜닝 불필요.
• 최근 6개월 내의 알려진 WordPress
취약점 보완
1. WordPress 용 Virtual Patch
137. F5
SQLi, XSS, 명령어
주입(command
injection), No-SQL
인젝션, 경로 탐색(path
traversal), predictable
resource
Apache, Apache Struts, Bash,
Elasticsearch, IIS, JBoss, JSP,
Java, Joomla, MySQL,
Node.js, PHP, PHPMyAdmin,
Perl, Ruby On Rails,
WordPress.
취약점 스캐너, 웹
스크랩퍼, 디도스
도구, 스팸 도구
1. 웹 취약점
(OWASP)
2. CVE 취약점 3. 악성 봇 방어
138. Marketplace Rulesets
• Alert Logic's Managed Rules for AWS WAF Virtual Patches for
WordPress
• Fortinet Managed Rules for AWS WAF - Malicious Bots
• Fortinet Managed Rules for AWS WAF - SQLi/XSS
• Fortinet Managed Rules for AWS WAF - General and Known
Exploits
• Fortinet Managed Rules for AWS WAF - Complete OWASP Top 10
• Imperva - Managed Rules for Wordpress Protection on AWS WAF
• Imperva - Managed Rules for IP Reputation on AWS WAF
• Trend Micro Managed Rules for AWS WAF - WebServer (Apache,
Nginx)
• Trend Micro Managed Rules for AWS WAF - Content Management
System (CMS)
• Trustwave Managed Rules for AWS WAF - ModSecurity Virtual
Patching
• Trustwave Managed Rules for AWS WAF - CMS Virtual Patches
139. Managed Rule Set 이용 유의점
• 웹 ACL당, AWS Marketplace 규칙 그룹 하나만 활성화할 수 있습니다(웹 ACL당 10개의
규칙 제한에 포함). 단일 웹 ACL에는 AWS Marketplace 규칙 그룹 1개와 최대 9개의
사용자 지정 규칙이 있을 수 있습니다.
• AWS Marketplace 규칙 그룹에서는 제공자의 지적 재산을 보호하기 위해 개별 규칙을
볼 수 없으며, 규칙 그룹 내에서 규칙을 편집할 수도 없습니다. 이러한 제한을 통해
악의적인 사용자가 게시된 규칙을 교묘하게 회피하는 위협을 설계하는 것을 방지할 수
있습니다.
• AWS Marketplace 규칙 그룹에는 [No override] 및 [Override to count]라는 두 가지
가능한 작업이 있습니다. 규칙 그룹을 테스트하려면 작업을 [Override to count]로
설정합니다. 이 규칙 그룹 작업은 그룹에 포함되어 있는 개별 규칙에서 지정된 모든
차단 작업을 재정의합니다. 즉, 규칙 그룹의 작업이 [Override to count]로 설정되면
그룹 내 개별 규칙의 작업에 따라 일치하는 요청을 잠재적으로 차단하는 대신 해당
요청의 처리건수만 계산됩니다. 반대로, 규칙 그룹의 작업을 [No override]로 설정하면
그룹 내 개별 규칙의 Action대로 수행됩니다.
140. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Types of Attack
Open Web Application Security Project Top 10 (https://d0.awsstatic.com/whitepapers/Security/aws-waf-owasp.pdf)
A1:2017 Injection – SQL, NoSql, command, LDAP
A2:2017 Broken Authentication – Password, keys, session token
A3:2017 Sensitive Data Exposure – Personal information, CC fraud, identity theft
A4:2017 XML External Entity (XXE) – XML document exposure of internal entity ref.
A5:2017 Broken Access Control – User account breach
A6:2017 Security Misconfiguration – Web app exploits due to use of default/ad hoc config
A7:2017 Cross-Site Scripting (XSS) – Hijack user session, deface website, redirects
A8:2017 Insecure Deserialization – Replay, injection, privilege escalation
A9:2017 Using Components with Known Vulnerabilities – Library, framework exploits
A10:2017 Insufficient Logging & Monitoring – Over 200 days to detect a breach!
Forced Browsing
Bots
ScrapersTrojans
Parameter Tampering
Clickjacking
ZeroDay
Path Traversal
141. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Protection/Operation Strategy
• Negative Security Model – Blacklist based
• Known signatures
• Knows vulnerabilities
• Easy to fingerprint
• Periodic updates
• Unaware of code change
• Allow everything else
• Positive Security Model – Whitelist based
• Allow only known wanted traffic
• Auto block against known bots
• Learning mode
• Dynamic conditions/rules update based on log analysis
• Real-Time traffic analysis
• Dynamic counter attack mitigation
• Block everything else
142. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
IP Reputation Lists
Amazon
CloudFront
a b
c
Known-Attacker Protection
AWS Lambda
IP Lists Parser
Amazon
CloudWatch
event
Third-Party IP
Reputation Lists
AWS WAF
Amazon Confidential
143. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Honeypot
Bad Bot
Scraper Protection
Amazon
CloudFront
AWS Lambda
Access Handler
AWS WAF
b
c
d
web application
resources
<a href="/v1/name/" style="display: none"
aria-hidden="true">honeypot link</a>
a
Amazon Confidential
Amazon API
Gateway
Honeypot Endpoint
144. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Onboarding - Sophisticated
• Start with OWASP top 10 CloudFormation template
• Run WAF pentest (provide some online vendor example)
• saintcorporation.com, dimatas.com, picussecurity.com, qualys.com,
owasp.org/index.php/Appendix_A:_Testing_Tools
• Add custom rules based on test results
• Block everything else
• Monitor and analyze logs for anomalies
• Finds repetition rate of the same IP and 404 or the same IP and different UA
• Use Machine Learning for analysis and auto rules update.
• Block based on attack pattern learning
• SQLi with brute force or Forced browsing attempts
145. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Example: Blocking bad UA using string match
Block unwanted user agent headers and use transforms to stop evasion:
Host: www.example.com
User-Agent: bAdBoT
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referrer: http://www.InTeRnEtkItTiEs.com/
Connection: keep-alive
AWS
WAF
CloudFront
Check: Header “User-Agent”
Transform: To lower
Match Type: Contains
Match: “badbot”
Action: BLOCK
Scraper bot
146. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS WAF
Rule
Allow, Count, Block
Rate-Based Rule
Count, Block
Rule
Allow, Count, Block
Match Condition
SQL injection
Match Condition
Cross-site scripting
Match Condition
Size constraint
Match Condition
IP addresses
Managed Rules
No override, Override to count
WebACL
WebACL
Match Condition
String and Regex
Match Condition
Geo match
Rule
Allow, Count, Block
Rule
Allow, Count, Block
Rule
Allow, Count, Block
147. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Summary (best Practice)
• Adopt positive security model for your rules, when possible.
• Follow OWASP - Implement TOP 10 (check if applicable to your web app?)
• Apply Geo-blocking
• Run WAF pentest
• Use CloudFront field-level encryption to mask sensitive data
• Monitor and analyze logs for anomalies
• Identify hostile requests (Unicode)
• Use Machine Learning for analysis and auto rules update.
• Track and block bad users
• Avoid ZeroDay
• Keep frameworks and software updated and patched.