TL;DR: Bazelは高速にビルドを実行しますが、セキュリティを複雑にしました。ロックファイルがなく、可視性が低く、手作業が多い状態です。AikidoはBazelプロジェクトを自動的にスキャンし、危険な依存関係を特定することで、カスタムスクリプトやCIのハックから解放します。
Bazelのセキュリティ課題
Bazelは大規模なコードベースと高速なビルドに優れていますが、標準的なロックファイルやマニフェストを使用しないため、セキュリティスキャンが困難になります。ほとんどのツールは、使用されているライブラリを認識できません。
チームは、スキャン可能なものを生成するためだけに、スクリプトやBazelの実験的なモジュールを使用して回避策を講じてきました。しかし、これは煩雑で時間がかかり、重要なCVEを見落としやすくなります。
Bazelビルドのセキュリティ確保は、これほど困難であるべきではありません。今ではそうではありません。
AikidoがBazelセキュリティをどのように自動化するか。
Aikidoの新しいアップデートにより、当社の「無駄を省いた」アプローチをBazelユーザーにも提供します。変更点は以下の通りです。
- 依存関係の可視性: Aikidoは、クラシックなBUILDルールを使用しているかBazelモジュールを使用しているかに関わらず、Bazelの依存関係定義を理解します。Bazelビルドが取り込むサードパーティライブラリとバージョンを自動的に識別します。ロックファイルがなくても問題ありません。AikidoはBazelファイルをスキャンして依存関係情報を抽出し、何も見落とされません。
- 脆弱性アラート: Aikidoが依存関係を把握すると、当社の脆弱性データベース(およびグローバルCVEフィード)と照合してチェックします。既知のCVEについてリアルタイムアラートを受け取ることができます。Bazelを介して脆弱なLog4jを使用していますか?Aikidoは他のエコシステムと同様に、それを即座にフラグ付けします。
- 統合SAST & シークレット: Aikidoは依存関係にとどまりません。Bazelベースのプロジェクトのコードの問題、シークレット、設定ミスもスキャンします。個別の設定やワークフローは不要です。開発者に優しい体験はそのままに、すぐに利用できます。
手動から手間いらずへ:開発者にとってのメリット
Bazelを使用するすべての開発者は、追加の労力なしにセキュアな開発者になることができます。この機能がどのように開発者の作業を容易にするかをご紹介します。
- 手動でのCVEハンティングはもう不要:メーリングリストや変更履歴を追跡する必要はありません。AikidoはBazelの依存関係を監視し、問題が発生した際にアラートを発します。CVEはAikidoダッシュボードで直接確認でき、掘り下げる必要はありません。
- 誤警報の削減: Bazelプロジェクトは、しばしば多数の生成コードと間接的な依存関係をバンドルします。AikidoのAIトリアージはノイズを排除し、実際に重要なものを特定し、それ以外を無視します。
- CI/CDはオプションであり、必須ではありません: 他のツールとは異なり、セキュリティインサイトを得るためだけにCIでBazelビルドを実行する必要はありません。Aikidoはコードから直接スキャンします – セットアップは不要です。いずれにせよCI連携をご希望ですか?問題ありません。CLIをパイプラインに追加すれば、Bazelの問題もそこで検知します。お客様のご判断です。
- 更新への自信: Bazelプロジェクトはバージョンを厳密に固定します。これは素晴らしいことですが、アップグレードが必要になるまでは。Aikidoは、どの依存関係が危険であり、安全なアップグレードが存在するかを正確に示します。推測や予期せぬ事態は不要です。パッチを適用して次に進むだけです。
Aikido + Bazelセキュリティを始めましょう。
開始は簡単です。Aikidoにサインアップし、アプリ内チャットでBazelスキャンの有効化を依頼してください。または、チームとの簡単な通話をご予約いただき、ウォークスルーを受けることも可能です。
Aikidoは現在、Mavenを介したJavaをサポートしており、GO、C、C++、Python、Scalaなどは近日対応予定です。

