
Crawlectorは、悪意のあるオブジェクトをスキャンするために設計された脅威ハンティングフレームワークです。
Crawlector(名前CrawlectorはCrawler(クローラー)と Detector(検出器)を組み合わせたものです)は、Webサイトを悪意のあるオブジェクトについてスキャンするために設計された脅威ハンティングフレームワークです。
注1: このフレームワークは、2022年10月22日にイタリア・ベルガモで開催されたNo Hatカンファレンスで初めて発表されました(スライド、YouTube録画)。また、2022年12月2日にシンガポールで開催されたAVARカンファレンスでも2回目の発表が行われました。
注2: トークで言及された関連ツールEKFiddle2Yara(EKFiddleルールを取得し、Yaraルールに変換するツール)も両カンファレンスでリリースされました。
注3: バージョン2.0(Photoidビルド:180923)は、マイルストーンリリースとして2023年9月18日にリリースされました。
注4: バージョン2.1(Universe-647ビルド:031023)は2023年10月3日にリリースされました。主な追加機能はSlackアラート通知機能です。
注5: バージョン2.2(Hallstattビルド:051123)は2023年11月5日にリリースされました。主な追加機能はSlackリモートコントロール機能です。
注6: バージョン2.3(Munichビルド:241123)は2023年11月24日にリリースされました。主な追加機能はDNSネームサーバー機能です。
注6: バージョン2.3.1(Neroビルド:131225)は2025年12月13日にリリースされました。これはメンテナンスリリースです。
これは、スキャンされるすべてのページに対して悪意のあるURLをチェックするためのものです。フレームワークは、URLHausサーバーから悪意のあるURLのリストをクエリするか(設定: url_list_web)、ディスク上のファイルからクエリするか(設定: 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(以下を参照)に含まれます。それ以外の場合、ログファイルには、check_urlがtrueに設定されている場合に限り、列urlh_url(一致した悪意のあるURLのリスト)とurlh_hit(一致した悪意のあるURLごとの出現回数)が含まれます。
URLHaus機能は、設定オプションcheck_urlをfalseに設定することで完全に無効にできます。
この機能はスキャンを遅くする可能性があることに注意してください。これは、チェックする必要がある悪意のあるURLの膨大な数(執筆時点で約1億3000万エントリ)と、URLHausサーバーから追加情報を取得するのにかかる時間(オプションcheck_url_apiがtrueに設定されている場合)によるものです。
セッションを実行する前に、設定ファイルcl_config.iniをよく理解しておく必要があります。すべてのセクションとパラメータは設定ファイル自体に文書化されています。
Yaraオフラインスキャン機能はスタンドアロンのオプションです。つまり、有効にすると、Crawlectorは他の有効な機能に関係なく、この機能のみを実行します。また、ドメイン/サイトのデジタル証明書のクロール機能も同様です。いずれにせよ、設定ファイルで未使用の機能をすべて無効にすることをお勧めします。
log_to_fileまたはlog_to_cons)に応じて、Yaraルールがモジュールの属性(例:PE、ELF、Hashなど)のみを参照している場合、Crawlectorはマッチ時にルール名のみを表示し、オフセットと長さのデータは除外します。注意: パスを取るオプションについては、常に絶対パスを指定してください。
Webサイトにアクセス/スキャンするには、URLのリストをテキストファイルに保存し、ディレクトリ「cl_sites」に配置する必要があります。
Crawlectorは3種類の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は、それぞれ短縮版のd、t、sに置き換えることもできます。
40 (10 + (10*3))個のURLになります。注1: タイプ3のURLは、設定ファイルのスパイダーセクションで設定パラメータlive_crawlerをfalseに設定することで、タイプ1のURLに変換できます。
注2: 空行および「;」、「#」または「//」で始まる行は無視されます。
スパイダー機能は、Crawlectorにターゲットページ上の追加リンクを見つける機能を提供します。スパイダーは以下の機能をサポートします。
Type 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自体に追加することで、タイプが明示的に割り当てられます。