コンテンツにスキップ

パッケージインストール時に Device Protection を強制する

Aikido Device Protection が有効になっていないマシンでのパッケージインストールをブロックします。これにより、ポリシーだけに頼ることなく、開発ワークフローの一部として保護を強制できます。

サプライチェーン攻撃は依存関係を通じて仕掛けられることがよくあります。Device Protection はインストール時に悪意のあるパッケージを検知しますが、それはエージェントが動作している場合に限られます。インストール前チェックを追加することで、開発者が保護されていないマシンで誤ってパッケージをインストールしてしまうことを防げます。

ほとんどのパッケージマネージャーは、インストール前に実行されるライフサイクルフックやラッパースクリプトをサポートしています。チェックが0以外の終了コードで終わると、インストールは中断され、開発者にわかりやすいメッセージが表示されます。

macOS

Terminal window
/Applications/Aikido\ Endpoint\ Protection.app/Contents/Resources/scripts/healthy

Windows

Terminal window
& "C:\Program Files\AikidoSecurity\EndpointProtection\scripts\Healthy.ps1"

npm

package.jsonpreinstall スクリプトを追加します。

{
"scripts": {
"preinstall": "/Applications/Aikido\ Endpoint\ Protection.app/Contents/Resources/scripts/healthy"
}
}

yarn / pnpm

yarn と pnpm はどちらも package.jsonpreinstall スクリプトを尊重します。

{
"scripts": {
"preinstall": "/Applications/Aikido\ Endpoint\ Protection.app/Contents/Resources/scripts/healthy"
}
}

pip / uv

pip と uv にはネイティブのインストール前フックがありません。インストールをラップする Makefile ターゲットを使用してください。

install: check-aikido
pip install -r requirements.txt
check-aikido:
/Applications/Aikido\ Endpoint\ Protection.app/Contents/Resources/scripts/healthy

pip install を直接実行する代わりに make install を実行してください。同じパターンは uv syncpoetry install にも適用できます。

Maven

pom.xmlvalidate フェーズに exec-maven-plugin を追加します。これは依存関係が解決される前に実行されます。

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>check-aikido</id>
<phase>validate</phase>
<goals><goal>exec</goal></goals>
<configuration>
<executable>bash</executable>
<arguments>
<argument>-c</argument>
<argument>/Applications/Aikido\ Endpoint\ Protection.app/Contents/Resources/scripts/healthy</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>

NuGet

プロジェクトに .targets ファイル(例: CheckAikido.targets)を追加し、.csproj でインポートします。

<!-- CheckAikido.targets -->
<Project>
<Target Name="CheckAikido" BeforeTargets="Restore">
<Exec Command="bash -c &quot;/Applications/Aikido\ Endpoint\ Protection.app/Contents/Resources/scripts/healthy&quot;" />
</Target>
</Project>
<!-- YourProject.csproj -->
<Import Project="CheckAikido.targets" />

Git フックはパッケージインストールではなく、コミットやチェックアウトの前に発火します。ただし、保護されていないマシンでのすべての git 操作をブロックしたいチームにとっては、有用な第2の防御ラインになります。

.git/hooks/pre-commit にチェックを追加します。

#!/bin/bash
/Applications/Aikido\ Endpoint\ Protection.app/Contents/Resources/scripts/healthy

実行権限を付与します。

Terminal window
chmod +x .git/hooks/pre-commit