インターネット技術の幅広い分野において、サイバーセキュリティに関する包括的な理解は急速に不可欠なスキルになりつつあります。この分野をマスターするためには、Open Web Application Security Project(OWASP)と、その広く参照されているリストであるOWASP Top 10に関する深い知識が不可欠です。「OWASP Top 10解説」では、最も重大な脆弱性に焦点を当て、Webアプリケーションのセキュリティと個人のオンライン安全性のためのチェックリストを提供しています。
OWASP入門
Open Web Application Security Project(OWASP)は、サイバーセキュリティコミュニティに価値あるプラットフォームを提供する国際的な非営利団体です。OWASPの主な目的は、無料で利用できるツール、方法論、標準を開発・提供することで、Webアプリケーションのセキュリティを強化することです。重要なツールの一つであるOWASP Top 10リストは、オンライン資産に対する潜在的な脅威を理解し、軽減したい組織にとって重要なリソースです。
OWASPトップ10の概要
OWASP Top 10は、様々なセキュリティ組織の実データに基づき、最も一般的で危険な脆弱性を概説しています。本ガイドでは、それぞれの脆弱性について解説し、予防と軽減のためのヒントを提供します。
A1:2017 - 注射
SQL、OS、LDAPインジェクションなどのインジェクション脆弱性は、信頼できないデータがコマンドやクエリの一部としてインタープリタに送信されたときに発生する脆弱性です。例としては、制御されていない変数、不適切な形式のコマンドやレスポンスなどが挙げられます。これを軽減するには、サーバー側の入力検証(ポジティブまたはホワイトリスト)を使用し、特定のAPIやライブラリを使用して特殊文字をエスケープします。
A2:2017 - 認証の不具合
認証やセッション管理に関連するアプリケーション機能は、しばしば不適切に実装されており、攻撃者がパスワード、キー、セッショントークンを盗み出したり、その他の実装上の欠陥を悪用して他のユーザーのIDを詐称したりする可能性があります。これを防ぐには、多要素認証を実装し、デフォルトの認証情報でデプロイしないでください。
A3:2017 - 機密データの漏洩
多くのウェブアプリケーションやAPIは、金融、医療、個人情報(PII)といった機密データを安全に保護できていません。攻撃者は、保護が弱いデータを盗んだり改ざんしたりする可能性があります。これを防ぐには、アプリケーションによって処理、保存、または送信されるデータを分類し、分類に応じた制御を適用する必要があります。
A4:2017 - XML外部エンティティ(XXE)
多くの古い、あるいは適切に設定されていないXMLプロセッサは、XML文書内の外部エンティティ参照を評価します。外部エンティティは、内部ファイル、内部ファイル共有、内部ポートスキャン、リモートコード実行の漏洩に利用される可能性があります。これを防ぐには、より単純なデータ形式を使用するか、アプリケーションまたは基盤となるオペレーティングシステムで使用されているすべてのXMLプロセッサとライブラリをアップグレードしてください。
A5:2017 - アクセス制御の不具合
認証済みユーザーの操作制限は、多くの場合適切に適用されていません。攻撃者はこれらの欠陥を悪用し、許可されていない機能やデータにアクセスする可能性があります。URL、アプリケーション内部の状態、またはHTMLページを変更することで、制限を回避できます。これを防ぐには、デフォルトでアクセスを拒否し、レコードの所有権を実装し、各機能へのアクセスを許可する前にアクセス権を検証する必要があります。
A6:2017 - セキュリティの誤った構成
セキュリティ設定の誤りは最もよく見られる問題であり、安全でないデフォルト設定、不完全またはアドホックな設定、オープンクラウドストレージ、HTTPヘッダーの設定ミス、機密情報を含む詳細なエラーメッセージなどが原因で発生することがよくあります。セキュリティ設定の誤りを防ぐには、自動設定を使用し、独立した環境を維持し、強力なアプリケーションアーキテクチャを実装する必要があります。
A7:2017 - クロスサイトスクリプティング(XSS)
XSS脆弱性は、アプリケーションが適切な検証やエスケープ処理を行わずに信頼できないデータを新しいウェブページに含めることで発生し、攻撃者が被害者のブラウザでスクリプトを実行できるようになります。これを防ぐには、クライアント側でブラウザドキュメントを変更する際に、状況依存のエンコーディングを適用してください。
A8:2017 - 安全でない逆シリアル化
安全でないデシリアライゼーションは、多くの場合、リモートコード実行につながり、リプレイ攻撃、インジェクション攻撃、権限昇格攻撃などの攻撃に利用される可能性があります。解決策としては、信頼できないソースからのシリアル化されたオブジェクトを受け入れないか、プリミティブデータ型のみを許可するシリアル化媒体を使用することです。
A9:2017 - 既知の脆弱性のあるコンポーネントの使用
ライブラリやフレームワークなどのコンポーネントは、アプリケーションと同じ権限で実行されます。脆弱なコンポーネントが悪用されると、深刻なデータ損失やサーバーの乗っ取りにつながる可能性があります。プロアクティブなアップデートと仮想パッチの活用が解決策となる場合があります。
A10:2017 - 不十分なログ記録と監視
ログ記録と監視が不十分で、インシデント対応との連携が不十分な場合、攻撃者はシステムへの攻撃をさらに進め、持続性を維持し、攻撃を高度化し、データを抽出または改ざんすることができます。これを防ぐには、すべてのログイン、アクセス制御の失敗、サーバー側の入力検証の失敗が、疑わしいアカウントや悪意のあるアカウントを特定できる十分なユーザーコンテキストとともにログに記録されるようにする必要があります。
結論は
結論として、サイバーセキュリティの世界は急速かつ絶え間ない変化を特徴とする分野です。その多様な側面を理解し、常に最新の情報を把握することは、インターネットやウェブアプリケーション技術に関わるすべての人にとって基本的な課題です。この課題を解決する上で非常に役立つリソースが、このガイドで解説するOWASP Top 10リストです。このリストは、放置すると深刻なデータ侵害やセキュリティ侵害につながる可能性のある脆弱性を特定し、対処するための優れた参考資料となります。