급변하는 디지털 환경에서 네트워크와 시스템 보안이 보유하는 취약점을 사전 파악, 대응하기 위해 Criminal IP와 Shodan과 같은 플랫폼이 주목 받고 있다. Criminal IP는 인터넷에 노출된 기기, 서비스, 네트워크 정보를 수집·분석하여 보안 취약점을 탐지하고, 이를 검색엔진의 형태로 가공하여 유저들이 쉽게 원하는 정보에 접근할 수 있도록 만든 사이버 위협 인텔리전스 플랫폼이다. IoT 플랫폼인 Shodan 역시 이와 유사한 기능을 제공하며, 이들 플랫폼은 공통적으로 CVE(공통 취약점 및 노출) 데이터를 분석하는 데 강점을 가지고 있다. 이 글은 Criminal IP와 Shodan 두 플랫폼의 API를 통해 제공되는 CVE 관련 데이터를 비교 분석한다.
Criminal IP vs Shodan: 전체 CVE 데이터 수집 과정
CVE는 특정 소프트웨어나 시스템에서 발견된 보안 취약점을 표준화된 방식으로 식별하기 위한 시스템으로, 보안 관리자가 자산의 취약점을 정확히 이해하고 대응책을 마련하는 데 중요한 기준이 된다. 이 글은 1999년도부터 현재까지 발생한 모든 CVE에 대한 Criminal IP와 Shodan 각 플랫폼의 검색 결과를 기반으로 각 CVE의 탐지 결과 개수와 데이터 신뢰성을 평가하였으며, 보안 관리자가 최적의 선택을 내릴 수 있도록 돕는 것을 목표로 하였다.
이번 Criminal IP vs Shodan 분석을 위해 사용된 전체 CVE 데이터는 공식 데이터베이스에서 추출하여 정리했으며, 수집 과정의 세부적인 절차는 아래와 같다.
1. 현재까지 발표된 전체 CVE 데이터 출처
CVE 데이터는 미국 국가취약점데이터베이스(NVD)에서 제공하는 데이터 피드를 활용하였다. NVD는 전 세계적으로 공통 취약점 및 노출(CVE)을 표준화된 형식으로 제공하는 신뢰할 수 있는 출처다.
2. 포함된 CVE 데이터 범위
NVD는 2002년부터 CVE 데이터를 공식적으로 제공하기 시작했지만, 데이터에는 1999년부터 발표된 과거 취약점도 포함되어 있다. 따라서 이번 분석에서는 1999년부터 2024년까지의 전체 데이터를 기준으로 삼았다. 이 기간 동안 발표된 모든 CVE를 대상으로 Criminal IP와 Shodan에서 탐지 가능한 취약점을 비교하였다.
3. CVE 데이터 최신화 및 기준 시점
CVE 데이터는 매일 업데이트 되며, 새로운 취약점이 지속적으로 추가된다. 이번 분석은 2024년 11월을 기준으로, 최신 데이터를 추출하여 진행하였다. 이 기준 시점은 데이터를 정리하고 분석을 수행한 날짜에 기반한 것이다.
4. Criminal IP와 Shodan 분석을 위한 추출 CVE 데이터 항목
각 CVE ID에 대해 다음과 같은 세부 정보를 추출하였다:
- 수정일(modified date): 해당 CVE가 마지막으로 수정된 날짜로, 취약점 데이터의 최신 상태를 파악하는 데 활용된다.
- 발행일(published date): CVE가 처음 발표된 날짜로, 해당 취약점이 언제 처음 식별되었는지 알 수 있다.
이번 글에서는 이 데이터를 기반으로 각 CVE의 최신 상태와 초기 발표 시점을 모두 확인하고 분석의 기준으로 삼았다. NVD에서 제공하는 원본 CVE 데이터는 아래와 같다.
Criminal IP와 Shodan CVE 데이터 검증에 사용한 API
Criminal IP API는 아래와 같이 /v1/banner/search?query= API 에 cve_id 필터를 이용하여 결과를 호출하는 형식으로 활용할 수 있다. 이번 분석에서는 이를 이용해 ‘cve_id: CVE-2012-1234’와 같은 형태로 결과를 호출하였으며, 더 많은 필터와 그 사용법은 filter 페이지 내에서 확인할 수 있다.
https://api.criminalip.io/v1/banner/search?query=cve_id:CVE-2021-1234
그리고 Shodan의 데이터를 호출하기 위해 사용한 API는 아래와 같다. /shodan/host/search 쿼리를 사용하였다. 필터 쿼리는 vuln: 을 사용하여 CVE 가 존재하는지를 호출해 보았다.
https://api.shodan.io/shodan/host/search?key={API_KEY}&query==vuln:CVE-2021-1234
위 API를 호출한 후 해당 취약점이 존재하는 IP주소가 발견될 경우, Criminal IP 와 Shodan 모두다 아래와 비슷한 모양의 json 값을 리턴하게 된다. 이 경우 값을 카운팅하여 그래프로 뽑아보았다.
Criminal IP vs Shodan: CVE 데이터 1차 탐지 결과와 데이터 신뢰도
탐지 개수 자체는 많지만 CVE 데이터 신뢰성이 떨어지는 Shodan
Criminal IP와 Shodan의 연도별 CVE 취약점 탐지 개수를 나타낸 그래프
위 그림은 Criminal IP와 Shodan 에서 연도별 CVE 취약점이 발견되는 개수를 그래프로 나타내본 결과다. 파란색 그래프가 Criminal IP이며 빨간색 그래프는 Shodan에서 발견한 CVE 취약점의 개수다. 2015년 즈음까지는 비슷한 양상을 띄다가, 그 이후부터는 Shodan에서 탐지할 수 있는 CVE의 개수가 더 많다는 것을 알 수 있다. 다만 CVE 시스템에는 경우에 따라 데이터 노이즈가 존재할 수 있다. 예를 들어 아래 Shodan의 IP주소 케이스에서는 NetData 배너가 존재한다는 것을 확인할 수 있고, CVE가 존재한다고 결과가 나오고 있다. 그렇다면 CVE 역시 NetData에 대한 취약점이 표시되어야 한다.
출처 : [윤영 익스웨어랩스 대표 기고] Criminal IP vs Shodan , CVE 데이터 비교 분석 | CIP Blog