Ssoon

Security Automation for AWS WAF - AWS WAF Log parser 본문

AWS Hacking & Security Study

Security Automation for AWS WAF - AWS WAF Log parser

구구달스 2023. 9. 12. 02:06
CloudNet@가시다님이 진행하는 "AWS Hacking & Security Study" 1기 스터디입니다.
# [AWS Workshop Studio] Security Automation for AWS WAF 를 참조하였습니다.

 < AWS WAF Log parser > 

AWS WAF로부터 생성된 로그 데이터를 읽어서 그 안에 포함된 보안 이벤트와 관련된 정보를 추출하는 도구입니다. 이렇게 추출된 정보는 보안 분석, 모니터링, 보고서 생성 등 다양한 용도로 활용됩니다.

  • AWS WAF에서 생성되는 로그 데이터를 읽어들이고, 이 데이터에서 웹 애플리케이션 공격 및 보안 이벤트에 관한 정보를 추출하는 역할
  • AWS WAF로부터 수집한 로그 데이터를 분석하고 웹 애플리케이션 보안을 모니터링하며 대응 조치를 취하는 데 사용

🧿 Parser

  • 로그 데이터에서 원하는 정보를 추출하고 해석하는 도구(소프트웨어 또는 코드)
  • 일반적으로 특정 형식의 데이터를 다른 형식으로 변환하거나 특정 필드에서 데이터를 추출하는 작업을 수행

🧿 Log parser - Application

  • Application log parser 는 스캐너와 프로브로부터 보호하는 데 도움

1. CloudFront 또는 ALB는 웹 애플리케이션을 대신하여 요청을 받으면 Amazon S3 버킷에 액세스 로그를 보냅니다.

  • CloudFront 또는 ALB 액세스 로그 수집: 웹 애플리케이션에 들어오는 요청은 Amazon CloudFront(콘텐츠 전송 네트워크) 또는 Application Load Balancer(ALB)를 통해 받습니다. 이런 요청들을 기록하기 위해, AWS는 이 로그 데이터를 Amazon S3 버킷으로 보냅니다. 이 로그에는 누가 어떤 요청을 보냈는지와 같은 정보가 담겨 있습니다.

2. 템플릿 매개변수인 Activate HTTP Flood ProtectionActivate Scanner & Probe Protection 에 대한 선택에 따라 이 솔루션은 다음 중 하나를 사용하여 로그를 처리합니다.

  • Log Parser Lambda function 이 시작
    • AWS Lambda 함수가 로그 데이터를 분석합니다. 이 함수는 로그에서 보안 이벤트와 관련된 정보를 추출하고 처리합니다. 예를 들어, HTTP Flood Protection과 관련된 보안 이벤트를 찾아냅니다.
  • Athena - 기본적으로 5분마다 Scanner & Probe Protection Athena 쿼리가 실행되고 출력은 AWS WAF로 푸시됩니다. 이 프로세스는 CloudWatch 이벤트에 의해 시작되며, 이 이벤트는 Athena 쿼리 실행을 담당하는 Lambda 함수를 시작하고 결과를 AWS WAF로 푸시합니다.
    • Amazon Athena라는 서비스를 사용하여 로그 데이터를 분석합니다. Athena는 정기적으로(기본적으로 5분마다) 로그 데이터를 검색하여 Scanner & Probe Protection과 관련된 데이터를 추출하고 AWS WAF로 보냅니다.
  • 솔루션은 로그 데이터를 분석하여 정의된 할당량보다 더 많은 오류(more errors) 를 생성한 IP 주소를 식별합니다. 그런 다음 솔루션은 AWS WAF IP 세트 조건을 업데이트하여 고객이 정의한 기간 동안 해당 IP 주소를 차단합니다.

🧿 Log parser - AWS WAF

  • "yes - AWS Lambda log parser" or "yes - Amazon Athena log parser" 선택하는 경우

  1. Kinesis Data Firehose
    • Kinesis Data Firehose는 이러한 로그 데이터를 수집하고 전달할 대상을 설정합니다. 대상은 일반적으로 Amazon S3, Amazon Redshift, 또는 Elasticsearch와 같은 다양한 AWS 서비스가 될 수 있습니다.
    • Kinesis Data Firehose는 설정된 대상 (예: Amazon S3)으로 로그 데이터를 자동으로 전달합니다. 이 과정은 실시간으로 이루어지며, 로그 데이터는 대상 서비스의 저장소로 배달됩니다.
  2. <customer-bucket>/AWSLogs/ <optional-prefix>/year=<YYYY> /month=<MM>/day=<DD>/hour= <HH>/
    • 로그 데이터 위치
    • AWS WAF 로그 데이터는 Amazon S3 버킷에 저장
  3. 템플릿 매개변수인 Activate HTTP Flood Protection  Activate Scanner & Probe Protection 에 대한 선택에 따라 다음 중 하나를 사용하여 로그를 처리합니다:
    • Log Parser Lambda function 이 시작
      • AWS Lambda 함수가 로그 데이터를 처리합니다.
      • Lambda 함수는 로그에서 보안 이벤트와 관련된 정보를 추출하고 처리합니다.
    • Athena: 기본적으로 5분마다 scanner and probe Athena 쿼리가 실행되고 출력이 AWS WAF로 푸시됩니다. 이 프로세스는 Amazon CloudWatch 이벤트에 의해 시작되며, 이 이벤트는 Amazon Athena 쿼리 실행을 담당하는 Lambda 함수를 시작하고 결과를 AWS WAF로 푸시합니다.
      • Amazon Athena 서비스를 사용하여 로그 데이터를 처리
  4. 솔루션은 로그 데이터를 분석하여 정의된 할당량보다 많은 요청(more requests) 을 전송한 IP 주소를 식별합니다. 그런 다음 솔루션은 AWS WAF IP 세트 조건을 업데이트하여 고객이 정의한 기간 동안 해당 IP 주소를 차단합니다.

🧿 IP lists parser

  • IP Lists Parser Lambda 기능타사 IP 평판 목록에서 식별된 알려진 공격자로부터 보호하는 데 도움

1. 시간별 Amazon CloudWatch 이벤트는 IP Lists Parser Lambda 함수를 호출합니다.

  • 주기적으로 실행되는 Amazon CloudWatch 이벤트가 트리거 역할을 합니다.

2. Lambda 함수는 세 가지 소스에서 데이터를 수집하고 구문 분석합니다.

  • Spamhaus DROP 및 EDROP 목록
    • Spamhaus는 악성 IP 주소 목록을 제공하는 신뢰할 수 있는 소스 중 하나입니다. DROP 목록은 악의적인 IP 주소를 포함하고 있으며, EDROP 목록은 특정 조건에 해당하는 IP 주소를 포함하고 있습니다.
  • Proofpoint 새로운 위협 IP 목록
    • Proofpoint의 Emerging Threats는 신경 써야 할 보안 위협에 관한 정보를 제공하며, 그 중 IP 주소 목록은 AWS WAF에 사용됩니다.
  • Tor 종료 노드 목록
    • Tor는 익명으로 웹을 사용하는 데 사용되는 네트워크입니다. 그러나 이러한 네트워크는 일부로 악용되기도 하므로, Tor 출구 노드 목록을 사용하여 이러한 IP 주소를 AWS WAF 차단 목록에 추가합니다.

3. Lambda 함수는 AWS WAF 차단 목록을 현재 IP 주소로 업데이트합니다.

  • Lambda 함수는 수집한 데이터를 파싱하고 이러한 데이터를 AWS WAF 차단 목록에 업데이트

🧿 Access Handler

  • Access Handler Lambda 함수honeypot endpoint 에 대한 요청을 검사하여 소스 IP 주소를 추출합니다.

1. Embed the Honeypot Link in Your Web Application (Optional) 에 설명된 대로 웹 사이트에 허니팟 엔드포인트를 삽입하고 로봇 제외 표준을 업데이트합니다.

  • 웹사이트에 허니팟 엔드포인트(가짜 페이지 또는 함정 페이지)를 포함시킵니다. 이 허니팟 엔드포인트는 일반 사용자에게는 숨겨져 있어야 하며, 악성 봇과 스크레이퍼와 같은 악의적인 봇만이 액세스할 수 있어야 합니다.
  • 로봇 배제 표준(robots.txt)도 업데이트하여 허니팟 엔드포인트를 검색하지 못하도록 지정합니다. 이렇게 하면 정상적인 웹 크롤러들은 허니팟 엔드포인트를 무시하고 액세스하지 않게 됩니다.
    • 로봇 배제 표준 (robots exclusion standard)
      • 로봇 배제 표준(robots.txt)은 웹 사이트 소유자가 웹 크롤러와 검색 엔진 로봇에게 어떤 웹 페이지를 크롤링하거나 색인화하지 말아야 하는지 알려주는 텍스트 파일

2. 콘텐츠 스크래퍼나 악성 봇이 허니팟 엔드포인트에 액세스하면 Access Handler Lambda 함수를 호출합니다.

  • 악성 봇 또는 컨텐츠 스크레이퍼가 웹사이트에서 허니팟 엔드포인트에 접근하면, 이러한 요청은 AWS WAF의 Access Handler로 전달됩니다.

3. Lambda 함수는 요청 헤더를 가로채서 검사하여 트랩 엔드포인트에 액세스한 소스의 IP 주소를 추출합니다.

  • Lambda 함수는 악성 봇의 요청을 가로채고 해당 요청의 헤더를 검사합니다. 이때 주요한 정보 중 하나는 요청을 보낸 소스의 IP 주소입니다.

4. Lambda 함수는 AWS WAF IP 설정 조건을 업데이트하여 해당 IP 주소를 차단합니다.

  • Lambda 함수는 검출된 악성 봇의 IP 주소를 사용하여 AWS WAF IP 세트 조건을 업데이트합니다. 이 조건은 해당 IP 주소를 AWS WAF가 차단해야 하는 것으로 지정됩니다.
  • AWS WAF가 해당 IP 주소를 차단하면 악성 봇은 웹사이트에 더 이상 액세스할 수 없게 됩니다.
Comments