0Pricing
Cyber Security Academy · レッスン

安全な依存関係管理

依存関係のバージョンを固定し、CVEを監視し、ロックファイルを使用して、CIパイプラインでSCAを自動化します。

「安全な依存関係管理」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。

依存関係がリスクとなる理由

現代のアプリケーションは、数百に及ぶサードパーティパッケージをインポートします。それぞれの依存関係と、その推移的依存関係によって攻撃対象領域が広がります。Log4j の Log4Shell のように、人気のあるライブラリの脆弱性によって、数千のアプリケーションが同時に危険にさらされる可能性があります。

ロックファイルとバージョン固定

ロックファイル(package-lock.json、yarn.lock、Pipfile.lock)は、推移的依存関係を含むすべての依存関係を正確なバージョンに固定します。ロックファイルはバージョン管理にコミットしてください。これにより再現可能なビルドが保証され、脆弱性を引き起こす意図しないバージョンアップを防止できます。

ソフトウェア構成分析 (SCA)

SCA ツールは、依存関係ツリーを CVE データベースと照合してスキャンし、脆弱なパッケージを特定します。OWASP Dependency-Check、Snyk、GitHub Dependabot は、既知の脆弱性を自動的に検出し、修正方法の案内とともに修正済みバージョンを提案します。

依存関係の自動更新

Dependabot と Renovate Bot は、新しい互換性のあるバージョンが利用可能になると、自動的に PR を作成します。これらはセキュリティ更新を優先します。CI に合格したパッチ更新に対して自動マージを設定すると、手作業を最小限に抑えながら依存関係を最新の状態に保てます。

新しい依存関係の評価

依存関係を追加する前に、ダウンロード数、最近のコミット状況、未解決Issueの数、ライセンスの互換性、既知のCVEの履歴を確認します。保守されていない代替パッケージよりも、十分に保守され、積極的なセキュリティ対応プロセスが整備されたパッケージを優先します。

推移的依存関係のリスク

直接依存するパッケージは、それぞれ独自の依存関係を取り込みます。event-streamのインシデントでは、攻撃者が数百万のパッケージで使用されていた推移的依存関係を掌握しました。直接依存するパッケージだけでなく、依存関係ツリー全体を監査します。

プライベートパッケージレジストリ

依存関係の混乱攻撃では、内部パッケージと同じ名前の悪意あるパッケージを公開レジストリに公開します。スコープ付きパッケージ名、プライベートレジストリの認証、.npmrcまたはpip.confで承認済みレジストリを許可リストに登録することで、リスクを軽減します。

サプライチェーンセキュリティ:SBOM

Software Bill of Materials(SBOM)は、ソフトウェアに含まれるすべてのコンポーネントを機械可読形式で一覧化したものです。SyftまたはCycloneDXを使用してSBOMを生成します。新しいCVEが公開された際、SBOMによって脆弱性の影響を迅速に評価できます。影響を受けるバージョンを数分で特定できます。

ライセンスコンプライアンス

OSSライセンスには遵守すべき義務があります。GPLではソースコードの開示が必要になる場合があります。MITとApache 2.0は寛容なライセンスです。FOSSAとTLDR-Legalは、ライセンスの互換性評価に役立ちます。商用製品にGPLが意図せず混入するのを防ぐため、CIにライセンススキャンを組み込みます。

完全性の検証

CDNでホストされるスクリプトに対するSubresource Integrity(SRI)では、integrity属性に暗号学的ハッシュを指定します。npmのpackage.jsonにはintegrityフィールドが含まれています。CIでパッケージをダウンロードする際にチェックサムを検証し、サプライチェーンの改ざんを検出します。

依存関係を最新に保つ

重大な脆弱性については、CVEの公開から24~48時間以内にセキュリティパッチを適用します。優先順位付けにはCVSSスコアと悪用可能性のデータを使用します。破壊的変更を伴うパッチ適用済みの依存関係であっても、本番環境に悪用可能な脆弱性を残すよりは適切です。

理解度チェック

依存関係の混乱攻撃とは何ですか。

まとめ

安全な依存関係管理には、ロックファイルでのバージョン固定、CI/CDでのSCAスキャンの実行、パッチ更新の自動化、影響評価のためのSBOM生成、導入前の新しい依存関係のセキュリティ態勢の評価が必要です。

よくある質問

「安全な依存関係管理」レッスンは無料ですか?

はい。「安全な依存関係管理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。

「安全な依存関係管理」で何を学びますか?

依存関係のバージョンを固定し、CVEを監視し、ロックファイルを使用して、CIパイプラインでSCAを自動化します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cyber Security Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「安全な依存関係管理」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCyber Security Academyレッスンでコードを書いて実行できますか?

はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 入力検証と出力エンコーディング
  2. 安全な依存関係管理
  3. OWASP ASVS:アプリケーションセキュリティ検証標準
  4. 安全なコードレビューのテクニック
← Cyber Security Academyに戻る