コンテンツまでスキップ

CrowdStrikeをAmazon EC2 にインストールして通信を見てみた

みなさんこんにちは。ゲストブロガーの亀田です。

CrowdStrikeの検証を実施する際、適切なクライアント環境が不足していることに悩まされた経験はありませんか。

単に接続性を確認するだけであれば、どの端末でも対応可能ですが、危険なファイルの保存や悪意のあるソフトウェアのインストールを目的とした検証を行う場合、事前に隔離された環境が必要です。実際の端末でこれを準備するのは困難な場合があります。また、マルウェアによっては、端末内だけでなく、接続しているWi-Fiネットワーク内の他の端末への侵入を試みることもあり、検証専用ネットワークの準備が必要です。

ということで、簡単かつ強固なネットワーク分離を提供してくれる環境として、Amazon EC2 Windows Serverにインストールしたのち、通信状況を見てみることにしました。

 

インストール

インストール手順は通常のWindowsクライアントで行われるようなものと同様ですが、インストーラーの取得のために、CrowdStrikeの管理者画面からセットアップファイルをダウンロードしてくる必要があります。目的がいろいろ怪しいものをインストールするクライアント端末から直接コンソールログインはしたくありませんでした。

インストーラーは120+MBあるのですが、ファイルアップロードを行うのが手間なので、GoogleDriveを使用しました。ただしCrowdStrikeの管理者画面と同様にGoogleDriveのインストールも厳しく、またCrowdStrikeのインストーラーは一般公開を行えないため、ChromeのシークレットウインドウでGoogleDriveにログインしてダウンロードしました。この方法だと環境にGoogleアカウントへのログイン情報が残らないため安心です。

t3.microでもインストールが行えましたが、その後の検証などがあまりに遅すぎたためt3.mediumへアップグレードしたところレスポンスがいい感じになりました。

インストール直後に自動でServerが1台認識されました。

ウイルス検知テスト

この状態でアラートを起こしてみます。

echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > C:\Users\Public\eicar.

これはエンドポイントなどセキュリティ業界では有名なコマンドで、PowerShellから実行すると安全なウイルスとして認識させることができます。実行すると即時にWindows Defenderのアラートが上がると同時にCrowdStrike側でDetectionアラートが上がります。

動作確認はこれで終了です。

 

通信について

CrowdStrikeのクライアントの通信先はほとんどの場合AWSになる、として情報公開がされているようです。

 

# 確立済みの通信を取得
$ connections = Get-NetTCPConnection | Where-Object { $_.State -eq 'Established' }

# ユニークなリモートIPを逆引き
$uniqueIPs = $connections.RemoteAddress | Sort-Object -Unique
$dnsMap = @{}

foreach ($ip in $uniqueIPs) {
    try {
        $dnsMap[$ip] = [System.Net.Dns]::GetHostEntry($ip).HostName
    } catch {
        $dnsMap[$ip] = "N/A"
    }
}

# DNS付きで一覧表示
$connections | ForEach-Object {
    [PSCustomObject]@{
        LocalAddress  = $_.LocalAddress
        RemoteAddress = $_.RemoteAddress
        RemoteHost    = $dnsMap[$_.RemoteAddress]
        RemotePort    = $_.RemotePort
        State         = $_.State
    }
} | Format-Table -AutoSize

 

PowerShellでこのコマンドを実行すると、

LocalAddress RemoteAddress  RemoteHost                                                                                                RemotePort  State
------------   -------------        ----------                                                                                                          ----------            -----
172.31.34.45  4.213.25.240         N/A                                                                                                                   443                   Established
172.31.34.45  100.20.76.137      ec2-100-20-76-137.us-west-2.compute.amazonaws.com        443                   Established

 

として通信をしていることがわかります。これがCrowdStrikeの相手先のようです。

 

また以下のブログで紹介しているツールを使ってL7の通信を除くとある特定ドメインと頻繁に通信を行っていました。

 

LaunchDarklyとはソフトウェアのA/Bテストやカナリヤリリースなどを制御する機能を提供するサービスです。たとえばバージョンアップの際に特定の機能だけを切り戻す、などの様につかわれます。これとCrowdStrikeのクライアントは連携しているようです。