2017は、最も重大なWebアプリケーション・セキュリティ・リスクのリストです。Project(OWASP)は、Webアプリケーション・セキュリティのリソースとツールを提供するソフトウェアの開発者、エンジニア、フリーランサーの非営利団体です。数年に一度OWASPは、Webアプリケーション・セキュリティ・リスクに関する最も重大な10件についてのレポートを発表しています。Stockが制作に協力)。Webアプリケーション開発の現場は変化が非常に激しいため、Webアプリケーション・セキュリティ・リスクのリストも同じように激しく変化していると思われるかもしれません。実際にはそうではありません。2017で取り上げられた問題点のほとんどは2004年の最初に取り上げられた問題点と同じかまたは酷似しています。Webは2004年から大きな発展を遂げました。Webアプリケ―ションのセキュリティはそれに追いついていません。10のセキュリティ・リスクを見てみましょう。インジェクションインジェクションは攻撃者がアプリケーションにコードを注入して、想定外の動作をさせる攻撃です。一般的でよく知られたインジェクション攻撃は、SQLインジェクション(SQLi)で、たとえば攻撃者はデータベースのテーブルを公開するSQLステートメントを挿入します。LDAPインジェクションはディレクトリシステムに対する同種の攻撃です。OWASPは受信した要求をチェックしてその信頼性を判定し、信頼されていないデータはアプリケーションを実行しているシステムから隔離しておくことを推奨しています。以前は「認証の不備とセッション管理」と呼ばれていました。システムにアクセスしている人のユーザー資格情報はわかりますが、キーボードを打っている人が本当は誰なのかはわかるのでしょうか。データとプログラムに簡単にアクセスするために攻撃者がユーザーIDをハイジャックして本物のユーザーIDの陰に隠れている可能性があります。強力な認証方式とセッション管理を実装することによりユーザーが確実に本人であることを検証してください。機密データの露出データが意図せず開示されてしまうことはユーザー・データを扱うWebアプリケーションの運営管理者にとって深刻な問題です。10の範囲にとても収まらないと述べていますが、いくつか最小限の対策は推奨しています。そのなかのひとつが機密データは保存されているものも一時的なものもすべて暗号化し、できる限り早く廃棄するというものです。XML外部実態参照(XXE)XMLプロセッサはXMLドキュメントに指定された外部ファイルのコンテンツをロードするように構成されることが少なくありません。攻撃者はこの機能を利用して、XMLプロセッサにローカル・ファイルのコンテンツを返信させたり、攻撃されたシステムを信頼した他のシステムのファイルにアクセスさせたり、さらに、実行可能なコードを作成させたりする可能性があります。OWASPはXMLプロセッサのこの機能を無効化するよう推奨しています。アクセス制御の不備この脆弱性は2013年のリストの「機能レベルのアクセス制御の欠落」と「非セキュアな直接オブジェクト参照」の組み合わせです。アクセス制御の不備とはユーザーが自分の権限以上の機能を実行できる場合や他のユーザーの情報にアクセスできる場合をさします。default」ルールの徹底やユーザーがアクセス可能なオブジェクト(ファイル、webページ、その他の情報など)のアクセス制御チェックの実装など、アプリケーションのセキュリティを維持するいくつかの方法を紹介しています。セキュリティ設定のミス「セキュリティ設定のミス」は不完全または管理の不十分なアプリケーション・セキュリティ・システムの一般的な呼称です。セキュリティ設定のミスは、アプリケーションのすべてのレベル、すべての部分で発生する可能性があるため、非常に一般的で検出が簡単です。ソフトウェアの設定ミスの脆弱性が発生するケースは多数あります。OWASPの脆弱性に関するレポートをよく読んでください。クロスサイト・スクリプティング(XSS)XSSは、ユーザーがある特定のサイトに与えた信頼を、悪意の可能性がある別のサイトに拡大して使用する脆弱性です。ユーザーは一般的に信頼性の高いサイトが一定の動作をすることを許可します。悪意のある動作者は信頼性の高いサイト上のページを変更することにより、信頼されていないサイトと通信して重要なデータを公開したり、マルウェアを拡散させたりする可能性があります。XSS脆弱性は一般的ですが修正は難しくありません。信頼されていない、ユーザー入力のデータをwebページ内のアクティブなコンテンツ(たとえばハイパーリンクなど)から隔離してください。入力検証を信頼しないでください。安全でないデシリアライゼーションシリアライゼーションはオブジェクトをどこかに送信したり保存したりできるデータに変更するために行います。この方法で、今度はデシリアライゼーションのプロセスによって別のシステムで別の時間に、同じ状態のオブジェクトを再作成することができます。攻撃者は、デシリアライズされた時点で、攻撃者にアクセス権限を与えたり悪意のあるコードを実行したりするオブジェクトを提供する可能性があります。この脆弱性は利用するのが困難ですが検出もまた困難です。OWASPはデシリアライズするオブジェクトの種類を制限するか信頼されていないオブジェクトは一切デシリアライズしないことを推奨しています。機知の脆弱性を持つコンポーネントの使用オープンソースの開発活動はイノベーションを促進し開発コストを低減させます。オープンソース・ソフトウェアは有益であるにもかかわらず、2018年のオープンソースのセキュリティおよびリスク分析では、セキュリティと管理運用において重大な問題点が残されていることが指摘されています。自社のアプリケーションとDockerコンテナに含まれるオープンソース・コンポーネントについての可視性と制御を持つことが非常に重要です。十分なロギングと監視によっても悪意のある行為者が攻撃を開始するのを止めることはできません。十分なロギングと監視なしでは、攻撃を検出し、撃退し、損害の範囲を判定するのが困難であることはお分かりなると思います。不十分なロギングと監視は一般的な脆弱性です。同時にその検出も困難です。ログに攻撃が進行中であることを検出するのに十分な詳細情報が含まれていたとしても、これらのログをモニタリングしているシステムが正しく動いている保証はありません。10の2017年版と2013年版の主な違いは2つのリスクが削除され、残りの順序が並べ替えられていることです。削除されたWebアプリケーションのセキュリティ・リスクはもはや重要ではないと考えないでください。これらの脆弱性は(以前よりもその数は少ないにしても)依然として野放しの状態で存在しています。10リストに復活する確率は高いと思われます。クロスサイトリクエストフォージェリ(CSRF)CSRFは信頼されたユーザーの資格情報を使用して脆弱なWebアプリケーションにリクエストを送る攻撃です。信頼されていない第三者がリクエストを生成した場合でも、攻撃者は被害者のブラウザを使用することにより、被害者の資格情報を不正利用することができます。CRSF攻撃は信頼されたユーザーの認証を利用してシステムを欺き、悪意のある動作をするように仕向けます。捏造の危険を低減させる方法として、OWASPはすべてのwebリクエストに一意の隠れたトークンを含めることを推奨しています。未検証のリダイレクトと転送WebアプリケーションがURLのリダイレクトに影響を及ぼす未検証の入力を許可すると、第三者はユーザーを悪意のあるwebサイトにリダイレクトできるようになります。攻撃者は、重要な情報にアクセスできるように自動転送のルーチンを変更することもできます。Projectは、可能な限りリダイレクトの使用を避け、転送を使用するように推奨しています。それが現実的でない場合は、少なくともユーザーがリダイレクト先に影響を与えないようにする必要があります。誰がOWASPを必要としているかこれらのwebセキュリティの脆弱性は複雑に絡み合っており、一つの脆弱性が他の脆弱性を招来する恐れがあります。アプリケーションのセキュリティの状況を理解し、リスクを低減するための手順を実施することが必要不可欠です。10リスクのどれが自分のシステムに当てはまるかということと、その他ここで述べられていないどのリスクを自分が負っているのかを判定する必要があるということです。10を手掛かりとして自分自身のリスクのリストを作成し、Webアプリケーションをセキュアに保つためのプランを考案してください。「誰がOWASPを必要としているか」(英語版)でその方法を紹介しています。2017の内容に合わせて1月9日に更新されました。