VPC Flow Log 모니터링 또는 주기적 검토

ZER0·2022년 9월 24일
0

AWS 보안 설정 가이드

목록 보기
41/47
post-custom-banner

1. 관련 법령


2. 개요

  • VPC 네트워크 트랜잭션의 이상 행위 및 장애 대응을 위해 VPC Flow Log 실시간 모니터링 또는 주기적 검토 필요

3. 취약점 판단 기준

  • VPC Flow Log에 대해 실시간 모니터링 또는 주기적으로 검토하지 않는 경우 취약
  • VPC Flow Log에 대해 실시간 모니터링 또는 주기적으로 검토하는 경우 취약하지 않음

4. 취약점 확인 방법

  • 담당자 인터뷰 및 관련 증적을 통해 VPC Flow Log에 대한 실시간 모니터링 또는 주기적 검토를 수행하였는지 확인

5. 취약점 조치 방법

  • [알림] 다양한 방법이 있을 수 있으나 본 항목에서는 S3와 Athena를 활용해 VPC Flow Log를 검토하는 방법을 안내
  • 관리 콘솔에서 [Athena] 검색 → [쿼리 편집기] → [설정] → [관리] 클릭
  • Athena 쿼리 결과를 저장할 S3 경로 설정
  • [쿼리 편집기] → [편집기] 탭에서 SQL 쿼리문(1)을 활용해 VPC Flow Log 테이블 생성
    • SQL 쿼리문(1)
      CREATE EXTERNAL TABLE IF NOT EXISTS `vpc_flow_logs` (
        `version` int, 
        `account_id` string, 
        `interface_id` string, 
        `srcaddr` string, 
        `dstaddr` string, 
        `srcport` int, 
        `dstport` int, 
        `protocol` bigint, 
        `packets` bigint, 
        `bytes` bigint, 
        `start` bigint, 
        `end` bigint, 
        `action` string, 
        `log_status` string, 
        `vpc_id` string, 
        `subnet_id` string, 
        `instance_id` string, 
        `tcp_flags` int, 
        `type` string, 
        `pkt_srcaddr` string, 
        `pkt_dstaddr` string, 
        `region` string, 
        `az_id` string, 
        `sublocation_type` string, 
        `sublocation_id` string, 
        `pkt_src_aws_service` string, 
        `pkt_dst_aws_service` string, 
        `flow_direction` string, 
        `traffic_path` int 
      )
      PARTITIONED BY (`date` date)
      ROW FORMAT DELIMITED
      FIELDS TERMINATED BY ' '
      LOCATION 's3://DOC-EXAMPLE-BUCKET/prefix/AWSLogs/{account_id}/vpcflowlogs/{region_code}/' # S3에 저장된 VPC Flow log 경로(ex. s3://demoflowlogbucket/AWSLogs/348467123123/vpcflowlogs/ap-northeast-2/)
      TBLPROPERTIES ("skip.header.line.count"="1");
  • SQL 쿼리문(2)를 활용해 VPC Flow Log 테이블의 파티션 생성
    • SQL 쿼리문(2)
      ALTER TABLE vpc_flow_logs
      ADD PARTITION (`date`=**'YYYY-MM-dd'**) **# 날짜 입력**
      LOCATION 's3://DOC-EXAMPLE-BUCKET/prefix/AWSLogs/{account_id}/vpcflowlogs/{region_code}/YYYY/MM/dd'; # 파티션을 생성할 S3 로그 경로 지정(ex. s3://demoflowlogbucket/AWSLogs/348467123123/vpcflowlogs/ap-northeast-2/2022/03/08/)
  • SQL 쿼리문(3)를 활용해 VPC Flow Log 검토(예제 쿼리는 AWS 도큐먼트 참고)
    • SQL 쿼리문(3)
      SELECT day_of_week(date) AS
        day,
        date,
        interface_id,
        srcaddr,
        action,
        protocol
      FROM vpc_flow_logs
      WHERE action = 'REJECT' AND protocol = 6
      LIMIT 100;
profile
Security Compliance Engineer
post-custom-banner

0개의 댓글