Device Protection の仕組み
Aikido Device Protection は各端末に軽量な Layer 4 プロキシをインストールします。サポート対象のパッケージマネージャーのトラフィックのみを検査し、それ以外はすべて素通りします。
flowchart LR A[Network traffic on device] --> B{Supported ecosystem?} B -- No --> C[Passes through unchanged<br/>not inspected] B -- Yes --> E{On device inspect traffic<br/>and policy decision}
E -->|Allowed| F[Install allowed] E -->|Blocked| G[Install blocked]
F --> R G --> R R[Reported to Aikido]
classDef block fill:#ffd6d6,stroke:#c0392b; classDef allow fill:#d6f5d6,stroke:#27ae60; classDef flag fill:#fff2cc,stroke:#e1a100; class G block; class F allow; class H flag;判定は端末上で行われる
Section titled “判定は端末上で行われる”許可・ブロックのすべての判定はローカルで行われます。Aikido はあなたのトラフィック、閲覧履歴、ダウンロードしたファイルを受け取ることはありません。
エージェントは、ポリシーを適用するために必要なデータのみをダウンロードします。
- 許可リストとブロックリスト
- マルウェアシグネチャ
- ポリシールールと例外
この同期の後は、端末単独でルールを適用できるようになります。
Aikido が受け取るデータとそのタイミング
Section titled “Aikido が受け取るデータとそのタイミング”パッケージの中身は端末内にとどまり、一般的なブラウジングも Aikido からは見えません。エージェントが報告するのはインストールの結果とインストール済みパッケージのみです。
- 許可されたインストール
- ブロックされたインストール
- フラグが立てられたインストール
- インストール済みパッケージ
インストール済みパッケージは SBOM(ソフトウェア部品表。使用中のパッケージの一覧)としてまとめられ、1日に1回生成・同期されます。インストールの結果は即座に報告され、エージェントはオンライン状態を示すために10分ごとにハートビートを送信します。
エージェントが Aikido に到達するには、アウトバウンドのインターネットアクセスが必要です。ポート 443 の HTTPS 経由で *.aikido.dev を許可リストに追加してください。
サポート対象のエコシステムのみを傍受する
Section titled “サポート対象のエコシステムのみを傍受する”このプロキシは一般的な Web フィルターではありません。サポート対象のパッケージエコシステムのみを傍受します。それ以外のトラフィックはそのまま素通りします。
サポート対象のパッケージマネージャーは HTTPS を使用します。そのトラフィックを検査するため、エージェントは端末上のローカル認証局(CA)を使用します。これは Aikido が監視するエコシステムに対してのみ使用されます。
以下は Aikido Device Protection が傍受するドメインです。このリストには、パッケージレジストリ、開発ツールのマーケットプレイス、Aikido 自身の保護用エンドポイントが含まれます。
api.nuget.orgapp.aikido.devendpoint-server.aikido.devaikido-endpoint-binaries.s3.eu-west-1.amazonaws.comcentral.maven.orgchromewebstore.google.comchromewebstore.googleapis.comclients2.google.comclients2.googleusercontent.comcrates.ioindex.crates.iostatic.crates.iodevice-protection.aikido.helpfiles.pythonhosted.orggallery.vsassets.iogallerycdn.vsassets.iogithub.comglobalcdn.nuget.orgmarketplace.cursorapi.commarketplace.visualstudio.comopen-vsx.orgproxy.golang.orgpypi.orgpypi.python.orgregistry.npmjs.comregistry.npmjs.orgregistry.yarnpkg.comrepo.maven.apache.orgrepo1.maven.orgrepository.apache.orgrubygems.orgindex.rubygems.orgrepo.packagist.orgsum.golang.orgupdate.googleapis.comwww.nuget.orgCA の仕組み
Section titled “CA の仕組み”Aikido は2階層の CA モデルを使用しています。
- 中間 CA: MDM 経由で端末にデプロイされるか、エージェントによってローカルで生成されます。この CA は顧客ごとに一意であり、その秘密鍵は Apple の保護されたストレージ(Secure Enclave / Keychain)に保存されるため、端末の所有者であっても鍵を読み取ったりエクスポートしたりすることはできません。
- 短命なプロキシ CA: 実行時にルート CA によって署名されます。これはプロキシがパッケージマネージャーのトラフィックを検査する際に使用する CA です。有効期間は最大4日間です。仮にメモリから抽出されたとしても、すぐに失効するため、さらなる CA への署名には使用できません(署名時に中間 CA のみが有効になるよう制御されています)。
ルート CA が端末から外に出ることはありません。プロキシ CA は失効前に自動的に再署名されます。
macOS 上の CA ファイルの場所:
/Library/Application Support/AikidoSecurity/EndpointProtection/run/endpoint-protection-combined-ca.pem
- Aikido Device Protection はウイルススキャナーではありません。 ファイル、プロセス、またはシステム内に既に存在する脅威を検査するものではありません。代わりに、マルウェアが端末に到達する前にブロックすることで機能します。つまり、端末に既にマルウェアが存在している場合、Aikido Device Protection はそれを検知したり削除したりすることはできず、その端末は侵害された可能性があるものとして扱う必要があります。
- Aikido Device Protection は現在、macOS 上の Docker または Podman をサポートしていません