Contact Us
Blog

Criminal IP ‘C2 서버 위협 피드’로 방화벽 정책의 악성 IP 자동 차단 방법

본 글에서는 C2 서버와 연관된 위협 요소를 자동 차단하는 방화벽 정책에 Criminal IP의 C2 서버 위협 피드 목록을 적용할 수 있는 공식 GitHub 코드 저장소 두 곳을 소개합니다.

C2 서버 위협 피드 없이  방화벽 정책을 수동으로 설정하다 보면 간혹 인적 에러가 발생할 수 있고, 많은 규칙을 한번에 관리하기도 어렵습니다. 또한, 관리가 제대로 이루어지지 않아 오래된 규칙을 정리하지 못하거나, 방화벽 정책이 모든 트래픽을 무분별하게 차단해 어떤 규칙을 추가하거나 제거해야 할지 명확하지 않은 상황이 발생하기도 합니다. 본 글에서는 방화벽 정책의 자동 차단 규칙 설정으로 공격자의 원격 제어가 가능한 C2 서버 관련 악성 IP 주소의 차단을 자동화하여, 방화벽 정책 수동 규칙 설정의 문제점들을 해결하는 방법을 모색합니다.

Criminal IP 서버 탐지 데이터 이용해 C2 서버 악성 IP 주소 목록 생성 및 관리하기

일반적인 오픈소스 데이터베이스는 여러 가지 정보가 혼재되어 있어 주어진 데이터 속에서 C2 서버와의 연관성 같은 위협 요소만을 따로 쉽게 분류할 수도 없고, 그에 따른 일관된 규칙도 도출해내기 어렵습니다. 그러나사이버 위협’ 식별에 특화된 Criminal IP의 C2 서버 위협 피드 시스템은 투입되는 데이터를 위협의 성격에 따라 즉시 분류하는 정교한 분류 체계를 갖추고 있어 C2 서버와 연관된 IP 주소의 방화벽 정책 자동 차단 규칙을 설정하기에 최적화되어 있습니다.

C2 서버와 연관된 위협 요소를 자동 차단하는 방화벽 정책에 Criminal IP의 C2 서버 위협 피드 목록을 적용할 수 있는 공식 GitHub 저장소를 소개합니다.

  • Fortinet-Maliciousip-AutoBlock: Criminal IP 서비스에서 C2 서버 등과 연관되어 악성으로 탐지된 IP 주소 목록을 Fortinet 방화벽에 차단 규칙으로 생성하고, 해당 차단 규칙을 자동으로 관리하는 코드를 담은 저장소입니다.
  • Malicious-ip-Handler: Criminal IP 서비스에서 C2 등과 관련된 것으로 탐지된 악성 IP 주소 목록을 CSV 혹은 JSON 파일 형식으로 관리하는 작업을 수행하는 코드를 담은 저장소입니다. Criminal IP의C2 서버 위협 피드 내에서 탐지된 C2 서버 관련 악성 IP 주소 목록을 수집하고, 새로운 IP 주소를 파일에 추가하며, 오래된 IP 주소 목록을 자동으로 삭제하는 기능을 포함하고 있습니다.

1. C2 서버 관련 Criminal IP 위협 피드 연동한 ‘배너 정보’ 쿼리 추가

Criminal IP의 C2 서버 위협 피드 시스템은 인터넷 상의 오픈소스 데이터 중 특정한 사이버 위협과 관련된 것만을 따로 구별하기 위해 여러 분류 지표를 사용합니다. 그 중 하나가 배너 정보입니다. 이 때, 배너 정보란 서버의 호스트가 제공하는 서비스나 시스템의 소프트웨어 버전, 운영체제 및 기타 세부 사항과 관련된 정보를 가리킵니다. 배너 정보는 해당 IP 주소와 관련된 서버의 성격을 가늠할 수 있는 대표적인 지표 중 하나로, 방대한 Criminal IP의 데이터베이스 속에서 C2 서버 (Command and Control)의 존재 유무 등 악성 IP 주소와 연관되는 정보만을 따로 호출하기 위해서 활용될 수 있습니다.

방화벽 정책이 차단할 C2 서버 관련 IP 주소 목록에 들어갈 쿼리를 작성할 때, v1/banner/search API를 사용해 Criminal IP의 C2 서버 관련 배너 검색 결과를 조회할 수 있습니다. 해당 API의 사용 방법 및 예제는 다음 링크를 통해 확인할 수 있습니다.

Criminal IP의 배너 데이터 호출 API 소개 페이지. C2 서버 위협 피드 내 배너 데이터를 호출하는 API의 활용 예시를 확인할 수 있다.
Criminal IP의 배너 데이터 호출 API 소개 페이지. C2 서버 위협 피드 내 배너 데이터를 호출하는 API의 활용 예시를 확인할 수 있다

2. Criminal IP 데이터베이스 내 C2 서버 포함한 ‘태그 정보’ 쿼리 추가

한편, cip_c2_detect_query.json 파일에 작성된 내용을 기반으로 API에 전달되는 쿼리 값을 작성하면 방화벽 정책에서 C2 서버 관련 태그가 있는 악성 IP 주소를 추가적으로 차단할 수 있습니다. 태그 역시 중요한 분류 지표로, Criminal IP의 C2 서버 위협 피드 시스템은 원격 서버 제어가 가능한 C2 서버 등 악성 행위와 연관된 요소들에 태그를 부여하여 위협이 될 만한 다량의 IP 주소들을 한꺼번에 식별하고 분류합니다.

JSON 파일 내에서 C2 서버와 관련된 악성 태그에 대한 쿼리 값이 작성된 예시는 Criminal IP의 깃허브 공식 코드 저장소인 Fortinet-Maliciousip-AutoBlock에서 확인할 수 있습니다.

3. 이외 방화벽 정책 맞춤 조건 쿼리 추가

C2 서버와 관련된 더 세부적인 자동탐지 조건을 방화벽 정책에 추가하고 싶다면 해당 JSON 파일 내의 포맷에 맞춰 원하는 쿼리 정보를 추가하면 됩니다.

추가적인 C2 서버 관련 악성 태그에 대한 정보를 확인하려면 Criminal IP의 태그 사용법 가이드를 참고할 수 있습니다.

Criminal IP에서 제공하는 C2 태그. Criminal IP의 C2 서버 위협 피드 내 C2 서버와 연관된 악성 IP 주소를 분류하는 데에 사용된다
Criminal IP에서 제공하는 C2 태그. Criminal IP의 C2 서버 위협 피드 내 C2 서버와 연관된 악성 IP 주소를 분류하는 데에 사용된다

4. 방화벽 정책 자동 차단 규칙 내의 C2 서버 연관 IP  주소 관리 및 업데이트 하기

최신 데이터 기반으로 방화벽 정책의 자동 차단 규칙을 업데이트하기 위해서는 새로 발견된 C2 서버 관련 IP 주소를 분류하는 작업을 수행해야 합니다. 이 때, Criminal IP의 깃허브 공식 저장소인 Malicious-ip-Handler의 코드를 참고할 수 있습니다.

해당 저장소의 코드를 실행하면 쿼리 결과가 Criminal IP의 C2 서버 위협 피드 목록과 연동되어 ./core/input/yesterday_detect_IP_{날짜} 파일 위치에 저장되며 업데이트 됩니다. 새롭게 생성된 C2 서버 관련 IP 주소의 목록은 방화벽 정책의 차단 규칙에 적용되기 전 7일 이내의 기존 데이터인지 확인하는 절차를 거쳐, 7일 이내 반영된 IP 주소를 중복으로 등록하지 않도록 관리할 수 있습니다. 방화벽 정책 내의 차단 규칙의 유효 기간은 7일이며, 만약 7일 이후에도 해당 IP 주소가 여전히 C2 서버와의 연결성을 가진 악성으로 확인될 경우 해당 IP 주소는 방화벽 정책의 새로운 규칙에 추가되어 지속적으로 차단을 유지하게 됩니다.

Criminal IP의 공식 저장소 Malicious-ip-Handler의 실행 화면. yesterday_detect_IP_2024_09_10에 확인된 C2 서버 위협 피드 내의 악성 IP 주소 목록을 볼 수 있다
Criminal IP의 공식 저장소 Malicious-ip-Handler의 실행 화면. yesterday_detect_IP_2024_09_10에 확인된 C2 서버 위협 피드 내의 악성 IP 주소 목록을 볼 수 있다

Criminal IP 위협 피드로 생성된 C2 서버 목록으로 방화벽 정책 자동 차단 규칙 적용 시 유의점

Fortigate 방화벽 정책에서 C2 서버 위협 피드 내의 모든 악성 IP 주소를 개별적으로 추가하면 관리가 어렵고, 추가 가능한 IP 주소 개수에도 제한이 있습니다. 이를 해결하기 위해 해당 IP 주소들을 하나의 그룹으로 묶고, 그 그룹을 방화벽 정책에 반영하면 날짜 별로 효율적인 관리가 가능합니다.

이 때 주의해야 할 것은, 방화벽 정책에서 차단 정책의 우선순위입니다. 방화벽 정책에서 차단 정책은 우선순위에 따라 적용되기에 상위와 하위에 있는 차단 정책이 서로 모순되지 않는지 살펴보아야 합니다. 예를 들어 설정된 방화벽 정책이 ‘deny’로 되어 있고 조건이 ‘any’로 설정된 경우, 차단 규칙을 정상적으로 작동시키려면 해당 방화벽 정책의 우선순위를 상단에 배치해야 합니다. 그 이유는 ‘any’ 조건이 모든 트래픽을 차단하도록 설정되어 있더라도 우선순위에 따라 차단 정책이 적용되지 않을 수 있기 때문입니다. 가령 해당 방화벽 정책이 하위에 위치하고, 상위 방화벽 정책에서 중복된 범위의 트래픽을 이미 허용 처리했을 경우 차단 정책이 적용되지 않습니다.

Fortigate 방화벽 정책에서 C2 서버 위협 피드 내의 악성 IP 주소들이 그룹으로 설정된 모습
Fortigate 방화벽 정책에서 C2 서버 위협 피드 내의 악성 IP 주소들이 그룹으로 설정된 모습

정상적으로 방화벽 정책 내에 그룹이 설정되면, 위 사진과 같이 해당 그룹에 포함된 C2 서버 관련 악성 IP 주소 목록이 나열되어 정책에 반영된 IP 주소들을 확인할 수 있습니다.

자동 차단 방화벽 정책에 따른 C2 서버 관련 악성 IP 주소 차단 여부 Criminal IP로 확인하기

이제 설정한 방화벽 정책의 C2 서버 위협 피드 기반 자동 차단 규칙이 정상적으로 작동하고 있는지 확인해 보겠습니다. 위에서 설정한 쿼리 중 tag: c2_meshagent 태그 설정을 통해 C2 서버와 연관된 여러 IP 주소가 포함된 그룹이 생성되었으며 178.x.x.87도 차단 목록에 포함된 하나의 IP 주소입니다. 이 IP 주소로 접근을 시도해 보겠습니다. Criminal IP의 Asset Search Report 페이지에서는 해당 IP 주소의 열린 포트 정보와 함께 IP 주소로 접근할 수 있는 링크를 제공하고 있어, 개별 IP 주소에 직접 쉽게 접근하고 차단 여부를 확인할 수 있습니다.

C2 서버 위협 피드 목록에 따라 C2 태그가 달린 IP 주소에 대한 Criminal IP의 Asset Search 리포트. 오픈 포트 정보의 우측 상단에서 해당 IP 주소로 접근할 수 있는 링크를 확인할 수 있다
C2 서버 위협 피드 목록에 따라 C2 태그가 달린 IP 주소에 대한 Criminal IP의 Asset Search 리포트. 오픈 포트 정보의 우측 상단에서 해당 IP 주소로 접근할 수 있는 링크를 확인할 수 있다

빨간색 표시를 클릭하면 C2 서버와 연관된 해당 IP 주소로 연결된 웹 페이지로 이동하게 되며, 아래의 화면과 같이 현재 해당 페이지로의 접근이 차단되어 있는 것을 확인할 수 있습니다.

방화벽 정책 차단 목록의 C2 서버 연관 IP 주소로 접근을 시도할 때 뜨는 화면. 정상적으로 접근이 차단되어 있는 것을 확인할 수 있다
방화벽 정책 차단 목록의 C2 서버 연관 IP 주소로 접근을 시도할 때 뜨는 화면. 정상적으로 접근이 차단되어 있는 것을 확인할 수 있다

또한, 로그로도 해당 웹 페이지로 접근했을 때 방화벽 정책의 차단 규칙이 정상적으로 적용되었는지 확인할 수 있습니다. Fortigate의 방화벽 정책에서 Log & Report > Forward Traffic 메뉴로 들어가면, 해당 IP 주소의 웹 페이지에 대한 로그를 확인할 수 있습니다. C2 서버 위협 피드에 따라 차단을 실행한 규칙에 대한 로그만을 따로 간편하게 확인하려면, 검색창에 정책의 ID 값을 입력하여 차단된 트래픽만을 필터링 할 수 있습니다.

Fortigate의 로그 화면. 방화벽 정책의 차단 규칙에 의해 정상적으로 IP 주소의 트래픽이 차단된 것을 확인할 수 있다
Fortigate의 로그 화면. 방화벽 정책의 차단 규칙에 의해 정상적으로 IP 주소의 트래픽이 차단된 것을 확인할 수 있다

Criminal IP의 위협 피드 활용한 C2 서버 관련 IP 주소 자동 차단 방화벽 정책 설정의 효과

방화벽 정책에 Criminal IP의 C2 서버 위협 피드 목록을 연동한 자동 차단 규칙을 도입함으로써 보안 관리자는 더 이상 C2 서버 침투를 방지하기 위해 방대한 트래픽 데이터를 직접 관리하는 데 많은 시간을 할애할 필요가 없으며, 대신 중요한 보안 위협 분석 및 대응에 집중할 수 있게 됩니다. 이를 통해 효율적인 보안 관리가 가능해지고, C2 서버 위협에 대한 선제 대응 능력이 향상되어 더욱 안전한 네트워크 환경을 구축할 수 있습니다. 관련하여 IP 주소 인텔리전스 활용한 STIX 취약점 분석 방법: STIX로 Criminal IP 데이터 분석을 참고할 수 있습니다.


이 리포트는 사이버위협인텔리전스 검색엔진 Criminal IP의 데이터를 바탕으로 작성되었습니다. 지금 바로 Criminal IP 무료 계정을 생성하면 리포트에 인용된 검색 결과를 직접 확인하거나, 더 방대한 위협 인텔리전스를 자유롭게 검색할 수 있습니다. 

데이터 출처: Criminal IP(https://www.criminalip.io/ko)

관련 글 :