📗
owasp-asvs-ja
  • OWASP Application Security Verification Standard ja
  • OWASP アプリケーションセキュリティ検証標準 5.0 日本語版
    • 口絵
    • 序文
    • ASVS とは何か?
    • 監査と認証
    • v4.x と比較した変更点
    • V1: エンコーディングとサニタイゼーション
    • V2: バリデーションとビジネスロジック
    • V3: Web フロントエンドセキュリティ
    • V4: API と Web サービス
    • V5: ファイル処理
    • V6: 認証
    • V7: セッション管理
    • V8: 認可
    • V9: 自己完結型トークン
    • V10: OAuth と OIDC
    • V11: 暗号化
    • V12: 安全な通信
    • V13: 構成
    • V14: データ保護
    • V15: セキュアコーディングとアーキテクチャ
    • V16: セキュリティログ記録とエラー処理
    • V17: WebRTC
    • 付録 A: 用語集
    • 付録 B: 参考情報
    • 付録 V: 暗号化標準
    • 付録 X: 推奨事項
  • OWASP アプリケーションセキュリティ検証標準 4.0 日本語版
    • ヘッダ
    • 口絵
    • 序文
    • ASVS の使い方
    • 監査と認証
    • V1: アーキテクチャ、設計、脅威モデリング
    • V2: 認証
    • V3: セッション管理
    • V4: アクセス制御
    • V5: バリデーション、サニタイゼーション、エンコーディング
    • V6: 保存時における暗号化
    • V7: エラー処理とログ記録
    • V8: データ保護
    • V9: 通信
    • V10: 悪意あるコード
    • V11: ビジネスロジック
    • V12: ファイルとリソース
    • V13: API と Web サービス
    • V14: 構成
    • 付録 A: 用語集
    • 付録 B: 参考情報
    • 付録 C: Internet of Things の検証要件
Powered by GitBook
On this page
  • はじめに
  • 推奨される、範囲内のメカニズム
  • ソフトウェアセキュリティの原則
  • ソフトウェアセキュリティプロセス

Was this helpful?

  1. OWASP アプリケーションセキュリティ検証標準 5.0 日本語版

付録 X: 推奨事項

Previous付録 V: 暗号化標準Nextヘッダ

Last updated 1 month ago

Was this helpful?

はじめに

アプリケーションセキュリティ検証標準 (ASVS) のバージョン 5.0 を準備する中で、5.0 の要件に含めたくない既存および新規に提案された項目が多数あることが明らかになりました。これは 5.0 の定義により ASVS の範囲ではないか、あるいは、良いアイデアであったとしても、必須とすることはできないと考えたためです。

私たちはこれらの項目を完全に失いたくなかったので、この付録でその一部を取り上げることにしました。

推奨される、範囲内のメカニズム

以下の項目は ASVS の範囲内です。私たちはこれらを必須にすべきとは考えていませんが、セキュアアプリケーションの一部として考慮することを強くお勧めします。

  • パスワード強度メーターを提供して、ユーザーがより強力なパスワードを設定できるようにする。

  • アプリケーションのルートまたは .well-known ディレクトリに一般に利用可能な security.txt を作成して、セキュリティ問題について所有者に連絡するためのリンクまたは電子メールアドレスを明確に定義する。

  • 信頼できるサービス層でのバリデーションに加えて、クライアントサイドの入力バリデーションを実施すべきである。これは何者かがアプリケーションを攻撃しようとしてクライアントサイドのコントロールをバイパスしたことを発見する良い機会を提供するためである。

  • robots.txt ファイル、X-Robots-Tag レスポンスヘッダ、または robots HTML meta タグを使用して、間違ってアクセス可能な機密ページが検索エンジンに表示されることを防ぐ。

  • GraphQL を使用する場合、認可ロジックを GraphQL やリゾルバレイヤではなくビジネスロジックレイヤで実装して、個別のインタフェースごとに認可を処理する必要がないようにする。

参考情報:

ソフトウェアセキュリティの原則

以下の項目は以前 ASVS にありましたが、実際には要件ではありません。むしろ、セキュリティコントロールを実装する際に考慮すべき原則であり、これに従うと、より堅牢なコントロールにつながります。以下があります。

  • セキュリティコントロールは集中管理され、簡潔 (経済的設計) で、検証可能で、セキュアで、再利用可能であるべきです。これによりコントロールの重複、欠落、効果がないものを回避できます。

  • 可能な限り、独自の実装に頼るのではなく、前もって作成され、十分に精査されたセキュリティコントロール実装を使用します。

  • 理想的には、保護されたデータおよびリソースにアクセスするために、単一の十分に検証されたアクセス制御メカニズムを使用すべきです。コピー&ペーストやセキュアではない代替パスを回避するために、すべてのリクエストはこの単一のメカニズムを通過すべきです。

  • 属性または機能ベースのアクセス制御は推奨パターンであり、コードが単に役割ではなく機能やデータ項目に対するユーザの認可を確認しています。権限は引き続き役割を使用して割り当てるべきです。

ソフトウェアセキュリティプロセス

ASVS 5.0 から削除されたセキュリティプロセスが多数ありますが、それはまだ良いアイデアです。これらのプロセスを効果的に実装する方法については、OWASP SAMM プロジェクトが優れた情報源となるかもしれません。以前 ASVS に含まれていた項目には以下のものがあります。

  • 開発のすべての段階でセキュリティに対処するセキュアソフトウェア開発ライフサイクルを使用する。

  • 脅威を特定し、対応策を計画し、適切なリスク対応を促進し、セキュリティテストをガイドするために、設計変更やスプリント計画ごとに脅威モデリングを使用する。

  • すべてのユーザストーリーと機能に「ユーザとして、自分のプロフィールを閲覧および編集できる必要がある。他の人のプロフィールを閲覧または編集できないようにする必要がある」のような機能的なセキュリティ制約が含まれている。

  • セキュアコーディングチェックリスト、セキュリティ要件、ガイドライン、ポリシーがすべての開発者とテスト担当者に利用可能である。

  • アプリケーションのソースコードには、バックドア、悪意のあるコード (サラミ攻撃、ロジックボム、時限爆弾など)、文書化されていない機能や隠された機能 (イースターエッグ、安全でないデバッグツールなど) がないことを確認するための継続的なプロセスが存在する。このセクションに準拠するには、サードパーティライブラリを含むソースコードへの完全なアクセスなしには不可能であり、したがって、最高レベルのセキュリティを必要とするアプリケーションにのみ適していると考えられる。

  • デプロイされた環境における構成のドリフトを検出し、対応するためのメカニズムが導入されている。これには、不変のインフラストラクチャ、安全なベースラインからの自動再デプロイメント、承認された構成と現在の状態を比較するドリフト検出ツールの使用を含むことがある。

  • すべてのサードパーティ製品、ライブラリ、フレームワーク、サービスにおいて、それぞれの推奨事項に従って、設定の堅牢化が実行されている。

参考情報:

RFC へのリンクを含む security.txt の詳細情報
OWASP Threat Modeling Cheat Sheet
OWASP Threat modeling
OWASP Software Assurance Maturity Model Project
Microsoft SDL