ブログ
Checkmarx Blog: 2017年度版OWASP TOP 10における変更点
Checkmarx Blog
*以下はCheckmarx社によって書かれた下記URLの記事を翻訳したものです。
https://www.checkmarx.com/2017/12/03/closer-look-owasp-top-10-application-security-risks/
Dec 3, 2017 By Arden Rubens
OWASP(Open Web Application Security Project)は、その多くが世界各国のセキュリティ専門家から成る組織であり、アプリケーションやそのリスクについての情報を直接的、中立的かつ実践的な観点から提供しています。2003年以来、OWASPは3~4年ごとにOWASP Top 10というリストを発表しています。このOWASP Top 10は、アプリケーションセキュリティリスクの中でもOWASPが最も重大と判断した上位10種のリスクで構成されています。
OWASP Top 10は、アプリケーションセキュリティのコミュニティ内でベンチマークとして支持されており、最新の脆弱性、脅威、攻撃とそれらを検出/解決する方法についての情報を提供します。OWASP Top 10のプロジェクトメンバは、急速に発展し続けるアプリケーション業界が直面している脅威の発生率や一般的な重大度を分析しOWASP Top 10を作成しています。
2013年版と新たに公表された2017年版のOWASP Top 10の比較。出典(PDF)。2017年版のOWASP Top 10は、最初に発表した内容の一部に対して異論が出たことから、最近になって改訂版が公開されました。改訂された新しいOWASP Top 10は、アプリケーションセキュリティを専門とする40社以上の企業から提供されたデータ、ならびに500名を越す個人に対して実施された業界調査に基づいています。改訂版では、Top 10の内3つの脆弱性が大幅に変更され、さらに攻撃シナリオが更新されています。以降のセクションでOWASP Top 10すべての項目と重要な変更点について内容を確認してゆきます。
A1 - インジェクション
アプリケーションが、バックエンドのデータベース、コマンドまたはシステムコールへのユーザ入力を受け取る設計になっている場合、そのアプリケーションはコードインジェクション攻撃を受ける可能性があります。インジェクションに分類される脆弱性は、怪しいデータがコマンドやクエリとしてアプリケーションに挿入されるときに発生します。SQLインジェクション、OSコマンドインジェクション、XPathインジェクション、LDAPインジェクション攻撃などが知られています。
コードインジェクションの中で最も一般的なものがSQLインジェクションで、SQLiとも呼ばれます。SQLi攻撃では、データベースサーバへ不正な形式のコードを送信してデータ漏えいを引き起こします。そして、この攻撃方法はとても単純明快で、インターネットにアクセスできる人ならば誰でも実行することが可能です。SQLiスクリプトはインターネットに公開されているので、簡単に入手することができます。最も一般的な脆弱性の1つとしてSQLiに関する多くの情報がある一方で、新たなSQLi攻撃が次々と発生しています。詳しくは、SQLi Hall-of-Shameをご覧ください。
参考情報
A2 - 認証の不備
アプリケーションの機能が正しく実装されていないと、攻撃者の侵入を容易に許してしまいます。攻撃者はパスワードやセッションIDを窃取し、盗んだ認証情報を使って他の欠陥を悪用します。セッションは、ユーザ個人個人に対して一意でなければなりません。しかし、然るべきセッション管理が行われていないと、攻撃者は密かに侵入して任意のユーザになりすまし、トークンやパスワードを盗んでお目当ての機密情報へのアクセス権を取得することができます。
A3 - 機微な情報の露出
HTTPSなどのセキュリティ制御が適切に実装されていないと、攻撃者がシステム上に格納されているパスワード、支払情報、ID、住所などの機密情報を盗みに入れる穴を残すことになり、機微な情報の露出が生じる恐れが出てきます。アプリケーションでは必ず、アクセスを認証しデータを暗号化しなければなりません。アクセス認証とデータの暗号化はアプリケーションにとって必須であり、そこに問題があると重大なプライバシー侵害を引き起こすことが考えられます。
A4 - XML外部エンティティ(XXE) [NEW]
XML外部エンティティ攻撃は、XMLの入力値をパースするアプリケーションに対して実行されるタイプのものです。この攻撃は、外部エンティティへの参照を含むXMLの入力値が、脆弱な構成のXMLパーサによって処理されるときに発生します。そして、機密情報の漏えいや、DoS攻撃、サーバ側のリクエストフォージェリ、パーサが存在するマシンからのポートスキャンなどを引き起こす可能性があります。
A5 - アクセス制御の不備
ユーザを制限しないことによってアクセス制御に欠陥が生じる可能性があります。この結果、攻撃者は権限が付与されていない機能やデータへアクセスして悪用することができます。アクセス制御とは、“権限のある”ユーザがアプリケーション内でできること/できないことを制御することです。適切にアクセス制御を構築するには、アプリケーションで必ず厳密に権限を検査し、権限を持つユーザとそれ以外のユーザを識別するための適切な認証機能を実装する必要があります。
アクセス制御の不備は、大量のアクセス制御ルールの適切な実装の難しさに依るところが大きいです。そして、アクセス制御ルールはコードのあらゆる場所にバラバラに実装され、全体像を把握したり理解したりすることがほぼ不可能な状態になっているケースが散見されます。
A6 - 不適切なセキュリティ設定
OWASPによると、不適切なセキュリティ設定は最もよく見られる問題です。強力なセキュリティは、アプリ、フレームワーク、サーバ、データベース、カスタムコードに対して適切かつセキュアな構成での展開が求められ、すべてを最新の状態に保たなければなりません。これが実現できないと、その結果として生じる欠陥が攻撃者によって悪用され、重要なデータへのアクセスを許すことになります。サーバ、ライブラリ、データベースなどを含めたアプリケーションの全体的な構成を適切に定義して実装し管理できなければ、深刻なセキュリティホールを生み出す可能性があります。
A7 - クロスサイトスクリプティング(XSS)
OWASPは改定前のA7(「不十分な攻撃保護」)に対する多くの反対意見を受け、OWASP Top10を更新して新しいA7にクロスサイトスクリプティングを記載しました。クロスサイトスクリプティングは一般にXSSとして知られ、Webアプリでよく検出される脆弱性です。XSSによって攻撃者は、認証機能などのない誰もがアクセスできるWebページに、クライアント側のスクリプトを挿入することが可能となります。そして、多くの場合において、この脆弱性は不正アクセスに利用されます。
これは、信頼性のないデータを受け付けるようにブラウザを騙すことで実現します。一般に、開発者によって危険なコードが除去されていない場合に、攻撃者は汎用的なコード(例: JavaScript)を使って攻撃します。
また、出力に対する完全な制御機能を実装せずにユーザ入力を受け付けるアプリは、XSS攻撃に対するリスクが非常に高い可能性があります。XSS攻撃に成功すると、攻撃者はWebサイトに甚大な被害を引き起こすことができ、ユーザを他のWebサイト(多くの場合は、より悪意のあるコードが埋め込まれているWebサイト)に誘導することが可能です。他にXSS攻撃として知られるものには、ストアドXSS、DOMベースXSS、リフレクテッドXSSなどがあります。
参考情報
A8 - 安全でないデシリアライゼーション [NEW]
『シリアライゼーションとは、オブジェクトを後ほどリストアできるデータ形式に変換するプロセス。大抵の場合、オブジェクトをストレージに格納したり、通信の一部として送信したりするためにシリアライゼーションが行われる。デシリアライゼーションとは、シリアライゼーションのプロセスを逆に行うことであり、ある形式で構成されたデータを取り出し、オブジェクトに再構築するプロセス』と、OWASPでは説明されています。
安全でないデシリアライゼーションは、しばしばリモートコード実行を引き起こします。デシリアライゼーションの欠陥によってリモートコード実行が生じない場合であっても、リプレイ攻撃、インジェクション攻撃、権限の昇格攻撃といった他の攻撃に利用されることがあります。
A9 - 既知の脆弱性のあるコンポーネントの使用
ライブラリやフレームワークを含むコンポーネントはオープンソースコミュニティから取得されることがあるので、脆弱性が潜在している場合を考慮して慎重に取り扱う必要があります。脆弱性のあるコンポーネントが利用されていると、攻撃者はこれを悪用して大規模なデータ損失を引き起こし、アプリケーションや場合によっては企業の信頼を傷つけることが可能です。
既知の脆弱性が存在するアプリのコンポーネントを悪用することにより、攻撃者はアプリを乗っ取る目的で、簡単にSQLiやXSSをはじめとする攻撃を仕掛けることができてしまいます。
A10 - 不十分なロギングとモニタリング
OWASPによると、ロギングやモニタリングが不十分なことにくわえて、これらの情報が欠如することやインシデントレスポンスで有効に活用できない場合、攻撃者はシステムへの攻撃を強化/継続したり、さらには別のシステムにまで攻撃範囲を広げたりすることで、データを改ざん、抽出、破壊することが可能となります。ほとんどの不正侵入の事例では、不正アクセスが発見されるまでに200日以上を要し、一般的に組織内のプロセスやモニタリングではなく第三者によって問題が発覚しています。
OWASPが公表している2017年版OWASP Top10は、こちらでご覧になれます。
Checkmarx社におけるOWASPのサポートについては、こちらでご確認ください。
Arden Rubens
Checkmarx社でソーシャルメディアマネージャとライターを兼任。Blogトピックとして、アプリリケーションセキュリティ業界におけるサイバーセキュリティの傾向と最新動向について多く取り挙げ、開発者や企業のセキュリティ担当者に対し、オンライン上の脅威への最善の防御方法を探し続ける重要性を強く訴えている。