クラウドストライク、電気通信事業者を標的にするグローバル脅威のハンティング:DecisiveArchitectとそのカスタムインプラントJustForFunについて解説
クラウドネイティブのエンドポイント、クラウドワークロード、アイデンティティ、データ保護のリーダー、CrowdStrike(NASDAQ: CRWD)の日本法人であるクラウドストライク株式会社(本社:東京都港区、カントリー・マネージャー:尾羽沢 功、以下クラウドストライク)は本日、電気通信事業者を標的とした「DecisiveArchitect」アクティビティクラスタに関する詳細情報をブログで紹介します。
セキュリティ環境は日々進化しており、エンドポイントでの検知と対応(EDR)ユーティリティを使用してネットワーク全体でのエンドポイントの可視性を簡単に確立できるようになっています。しかしながら、Solarisなどのレガシーオペレーティングシステムやプロプライエタリオペレーティングシステムでシステムを実行しなければならない組織が数多く存在することが、依然として一定の課題として残っています。そのようなシステムが別のセキュリティ管理機能で適切に保護されていない場合や、適切なエンドポイントベースの検知・保護機能を備えたシステムからのみアクセスできる状態になっていない場合、組織の可視性でギャップが生じ、これを攻撃者に悪用されてしまう可能性があります。
2019年、CrowdStrike Servicesインシデントレスポンス(IR)チーム、CrowdStrike Intelligenceチーム、Falcon OverWatch™チームは、特に電気通信関連のグローバル企業を標的として、通話明細記録(CDR)や特定の電話番号に関連する情報などの標的にした個人ユーザーの情報取得を目的とする攻撃者の存在を複数回に渡って確認しました。
LightBasinとして報告されているアクティビティクラスタと同じように、この攻撃者は、CrowdStrike IntelligenceによりJustForFun(一般にはBPFDoorとして知られる)として追跡されているカスタムインプラントを使用して、主に Linux および Solaris システムに狙いを定めています。この攻撃者は(主に侵害の初期段階で)Windowsシステムにも影響を及ぼしているものの、Windowsシステムに向けられたカスタムインプラントはまだ確認されていません。この攻撃者はその代わりに、ldapdomaindumpやポストエクスプロイトフレームワークのImpacketなどの一般に公開されているツールを利用して、以前に侵害したLinuxシステムからWindowsシステムを標的としています。
CrowdStrike Intelligenceは現在、一般にはRed Menshenとして知られるDecisiveArchitectアクティビティクラスタによるこれらの侵害を追跡していますが、クラウドストライクでは、現在、この活動を特定の国家や地域の集団と結び付けてはいません。クラウドストライクは、この攻撃者が主に電気通信事業者を標的としていることを確認していますが、物流企業などの組織を標的とした別のインシデント事例も確認しています。
DecisiveArchitectは、さまざまな防御回避技術を使用することで、防御者による活動の特定と調査を困難にする戦術の一環として、高度な運用上のセキュリティを示します。一般公開されている他の調査では、このインプラントがどのように動作するかについて説明されていますが、このブログでは、このインプラントや、似たような形で動作する可能性のあるインプラントのハンティング手法に加え、Solarisシステムの興味深い技術について説明します。
偽装されたコマンドライン
DecisiveArchitectは、CrowdStrikeがJustForFunとして追跡しているカスタムインプラントを活用しており、SysVinitスクリプトを使用して永続化されます。このインプラントが実行されると、図1に示すハードコーディングされた10のオプションの中の1つから新しいコマンドラインがランダムに選択され、プロセス環境内のプロセスコマンドラインが書き換えられます。
DecisiveArchitectがインプラントと対話し、システム上に対話型シェルを確立すると、インプラントプロセスで生成されたbashプロセスにより次のコマンドラインが代わりに表示されます。これにより、アナリストやシステム管理者から自身の存在を隠す方法として、Postfixキューマネージャーが実行されているかのように偽装することができます。
qmgr -l -t fifo -u
Solarisシステムの場合、実行ファイルそのものに同様のコマンドライン偽装のメカニズムは認められないものの、DecisiveArchitectはSysVinitスクリプト内で特定された次の例のように、LD_PRELOADを使用して同様の機能を実現しています:
LD_PRELOAD=/lib/librbtinfo.so.1 /usr/lib/vtdaemon -c 16
このプロセスが実行されると、/usr/lib/vtdaemon -c 16のコマンドラインのみが表示されます。ここで、実際のJustForFunインプラントはファイル/lib/librbtinfo.so.1です。
2022年4月にCrowdStrikeはDecisiveArchitectの戦術、技術、手順(TTPs)に関する新しい手法を確認しており、この攻撃者がさらにLD_PRELOAD環境変数をLinuxシステム全体で使用して、JustForFunインプラント(/lib64/libcaac.so.1)を正しいプロセス(/sbin/agetty)の中に読み込んでいることが判明しました。これは、図1の偽装されたコマンドラインの標準リストから外れるものです。検出を回避するためのDecisiveArchitectのさらなる取り組みを示すものである可能性が高く、振る舞いベースのハンティング、検出手法の重要性が示唆されます。
偽装されたコマンドラインは、ホスト上での不審なアクティビティの調査に使用される可能性のあるpsなどのコマンドに表示されます。この偽装されたコマンドラインのために、そのプロセスが不審なものとして処理される可能性を低下させます。
Solarisの権限昇格の脆弱性を悪用
DecisiveArchitectは、CVE-2019-3010(xscreensaverの脆弱性)の公開されているエクスプロイトコードを介して、Solarisシステムを標的としています。この脆弱性を悪用するために使用されるバイナリは、通常の場合はJustForFunインプラントがデプロイされてから数分以内に確認されています。CVE-2019-3010は、LD_PRELOADの技術を使用してSolaris 11システムのrootユーザーへのローカル権限昇格を容易にする論理バグです。概念実証/ Proof-of-concept(POC)コードは一般に公開されており、DecisiveArchitectによる修正はなされていません。 表1は、この権限昇格アクティビティに関与するSolarisシステムで確認された2つのファイルを示しています。
永続化
DecisiveArchitectは、SysVinitスクリプト(rc.d/init.dスクリプト)を使用してLinuxシステム全体で永続化を実現しています。DecisiveArchitectは運用上のセキュリティを意識した手法を用いており、JustForFunインプラントを参照する新しいスクリプトを単に作成するのではなく、最終的にJustForFunインプラントを参照するため、まずは小さなスクリプトファイルを参照するように既存のSysVinitスクリプトを修正しています。以下は一例で、正しいSysVinitスクリプト/etc/rc.d/init.d/pcscdに追加された行と、JustForFunインプラント(/etc/sysconfig/pcscd.conf)を参照するスクリプト/etc/sysconfig/pcscdを含みます。
/etc/rc.d/init.d/pcscd:
41行目: if [ -f /etc/sysconfig/pcscd ] ; then
42行目: /etc/sysconfig/pcscd
/etc/sysconfig/pcscd:
# Source config
if [ -f /etc/sysconfig/pcscd.conf ] ; then
/etc/sysconfig/pcscd.conf
fi
このように永続化がネスト化されているため、一連のSysVinitスクリプトを確認するやり方の場合、スクリプトで参照される後続のファイルをすべて確認しない限り、JustForFunインプラントに関連した悪意のある行を特定することはできないでしょう。また、DecisiveArchitectは運用上のセキュリティに継続的に取り組んでおり、その一環として、システム上のさまざまな正しいSysVinitスクリプトを修正して、インプラントおよびそれに紐づいた永続化関連のスクリプトに異なるファイル名・パスを使用しています。これにより単一のシステムの分析で特定された痕跡を他のシステム間で検索することが困難になります。
検知とハンティング
この活動の検知およびハンティングに最適な方法のひとつとして、対象のLinuxシステム全体でEDRテクノロジーを活用する方法があります。この手法では、機械学習機能を使用して悪意のあるインプラントを検知・防止することや、ハンティング機能によって一般的なLinuxシステム管理ユーティリティの不正使用や偽装されたコマンドライン(代わりにPostfixキューマネージャーのコマンドラインを表示するコマンドラインで実行されるbashプロセスなど)で実行されるプロセスを特定できます。図2および図3は、CrowdStrike Falcon®プラットフォームの機械学習機能と、JustForFunインプラントとJustForFunコマンドラインツールに関連するFalcon OverWatchの検知を示しています。
注:以下のシナリオの例では、DETECTIONS ONLYとPREVENTIONSをオフにしてCrowdStrike Falconを構成しています。すでに述べたように、適切に構成されたFalconインスタンスであれば、ここで示されているアクティビティを停止できます。
ただし、大量のレガシーシステムやプロプライエタリシステムが組織にある場合や、すでに組織のネットワークに攻撃者が潜り込んでいる場合、あるいは単にLinuxシステムでEDRソフトウェアがデプロイされていない場合でも、すべてが失われることはありません。
トラフィックシグナルリングインプラントのハンティング
JustForFunインプラントはマジックパケットを待機するためにraw socketをオープンしていることから、Linux内蔵のユーティリティのlsofを使用して、raw socketがオープンしている実行中のプロセスを特定できます。
lsof -RPnl | grep SOCK_RAW | grep IP
プロセスでraw socketをオープンする正当な理由があるため、このコマンドだけでインプラントが存在するかどうかは特定することはできませんが、さらなる調査の対象にするプロセスを浮き彫りにすることはできます。
重要なこととして、DecisiveArchitectは偽装されたコマンドラインを使用するため、lsofコマンドは実際の悪意あるファイルではなく、偽装されたコマンドラインを報告します。これにより、プロセスが悪意あるものかどうかの判断をこれだけを頼りに行うことが困難になる場合があります。しかし、プロセスIDに対してgrepフィルタリングを使用せずにlsofコマンドを実行してこのプロセスに関連する開いた状態のファイルを一覧表示して、バイナリを特定できる可能性があります。以下は真陽性の一例で、行(コマンドライン)の先頭に、図1に示す偽装されたコマンドラインの1つの開始部分が表示されています。着目すべき点は、DecisiveArchitectが偽装されたコマンドラインをきわめて簡単に変更できることであり、アナリストはここで示されているプロセス以外にも注意する必要があります:
dbus-daem 1215 0 root 3u pack 11912 0t0 IP type=SOCK_RAW
lsofコマンドはデフォルトのSolarisインストールに含まれていないものの、プロセスから追加の詳細を取得するための同様のコマンドが存在します:
for _PIDno in /proc/*; do line=$(pfiles "${_PIDno}"); echo $_PIDno $line | grep bpf; done
for _PIDno in /proc/*; do line=$(pmap "${_PIDno}"); echo $_PIDno $line | grep libpcap; done
for _PIDno in /proc/*; do line=$(pldd "${_PIDno}"); echo $_PIDno $line | grep libpcap; done
上記の3つのコマンドはプロセスごとに繰り返されます。1番目のコマンドは、パケットフィルターで実行されているプロセスを示す文字列を検索し、残り2つのコマンドは、libpcapライブラリが読み込まれたプロセスを検索します。lsofコマンドと同様に、これだけではインプラントが存在するかどうかを特定できないため、アナリストは特定のプロセスでさらなる調査を行い、インプラントの有無を確認する必要があります。これらのプロセスを調査する際には、Solarisシステム全体でコマンドラインを偽装できるDecisiveArchitectの能力も考慮に入れる必要があります。
これらのエントリのいずれかを調査する際、問題になっているプロセスがraw socketをオープンする理由、パケットフィルターを使用する理由、libpcapライブラリを使う理由があるかどうかを検討することが重要です。tcpdumpやその他のパケットキャプチャユーティリティなどのプロセスを実行するシステムと関連しているために、偽陽性(いわゆる誤検出)になることがよくあります。
複数回確認されたDecisiveArchitectの侵害活動に基づいたこれらのハンティング技術であれば、DecisiveArchitectのアクティビティを比較的簡単に特定できます。その一方で、クラウドストライクはDecisiveArchitectが今後もLinuxおよびSolarisプラットフォームのインプラントの開発を継続すると予測しており、また、DecisiveArchitectが運用上のセキュリティに関する技術を改善して、防御側がDecisiveArchitectのアクティビティを特定・調査することをさらに妨害し、防御側のハンティング技術に対抗する方法を特定できるようになる可能性があると予測しています。
結論
DecisiveArchitectの攻撃オペレーションは、電気通信事業者にとっては明らかな進行中の脅威であり、物流企業などのその他の組織にとっても脅威となっています。このブログでは、DecisiveArchitectのインプラント、Solarisシステムに影響を及ぼすDecisiveArchitectの能力、攻撃者のインプラントを追跡する方法について説明し、組織がこのキャンペーンの被害を受けていないかどうかの判断に役立つ重要な情報を提供しています。
注
1. https[:]//github[.]com/0xdea/exploits/blob/master/solaris/raptor_xscreensaver
侵害の痕跡(IOC)
追加のリソース
- 電気通信事業者を標的とした別の脅威「LightBasin」については、こちらのブログ(英語のみ)をご覧ください。
- 2020年にCrowdStrike Intelligenceにより追跡された攻撃者に関する分析情報については、2022年版グローバル脅威レポート エグゼクティブサマリーをご覧ください。