「Japan VMUG vExpert が語る 第16回 」にて、Carbon Black の「Live Query」で利用されている OSS である osquery を紹介しました。osquery 自体がどのように利用できるのか、そして Carbon Black ではどのように活用されているのか様子を見てみます。
今回の内容です。
- Carbon Black の Live Query とは
- osquery とは
- osquery のインストールと実行例(Linux)
- osquery での情報収集の例
- Carbon Black での osquery(Live Query)
- Carbon Black での Live Query の活用例
- Test Drive での Live Query 動作確認
- 当日の録画
Carbon Black の Live Query とは
Carbon Black の主な機能として、下記のようなものが挙げられます。このうち、3つ目の「IT 環境の把握」をする機能が Live Query です。
- 次世代アンチウイルス(NGAV)
- エンドポイントの脅威検知と対応(EDR)
- IT 環境の把握(IT ハイジーン / 脆弱性管理 / コンプライアンス管理)
また Live Query は、Carbon Black の以前からの説明やドキュメントにある「Audit and Remediation(監査と修正)」の、Audit(監査)にあたります。この機能の実態は、Carbon Black Cloud Console の Web UI から実行できる osquery です。
osquery とは
osquery は、Facebook(現 Meta)が開発した、SQL で OS の情報を取得できるようにする OSS です。Windows / Linux / macOS など、さまざまな OS で利用できます。
osquery のソフトウェアは、GitHub で公開されています。
たとえば、OSS osquery の Version 5.2.3 であれば、GitHub のリリース ページか、osquery.io のページから、.msi や .rpm といった各 OS むけのインストーラーをダウンロードできます。
osquery のダウンロード ページ(osquery.io と GitHub)は、下記のような感じです。
osquery のインストールと実行例(Linux)
今回のデモでは、私が使い慣れている Linux(Oracle Linux 8)を使用しました。
いわゆる Red Hat 系ディストリビューション(というか RHEL クローン)なので、下記の RPM をインストールします。
RPM を dnf(もしくは yum)でインストールします。
# yum install -y https://pkg.osquery.io/rpm/osquery-5.2.3-1.linux.x86_64.rpm
これで、osqueryi コマンドが実行できるようになります。osquery のバージョンは、下記のように確認できます。
# osqueryi --version
osquery のメタ コマンド(SQL ではないコマンド)には「.」がつきます。実行結果はセッション録画を参照・・・
# osqueryi .table
下記のように SQL を実行すると、OS の情報を確認できます。この例では、OS で実行されていているプロセス情報のテーブル(processes)から、名前が「bash」のものを取得しています。
# osqueryi "SELECT * FROM processes;" # osqueryi "SELECT pid, name, uid, gid, start_time FROM processes WHERE name = 'bash';"
osqueryi のみを実行すると、「osquery>」プロンプトが起動され、SQL やメタ コマンドを、インタラクティブに実行できます。osqueryi を終了するには、「.quit」を実行します。
# osqueryi osquery> .help osquery> .schema sudoers osquery> SELECT * FROM sudoers; osquery> .quit
osquery で用意されているテーブルと、その定義(スキーマ)情報については、メタ コマンドの「.table」、または osquery のサイトなどで確認できます。
メタ コマンドであれば、「.table <文字列>」で存在するテーブル名を確認できます。そしてテーブルの定義情報は「.schema <テーブル名>」で確認できます。
osquery での情報収集の例
実際に processes テーブルで、プロセス名が「bash」のプロセスを探してみます。
そして users テーブルで、uid が 1000 のユーザを探してみます。
たとえば、oseuery によって用意された processes テーブルだけでは、実行しているユーザの uid はわかりますが、ユーザ名がわかりません。
そこで SQL を利用することで、複数のテーブルから情報取得できます。
例では、processes テーブルと users テーブルを組み合わせて、bash を起動したユーザ名を確認しています。このように、習得しやすい SQL による OS 情報取得ができるようになります。
同様に、Windows でも osquery をインストールすることで、SQL による OS 情報収集が可能になります。ただし、コマンドは osqueryi ではなく osqueryi.exe になります。
Windows ならではの、インストールされたプログラムの一覧なども取得可能です。
Carbon Black での osquery(Live Query)
Carbon Black で利用される Live Query の機能は、CBC Sensor に含まれています。つまり、CBC Sensor をインストールするだけで osquery もインストールされます。Carbon Black においては、osquery 単体をインストールしたり、コマンド ラインから osqueryi を直接実行したりすることはありません。
ちなみに、CBC Sensor ごとの osquery バージョンについては、下記のドキュメントから確認できます。
OSS の osquery との主な違いとしては、次のような点が挙げられます。
- CBC で管理されているデバイスに、まとめて実行できる。
- 過去のクエリ結果を確認できる。
- プリセットのクエリが用意されている。直接 SQL を記述することも可能。
ちなみに、CBC Sensor から実行される osquery のプロセスを確認すると、Windowsであれば、osqueryi.exe が Live Query 実行に起動されていることがわかります。
実際に、実行対象の Windows でプロセスを直接確認したり、CBC Console の Investigation などから調査すると、BladeRanner.exe が親プロセスとなっている「C:\Program Files\Confer\Blades\LiveQuery\osqueryi.exe」が実行されることが
確認できます。BladeRanner.exe については Carbon Black Cloud Console からリモートで修復対応をする機能である「Live Response」でも利用されています。
Carbon Black での Live Query の活用例
下記のように、Carbon Black Community などで、Live Query むけの SQL が公開されることがあります。
Carbon Black Community の Code Exchange
VMware(Carbon Black)の TAU-TIN
- TAU-TIN とは、Threat Analysis Unit - Threat Intelligence Notification のこと。
- Carbon Black Community で公開される脅威情報についての説明。要ログイン。
- レポート話題になっている脆弱性について、影響有無を確認する SQL が提供されることがある。
- TAU-TIN は、下記でサブスクライブできる。
https://community.carbonblack.com/t5/Threat-Research-Docs/tkb-p/threat-research-knowledge/label-name/tau-tin?labels=tau-tin
TAU-TIN では、影響確認のための、Live Query むけの SQL が案内されることがあります。
- 例: TAU-TIN - PrintNightmare
https://community.carbonblack.com/t5/Threat-Research-Docs/TAU-TIN-PrintNightmare/ta-p/105222
OSS の osquery 自体も、下記のようにセキュリティ目的で利用されることがあります。当然ながら、これらの SQL は Live Query でも活用できます。
MITER ATT&CK の osquery へのマッピング
Test Drive での Live Query 動作確認
Live Query を VMware TestDrive でためす場合は、Intrinsic Security タブにある「VMware Carbon Black ~」という名前のコンテンツが利用できます。
ただし、TestDrive を利用するには、VMUG Advantage メンバー(もしくは VMware のパートナー、vExpert など)になる必要があります。
当日の録画
当日の録画はこちら。
イベントのプレイリストです。
以上、osquery と Carbon Black についての話でした。