[권고] 관리 콘솔 로그인 성공 시 알람 발송

ZER0·2022년 9월 14일
0
post-custom-banner

1. 개요

  • 클라우드 서비스의 특성상 인터넷이 가능한 모든 환경에서 관리 콘솔에 접속해 리소스 핸들링이 가능
  • 따라서 root 및 IAM 계정의 관리 콘솔 접근 관리를 강화하기 위해 로그인 알람 시스템 구축 필요
  • [주의] 본 항목에서 예시로 든 SNS와 EventBridge를 활용한 방법은 SMS 메세지 발송에 따른 요금이 발생하므로 설정 전 면밀히 검토 필요

2. 취약점 판단 기준

  • 관리 콘솔 로그인 알람 시스템을 구축하지 않은 경우 취약
  • 관리 콘솔 로그인 알람 시스템을 구축한 경우 취약하지 않음

3. 취약점 확인 방법

  • 담당자 인터뷰 및 관련 증적을 통해 로그인 알람 시스템 구축 여부 확인

4. 취약점 조치 방법

  • [알림] 다양한 방법이 있을 수 있으나 본 항목에서는 SNS와 EventBridge를 활용한 방법을 안내

  • [미국 동부(버지니아 북부) us-east-1] 리전으로 변경

  • 관리 콘솔에서 [SNS] 검색 → [주제] 메뉴 → [주제 생성] 클릭

  • 주제 설정

  • [구독] 메뉴 → [구독 생성] 클릭

  • 구독 설정

    • 프로토콜은 이용 편의에 따라 SMS 또는 이메일 등 자유롭게 선택
  • 관리 콘솔에서 [Eventbridge] 검색 → [규칙] 메뉴 → [규칙 생성] 클릭

  • 규칙 세부 정보 설정

  • JSON(1) 또는 JSON(2)를 활용하여 이벤트 패턴 작성

    • JSON(1)
      # root 계정 로그인 탐지 시
      {
          "detail-type": ["AWS Console Sign In via CloudTrail"],
          "detail": {
            "userIdentity": {
              "type": ["Root"]
            },
            "eventName": ["ConsoleLogin"]
          }
      }
    • JSON(2)
       # IAM 계정 로그인 탐지 시
       {
           "detail-type": ["AWS Console Sign In via CloudTrail"],
           "detail": {
             "userIdentity": {
               "type": ["IAMUser"]
             },
             "eventName": ["ConsoleLogin"]
           }
       }

  • 이벤트 트리거 시 호출할 대상 설정

  • [추가 설정] 탭에서 [입력 변환기] 선택 → [입력 변환기 구성] 클릭

  • JSON(3)을 활용하여 [대상 입력 변환기] 설정

    • JSON(3)
       {
           "userName" : "$.detail.userIdentity.userName",
           "login_result" : "$.detail.responseElements.ConsoleLogin",
           "source_ip" : "$.detail.sourceIPAddress"
       }

  • JSON(4)를 활용하여 [템플릿] 설정

    • JSON(4)
       # root 계정 로그인 탐지 시
       "[INFO] Root account Login <login_result>(IP : <source_ip>)"
       
       # IAM 계정 로그인 탐지 시
       "[INFO] <userName> account Login <login_result>(IP : <source_ip>)"

  • 규칙 생성 확인

  • 관리 콘솔 로그인 시 SMS 수신 확인


5. 참고

profile
Security Compliance Engineer
post-custom-banner

0개의 댓글