문의하기
블로그

Criminal IP Dorks Cheat Sheet: 쿼리 작성 실수 방지 체크리스트

이번 글에서는 자주 발생하는 쿼리 작성 실수를 정리하고, Criminal IP를 더욱 정확하고 효과적으로 활용하는 방법을 소개한다. 문법 오류나 필드 오용, 우선순위 혼동 등 기본적인 쿼리 작성...

※ 이 글은 Criminal IP 사용자들이 자주 겪는 검색 실패 사례와 필터 사용 실수를 정리한 실전 안내서다.
앞으로는 더 다양한 쿼리를 유연하게 활용할 수 있도록, Criminal IP도 지속적으로 개선해 나갈 예정이다.

Criminal IP에서는 태그(tag)와 필터(filter)를 조합해 다양한 위협 인프라를 탐지할 수 있다. 하지만 간혹 원하는 결과가 전혀 나오지 않을 때가 있다. 이런 경우 상당수는 실제 보안 인프라에 문제가 있다기보다, 문법 오류나 필드 오용, 우선순위 혼동 등 기본적인 쿼리 작성 실수에서 비롯된다.

이번 글에서는 자주 발생하는 쿼리 작성 실수를 정리하고, Criminal IP를 더욱 정확하고 효과적으로 활용하는 방법을 소개한다.

실수 1: 국가명을 코드 대신 텍스트로 입력

  • ❌country: Korea
  • country: KR

Criminal IP의 country 필터는 ISO 3166-1 alpha-2 형식의 국가 코드만 인식한다. “Korea” 또는 “South Korea”와 같은 일반 텍스트는 필터로 작동하지 않으며, 반드시 아래와 같이 두 자리 코드로 입력해야 한다.

국가명올바른 코드
대한민국KR
미국US
일본JP
독일DE
중국CN
러시아RU
프랑스FR
인도IN
베트남VN
브라질BR
캐나다CA
싱가포르SG
이란IR
우크라이나UA
튀르키예TR

💡 예시: country:KR AND tag:C2 → 한국 내 C2 서버 탐지

실수 2: 필드명 오타 또는 미지원 필드

  • ❌ ssl: expired
  • ✅ ssl_expired: true

Criminal IP에서는 정의된 필드명만 인식하며, 존재하지 않는 필드나 오타는 검색에 반영되지 않는다. 예를 들어, SSL 인증서 만료 여부를 탐지하려면 정확한 필드명인 ssl_expired를 사용해야 한다.

🔎 전체 필드 목록은 Criminal IP > Resources > Filters, Tags에서 확인할 수 있다.

실수 3: AND/OR 우선순위 혼동

  • 입력 쿼리: tag: C2 AND port: 80 OR port: 443

이 쿼리는 C2 태그를 가진 인프라 중 80번 포트가 열린 것과 무관하게, 443번 포트가 열린 모든 인프라도 함께 탐지된다.

💡 Criminal IP의 검색 로직에서는 AND가 OR보다 먼저 적용된다.

즉, 위 쿼리는 내부적으로 다음과 같은 논리로 해석된다: (tag C2 AND port: 80) OR port: 443

사용자 의도와 달리, tag: C2 조건이 port: 443 에는 적용되지 않기 때문에
불필요한 결과가 포함되거나, 오탐 가능성이 커질 수 있다.

정확한 조건 조합이 필요하다면, AND 기준으로 묶인 쿼리를 각각 나눠서 실행하는 것이 가장 명확하다:

  • ✅ tag:C2 AND port: 80
  • ✅ tag:C2 AND port: 443

🔍 위처럼 조건을 명확히 분리하면 오탐을 줄이고, 원하는 결과에 더 빠르게 접근할 수 있다.

실수 4: 쌍따옴표 미사용 필드

  • ❌ tag: SSL VPN
  • ✅ tag: “SSL VPN”

띄어쓰기가 포함된 문자열은 쌍따옴표(” “)로 묶어야 하나의 조건으로 인식된다.
그렇지 않으면 “SSL”과 “VPN”이 각각 다른 조건으로 해석된다.

💡 해당 필드: titleas_namessl_issuer_organization 등

실수 5: 대소문자 구분? 

Criminal IP의 필터는 대소문자를 구분하지 않는다.
즉, 다음의 세 가지 쿼리는 모두 동일하게 작동된다.

  • tag: cobalt strike
  • tag: Cobalt Strike
  • tag: COBALT STRIKE

하지만 " " 사용 여부 등 구문 구조는 반드시 지켜야 한다.

보너스: 유용한 필터 키워드 모음

필드명설명
tag자산의 특성 (예: C2, IoT, DevOps 등)
port열려 있는 포트 번호 (예: 80, 443, 2375 등)
ssl_expiredSSL 인증서 만료 여부 (true/false)
cloud_providerAWS, Azure, Google 등 클라우드 사업자
hostname호스트명 (예: ec2vultr)
as_name통신사 또는 클라우드 기업명 (예: Amazon)
country2자리 국가 코드 (예: KR, US, RU)

결론

Criminal IP는 단순한 키워드 검색이 아닌, 정확한 필터 조합과 조건 구성으로 고도화된 위협 인프라를 탐지할 수 있는 플랫폼이다.
문법을 이해하고, 필드를 정확히 사용하는 것만으로도 더 많은 위협을 더 빠르게 발견할 수 있다.

이번 실수 체크리스트를 참고해 쿼리 실수를 줄이고, 더 효율적인 Threat Hunting 전략을 수립해보자.

관련하여 Criminal IP Dorks Cheat Sheet: 실전 위협 인텔리전스 쿼리 가이드 (2편) 글을 참고할 수 있다.


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

관련 글 :

Criminal IP Dorks Cheat Sheet: 쿼리 작성 실수 방지 체크리스트  | CIP Blog | Criminal IP