Akamai Guardicore Segmentation の機能紹介「Insight」
Akamai Guardicore Segmentation について
Akamai Guardicore Segmentation (以下 「AGS」) は、サーバーや端末にソフトウェアエージェントを導入することにより、組織内部の通信を可視化した上で、個々のホストの役割に応じて制御するマイクロセグメンテーションを実現するソリューションです。
AGS とその優れた可視化に関しては、Akamai Guardicore Segmentation の機能紹介「Reveal」 もあわせてご参照ください。
オプション機能「Insight」の紹介
今回は、AGS のオプション機能として提供されている Insight を紹介します。
Insight は、エージェントに組み込まれたオープンソースソフトウェアである OSQuery を利用することで AGS の活用領域をさらに広げます。
多数のエージェントから個々のシステムの情報を抽出し、結果を表示したり、それを元にラベルを付与することができます。
また、このラベルを用いたポリシーを作成することが可能になります。
AGS では、ラベルを活用することにより個々のホストの役割等の属性に基づいたセグメンテーションを行なうことができますが、これに加えて Insight を利用することによってホストの「状態」に基づいた制御が可能となり、様々なセキュリティ運用上の要求に応えることができます。
この記事では設定画面を見ながら説明していきます。
オプションラインセンスをご利用いただいている場合、Protect メニューの中に INSIGHT というセクションが表示され、Run Query と Scheduled Query が選択できます。

Insight の機能は、当ブログ執筆時点では下記の OS のエージェントにおいてサポートされています。
- Windows 2012, 2016, 2019, 2022, 64bit, Windows 8, 10, 11.
- 2011 年以降の各 Linux ディストリビューション
OSQuery
Insight で利用されている OSQuery はもともと Facebook 社(現 Meta 社)が 2012 年にリリースしたオープンソースソフトウェアで、現在も開発が続いており、世界中の多くの主要な環境で利用されています。
OSQuery を用いるとユーザーは SQL クエリーによって、実行中のプロセス、ロードされているカーネルモジュール、ネットワークコネクション、インストールされたソフトウェアパッケージ、ブラウザーのプラグイン、ハードウェアの情報、特定のファイルのハッシュ値など、システム上の様々なデータを統一的に取得することができます。
取得できるデータの種類はOSQueryのウェブサイト上 (SCHEMA) で確認することができます。
クエリーの実行
ユーザーはいつでも指定したエージェント群に対してクエリーを実行することができます。
クエリーの実行画面は、UI 上の「Protect」内にある「Run Query」からアクセスできます。

Query のテキストエリアに直接 OSQuery の SQL 文を入力することができますが、ここでは上部の Catalog にあるサンプルから、「OS Versions Information」 を選択してみます。これによりテキストエリアに以下のクエリー文が入ります。
SELECT name, version, build, platform FROM os_version
このクエリーでは、OS のバージョン情報を取得できる os_version というテーブルから、name、version 等、4 つの列の値を取り出します。
画面右側の Scope から対象のエージェントをラベルや OS 種別で限定することができます。一部のテーブルは Windows のみ、あるいは Linux のみでサポートされていますが、 os_version は双方でサポートされていますので、ここでは All のままにします。
Run ボタンを押すと各エージェントにクエリーが送られ、結果が表示されます。

画面では一部省略されていますが、pc01 と server01 のエージェントの OS がそれぞれ Windows 11 と Rocky Linux であることが確認できます。
結果は CSV ファイルとしてダウンロードすることもできます。
定期クエリー
システムを継続的に監視できるように、定期的に実行されるクエリーを設定することもできます。
例えば、組織で定めたセキュリティーポリシー基準に違反したホストが存在した場合、それを発見してアラートを送信したり、それらのホストに自動的にラベル付けを行い、ネットワークから分離するポリシーを適用するといったことが可能です。
ここでは例として、一定期間パスワードが変更されていないホストに対してラベル付けを行います。
定期クエリーの設定画面は、UI 上の「Protect」内にある「Scheduled Query」からアクセスできます。
新たな定期クエリーを作成するため、「+ Create query」ボタンを押します。これにより以下の設定画面が表示されます。

Title に、分かりやすい名前をつけておきます。ここでは「Old Root Password」とします。
Scope で、対象の Operating System として Linux を選択します。
以下のクエリー文を Query として入力します。
SELECT *
FROM shadow
WHERE last_change < 19358 AND username="root";
shadow というテーブルは、Linux で通常 /etc/shadow というファイルに格納されている、OS 上のユーザーに関する情報にアクセスします。
ここでは2023 年 1 月 1 日以降パスワードが変更されていない、ユーザー名が「root」のアカウントを表示するクエリーです(19358 という数字は 2023年1月1日を 1970年1月1日 からの日数で表現したものです)。
このクエリーに対してマッチする結果を返したエージェントに対してアクションが実行されます。
- クエリー結果に基づいてラベル付けを行うため、Action で Set Label をチェックし、Key および Value として 「Compliance」、「Old_Root_Password」 を入力します。
Remove label from unmatched agent もチェックすることで、条件を満たさなくなった場合、つまりパスワードが更新された際にはラベルが削除されるようにします。
Interval (Hours) にはこの定期クエリーを実行する周期(時間)を指定します。
最後に Schedule ボタンにより設定を完了します。

また、また、Interval の設定によりクエリーは4時間毎に実行され、結果が更新されます。
このラベルを送信元や宛先とするブロックポリシーを設定すれば、長期間 root ユーザーのパスワードが変更されていないホストをネットワークから実質的に隔離することができます。
脆弱性対応における Insight
Insight の機能は、広く使われているソフトウェアに関して新しい脆弱性が発見、発表された場合の対応等においても力を発揮します。
脆弱性に対する長期的な解決策はパッチを適用することですが、ベンダーからのパッチの提供が遅れたり、適用前のテストに時間がかかる場合もあります。脆弱性を持つソフトウェアがインストールされたホストを OSQuery で抽出するクエリー文を書くことができれば、 Insight を用いてこれら全てのホストに対して自動的にラベル付けを行い、通信を監視したり制限するといった暫定対応を即座に行うことができます。
以下のブログ記事(英語)では、Log4Shell とも呼ばれた Log4J の脆弱性への対策として、Insight を活用して Log4J を利用した Java アプリケーションの実行されているホストを発見したり、YARA シグネチャを用いたクエリー文を実行することにより攻撃の試みを検出する手法を解説しています。
Mitigating Log4j Abuse Using Akamai Guardicore Segmentation
まとめ
AGS の Insight 機能は OSQuery の持つ豊富なシステム情報の検索機能をマイクロセグメンテーションに統合することにより、日々のセキュリティ管理で発生する課題に対して新たな解決手段を提供します。