AWS 클라우드 인프라를 보호하는 AWS WAF 서비스는 알려진 웹 공격 패턴을 차단하지만, 공격자는 장비의 방어 체계를 우회할 수 있을 때까지 여러가지 방법을 지속적으로 시도합니다.
로그프레소 클라우드는 웹 취약점 스캐닝 등 침해 시도를 탐지했을 때 위협 인텔리전스와 대조하여 악성 IP 여부를 교차 검증하고 AWS WAF의 IP 집합에 IP 주소를 등록하여 수 초 내에 이어지는 공격을 실시간으로 차단하는 자동 방어 체계를 제공합니다.
AWS WAF IP 집합 생성
로그프레소에서 AWS WAF에 차단 대상 IP를 등록하려면 AWS WAF 서비스에 IP 집합 객체를 먼저 만들어야 합니다.
AWS 콘솔에서 WAF & Shield
서비스로 이동하여 IP sets
메뉴를 클릭합니다. 이어서 Create IP set
버튼을 클릭하여 아래와 같이 새 IP 집합을 생성합니다. 이 예시에서는 Block_IP_SET
이름의 집합을 생성하겠습니다.
AWS WAF ACL 설정
이제 AWS WAF가 출발지 IP를 우리가 만든 IP 집합과 비교하여 차단하도록 설정해야 합니다. Web ACLs 메뉴에서 IP 차단 목록 규칙을 추가할 ACL을 선택하고, Rules
탭으로 이동하여 Add rules
버튼을 클릭합니다. 팝업 메뉴에서 Add my own rules and rule groups
항목을 클릭합니다.
상단 Rule type에서 IP set
을 선택하고, 간단하게 규칙 이름, 비교 대상 IP 집합, 비교 IP 대상, 대응 행동을 지정합니다.
- Name: Blocklist (WAF 로그의 signature에 출력되는 이름)
- IP set: Block_IP_SET
- IP address to use: Source IP address
- Action: Block
그러면 이제 아래와 같이 IP 차단 규칙이 추가된 것을 확인할 수 있습니다. Web ACL이 활성화된 상태라면 IP 집합에 IP 주소를 추가 등록하는 것만으로도 즉시 AWS WAF에서 해당 IP 주소의 접속이 차단됩니다.
AWS IAM 권한 설정
로그프레소에 설정된 AWS 접속 프로파일의 액세스 키와 연결되는 IAM 사용자는 아래의 권한을 보유해야 합니다:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"wafv2:GetIPSet",
"wafv2:ListIPSets",
"wafv2:UpdateIPSet"
],
"Resource": "*"
}
]
}
AWS WAF의 IP 집합 조회, 열거, 갱신 권한만 있으면 AWS WAF 차단 연동 기능을 사용할 수 있습니다.
로그프레소 차단 연동 설정
이제 로그프레소에서 아래와 같이 차단 연동 설정을 추가하면 주소 그룹과 AWS WAF의 IP 집합이 동기화됩니다.
- 차단 연동 모델: AWS WAF
- 프로파일: 대상 AWS WAF와 연관된 AWS 접속 프로파일 선택
- IP 블랙리스트: 새 주소 그룹 버튼을 클릭하여
IP 차단 목록
이름으로 생성 - AWS 리전: AWS WAF가 위치한 리전 (예: ap-northeast-2)
- IP 집합 ID: AWS WAF의 IP 집합 ID. AWS 콘솔의 IP sets 목록에서 ID 열 확인
- IP 집합 이름: AWS WAF의 IP 집합 이름. AWS 콘솔의 IP sets 목록에서 Name 열 확인
이제 IP 차단 목록
주소 그룹에 IP 주소를 추가하거나 삭제할 때마다, AWS WAF의 IP set 설정도 변경되는 것을 확인할 수 있습니다.
로그프레소 플레이북 설정
최종적으로는 위협 탐지 이벤트나 티켓이 생성될 때마다 플레이북이 실행되도록 하고, 플레이북 내에서 평판 조회를 거쳐 IP 차단 목록
주소 그룹에 공격자 IP를 추가하도록 설정합니다.
아래는 1개월(43200분) 동안 AWS WAF에서 자동 차단하도록 설정하는 예시입니다. 만료 시각이 지나면 로그프레소의 주소 그룹에서 해당 IP 주소가 자동으로 삭제되고, 연동된 AWS WAF의 IP 집합에서도 IP 주소가 삭제되어 차단이 해제됩니다.
AWS WAF를 비롯하여 대부분의 장비는 관리 가능한 최대 IP 주소 수에 한계가 있으므로 주소 그룹의 크기를 적정 수준으로 관리해야 합니다. 주소 그룹에 동일 IP를 다시 등록하면 만료 시각이 연장되므로 기간은 수 일 단위 수준으로 설정하는 것을 권장합니다.
티켓의 태스크 탭에서 실행 내역을 조회하거나, 자동 대응 내역 메뉴에서 항목을 클릭하여 아래와 같이 플레이북을 실행한 이력을 확인할 수 있습니다.
정리
AWS WAF의 관리형 규칙으로 설정하기 어려운 복잡한 탐지 시나리오도 로그프레소에서는 쿼리나 플레이북을 이용하여 손쉽게 표현할 수 있습니다. 이제 로그프레소와 AWS WAF를 연동하여 여러분이 생각하시는 실시간 방어 체계를 구현하세요!