How to Secure Your Open Source: Best Practices for Application Security Testing の翻訳版です。
オープンソースを脅威から保護する:アプリセキュリティテストのベストプラクティス
2024年7月21日
著者: Courtney Coleman / HCLSoftware
ダイナミックなソフトウェア開発の世界では、オープンソースコンポーネントの使用は、現代の開発エコシステムの不可欠な部分となっています。オープンソースコンポーネントのコミュニティの改善により、開発時間の短縮とコストの削減が促進され、より迅速に成長し、イノベーションを起こすための柔軟性が生まれます。しかし、この利便性には、特にセキュリティに関する独自の課題が伴います。
アプリケーションが成長し、オープンソースコンポーネントの監視が難しくなるにつれて、アプリケーションのセキュリティを確保することは、ソフトウェアエコシステム全体を保護するために重要になります。HCLSoftwareのアプリケーションセキュリティ担当グローバルテクニカルアドバイザーであるPeter Lee氏は、「『たった1つの悪いリンゴで樽全体が台無しになる』ということわざがあるからこそ、オープンソースアプリケーションセキュリティ(OSA、別名SCA)は、あらゆる組織のセキュリティプログラムの最上位にあるべきだ」と述べています。
「現代のソフトウェア開発は、ますます速く、機敏になっています」と Lee 氏は言います。「基本的に、生成型人工知能(Gen AI)は、開発者向けのWebまたはモバイルアプリケーション全体を作成できます。オープンソースライブラリは、開発者によって書かれたものであれ、Gen AIによって書かれたものであれ、コードの一部となることが多いため、脆弱なオープンソースパッケージを使用するリスクと、それがコード内のどこに存在するかを理解することが重要です。」
オープンソースアプリケーションのセキュリティを確保するには、プロアクティブで包括的なアプローチが必要です。ここでは、オープンソースを保護するためのベストプラクティスをいくつか紹介します。
プロアクティブなセキュリティの重要性を議論する際には、安全なコーディング手法を内部的に遵守することが脆弱性を防ぐための基本であることを理解することが重要です。
主なプラクティスには、インジェクション攻撃を防ぐためのユーザー入力を常に検証およびサニタイズすること、アプリケーションへのアクセスを制御するための強力な認証および承認メカニズムの実装、攻撃者に貴重な情報を提供する可能性があるため詳細なエラー メッセージのユーザーへの露出の回避、暗号化を使用して保存中と転送中の両方で機密データを保護することが含まれます。
開発チーム内でセキュリティファーストの文化を育むことは非常に重要です。セキュリティの重要性についてチームを教育し、安全なコーディング手法とセキュリティテストツールの使用に関するトレーニングを提供します。開発者、セキュリティ専門家、運用チーム間のコラボレーションを促進して、セキュリティに対する包括的なアプローチを確保します。
オープンソースプロジェクトは、さまざまなサードパーティのライブラリやフレームワークに依存していることが多いため、古い依存関係はセキュリティ侵害の一般的なベクトルです。オープンソースのライブラリとフレームワークを定期的に最新バージョンに更新してください。これらの更新プログラムには、多くの場合、機密データを保護し、ユーザーの信頼を維持するために必要なセキュリティ パッチが含まれています。
堅牢な内部セキュリティ監査を実施していても、新しい脆弱性や脅威がいつでも出現する可能性があることに注意してください。自動化ツールは、依存関係を監視し、利用可能な更新を通知することで役立ちます。
手動のコードレビューと侵入テストは不可欠ですが、時間がかかり、人為的ミスが発生しやすい場合があります。十分な情報を持つ開発チームは、セキュリティの脅威に対する防御の最前線ですが、自動化されたセキュリティテストツールは、脆弱性を迅速に特定することでこれらの取り組みを補完できます。セキュリティの脅威についてアプリケーションを継続的に監視し、対応計画を準備しておくと、セキュリティ体制が向上します。
HCL AppScanのようなセキュリティ・ソフトウェアは、オープンソース・コンポーネントの脆弱性を特定するために特別に設計されたツールを含む、包括的なアプリケーション・セキュリティ・テストの完全なスイートを提供します。ソフトウェア・コンポジション解析(SCA)を使用すると、開発者はIDE(統合開発環境)から直接、プロジェクトに組み込まれたオープンソース・パッケージを評価できます。調査結果が静的分析、動的分析、対話型分析などの他のツールの結果と相関している場合、チームはリスク レベルを包括的に把握し、最初に修正する内容に優先順位を付けられます。すべてのツールはソフトウェア開発ライフサイクル(SDLC)にシームレスに統合され、継続的なセキュリティテストとコンプライアンス検証の両方を提供するため、組織は一貫したセキュリティ体制を維持できます。
これは、アプリケーション内で堅牢なセキュリティ標準を維持するための一貫した取り組みです。目標は、脆弱性を見つけて修正するだけでなく、開発プロセスのファブリックにセキュリティを組み込むことです。信頼できるセキュリティ体制管理は、イノベーションを優先事項の最前線にするための明確な滑走路を確立します。お気軽に HCLSoftware にお問い合わせ・デモの依頼をし、アプリケーションのセキュリティを強化する方法をご覧ください。