セキュリティは、対応が難しく、費用がかかる分野です。そこで、私たちはオープンソースのセキュリティツールに関する包括的なガイドを作成し、無駄を省き、導入すべき最も重要なツール、保護すべき資産、そして無料のオープンソースツールのみを使用して長期的なセキュリティ計画を構築する方法をご紹介します。

最も重要なツールは何ですか?
無数のセキュリティツールが存在するように見えますが、最初のステップは常にどこから始めるかを決定することです。具体的な状況によって異なる場合もありますが、私たちは常に攻撃者にとって容易な標的から始めることを推奨します。クラウドインフラストラクチャが安全であることを確認し、攻撃者が容易に見つけられるシークレットがなく、エラーにつながる単純なコーディングミスがなく、オープンソースサプライチェーンに致命的な脆弱性がないことを確認してください。そこから、セキュリティを向上させるためのより多くのツールを導入し、ソフトウェア開発ライフサイクル全体でより多くのベストプラクティスを実装することができます。

どのようなツールが利用可能ですか?
多くの優れたオープンソースツールが利用可能であり、どのツールを選ぶかは、スタックや具体的なニーズに大きく依存しますが、以下に、私たちがゴールドスタンダードと考える、始めるのに最適なツールの一部をご紹介します。
CSPM(クラウドセキュリティポスチャ管理)
Cloudsploit
CSPMはクラウド資産を保護するための不可欠なツールであり、CloudsploitはオープンソースのCSPMです。このプロジェクトは、Amazon Web Services (AWS)、Microsoft Azure、Google Cloud Platform (GCP)、Oracle Cloud Infrastructure (OCI)を含むクラウドインフラストラクチャアカウントのセキュリティリスクを検出します。
シークレット検出
Trufflehog | gitleaks。
シークレットは、新しいシステムへの迅速なラテラルムーブメントを可能にするため、攻撃者にとって価値の高い標的であり、実際、シークレットは侵害の83%で使用されています。特にgitリポジトリなど、シークレットが存在する場所でそれらを検出することが不可欠です。シークレット検出に最適なオープンソースツールの2つは、Trufflehogとgitleaksです。
SCA(ソフトウェア構成分析)
Trivy | Dependency-Check | Dependency-Track
オープンソースの依存関係は、アプリケーションのコードの85%を占めており、これは攻撃者が開発者よりもコードをよく知っている可能性があることを意味します。どのオープンソースコンポーネントに脆弱性が含まれているかを知ることは非常に重要です。SCAツールは、アプリケーションで使用しているオープンソースの依存関係を分析し、それらに対して既知の脆弱性があるかどうかを判断します。Trivy、Dependency-Check、Dependency-Trackは、オープンソースのリスクを理解するのに役立つ優れたツールです。
SAST(静的アプリケーションセキュリティテスト)
Bandit | Breakeman| GoSec |SemGrep
SASTは、セキュリティ問題につながる可能性のあるミスがないかソースコードをレビューします。SASTが発見できる最も一般的なエラーには、インジェクションの脆弱性、暗号化の失敗、バッファオーバーフローなどがあります。選択するツールは、特定の技術スタックに特化している必要があります。優れたオプションとしては、Bandit(Python)、Breakeman(Ruby)、GoSec(Go)、SemGrep(汎用)などがあります。
DAST(動的アプリケーションセキュリティテスト)
Nuclei | Zap
DASTツールは、自動化されたハッカーのように機能し、ドメインに対して攻撃を実行して悪用可能な脆弱性を発見します。これはサーフェス監視とも呼ばれます。優れたオープンソースツールとしては、NucleiとZapがあります。
マルウェア検出
Phylum
従来のSCAツールは、公に開示された脆弱性に依存しています。マルウェア検出は、報告されていない可能性のあるパッケージ内の悪意のあるコードを発見することです。Phylum はこのための優れたツールであり、厳密には完全にオープンソースではありませんが、CLIスキャンツールで使用できる無料版があります。
IaCスキャン
Checkov
Infrastructure as Codeにより、クラウドインフラストラクチャをより確実かつ容易にプロビジョニングおよびデプロイできるようになりました。しかし、これによりセキュリティ問題を引き起こす設定ミスが発生する可能性があります。以前に説明したCSPMツールはクラウドインフラストラクチャのエラーを発見できますが、IaCスキャンはデプロイ前にエラーの発生を防ぐことができます。Checkovは、これらのセキュリティ問題をスキャンできる優れたツールです。
インアプリファイアウォール
Zen-Node | Zen Python
セキュリティにおけるシフトレフト(ライフサイクルの早期段階でセキュリティを移行すること)という真のトレンドがありますが、これは素晴らしいことである一方で、その反対側を無視して、実行中のアプリケーションにセキュリティを実装すべきではありません。AikidoのZenは、ランタイムでのインジェクションなどの攻撃をブロックし、二次的な保護レベルを追加できるオープンソースのインアプリファイアウォールです。Zen-Node | Zen Python
サポート終了コンポーネント
endoflife.date
オープンソースのサプライチェーンにおける大きなリスクは、メンテナンスされなくなったコンポーネントです。endoflife.dateは、アクティブにメンテナンスされなくなり、本番環境で使用すべきではないプロジェクトの優れたデータベースです。
ライセンス保護
Trivy
アプリケーションで正しいオープンソースライセンスを使用していることを認識することが重要です。Trivyは、オープンソースライセンスの種類とその使用方法について優れた洞察を提供します。
オープンソースツールは商用版と同等に優れていますか?
オープンソースツールは、そのスキャン機能に関して非常に高品質である場合があります。しかし、ノイズ削減、修復、監視に関しては、商用ツールの方が多くの機能を提供します。オープンソースツールの使用を恐れるべきではありませんが、特に成長するにつれて、オープンソースツールの使用には多くのエンジニアリング時間が必要になることに注意してください。
オープンソースのセキュリティツールを使用する理由
- 参入障壁なし(迅速かつ無料で開始可能)
- オープンソースは、役員の承認を得るための優れたツールであり、セキュリティ問題を明確にするために活用できます。
- 高品質なスキャナー(多くのオープンソースツールは、スキャン機能において商用ツールと同等の能力を持っています)
- コミュニティサポート
オープンソースのセキュリティツールを使用しない理由
- セットアップが困難:オープンソースツールは、様々な言語やフレームワークの寄せ集めを使用しているため、それらをうまく連携させるのは困難です。
- ノイジー:オープンソースツールは発見に重点を置く傾向があるため、追加のフィルタリング層が作成されない場合、多くの誤検知を引き起こす可能性があります。
- サポートが限定的:ツールが故障した場合、自力で解決する必要があります。
- RBACなし:現代の開発では、チーム全体が関与することが重要です。オープンソースのセキュリティは、ロール間のフィルタリングを許可しないため、セキュリティチームにとって大きな負担となります。
オープンソースツールと商用ツールのどちらが優れているかという絶対的な答えはなく、どちらにもそれぞれの役割があります。この件について詳しくはこちら。
Aikidoの優位性
オープンソースのセキュリティツールを調査している場合、商用ツールは高価である一方で、オープンソースツールはダッシュボードに一元化するために多くの作業が必要であるという現実に直面するか、いずれ直面することになるでしょう。Aikidoでは、この課題を理解し、オープンソースプロジェクトをシームレスに統合し、単一のダッシュボードに一元化することで、自動トリアージと修復ワークフローによりすべてのセキュリティ問題にコンテキストをもたらす製品を開発しています。これにより、大規模な商用ツールの機能をはるかに低価格で利用できるようになります。


