보안 서비스
- 📎보안 침해 서비스
- 대체로 DevOps에만 신경 쓸 뿐, 보안은 크게 신경 쓰지 않아 사고 발생
- 미국의 대형 은행(Capital One) 개인정보 유출 사고
- 2019년 7월 29일, 1억600만 명이 넘는 고객 개인정보가 해킹
- 해커는 Capital One의 방화벽 취약점을 악용해 고객 데이터에 접근
- 클라우드 서버 자체 취약점이 아닌
방화벽 설정을 잘못했기 때문
- 인도 혼다 자동차 민간 정보 유출 사고
- Honda Connect를 설치한 사용자 개인 정보가 저장된 AWS S3 버킷이 인터넷에 노출
- 최소 3개월 이상 노출
- 크립토재킹(Cryptojacking)
- 암호화폐 채굴에 타인의 클라우드를 불법적으로 사용
- 해커가 클라우드 계정을 탈취하고 클라우드 서버를 무작위로 활성화해 암호화폐 채굴
- 2018년, 캘리포니아 LA의 대형 일간 신문사에서 AWS S3 설정이 public open 설정 되어 피해 입음
- 클라우드 서버 비용을 피해자에게 전가
- 📎공동 책임 모델
AWS
클라우드 전반의 보안(Security ofthe Cloud )
AWS 서비스를 사용할 때 필요한 인프라(H/W, S/W, 시설, 네트워크 등)의 보안
- EC2, S3, DynamoDB, RDS 등
- 리전, 가용영역, 엣지 로케이션 등
고객
클라우드 사용의 보안(Security in the Cloud )
- EC2 사용시, guest OS의 패치 & 업데이트, 보안그룹, 방화벽, 네트워크 구성, IAM 등 관리
- 애플리케이션 데이터의 암호화
- 📎AWS의 보안
- 클라우드 환경에서 데이터, 애플리케이션, 인프라를 보호하기 위한 다양한 접근 방식 제공
- AWS의 다양한 서비스를 이용해 보안 위협을 탐지하고 대응
- 내부에서의 보안
- 외부에서의 보안
- Shield, WAF, Inspector, GuardDuty, Detective
- KMS, SSL/TLS, Amazon Certificate Manager(ACM)
- 공격 요소
- DDoS(HTTP Flood, SYN Flood 등)
- SQL injection, Cross-Site Scripting(XSS)
- 📎SQL injection
- 데이터베이스에 무단으로 접근하여 정보 검색 가능
- (예) 로그인 과정에서 아래와 같이 입력
- 사용자 이름 : admin
- 비밀번호 : anything ‘or ‘1’=‘1
- 사용자 입력 → SQL 쿼리로 변환
- "SELECT Count(*) FROM Users WHERE Username=
' admin ' AND Password=' anything 'or'1'='1 ' ";
- 결국, 비밀번호가 무엇이든 ‘1’ = ‘1’이 항상 참(True)이므로 로그인 성공!
- 📎Cross-Site Scripting(XSS)
공격자의 악성 스크립트로 사용자 공격(세션 탈취 등)
지속형 XSS 공격(Persistent XSS)
- 불특정 다수의 사용자 공격
- 공격자가 악성 스크립트를 서버에 저장해 웹사이트에 접속한 사용자 모두에게 피해 입힘
반사형 XSS 공격(Reflected XSS)
- 특정 사용자를 피싱
- 피싱 메일의 링크를 클릭하면 스크립트 코드 실행

- 📎AWS Shield
- DDoS 공격 방어 용도
Shield Standard
- 모든 AWS 사용자에게
무료로 제공
- DDoS 공격으로 부터 보호
- L3/L4의 공격 차단
- SYN/UDP Flood, Reflection Attacks
Shield Advanced
- 조직당 매달 $3,000 비용 발생(1년 약정)
→ DDoS로 인한 피해가 클 것으로 예상된다면 유료 사용 고려
- L7의 공격 차단
- EC2, ELB, CloudFront, Route53, Elastic IP와의 통합으로 향상된 공격 탐지 수행
- AWS의 DDoS 대응팀(DRP)에 24/7 요청 가능(연중무휴)
- CloudWatch를 통해 공격에 대한 실시간 통보 & 리포팅
- DDoS로 인해 발생한 스케일링 비용은 AWS에서 지불
- 📎AWS WAF(Web Application Firewall)
- HTTP(L7)를 사용하는 웹 애플리케이션을 보호
- L7관련 서비스에 배포 : ALB(Application Load Balancer), API Gateway, CloudFront 등
- Web ACL(Access Control List)에 규칙 정의
- IP 주소, HTTP 헤더, HTTP 바디, URI를 포함하는 규칙
- SQL injection, Cross-Site Scripting(XSS) 공격으로 부터 보호
- Geo-match(특정 국가 차단)
- Rate-based rule(동시 이벤트 수 제한) 설정

- 📎AWS Shield vs AWS WAF

출처: https://www.bespinglobal.com/product-solutions/aws-featured-products/

출처: https://docs.aws.amazon.com/ko_kr/whitepapers/latest/web-application-hosting-
- 📎AWS Network Firewall
VPC에 쉽게 배포할 수 있는 관리형 네트워크 보안 서비스로서 전반적인 위협을 차단
- L3 ~ L7의 모든 방향, 모든 트래픽을 필터링
- 기존의 문제점
- WAF의 경우 내부 EC2가 해킹 당한 후 EC2에서 외부로 정보 유출시 차단 불가
- 보안 그룹과 NACL은 IP와 PORT 단위로만 차단 가능
(도메인 기반(FQDN)으로 외부 연결 시 IP 주소가 자주 바뀌면 보안 그룹 및 NACL 설정이 쉽지 않음)
- 보안 그룹 및 NACL은 인스턴스와 서브넷 단위로만 설정(다수 서브넷 및 VPC 통제 X)
- L7 수준의 통제 및 감시 기능 부족
Network Firewall
- 다수의 서브넷이나 VPC 단위 및 Direct Connect / VPN 의 통제 및 감시 가능
- 인바운드/아웃 바운드 통제 및 감시 가능
- 도메인 기반(FQDN) 형태의 웹 필터링과 감시 가능
- 패턴 매칭 방식의 L7 통제 및 감시 가능

출처: https://miro.medium.com/v2/resize:fit:1400/0*d2fsoxn2lXc07CjM.png
- 📎WAF vs Network Firewall

출처: https://ipwithease.com/web-application-firewall-vs-network-firewall/
- 📎Amazon Inspector
자동화된 취약성 관리 서비스
- 소프트웨어의 취약성과 네트워크 노출을 지속적으로 스캔
CVE(Common Vulnerabilities and Exposures, 알려진 취약점) 정보를 기반으로 스캔
- 아래 3가지 항목에 대해 분석 결과 제공
EC2
- AWS System Manager(SSM) agent를 활용해서
- 의도하지 않은 네트워크 접근을 분석 & 실행중인 OS의 취약점 분석
- 네트워크 도달성(Network reachability) 분석
컨테이너 이미지
- Amazon ECR로 푸쉬(Push)되는 이미지 분석
람다(Lambda) 함수
* 람다함수 배포시 함수 코드 및 의존성에 대한
취약점 분석
- 우선순위를 위해 취약점에 따른 리스크 점수(Risk Score) 부여
- 📎Amazon GuardDuty
AWS 계정에 대한 보호하기 위해 지능형 위협 검색(Intelligent Threat Discovery) 수행
- 머신러닝 알고리즘, 이상탐지(Anomaly detection), 서드파티(3th party) 데이터 활용
- CloudTrail 이벤트 로그, VPC Flow 로그, DNS 로그 등을
입력 데이터로 활용
- 비정상적 API 호출, 무단 배포
- VPC 생성과 같은 관리 이벤트, S3 객체의 조회, 삭제 등과 같은 데이터 이벤트
- 비정상적인 트래픽, 비정상적인 IP 주소
- RDS, Aurora, EBS, Lambda 등 로그 이벤트
- CloudWatch Event 룰 설정을 통해 침해 시도
감지 및 대응
(시험) 암호화폐 공격(CryptoCurrency attack)을 보호
- 전용 검색 기능 제공
- 모든 입력 데이터를 분석해서 암호화폐 공격이 있는지 알아냄
- 📎Amazon Detective
- 보안 문제, 의심스러운 활동의 근본적인 원인을 빠르게 조사, 분석, 파악
- VPC flow 로그, CloudTrail 로그, GuardDuty, 등 여러 보안 조사 결과를 통합해 분석 가능
- 동작 그래프의 데이터를 사용해 조사 수행
- 전체 계정을 통합해서 보안 위협이 있는지 탐색
- 효율적인 조사를 위한 대화형 시각화 제공 → 근본적인 원인 파악

출처: https://aws.amazon.com/ko/detective/features/
- 📎AWS Abuse
- IP 주소, EC2 인스턴스의 부정 사용 혹은 불법 사용이 의심되면 신고 가능
- 신고 : AWS abuse form or abuse@amazonaws.com
- 예시
- 스팸 : AWS 리소스를 이용한 스팸 메일
- 포트 스캐닝 : AWS에서 허용하지 않는 포트 스캔 시도
- DDoS Attack
- 침입 시도 : 모르는 사람의 로그인
- AWS 내에 불법 콘텐츠 호스팅(저작권 등)
- 악성 프로그램(malware) 배포 금지
- 📎암호화
저장 중 암호화
- 물리적 디바이스에 저장 또는 아카이브
- EFS, 하드 디스크, RDS 인스턴스, S3 등에 암호화해서 저장
- KMS
- 암호화 키를 이용
- 대칭키 : 송신자와 수신자가 같은 키 사용(DES, AES(AES-128,
AES-256 등), SEED 등)
- 비대칭키 : 수신자의 공개키를 이용해 암호화 → 수신자의 개인키를 복호화(RSA, DSA, ECC 등)
전송 중 암호화
- 장소를 이동하는 동안에 암호화해서 전송
- On-premise → AWS, EC2 → DynamoDB, EFS → S3 등
- SSL/TLS
- Certificate Manager
- 📎KMS(Key Management Service)
- AWS의 중심이 되는
암호화 서비스(완전 관리형)
- 데이터를 암호화하거나 디지털 서명할 때 사용하는 키를 생성 및 제어
- 비대칭키 생성 및 사용(서명 키, 암호화 키 등)
- 키의 수명 주기(키 생성, 활성화, 비활성화 등)와 권한을 중앙 집중식으로 제어
- CloudTrail과 연계하여 키 사용
내역 감사
- CloudTrail을 활성화할 경우, AWS KMS에 대한 각 요청이 로그 파일 기록
- 누가 어느 리소스에서 언제 키를 사용했는지 감사
- 비대칭 키를 사용하여 디지털 서명을 검증하는 서명 작업 수행
- 디지털 서명 : 송신자의 개인키로 암호화 → 송신자의 공개키로 복호화
- KMS 키 종류
Customer Managed Key : 고객이 생성, 관리, 사용에 대한 부분을 활성화 & 비활성화
AWS Managed Key : AWS가 생성, 관리, 사용에 대한 부분을 활성화 & 비활성화
AWS Owned Key : AWS가 소유한 키를 여러 사용자(계정)가 사용(고객은 열람할 권한 없음)
- 📎SSL/TLS
- HTTPS에서
SSL/TLS 인증서 사용 → 웹사이트 전송 중 암호화
SSL(Secure Sockets Layer)
- 암호화 기반 인터넷 보안 프로토콜
- 전송되는 데이터를 암호화 & 사이버 공격 차단
TLS(Transport Layer Security)
- SSL의 업데이트 버전
- SSL을 개발한 Netscape가 업데이트 참여 안함에 따라 소유권 변경을 위해 이름 바꿈
(시험) AWS Certificate Manager(ACM)
- AWS의 SSL/TLS 인증서 프로비저닝, 배포 서비스
(전송 중 암호화)
자동 인증서 관리를 통해 인증서 갱신 등의 인증서 유지 관리 작업 수행
- 무료 인증서 AWS 서비스를 통합해서 사용 가능(ELB, CloudFront, API Gateway 등)
- SSL/TLS 인증서용 프라이빗 키 관리
- 📎AWS Secrets Manager
- 최근 출시된 유료 서비스($0.40/mon)
- 암호를 저장하고, 일정 주기(x 일)마다 암호를 바꾸도록 강제할 수 있음
- 암호는 KMS를 통해 암호화됨
- Lambda를 통해 암호를 자동 생성 가능
- Amazon RDS를 통해 통합됨
- AWS Secrets Manager를 통해 RDS 비밀번호를 자동으로 바꿀 수 있다는 의미
(시험) RDS 등의 데이터베이스 자격증명을 위해 관리되고 교체되는 암호
- 📎AWS Config
- 클라우드 인프라의 거버넌스, 규정 준수 및 리스크 관리를 위한 필수 도구
- AWS 리소스에 대한 규정 준수 사항을 기록 & 감사 지원
- AWS 리소스의 현재 및 과거 구성 정보를 기록
- 수동으로 변경하는 모든 사항을 S3에 기록함
- 시간에 따른 구성 변경 사항 추적 가능(변경 이력을 시간 순으로 확인 가능)
- 구성 변경에 대한 것을 S3에 기록함으로써 Athena를 통해 분석 가능
- Config 규칙으로 문제 해결 사례
- 보안 그룹에 통제되지 않은 SSH 접근 여부 확인
- 버킷의 공용 접근(public access) 여부 확인
- 규정 준수 상태를 실시간으로 확인 & 규정 위반시 자동 알림(SNS) 가능
- 📎Amazon Macie
기계학습과 패턴 매칭을 사용해 민감한 데이터를 자동으로 검색, 분류, 보호
- 완전 관리형 데이터 보안 및 데이터 프라이버시 서비스
개인 식별 정보(Personally Identifiable Information, PII)를 식별 & 알람
- 고객 정보, 금융 데이터 등 민감한 정보 식별
- Amazon EventBridge를 이용해 SNS, lambda 함수와 통합해서 이벤트 기반 워크플로우 구축
- (예) S3 버킷에 민감한 데이터가 저장되면 알람
- 📎AWS Security Hub
- 현재 보안 및 규정 준수 상태를 통합 대시보드에서 보여줌
- 단, AWS Config 서비스가 활성화되어야 함
- 다양한 서비스 및 도구와 자동으로 통합되어 관리
- Config
- GuardDuty
- Inspector
- Amazon Macie
- IAM Access Analyzer
- AWS Systems Manager
- AWS Firewall Manager
- AWS Health
- AWS Partner Network Solutions

출처: https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2022/11/18/img9-2.png
- 📎루트 사용자 권한(Root user privileges)
- 루트 사용자
- 처음 계정을 생성할 때 만들어짐
- AWS 서비스와 리소스에 대한 모든 권한을 가짐
- 루트 사용자는 최대한 사용하지 말 것!
- 루트 사용자로만 해야 하는 작업
- 계정 변경 설정(이름, 이메일, 비밀번호, access key)
- 비용 조회(invoices)
- 계정 삭제
- IAM 사용자 퍼미션 설정
- AWS Support plan 변경
출처: 인덕대학교 컴퓨터소프트웨어학과 공준익 교수님 수업자료