네트워크보안 11주차

김강찬·2024년 11월 15일
0

보안 서비스

  • 📎보안 침해 서비스
    • 대체로 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의 다양한 서비스를 이용해 보안 위협을 탐지하고 대응
    • 내부에서의 보안
      • IAM, 모니터링, 거버넌스
    • 외부에서의 보안
      • Shield, WAF, Inspector, GuardDuty, Detective
      • KMS, SSL/TLS, Amazon Certificate Manager(ACM)
      • 공격 요소
        • DDoS(HTTP Flood, SYN Flood 등)
        • SQL injection, Cross-Site Scripting(XSS)

  • 📎DDoS(Distributed Denial-of-Service)

    • HTTP 폭주 공격(HTTP Flood Attack)

      • HTTP 요청을 서버가 처리할 수 없는 상태까지 보냄
      • OSI 7계층 (HTTP 프로토콜 활용) 공격 유형
      • HTTP 폭주 공격 완화
        • 캡차(CAPCHA), 봇 여부 테스트, JavaScript 계산 문제 등
        • WAF(Web Application Firewall) : 관리자가 정의한 규칙에 따라 공격완화
      • (참고) 성능 및 부하 테스트 도구 : Jmeter(오픈소스)
    • TCP SYN 폭주(SYN Flood) 공격

      • 프토코콜의 특성을 악용해 방화벽, IPS, 로드밸런서와 같은 시스템을 무력화
      • OSI 4 계층(TCP 프로토콜) 공격 유형
      • TCP 3-way handshaking을 활용한 공격
        • 표적 서버로 대량의 SYN 패킷을 전송
        • 서버는 SYN+ACK를 보내고 ACK를 수신하기 위해 임의의 포트를 열어놓고 대기
        • 계속 SYN 패킷을 받으면 서버는 가용 포트를 모두 소진하고, 최종적으로 정상적인 서비스 불가 상태로 됨
    • UDP Reflection Attacks(반사 공격)

      • OSI 3 계층(IP 프로토콜) 공격 유형
      • 정상적으로 처리할 수 없을 만큼 많은 트래픽을 보내 네트워크 기능을 마비
        • UDP의 Stateless 프로토콜의 특성을 악용
        • 공격자는 스푸핑한 IP 주소로 많은 트래픽을 표적 서버로 보냄
        • (예) DNS의 경우 원래 크기보다 28~54배로 증폭됨(64byte → 3400byte 이상)

  • 📎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 변경

출처: 인덕대학교 컴퓨터소프트웨어학과 공준익 교수님 수업자료

profile
개발자가 되고픈 학생

0개의 댓글