
bearer v2.1.1
コードセキュリティスキャンツール(SAST) - セキュリティとプライバシーのリスクを発見、フィルタリング、優先順位付けするためのツール。
ソースコードをスキャンして、主要なセキュリティおよびプライバシーのリスクを検出します。
Bearerは、ソースコードをスキャンしてデータフローを分析し、セキュリティとプライバシーのリスクを特定、フィルタリング、優先順位付けするために設計された静的アプリケーションセキュリティテスト(SAST)ツールです。
Bearerは、無料のオープンソリューションであるBearer CLIと、Cycodeから入手可能な商用ソリューションBearer Proを提供しています。
言語サポート
Bearer CLI(オープンソース): Go • Java • JavaScript • TypeScript • PHP • Python • Ruby
CycodeによるBearer Pro: Bearer CLIの全言語に加え:
- 高度なファイル間分析: Java • Python • C# (アルファ版)
- 追加言語: C# • Kotlin • Elixir • VB.Net
セキュリティとプライバシーのためのデベロッパーフレンドリーな静的コード解析
https://user-images.githubusercontent.com/1649672/230438696-9bb0fd35-2aa9-4273-9970-733189d01ff1.mp4
Bearer CLIは、ソースコードをスキャンして以下を検出します。
-
セキュリティリスクと脆弱性 – ビルトインルールを使用し、OWASP Top 10 および CWE Top 25 をカバー。例:
- A01: アクセス制御(例: パストラバーサル、オープンリダイレクト、機密情報の露出)
- A02: 暗号化の失敗(例: 脆弱なアルゴリズム、安全でない通信)
- A03: インジェクション(例: SQLインジェクション、入力検証、XSS、XPath)
- A04: 設計(例: 機密データの暗号化の欠如、機密情報を含む永続的Cookie)
- A05: セキュリティ設定ミス(例: CookieやJWT内の機密情報の平文保存)
- A07: 識別と認証の失敗(例: ハードコードされたパスワードの使用、不適切な証明書検証)
- A08: データ整合性の失敗(例: 信頼できないデータのデシリアライゼーション)
- A09: セキュリティログ記録と監視の失敗(例: ログファイルへの機密情報の挿入)
- A10: サーバーサイドリクエストフォージェリ(SSRF)
注: すべてのルールとそのコードパターンはドキュメントで確認できます。
-
プライバシーリスク – アプリ内でのPII、PHIなどの機密データフローの検出、および機密データを処理するコンポーネント(例: pgSQLなどのデータベース、OpenAI、SentryなどのサードパーティAPI)を検出します。これは、以下のようなプライバシーレポートの生成に役立ちます。
- プライバシー影響評価(PIA)
- データ保護影響評価(DPIA)
- GDPRコンプライアンス報告のための処理活動記録(RoPA)の入力
🚀 はじめに
数分で最も重要なセキュリティリスクと脆弱性を発見しましょう。このガイドでは、Bearer CLIをインストールし、ローカルプロジェクトでセキュリティスキャンを実行し、結果を表示します。さあ始めましょう!
Bearer CLIのインストール
最も簡単な方法は、インストールスクリプトを使用することです。アーキテクチャに最適なビルドが自動選択されます。デフォルトでは ./bin に最新リリースバージョンがインストールされます。
curl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | sh
その他のインストールオプション
Homebrew
brew install bearer/tap/bearer
既存のインストールをアップデートするには:
brew update && brew upgrade bearer/tap/bearer
Debian/Ubuntu
sudo apt-get update && sudo apt-get install ca-certificates -y && sudo update-ca-certificates
sudo apt-get install apt-transport-https
echo -e "Types: deb\nURIs: https://apt.fury.io/bearer/\nSuites: /\nTrusted: yes" | sudo tee /etc/apt/sources.list.d/fury.sources
sudo apt-get update
sudo apt-get install bearer
既存のインストールをアップデートするには:
sudo apt-get update
sudo apt-get install bearer
RHEL/CentOS
リポジトリ設定を追加:
$ sudo vim /etc/yum.repos.d/fury.repo
[fury]
name=Gemfury Private Repo
baseurl=https://yum.fury.io/bearer/
enabled=1
gpgcheck=0
次にyumでインストール:
sudo yum -y update
sudo yum -y install bearer
既存のインストールをアップデートするには:
sudo yum -y update bearer
Docker
Bearer CLIはDocker Hubおよびghcr.ioでもDockerイメージとして利用可能です。
Dockerがインストールされていれば、以下のコマンドを実行します。パスは適宜置き換えてください。
docker run --rm -v /path/to/repo:/tmp/scan bearer/bearer:latest-amd64 scan /tmp/scan
また、docker composeも使用できます。以下の内容を docker-compose.yml ファイルに追加し、ボリュームをプロジェクトの適切なパスに置き換えてください。
version: "3"
services:
bearer:
platform: linux/amd64
image: bearer/bearer:latest-amd64
volumes:
- /path/to/repo:/tmp/scan
その後、以下のコマンドでBearer CLIを指定したフラグとともに実行します。
docker compose run bearer scan /tmp/scan --debug
上記のDocker設定は常に最新リリースを使用します。
バイナリ
お使いのOS/アーキテクチャに対応したアーカイブファイルをこちらからダウンロードしてください。
アーカイブを展開し、バイナリを$PATHの通った場所(UNIX系では/usr/local/binなど)に配置してください。実行権限があることを確認してください。
バイナリでBearer CLIをアップデートするには、最新リリースをダウンロードして既存のインストール場所を上書きしてください。
プロジェクトをスキャンする
Bearer CLIを試す最も簡単な方法は、OWASP Juice Shop のサンプルプロジェクトを使用することです。これは、一般的なセキュリティ欠陥を含む現実的なJavaScriptアプリケーションをシミュレートしています。適当な場所にクローンまたはダウンロードして始めてください。
git clone https://github.com/juice-shop/juice-shop.git
次に、プロジェクトディレクトリで bearer scan コマンドを実行します。
bearer scan juice-shop
プログレスバーがスキャンの進行状況を表示します。
スキャンが完了すると、Bearer CLIはデフォルトでセキュリティレポートを出力します。レポートには、ルールの検出結果の詳細、コードベース内の違反箇所とその理由が含まれます。
デフォルトでは scan コマンドはSASTスキャナーを使用します。他のスキャナータイプも利用可能です。
レポートを分析する
セキュリティレポートは、Bearer CLIが検出したセキュリティ問題を簡単に把握できるビューです。レポートは以下の要素で構成されます。
- コードに対して実行されたルールのリスト
- 各検出結果(ルールをトリガーしたファイルの場所と行番号)
- ルールチェック、検出結果、警告のサマリーを含む統計セクション
OWASP Juice Shop のサンプルアプリケーションはルール検出をトリガーし、完全なレポートを出力します。出力の一部を以下に示します。
...
HIGH: Sensitive data stored in HTML local storage detected. [CWE-312]
https://docs.bearer.com/reference/rules/javascript_lang_session
To skip this rule, use the flag --skip-rule=javascript_lang_session
File: juice-shop/frontend/src/app/login/login.component.ts:102
102 localStorage.setItem('email', this.user.email)
=====================================
59 checks, 40 findings
CRITICAL: 0
HIGH: 16 (CWE-22, CWE-312, CWE-798, CWE-89)
MEDIUM: 24 (CWE-327, CWE-548, CWE-79)
LOW: 0
WARNING: 0
セキュリティレポートに加えて、プライバシーレポートも実行できます。
次のステップに進みますか? scan コマンドの使用および設定に関する追加オプションについては、scan コマンドの設定を参照してください。
その他のガイドや使用上のヒントについては、ドキュメントをご覧ください。
❓ よくある質問
Bearer CLIは他のSASTツールと何が違うのですか?
SASTツールは、セキュリティチームや開発者を、優先順位の文脈がほとんどなく数百もの問題で埋め尽くし、多くの場合、セキュリティアナリストが手動でトリアージする必要があることで知られています。
現在最も脆弱な資産は機密データです。そこでBearer CLIはそこから始め、機密データフローを評価して何がより重要で何が重要でないかを強調表示することで、検出結果に優先順位を付けます。このユニークな能力により、プライバシースキャナーも提供できるのです。
セキュリティ問題を明確なビジネスインパクトやデータ漏洩のリスクに結び付けることで、追加コストなしにより優れた、より堅牢なソフトウェアを構築できると信じています。
さらに、無料でオープンソース、拡張可能な設計、優れた開発者UXを念頭に構築されているため、その違いを実感していただけるでしょう。
プライバシースキャナーとは何ですか?
コード内のセキュリティ欠陥を検出するだけでなく、Bearer CLIはコンプライアンスチーム向けのプライバシーレポートを生成するために必要な証拠収集プロセスを自動化できます。
Bearer CLIをコードベースに対して実行すると、ソースコード内のパターンを識別することでデータを発見し分類します。具体的には、データ型を探し、それらと照合します。最も重要なのは、実際の値は決して表示しないことです(できません)。コード自体だけを表示します。詳細については、こちらの詳しい説明をご覧ください。
Bearer CLIは、個人データ(PD)、機密性の高いPD、個人識別情報(PII)、個人健康情報(PHI)などの機密データカテゴリから120以上のデータ型を識別できます。完全なリストはサポートされているデータ型のドキュメントで確認できます。
さらに、Bearer CLIは機密データを保存および処理するコンポーネント(データベース、内部API、サードパーティAPIなど)も検出します。コンポーネントの完全なリストはレシピリストを参照してください。
サポート言語
言語サポートについてはこちらをご覧ください。
コードのスキャンにはどのくらい時間がかかりますか?高速ですか?
アプリケーションのサイズによります。20秒程度で完了することもあれば、非常に大規模なコードベースでは数分かかることもあります。
目安として、Bearer CLIはテストスイートの実行時間を超えることはありません。
CI統合の場合、さらに高速にするための差分スキャンソリューションも提供しています。詳細はこちら
誤検出(False Positives)についてはどうですか?
SASTツールに詳しい方であれば、誤検出は常に可能性があることをご存知でしょう。
最先端の静的コード解析技術を使用し、最も重要な問題にネイティブなフィルタリングと優先順位付けソリューションを提供することで、SASTのエクスペリエンス全体を劇的に改善したと確信しています。
ユーザーに最良の体験を提供するよう努めています。これをどのように実現しているかについてはこちらをご覧ください。
Bearer CLIはいつ、どこで使用すべきですか?
CIでBearer CLIを実行し、新しいPRに対して自動的にセキュリティ問題をチェックすることをお勧めします。これにより、開発チームは問題を即座に修正するための直接的なフィードバックループを得られます。
CDに統合することも可能ですが、組織への影響が大きい可能性があるため、高重要度の問題でのみ失敗するように設定することを推奨します。
さらに、スケジュールジョブとしてBearer CLIを実行することは、セキュリティ体制を追跡し、活動が少ないプロジェクトでも新しいセキュリティ問題を確実に発見する優れた方法です。
詳細については、統合戦略ガイドをご一読ください。
プロシージャ間分析およびファイル間分析をサポートしていますか?
はい、Bearer Proはプロシージャ間分析およびファイル間分析をサポートしており、現在はJavaで完全な機能を提供し、他の主要なサポート言語にも積極的に拡張中です。この高度な分析により、Bearer Proはコードベース全体の関数やファイルの境界を越えてデータフローと制御フローをトレースできます。これは、異なるコードコンポーネントの相互作用に依存する複雑な脆弱性を正確に特定するために重要であり、個々の関数やファイルに限定された分析と比較して誤検出を大幅に削減します。
Bearer ProのJava向けプロシージャ間分析およびファイル間分析は、OWASP Java Benchmarkで優れた結果を示しており、76%のスコアを達成し、報告された誤検出率は2%未満です。
✋ お問い合わせ
Bearer CLIをご利用いただきありがとうございます。まだ質問がありますか?
- ドキュメントから始めてください。
- 機能リクエストやバグを見つけた場合は、新しいIssueを開いてください。
- セキュリティ問題を見つけた場合は、報告方法についてセキュリティポリシーをご確認ください。
- Bearer.comで詳細をご確認ください。
🤝 コントリビューション
コントリビューションに興味がありますか?大歓迎です!コントリビューションの方法、開発環境のセットアップ、プロセスについての詳細は、コントリビューションガイドをご覧ください。
🚨 行動規範
このプロジェクトに関わるすべての人は、行動規範のガイドラインに従うことが期待されています。
🛡️ セキュリティ
脆弱性またはその疑いを報告するには、セキュリティポリシーを参照してください。その他のセキュリティに関する質問、懸念、事項については、Issueを開いてください。
🎓 ライセンス
Bearer CLIのコードはElastic License 2.0(ELv2)の条件の下でライセンスされています。つまり、組織内でアプリケーションを保護するために無料で自由に使用でき、商用要件はありません。
Bearer CLIをホスト型または管理型サービスとして第三者に提供することは、Bearer Inc.の明示的な承認なしでは許可されません。