Stratosharkとは?
Stratosharkは、Wiresharkの創設者Gerald Combsと、Falcoの作者Loris Degioanniによって作られ、Falcoエコシステムを通じてWiresharkの深いネットワーク可視性をクラウドへもたらします。Wiresharkのパケット解析とFalcoのランタイムセキュリティを組み合わせることで、より迅速なトラブルシューティング、確信を持ったインシデント対応、そしてクラウドネイティブな柔軟性を実現します。ユーザーは、Wiresharkが25年以上にわたり提供してきた信頼できる精度で、システムコール、クラウドログ、ネットワークパケットを分析できます。
つまり、Wiresharkでパケット調査ができるなら、システムコールやクラウドログでも同じことができるようになった、というわけです!
なぜ気にするべき?
Stratosharkは、Wiresharkに着想を得た、クラウドネイティブ世界におけるフォレンジックと調査の新しいやり方です。Wiresharkはこうした作業を行うための深いワークフローを提供しており、多くのセキュリティ実務者がそれを学び、日々の業務で使っています。Stratosharkなら、そのスキルセットを最新のデータソースや脅威に対して活用できます。せっかくのリソースやトレーニングを無駄にする理由があるでしょうか?
Stratosharkは常に無料で、自由に利用できます。現代世界で起きていることに対処するための最高のツールに、コミュニティがアクセスできるようにしたいのです。
なるほど — ではどうやって始めるの?
https://stratoshark.orgにアクセスし、お使いのOSに対応するダウンロードリンクをクリックするだけです。Wiresharkと同様に、Stratosharkはローカルデバイス上で動作します。
私の場合は、macOS Armのディスクイメージを入手します。 ダウンロードしている間に、Stratosharkのホームページには、動画からより高度なユースケースまで、役立つかもしれない他のリソースがいくつかあることに気づくでしょう。
Macでは、dmgを開いてStratosharkをアプリケーションフォルダへドラッグ&ドロップするだけです。
(Windowsでは実行形式のインストーラーが提供されるので、手順に従うだけです!)
また、Macでは初回起動時に、インターネットからダウンロードしたアプリケーションであることを確認するため、最初の実行時に「開く」をクリックする必要があります。
Wiresharkに慣れているなら、きっと「見慣れた」ウィンドウが表示されているはずです!
ここからはいくつかの進め方があります。ChmodBPFをインストールしてローカルマシンからキャプチャを取得する(実用的なユースケースとしては微妙かもしれませんが、それでも遊ぶには楽しいです)、cloudtrial向けのFalcoプラグインを使ってS3データを分析する、あるいはsshdigを使ってリモートキャプチャを開始する、といった方法です。
今日は最後の選択肢を選びますが、今後の投稿ではcloudtrialプラグインを使ってAWS環境の変更を調査する方法を取り上げるので、Sysdigブログをチェックしてください。
sshdigを使うには、システムコールをキャプチャするためにリモートエンドポイント側にもう1つ必要なものがあります。Wiresharkがパケット収集のためにtcpdumpへのアクセスを必要とするのと同様に、sshdigもエンドポイント上でシステムコールをキャプチャする何かが必要です。この場合、オープンソースのsysdigを使用します。
幸い、Linuxマシンからキャプチャするのでインストールもとても簡単です。sysdigをインストールするには、ターゲットホストで次のコマンドを実行してください。
curl -s
https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash
Linuxターゲットにログインしてください。
そしてsysdigをインストールします。
sysdigがインストールされて動作していることを確認するには、次を実行してcursesインターフェースを開きます。
sudo csysdig
おめでとうございます!sysdigのインストールが完了しました!終了するにはQを押すだけです。
できることをもっと知りたい場合は、Sysdig OSSの使い方に関するこのブログを確認してください。
それではStratosharkのインターフェースに戻り、「SSH remote syscall capture: sshdig」をダブルクリックして、いくつかのプロンプトを入力しましょう。
リモートアドレスとポートを指定します。
sudo権限を持つユーザーとパスワードも指定する必要があります。このユーザーはsudo実行時にパスワードを要求しない設定にしておくのが望ましいです。これを有効にするには、sudoersファイルに`USERNAME ALL=(ALL) NOPASSWD: ALL`を追加する必要があります。私の場合はetcsudoersにあり、ファイル末尾に次を追記しました:stratoshark ALL=(ALL) NOPASSWD: ALL。
sysdigが選択されていること、特権アクセスの方法としてsudoが設定されていることを確認してください。eBPFにチェックが入っていることも確認します。
必要ならログ用のファイルを設定します。
あとはStartをクリックするだけです!
重要な注意:Macでは、Stratosharkを初めて実行すると、おそらくこのプロンプトが表示されて実行がブロックされます。AllowをクリックしてStratosharkを再起動する必要があります。Statosharkを閉じて開き直すと、キャプチャ設定のためにパスワードを再入力する必要があります。その場合は、「SSH remote syscall capture: sshdig」の横にある小さな歯車をクリックして再入力してください。
接続が確立され、キャプチャデータが表示され始めます!
ボーナスラウンド:何かを調査してみよう!
Stratosharkで暗号資産マイナー(cryptominer)はどのように見えるのでしょうか?確かめてみましょう!今回は説明のため、意図的にそれが現れるようにしますが、クラウドの計算時間を盗んでcryptominerを動かす行為は、現代の攻撃では珍しくありません(SCARLETEELは、cryptominerが使われるそのような攻撃の一例です)。
これを行うために、ubuntuコンテナをデプロイし、xmrigをダウンロードして実行します。その間、Stratosharkでホストからシステムコールをキャプチャします。
ステップ1:コンテナをデプロイ!
注:Linuxホストにdockerをまだインストールしていない場合は、こちらの手順を確認してください。
最新のubuntuコンテナをデプロイしてアタッチします:
docker run -i --name ubuntu -t ubuntu:latest /bin/bash
動作確認も兼ねて、軽く更新してみましょう:apt updateを実行します。
よし!curlをインストールしましょう:apt install curl を実行し、続行するにはyを押します。
これでコンテナにcurlが入ったので、xmrigを取得できます。
curl -OL https://github.com/xmrig/xmrig/releases/download/v6.16.4/xmrig-6.16.4-linux-static-x64.tar.gz
xmrigを展開します
xmrigディレクトリに移動します:
cd xmrig-6.16.4
これで暗号資産マイニングを捕まえる準備ができました!
Stratosharkのインターフェースに戻ってください。まだなら、先ほど行ったテストキャプチャを閉じます。
では新しいキャプチャを開始しましょう。小さな歯車をクリックして、パスワードや他の項目が設定されていることを確認し、startをクリックします。
キャプチャが動いている状態で、ターミナルに戻り、先ほど移動したxmrigディレクトリから次のコマンドを実行します:
timeout 30s ./xmrig -o
stratum+tcp://xmr.pool.minergate.com:45700 -u [email protected] -p x -t 2
接続エラー(connection refused)が出るまで待ちます(実際にマイニングするわけではなく、ちょっとしたお遊びです!)。
cryptominerをcontrol-cで止め、Stratosharkのウィンドウに切り替えてstopを押します。
これで、悪意のあることが起きたと分かっている大きなキャプチャファイルが手に入りました。Stratosharkで最初のフィルタを使い、xmrigプロセスから来ているものを探してみましょう。これを行うには、上部のフィルタバーに次を入力します:proc.name == “xmrig”
Wiresharkに慣れているなら、ここからはかなり見覚えのある感じになってくるはずです。イベント名、色分けなどが見えてきます。一番上にはexecveイベントが表示されるはずです。これはxmrigを実行したタイミングです。
最初のイベントをハイライトすると、Stratosharkの真の力が見えてきます。単一プロセスに関するフォレンジックデータ量は圧倒的です。Wiresharkのパケットと同じように、イベントそのものについて大量のデータが得られます。
上部には、タイミング、長さなどの一般的なシステムイベント情報が表示されます。 次のセクションから、いよいよ面白くなってきます。Sysdig Eventの下を見ると、特にパラメータセクションに詳細があることが分かります。実行ファイル名に続いて渡されたすべての引数、PID、そしてenv HOSTNAME配下のコンテナID(この例ではa22456d7ae21)など、役立つ環境情報が表示されます。
さらに下へ進むと、プロセスの祖先など、イベントやプロセスの詳細を確認できます。今回のケースでは、コンテナ内のbashから30秒のtimeout付きで実行しました。systemdがcontainerdランタイムを起動し、その中でbashを実行し、最終的にtimeoutコマンドを実行したことが分かります。
さらに下では、ユーザー情報やシェル情報(今回のケースではrootとbash)も利用できます。
私たちが見ているこれらのデータはすべて、コンテナ内でxmrigプロセスを起動しただけの、単一のexecveイベントから得られたものです!ホスト内で何か悪意のあることが起きている疑いがあり、より多くの情報を見つけて証拠を収集する必要がある場合、Stratosharkはこの点で非常に優れています。
ぜひキャプチャをいろいろ触って、他にどんなことが読み取れるか試してみてください。Stratosharkシリーズの次回の公開にも注目してください。次回は、Stratosharkを使ってcloudtrialデータを取得し、クラウド設定の変更を調査する方法を扱います。
さらに学びたい、もっと話したい、あるいはStratosharkに貢献したい場合は、ぜひDiscordに参加して、今日からコミュニティと一緒に取り組みましょう!
翻訳元: https://www.sysdig.com/blog/up-and-running-with-stratoshark-in-5-minutes






















