Security on AWS: WAF, AWS Inspector, Config Rules
임기성, 솔루션즈 아키텍트, AWS
• WAF
• Inspector
• Config Rules
목차
AWS WAF
기존 WAF 제품
• 제대로 구축하기가 어렵고 시간이 많이 걸림
• 오탐율이 많은 규칙들
기존 WAF 제품
• 자동화를 위한 API 부족
기존 WAF 제품
• 웹 요청에 대한 허용 또는불허
• 보안 이벤트 모니터링
AWS WAF
• 신규 API와 콘솔 • 웹싸이트와 컨텐츠에 대한보호
Amazon CloudFront
AWS WAF
• 쉽게 구성 • 유연한 커스터마이징
• 개발과 통합
AWS WAF의 장점
1. web ACL 생성
ALLOW requests by default, but…
2. Rule 추가
BLOCK if…
3. Conditions 부여
the source IP matches this list…
4. CloudFront
연계
for any request to
d123.cloudfront.net.
AWS WAF 구성 절차
• IPSets
CIDR notation on octet boundaries:
• 192.0.0.0/8 – Matches 192.*.*.*
• 192.168.0.0/16
• 192.168.32.0/24
• 92.168.32.64/32 – 단일 IP 주소 조건 부여
• Strings and bytes
웹 요청의 어느 부분에 대해서도 시그니쳐 탐색 가능
적용 사례: Referrer whitelisting
Match conditions
• 웹 요청의 어느 부분에 대해서도 시그니쳐 탐색 가능
Host: www.example.comUser-Agent: Mozilla/5.0 (Macintosh; …Accept: image/png,image/*;q=0.8,*/*;q=0.5Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferrer: http://www.example.com/Connection: keep-alive
AWSWAF
RAW request headers
CloudFront
Check: Header “Referrer”Match Type: ContainsMatch: “example.com”
Action: ALLOW
Rule
String match condition
Good users
Match conditions: Strings and bytes
• 회피 기술을 무력화 하는 transforms
Host: www.example.comUser-Agent: bAdBoTAccept: image/png,image/*;q=0.8,*/*;q=0.5Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateReferrer: http://www.InTeRnEtkItTiEs.com/Connection: keep-alive
AWSWAF
RAW request headers
CloudFront
Check: Header “User-Agent”Transform: To lowerMatch Type: ContainsMatch: “badbot”
Action: BLOCK
Rule
String match condition
Scraper bot
Match conditions: Strings and bytes
• 유해한 바이너리도 탐색 가능.
“iVBORw0KGgoAAAAN”
8950 4e47 0d0a 1a0a 0000 000d
bad.bin
1. 바이너리 파일 선정 2. Base64 인코딩 3. 검색 기준에 설정
$> base64 bad.biniVBORw0KGgoAAAAN
Match conditions: Strings and bytes
/login?x=test%27%20UNION%20ALL%20select%20NULL%20--
/login?x=test’ UNION ALL select NULL --
Transform: URL Decode
True
Match: SQL Injection
• 쿼리 스트링을 체크하려면, ‘URL decode’ Transform 활성화
Match Conditions: SQLi
• 로그인 페이지와 같이 특정 URIs에 대해 접근을 제한.
IP match
String match
복합 conditions
• Rule 에 대한 우선순위 & 디폴트 Action.
Rule Order
• web ACL의 모든 부분을 재사용 가능.
CloudFront distributions
Web ACL #1
Web ACL #2
공유된 블랙리스트
Conditions 재사용
• Rule의 실제 작동 결과를 용이하게 확인 가능
Rule 적용 결과 확인
• 선수금 없음
• 한달 동안 web ACL 당 5$, rule 당 1$
• 백만 요청 당 $0.60
• 사례 :
테스트 환경 (1 rule): $6 / 월
작은 규모 (6 rules, 58M views): $46 / 월
중간 규모 (6 rules, 260M views): $167 / 월
요금 체계
Count mode
Amazon CloudWatch metric에 의한 경보
샘플 요청 수집
식별된 ‘bad IP’ 를 BlackList에 추가
공격자 식별에 ‘count rule’ 활용하기
• Alert Logic (PoC 레벨)
Good users
Bad guys
Server
AWS WAF
블랙리스트 업데이트
행위 분석 자동 반영
AWS Inspector
• Agent 기반 - 어플리케이션 보안 수준 진단
• 빌트인 진단 rule 선택 적용
• 보안 진단 결과 – 가이드 제공
• API를 통한 자동화
AWS Inspector 란 무엇인가?
• 인프라에 대한 보안을 적용하는 것이 종종 비싸거나 효과적이지 않
기 때문에.
• Inspector 는 자동화되고, 반복적으로 적용하여 비용을 절감하고 효과적으
로 보안성을 높이도록 제작됨.
• 고객 서버, 서비스, 인프라의 보안을 강화하는데 주력해온 AWS의 보안 노
하우를 활용.
• 구체적으로 실행 가능한 해결책에 대해 자세하게 가이드.
왜 Inspector를 사용하는 것이 좋은가?
1. EC2인스턴스 상에 하나의 서비스로서 설치.
2. 고객 어플리케이션에 대한 정보를 가지고 인스턴스에 대한 Tag
정보 입력.
3. Inspector의 ‘application’ 과 ‘assessment’ 구성.
4. Inspector 기동.
5. 고객 서비스 플로우 테스트.
6. Inspector를 중단하고 결과가 나올때 까지 설정된 시간동안 대기
.
7. 진단 결과를 받고 적절한 조치를 실행.
어떻게 이용하는 것인가?
• Agent – EC2상에 설치되는 Inspector 모듈
• Application – 지정된 Tag 에 의해 그룹핑된 한개 이상의 리소스 집
합
• Assessment – application상에서 실행될, 선택된 Rule 패키지와
Configuration 조합.
• Findings – 진단 결과.
• Rule 패키지 – 6가지 선택 가능 : CVE / Network / OS /
Application / PCI DSS / 인증
• 원격 측정(진단)
Inspector 의 개념
• CVE (common vulnerabilities and exposures) – 수천개 항
목
• Network security best practices - 4 항목
• Authentication best practices – 9개 항목
• Operating system security best practices – 4개 항목
• Application security best practices – 2개 항목
• PCI DSS 3.0 readiness – 25개 항목
Rule 패키지
• EC2 ‘UserData’ 활용
• AWS CloudFormation 활용
신규 인스턴스 생성 시 쉽게 agent 설치
기존 인스턴스들에도 agent 배포
• 기타 다른 ‘DevOps’ 도구들과 연동 : Ansible, Chef, Puppet, Salt
기존 인프라에 적용
• API를 활용: 리소스 그룹핑, 진단결과 관리, 진단 작업 시작/중단
등
자동화 팁!
• GA전 까지 FREE.
• 제한 조건
• Applications: 50
• Assessments: 500
• Agents: 500
• Linux only (AL2015+, Ubuntu 14.04+)
• us-west-2 region (US West [Oregon])
현재는 제한된 preview 버전!
• 다양한 rules 과 패키지 추가
• 연계 환경 추가
• AWS Config Rules과 함께,
• 고객의 AWS 구성정보에 대한 진단.
• 전체 환경(어플리케이션 + AWS 인프라)에 대한 진단.
• Trusted Advisor와 함께,
• 보다 많은 보안 관련 체크 제공
The big picture !
AWS Config Rules
• 기록된 내역이 변경되는 것을 탐지하는 rules 설정.
• AWS가 제공하는 pre-built rules 사용.
• AWS Lambda를 활용한 커스텀 rule 지원
• 지속적인 진단수행을 자동화
• 컴플라이언스 시각화나 위험한 변경을 식별하기 위해 대쉬보
드 제공.
Config Rules(preview)
AWS Config
APIs
Rule R1: EC2 태깅 여부
Rule R3: CloudTrail 설정 여부
Rule R2: 운영환경 볼륨 암호화 여부
Normalize변경 내역 기록변경된 리소스
전달저장
스트림
스냅샷(ex. 2014-11-05)
이력
AWS Config & Config Rules
• AWS managed rulesAWS가 정의
minimal (or no) configuration 필요
AWS에 의해 관리되는 Rules
• Customer managed rulesAWS Lambda를 사용하여 정의
Rules들이 해당 account에서 실행됨
관리책임은 고객 몫
기록된 구성정보의 검증을 체크하는 한개의 rule.
Config Rule
• 변경작업에 의해 기동: Rules은 연관된 리소스가 변경될 때 기동.
Config Rules를 기동시키는 변경 작업들:
• Tag key/value
• Resource types
• Specific resource ID
e.g. ‘Production’으로 태깅된 EBS volume은 반드시 EC2 instance에 붙어 있어야 함.
• 주기적으로 기동: Rule이 지정된 빈도와 주기에 의해 실행됨.
e.g. 매 3시간 마다, 해당 Account가 3 대 이상의 “PCI v3” EC2 instance를 실행하고 있는지 확
인.
Config Rules - Triggers
1. 모든 EC2 instance들은 반드시 한개의 VPC상에 존재하여야 한다.
2. 모든 attached EBS volume들은 KMS ID를 가지고 반드시 암호화되어야 한
다.
3. CloudTrail은 반드시 활성화되어 있어야 하고, 선택적으로 S3 bucket, SNS to
pic, CloudWatch Logs와 함께 구성되는 것을 권장한다.
4. Attach 된 상태의 모든 security group은 반드시 port 22를 포함한 지정된 포
트에 대한 무제한 접근을 방지해야 한다.
5. VPC안에 사용을 위해 할당된 모든 EIP들은 반드시 인스턴스에 할당되어 있
어야 한다.
6. 모든 모니터링 되는 리소스들은 적절하게 tag keys:values로 태깅되어 있어
야 한다.
AWS managed rules
• 고객사 프랙티스를 자동화 하기 위해 코드로 구현.
• AWS Lambda에 관련 샘플로 간단히 시작 가능.
• 보안 베스트 프랙티스와 컴플라이언스를 위한 가이드 라인 구현.
• AWS파트너가 생성한 Rule도 활용가능.
• 단일 대쉬보드 상에 정리된 형태의 컴플라이언스 뷰를 제공.
Custom rules
Resource Type Resource
Amazon EC2 EC2 InstanceEC2 Elastic IP (VPC only)EC2 Security GroupEC2 Network Interface
Amazon EBS EBS Volume
Amazon VPC VPCsNetwork ACLsRoute TableSubnetVPN ConnectionInternet GatewayCustomer GatewayVPN Gateway
AWS CloudTrail Trail
Identity and Access Management IAM UsersIAM GroupsIAM RolesIAM Customer Managed Policies
Amazon EC2 Dedicated Hosts
지원되는 리소스 타입
• 월간 Active Rule의 갯수를 기반으로 과금.
Active Rule 당 월 $2.00 과금됨
(Rule 당 Evaluation 수가 20,000건을 넘으면 Evaluation 당 $0.0001 추가 과
금)
• Evaluation: 해당 Rule/리소스에 대한 1회의 결과. 한개의 Account안
에서 Rule간 Evaluation 결과는 공유될 수 있음.
• Active rule: 최소 월 1회의 evaluation 이 실행된 Rule.
• AWS Lambda를 통해 커스텀 Rule을 실행할 수도 있음(Lambda비용
별도)
Config Rules pricing
AWS Security and Compliance클라우드 자체의 보안
클라우드 위의 환경에 대한보안을 지원하는 서비스와도구들
Service Type Use cases
On-demand evaluations
EC2 상에서 운영중인 어플리케이션 환경에 대한 보안 점검
Continuous evaluations내부 베스트 프랙티스의 코딩화,관리실수/보안취약점 조치 또는변경에 따른 대응 절차
Periodic evaluations비용, 성능, 가용성, 보안에 대한전반적인 체크
Inspector
Config Rules
Trusted Advisor
AWS 보안 서비스/도구: 사용처?
감사합니다.