
Crawlector는 악성 객체를 검사하기 위해 웹사이트를 스캔하도록 설계된 위협 헌팅 프레임워크입니다.
Crawlector (이름 Crawlector는 Crawler & Detector의 조합입니다)는 웹사이트에서 악성 객체를 스캔하기 위해 설계된 위협 헌팅 프레임워크입니다.
참고-1: 이 프레임워크는 2022년 10월 22일 이탈리아 베르가모에서 열린 No Hat 컨퍼런스에서 처음 발표되었습니다 (슬라이드, YouTube 녹화). 또한, 2022년 12월 2일 싱가포르에서 열린 AVAR 컨퍼런스에서 두 번째로 발표되었습니다.
참고-2: 발표에서 언급된 동반 도구 EKFiddle2Yara (EKFiddle 규칙을 가져와 Yara 규칙으로 변환하는 도구)도 두 컨퍼런스에서 함께 공개되었습니다.
참고-3: 버전 2.0 (Photoid Build:180923)은 2023년 9월 18일에 출시된 중요한 릴리스입니다.
참고-4: 버전 2.1 (Universe-647 Build:031023)은 2023년 10월 3일에 출시되었습니다. 주요 추가 사항은 Slack 알림 기능입니다.
참고-5: 버전 2.2 (Hallstatt Build:051123)은 2023년 11월 5일에 출시되었습니다. 주요 추가 사항은 Slack 원격 제어 기능입니다.
참고-6: 버전 2.3 (Munich Build:241123)은 2023년 11월 24일에 출시되었습니다. 주요 추가 사항은 DNS 네임서버 기능입니다.
참고-6: 버전 2.3.1 {Nero Build:131225}은 2025년 12월 13일에 출시되었습니다. 유지보수 릴리스입니다.
이는 스캔 중인 모든 페이지에 대해 악성 URL을 확인하는 기능입니다. 프레임워크는 URLHaus 서버 (설정: url_list_web)에서 악성 URL 목록을 쿼리하거나 디스크의 파일 (설정: url_list_file)에서 쿼리할 수 있으며, 후자가 지정되면 전자보다 우선합니다.
작동 방식: 모든 페이지의 콘텐츠를 url_list_web 또는 url_list_file의 모든 URL 항목에 대해 검색하여 모든 발생을 확인합니다. 또한, 일치하는 경우 check_url_api 설정 옵션이 true로 설정되어 있으면 Crawlector는 url_api 설정 옵션에 설정된 API URL로 POST 요청을 보내며, 일치하는 URL에 대한 추가 정보가 포함된 JSON 객체를 반환합니다. 이러한 정보에는 urlh_status (예: online, offline, unknown), urlh_threat (예: malware_download), urlh_tags (예: elf, Mozi), urlh_reference (예: https://urlhaus.abuse.ch/url/1116455/)가 포함됩니다. 이 정보는 check_url_api가 true로 설정된 경우에만 로그 파일 cl_mlog_<current_date><current_time><(pm|am)>.csv (아래 참조)에 포함됩니다. 그렇지 않으면 로그 파일에는 urlh_url (일치하는 악성 URL 목록) 및 urlh_hit (일치하는 각 악성 URL의 발생 횟수) 열이 포함되며, 이는 check_url이 true로 설정된 경우에만 해당됩니다.
URLHaus 기능은 설정 옵션 check_url을 false로 설정하여 완전히 비활성화할 수 있습니다.
이 기능은 확인해야 하는 방대한 악성 URL (~ 현재 약 1억 3천만 개 항목)과 URLHaus 서버에서 추가 정보를 가져오는 시간(옵션 check_url_api가 true로 설정된 경우)으로 인해 스캔 속도가 느려질 수 있습니다.
세션을 실행하기 전에 반드시 설정 파일 cl_config.ini에 익숙해져야 합니다. 모든 섹션과 매개변수는 설정 파일 자체에 문서화되어 있습니다.
Yara 오프라인 스캔 기능은 독립 실행형 옵션입니다. 즉, 활성화되면 Crawlector는 다른 활성화된 기능과 관계없이 이 기능만 실행합니다. 도메인/사이트 디지털 인증서 크롤링 기능도 마찬가지입니다. 어느 쪽이든 설정 파일에서 사용하지 않는 모든 기능을 비활성화하는 것이 좋습니다.
log_to_file 또는 log_to_cons)에 따라 Yara 규칙이 모듈 속성(예: PE, ELF, Hash 등)만 참조하는 경우, Crawlector는 일치 시 규칙 이름만 표시하고 오프셋 및 길이 데이터는 제외합니다.참고: 경로를 사용하는 모든 옵션에는 항상 절대 경로를 제공하십시오.
웹사이트를 방문/스캔하려면 URL 목록이 텍스트 파일에 저장되어야 하며, 디렉토리 "cl_sites"에 있어야 합니다.
Crawlector는 세 가지 유형의 URL을 허용합니다:
[a-zA-Z0-9_-]{1,128} = <url><id>[depth:<0|1>-><\d+>,total:<\d+>,sleep:<\d+>] = <url>
예를 들어,
mfmokbel[depth:1->3,total:10,sleep:0] = https://www.mfmokbel.com
이는 다음과 동일합니다:
mfmokbel[d:1->3,t:10,s:0] = https://www.mfmokbel.com
여기서, <id> := [a-zA-Z0-9_-]{1,128}
depth, total 및 sleep can also be replaced with their shortened versions d, t and s, respectively.
40 (10 + (10*3))개의 URL을 얻게 됩니다.참고 1: 유형 3 URL은 설정 파일의 spider 섹션에서 설정 매개변수 live_crawler를 false로 설정하여 유형 1 URL로 전환할 수 있습니다.
참고 2: 빈 줄과 ";" , "#" 또는 "//"로 시작하는 줄은 무시됩니다.
스파이더 기능은 Crawlector에 대상 페이지에서 추가 링크를 찾는 기능을 제공합니다. 스파이더는 다음 기능을 지원합니다:
유형 3이어야 합니다.exclude_url 설정 옵션을 통해 스파이더링에서 일치하는 URL을 제외하기 위해 와일드카드 패턴 목록(파이프로 구분)을 지정할 수 있습니다. 예를 들어, *.zip|*.exe|*.rar|*.zip|*.7z|*.pdf|.*bat|*.dbinclude_url 설정 옵션을 통해 패턴과 일치하는 URL만 스파이더링하도록 와일드카드 패턴 목록(파이프로 구분)을 지정할 수 있습니다. 예를 들어, */checkout/*|*/products/*exclude_https 설정 옵션을 통해 HTTPS URL을 제외할 수 있습니다.add_ext_links 설정 옵션을 통해 기본 페이지만의 아웃바운드/외부 링크를 고려할 수 있습니다. 이 기능은 exclude_url 및 include_url 설정 옵션을 따릅니다.ext_links_only 설정 옵션을 통해 기본 페이지만의 아웃바운드/외부 링크를 고려하고 다른 모든 URL은 제외할 수 있습니다. 이 기능은 exclude_url 및 include_url 설정 옵션을 따릅니다.릴리스 2.0에서 ID는 ID 자체에 다음 유형 중 하나를 추가하여 명시적으로 유형이 할당됩니다: