Webアプリケーションのセキュリティ対応を行うには、セキュリティガイドラインを理解しておくことが重要です。
セキュリティガイドラインとは、組織や個人が情報セキュリティリスクを管理し、データを保護するために従うべき推奨事項や手順の集合です。これらのガイドラインは、規制要件に準拠するだけでなく、組織のポリシーや業界のベストプラクティスに基づいてカスタマイズするためのベースとなります。
今回は、脆弱性に関する有名なセキュリティガイドラインを2つ紹介します。
OWASP Top 10
OWASP Top 10は、Open Web Application Security Project(OWASP)によって定期的に公開される、Webアプリケーションのセキュリティ上のリスクを示すリストです。OWASP Top 10は、ウェブアプリケーションの脆弱性や攻撃に関する広範なコミュニティからのデータと専門家の知識を基にしています。
OWASP Top 10は、ウェブアプリケーションのセキュリティにおける最も一般的な脆弱性や攻撃手法を示し、開発者やセキュリティプロフェッショナルがそれらに対処するための基準を提供します。OWASP Top 10リストは、Webアプリケーションのセキュリティに関するリスクを理解し、優先順位付けするのに役立ちます。OWASP Top 10のリストは定期的に更新され、最新のセキュリティトレンドや脅威に対応するように調整されます。
本記事執筆時点での最新版は2021年のものとなり、Top 10は下記となります。
OWASP Top 10 2021 | 説明 |
A01:2021-Broken Access Control | 適切なアクセス制御が実装されていない場合に発生し、攻撃者がシステムやデータへの不正アクセスを行う可能性があります。 |
A02:2021-Cryptographic Failures | 暗号化プロセスにおける不適切な実装や運用により、機密データが漏洩したり、暗号化が破られる可能性があります。 |
A03:2021-Injection | 悪意のあるコードやコマンドをアプリケーションに挿入することで、データベースやシステムに不正アクセスを可能にする攻撃手法です。 |
A04:2021-Insecure Design | アプリケーションの設計段階での脆弱性や不安全なパターンにより、攻撃者が容易に攻撃を行える可能性があります。 |
A05:2021-Security Misconfiguration | システムやアプリケーションのセキュリティ設定が不適切である場合に発生し、攻撃者がシステムに侵入したり、機密情報を盗み出す可能性があります。 |
A06:2021-Vulnerable and Outdated Components | システムやアプリケーションに含まれる古いバージョンのコンポーネントやライブラリには既知の脆弱性が存在し、攻撃者がこれを悪用して攻撃を行う可能性があります。 |
A07:2021-Identification and Authentication Failures | 識別や認証プロセスにおける脆弱性により、攻撃者が不正なアクセスを行ったり、他のユーザーのアカウントを乗っ取る可能性があります。 |
A08:2021-Software and Data Integrity Failures | ソフトウェアやデータの整合性を検証せずに使用することにより、改ざんされたデータや信頼性の低いソフトウェアが利用される可能性があります。 |
A09:2021-Security Logging and Monitoring Failures | キュリティイベントの適切なログ記録や監視が行われていない場合、攻撃を検知し、対応することが難しくなります。 |
A10:2021-Server-Side Request Forgery | 攻撃者がサーバー側でリクエストを偽造し、システム内の他のリソースにアクセスしたり、攻撃を行ったりする可能性があります。 |
安全なウェブサイトの作り方
「安全なウェブサイトの作り方」は、IPAが提供している、開発者や管理者向けの、セキュリティガイドラインやベストプラクティスを纏めたものです。
「安全なウェブサイトの作り方」は、IPAが届出(*1)を受けた脆弱性関連情報を基に、届出件数の多かった脆弱性や攻撃による影響度が大きい脆弱性を取り上げ、ウェブサイト開発者や運営者が適切なセキュリティを考慮したウェブサイトを作成するための資料です。
https://www.ipa.go.jp/security/vuln/websecurity/about.html
このガイドラインには以下の内容が含まれており、安全なウェブサイトを構築するための有用なリソースと言えます。
- セキュリティ意識の向上: 開発者や管理者に対するセキュリティに関する基本的な知識や意識を高めるための情報が提供されます。
- ウェブサイトの設計と開発: 安全なウェブサイトの設計と開発に関するベストプラクティスが提供されます。例えば、適切な認証やアクセス制御、データの暗号化などが含まれます。
- セキュリティアップデートと脆弱性管理: ウェブサイトや関連するシステムのセキュリティアップデートやパッチ適用の重要性についての情報が提供されます。また、脆弱性の管理や修正に関するガイドラインも含まれます。
- セキュリティテストと監視: セキュリティテストや監視の重要性についての情報が提供されます。脆弱性スキャンやペネトレーションテストなどの手法やツールの活用方法が示されることがあります。
- セキュリティイベント対応: セキュリティインシデントが発生した際の対応手順やガイドラインが提供されることがあります。インシデント対応計画の策定や実施に関する情報が含まれます。
また、具体的に下記の脆弱性を取り上げ、脅威と解決方法についても示しています。
脆弱性 | 説明 |
SQLインジェクション | 攻撃者が不正なSQLクエリを注入してデータベースにアクセスする攻撃手法。入力フィールドなどに不正なSQLコマンドを挿入し、データベースから情報を取得したり、データの改ざんを行ったりすることができます。 |
OSコマンド・インジェクション | 攻撃者が不正なOSコマンドを実行するために、アプリケーション内の入力フィールドなどに不正なデータを挿入する攻撃手法。この脆弱性を悪用すると、システムやサーバーに対して不正なコマンドを実行することができます。 |
パス名パラメータの未チェック/ディレクトリ・トラバーサル | アプリケーションがファイルパスを入力として受け取り、その入力の検証や制限を十分に行わない場合に発生する脆弱性。攻撃者はディレクトリ階層を上位に移動してファイルシステムにアクセスすることができます。 |
セッション管理の不備 | セッションIDの不適切な生成や管理により、攻撃者がセッションを乗っ取ることができる脆弱性。これにより、不正なアクセスやセッションハイジャックが可能になります。 |
クロスサイト・スクリプティング | 攻撃者がウェブアプリケーションに不正なスクリプトを挿入することによって、ユーザーのブラウザ上で不正な操作を実行させる攻撃手法。この脆弱性を悪用すると、セッションハイジャックや情報の盗み出しなどが行われる可能性があります。 |
CSRF(クロスサイト・リクエスト・フォージェリ) | 被害者の認証情報を利用して、被害者が意図しない操作を行わせる攻撃手法。攻撃者が悪意のあるリクエストを被害者の代わりに送信することで、不正な操作を実行させます。 |
HTTPヘッダ・インジェクション | HTTPヘッダに不正なデータを挿入することで、アプリケーションやサーバーの動作を改ざんする攻撃手法。この脆弱性を悪用すると、不正なリダイレクトやクライアント側の情報漏洩などが行われる可能性があります。 |
メールヘッダ・インジェクション | メールのヘッダ部分に不正なデータを挿入することで、メール送信プロセスを悪用する攻撃手法。この脆弱性を悪用すると、スパムメール送信やメールハイジャックなどが行われる可能性があります。 |
クリックジャッキング | ユーザーが意図しない操作を行わせるために、透明なフレームなどを使用して不正なリンクやボタンを誤ってクリックさせる攻撃手法。 |
バッファオーバーフロー | プログラムが確保したメモリ領域を超えるデータを入力することで、プログラムの動作を改ざんする攻撃手法。 |
アクセス制御や認可制御の欠落 | 不適切なアクセス制御や認可制御が行われている場合に発生する脆弱性。攻撃者が不正な操作を行うために、適切なアクセス制御が行われていない場合に発生します。 |
上記の脆弱性については、Webアプリケーション攻撃入門シリーズで図付きで解説しています。
おわりに
本記事では、セキュリティを向上させるためのガイドラインを紹介しました。効果的なセキュリティガイドラインの実施は、セキュリティ事故のリスクを低減し、全体的なセキュリティ姿勢を強化する上で重要な役割を果たします。
次回は、AWS WAFを例とし、WAFで防ぐことができる攻撃について解説します。
記事一覧ページはこちらです。