アプリケーションセキュリティ(略称AppSec)には、開発チームに安全なソフトウェア開発ライフサイクルを導入するためのすべてのタスクが含まれます。その最終目標は、セキュリティプラクティスを改善し、それを通じてアプリケーション内のセキュリティ問題を発見、修正し、できれば防止することです。要件分析、設計、実装、検証、保守まで、アプリケーションライフサイクル全体を網羅しています。[1]
ウェブアプリケーションセキュリティは、ウェブサイト、ウェブアプリケーション、ウェブサービスのセキュリティに特化した情報セキュリティの分野です。高レベルでは、ウェブアプリケーションセキュリティはアプリケーションセキュリティの原則に基づいていますが、インターネットとウェブシステムに特化しています。[2] [3]アプリケーションセキュリティは、 iOSおよびAndroidアプリケーションを含むモバイルアプリとそのセキュリティ にも重点を置いています。
Web アプリケーション セキュリティ ツールは、 Web アプリケーション ファイアウォールなど、HTTP トラフィックを処理するための専用ツールです。
アプローチ
さまざまなアプローチにより、アプリケーションに潜むセキュリティ脆弱性のさまざまなサブセットが検出され、ソフトウェア ライフサイクルのさまざまな時点で最も効果的になります。それぞれのアプローチは、時間、労力、コスト、および発見される脆弱性のトレードオフが異なります。
- 設計レビュー。コードが記述される前に、アプリケーションのアーキテクチャと設計をセキュリティ上の問題がないか確認できます。このフェーズでよく使用される手法は、脅威モデルの作成です。
- ホワイトボックスセキュリティ レビュー、またはコード レビュー。これは、セキュリティ エンジニアが手動でソース コードをレビューし、セキュリティ上の欠陥に気付くことで、アプリケーションを深く理解することです。アプリケーションを理解することで、アプリケーション固有の脆弱性を見つけることができます。
- ブラックボックス セキュリティ監査。これは、セキュリティの脆弱性をテストするアプリケーションのみを使用して行われ、ソース コードは必要ありません。
- 自動化ツール。多くのセキュリティ ツールは、開発環境またはテスト環境に組み込むことで自動化できます。その例としては、コード エディターまたは CI/CD プラットフォームに統合された自動化された DAST/SAST ツールがあります。
- 調整された脆弱性プラットフォーム。これは、多くの Web サイトやソフトウェア開発者が提供する、ハッカー主導のアプリケーション セキュリティ ソリューションであり、バグの報告に対して個人が認識と報酬を受け取ることができます。
セキュリティ上の脅威
Open Worldwide Application Security Project ( OWASP ) は、無料でオープンなリソースを提供しています。これは、OWASP Foundation と呼ばれる非営利団体によって主導されています。OWASP Top 10 - 2017 は、40 を超えるパートナー組織から収集された包括的なデータに基づく最近の調査の結果です。このデータにより、50,000 を超えるアプリケーションに約 230 万の脆弱性が明らかになりました。[4] OWASP Top 10 - 2021 によると、最も重要な 10 の Web アプリケーション セキュリティ リスクは次のとおりです。[5]
- アクセス制御の不備
- 暗号の失敗
- 注射
- 安全でない設計
- セキュリティの誤った設定
- 脆弱で古いコンポーネント
- 識別および認証の失敗
- ソフトウェアとデータの整合性の障害
- セキュリティログと監視の失敗*
- サーバー側リクエストフォージェリ (SSRF)*
セキュリティ管理
OWASP Top 10 Proactive Controls 2024 は、すべてのソフトウェア アーキテクトと開発者が知っておくべき、注意すべきセキュリティ手法のリストです。
現在のリストには以下が含まれます:
- アクセス制御を実装する
- 暗号化を適切に使用する
- すべての入力を検証し、例外を処理する
- 最初からセキュリティに対処する
- デフォルト設定で安全
- コンポーネントを安全に保つ
- デジタルアイデンティティを実装する
- ブラウザのセキュリティ機能を使用する
- セキュリティログと監視を実装する
- サーバー側のリクエスト偽造を阻止する
セキュリティテスト用ツール
セキュリティ テスト技術は、アプリケーションの脆弱性やセキュリティ ホールを徹底的に探し出します。これらの脆弱性があると、アプリケーションが悪用される可能性があります。理想的には、セキュリティ テストはソフトウェア開発ライフサイクル(SDLC)全体にわたって実装され、脆弱性がタイムリーかつ徹底的に対処されるようになります。
アプリケーションの脆弱性を特定するための自動化ツールにはさまざまな種類があります。アプリケーションの脆弱性を特定するために使用される一般的なツールのカテゴリは次のとおりです。
- 静的アプリケーション セキュリティ テスト(SAST) は、アプリケーションの開発中にソース コードを分析してセキュリティの脆弱性を検出します。DAST と比較すると、SAST はアプリケーションが実行可能状態になる前でも利用できます。SAST は完全なソース コードにアクセスできるため、ホワイト ボックス アプローチです。これにより、より詳細な結果が得られますが、手動で検証する必要がある誤検知が多く発生する可能性があります。
- 動的アプリケーションセキュリティテスト(DAST、脆弱性スキャナーとも呼ばれる)は、Webサイトをクロールして分析することで、自動的に脆弱性を検出します。この方法は、拡張性が高く、統合が容易で、迅速です。DASTツールは、インジェクションの欠陥などの低レベルの攻撃に対処するのに適していますが、ロジックやビジネスロジックの欠陥などの高レベルの欠陥を検出するのには適していません。[6] ファジングツールは、入力テストによく使用されます。[7]
- インタラクティブ アプリケーション セキュリティ テスト (IAST) は、ソフトウェア インストルメンテーションを使用してアプリケーションを内部から評価します。これは、SAST と DAST の両方の手法の長所を組み合わせ、コード、HTTP トラフィック、ライブラリ情報、バックエンド接続、構成情報へのアクセスを提供します。[8] [9]一部の IAST 製品ではアプリケーションを攻撃する必要がありますが、他の IAST 製品は通常の品質保証テスト中に使用できます。[10] [プロモーション ソース? ] [11] [プロモーション ソース? ]
- ランタイム アプリケーションの自己保護は、既存のアプリケーションを拡張して、アプリケーション ランタイム内からの侵入検出と防止を提供します。
- 依存関係スキャナー (ソフトウェア構成分析とも呼ばれる) は、既知の脆弱性を持つソフトウェア コンポーネントの使用を検出しようとします。これらのツールは、ソース コードのビルド プロセス中などのオンデマンドで動作することも、定期的に動作することもできます。
セキュリティ基準と規制
- CERT セキュアコーディング標準
- ISO/IEC 27034-1:2011情報技術 - セキュリティ技術 - アプリケーション セキュリティ - パート 1: 概要と概念
- ISO/IEC TR 24772:2013情報技術 - プログラミング言語 - 言語の選択と使用を通じてプログラミング言語の脆弱性を回避するためのガイダンス
- NIST 特別出版物 800-53
- OWASP ASVS: Webアプリケーションセキュリティ検証標準[12]
参照
参考文献
- ^ Happe, Andreas (2021 年 6 月 3 日). 「AppSec とは何なのか?」. snikt.net .
- ^ 「Web アプリケーション セキュリティの概要」。2015 年 10 月 23 日。
- ^ シュアイブ、バラ・ムーサ;ノルワウィ、ノリタメリーランド州。セラマット、モフド・ハサン。アル・アルワニ、アブドゥルカリーム (2013-01-17)。 「Web アプリケーションのセキュリティ開発モデルの系統的レビュー」。人工知能のレビュー。43 (2): 259–276。土井:10.1007/s10462-012-9375-6。ISSN 0269-2821。S2CID 15221613。
- ^ Korolov, Maria (2017 年 4 月 27 日)。「最新の OWASP Top 10 では API と Web アプリに注目: 新しい OWASP Top 10 リストが公開されました。ほとんどの項目は同じままですが、Web アプリケーションと API に重点を置いた新しい項目が追加されています」。CSO。ProQuest 1892694046 。
- ^ 「OWASP Top 10 - 2021: 最も重大なウェブアプリケーションセキュリティリスク10選」Open Web Application Security Project 2021年。 2022年1月11日閲覧。
- ^ 「Web アプリケーション脆弱性スキャナー」。NIST。
- ^ 「ファジング」。OWASP。
- ^ Williams, Jeff (2015 年 7 月 2 日)。「SAST と DAST は理解しているが、IAST とは何で、なぜ重要なのか?」Contrast Security。2018年4 月 10 日閲覧。
- ^ Velasco, Roberto (2020 年 5 月 7 日)。「IAST とは? インタラクティブ アプリケーション セキュリティ テストのすべて」。Hdiv Security。2020年5 月 7 日閲覧。
- ^ Abezgauz, Irene (2014年2月17日). 「インタラクティブアプリケーションセキュリティテスト入門」. Quotium. 2018年4月3日時点のオリジナルよりアーカイブ。2018年1月25日閲覧。
- ^ Rohr, Matthias (2015 年 11 月 26 日)。「IAST: アジャイル セキュリティ テストの新しいアプローチ」。Secodis。
- ^ 「OWASP アプリケーション セキュリティ検証標準」。
