【XSS】McAfee 公式ブログのセキュリティ記事の何が酷いか説明するよ!【マッチポンプ企業】
McAfee さんの公式ブログがなんかえらいことになってるというので調べてみました
Mcafee,この記事外注しただろ,メチャクチャ / “クロスサイトスクリプティングの仕組みと攻撃を回避する7つの対策” https://t.co/rZxeQQdmNb
— エヌユル (@ncaq) June 12, 2018
脆弱性の報告の中で、常に一定の割合を占める脆弱性に「クロスサイトスクリプティング」があります。この脆弱性を悪用されると、利用者のWebブラウザ上でスクリプトを実行され、例えば悪意のあるWebサイトに誘導されてしまいます。その結果、利用者の個人情報などが盗まれてしまう可能性があります。ここでは、クロスサイトスクリプティングとは何なのか、どのような対策をすればいいのかを説明していきます。 |
なんかいきなり説明が変な気がする ・ω・
『利用者が、Webブラウザで閲覧した環境として、ページが開かれアクションが実行される』 が正しいと思うんだけど、何なんだろう。 もやもや
クロスサイトスクリプティング(Cross Site Scripting:CSSはCascading Style Sheets、カスケーディング・スタイル・シートと混同する可能性があるため、XSSと呼ばれる。)は、利用者のWebブラウザ上で、本来は実行されるはずのないスクリプトが実行されてしまう脆弱性です。この脆弱性が悪用されると、利用者のWebブラウザ上で任意のスクリプトが実行されてしまいます。 例えば、掲示板や資料請求などのリンクをクリックした際に、そのサイトや企業とは異なる、悪意のあるサイトに飛ばされてしまいます。利用者はそれに気づきにくいので、リンク先のサイトに個人情報などを入力してしまい、それらの情報が悪意のある第三者の手に渡ってしまうのです。同様に、クッキー情報の取得によるセッションハイジャック、マルウェア感染などの被害に遭う可能性があります。 |
なんか色々おかしいのだけど、ふと、ひらめいた ・ω・!
フィッシング詐欺 は、利用者のWebブラウザ上で、本来は実行されるはずのないスクリプトが実行されてしまう脆弱性です。この脆弱性が悪用されると、利用者のWebブラウザ上で任意のスクリプトが実行されてしまいます。 例えば、掲示板や資料請求などのリンクをクリックした際に、そのサイトや企業とは異なる、悪意のあるサイトに飛ばされてしまいます。利用者はそれに気づきにくいので、リンク先のサイトに個人情報などを入力してしまい、それらの情報が悪意のある第三者の手に渡ってしまうのです。同様に、クッキー情報の取得によるセッションハイジャック、マルウェア感染などの被害に遭う可能性があります。 |
あー、なんだフィッシングサイトについての説明だったのだ ・ω・(ということにしておく)
クロスサイトスクリプティングは、利用者のWebブラウザ上で悪意あるスクリプトが実行されてしまう脆弱性です。スクリプトとはJavaScriptのことで、Webサイト上でさまざまな機能を使用できるため、多くのサイトに導入されていました。ただし、現在は脆弱性の多さから減少傾向にあります。
スクリプトには、不正な動作を制限するためのサンドボックスという機能があります。これには、PC内のファイルへのアクセス制限や、クリップボードへのアクセス制限、印刷機能の制限、同一生成ポリシーなどがあります。特に同一生成ポリシーは、異なる生成元(スキーム、ホスト、ポート)のスクリプトの実行を制限するものです。 |
ちょっと待って待って!全然違うよww!
まず前半はこう
クロスサイトスクリプティングは、利用者のWebブラウザの環境を利用して悪意あるスクリプトが実行されてしまう脆弱性です。スクリプトとはURLやJavaScriptに含まれる命令やリクエストなどの記述(スクリプト)のことです。
|
後半は 多分、JavaScript の説明をしようとして Java の説明になってるw
Java は Webサイト上でさまざまな機能を使用できるため、多くのサイトに導入されていました。ただし、現在は脆弱性の多さから減少傾向にあります。
スクリプトには、不正な動作を制限するためのサンドボックスという機能があります。これには、PC内のファイルへのアクセス制限や、クリップボードへのアクセス制限、印刷機能の制限、同一生成ポリシーなどがあります。特に同一生成ポリシーは、異なる生成元(スキーム、ホスト、ポート)のスクリプトの実行を制限するものです。
|
さて、このページの胆ともいえるXSSへの対策なのだが…これがひどい
項目 | McAfee 推奨の対策 | 本来の対策 |
入力値の制限 | 入力エリアへの情報登録やHTMLタグなどを入力できないようにする | 入力エリアに本来の情報以外の文字列を入れないようにするのが対策。 |
サニタイジング | HTMLタグの属性値などに該当する文字を削除したり、別の文字に置き換える処理を行う | 通常はタグの特殊文字のエスケープ処理の事をさし、『無害化すること』をサニタイジングという |
スクリプトの無効化 | スクリプトを利用する必要がない場合は、スクリプトを無効にする | サーバーサイドで対策は不要 |
HTML出力時のコード制限 | HTMLレスポンスヘッダの Content-Type フィールドに文字コード(Charaset)を設定する | Content-Type アプリケーションタイプ Charaset は文字コードの設定 ごちゃ混ぜになっている。 2つを正しく設定することに加えてコンテンツがブラウザのバグで誤ったコンテンツと処理されても安全になるように適切なサニタイジングを行うのが正しい対策。 |
脆弱性の解消 | 使用しているアプリケーションの脆弱性の把握、対応 | 「Webアプリケーション」の脆弱性の把握、対応は必要だが、JavaScript ということで、ユーザー側のアプリケーションと勘違いしてるのでは? XSSの脆弱性はロジックの問題と、サーバーアプリケーションの脆弱性によるものの2面性があるので両方把握して対応しなくてはだめ。 |
セキュリティ製品の導入 | Web Application Firewall を導入する | こんないい加減な会社の WAF は導入してはいけない |
脆弱選の診断 | 外部から疑似的な攻撃を行い、悪用されると危険な脆弱性があるかどうかを確認する「脆弱性診断」サービスを利用する | 自動診断ツールにだけ頼るのは危険。 ロジック上の問題や、最近流行してる脆弱性悪用技術を鑑みて分析する。 |
|。・ω・) 。o (すごい!!7つともXSS 対策が間違ってる!!!!)
スクリプトの無効の説明が
『最近ではJavaの脆弱性が多く発見されており、深刻な影響を受けるケースもあるため、スクリプトを無効にするWebサイトも増えています』になってるのもすごいww。
Java と JavaScript の区別もできてないよ!
『最近ではJavaの脆弱性が多く発見されており、深刻な影響を受けるケースもあるため、スクリプトを無効にするWebサイトも増えています』になってるのもすごいww。
Java と JavaScript の区別もできてないよ!
まとめもすごい
クロスサイトスクリプティングの脆弱性は、企業などの組織のWebサイトが影響を受けるのではなく、利用者のWebブラウザ上で悪意あるスクリプトが実行される脆弱性です。この脆弱性を悪用する攻撃は、Webサイト側、Webブラウザ側ともに気づきづらいので、あらかじめ脆弱性を想定した対策を行うことが重要です。特に、入力エリアのあるページでの入力制限などは有効な対策となります。まずは使用しているWebアプリケーションの棚卸しを行い、バージョン管理から始めましょう。 |
SPAM 業者に魂を売り渡してしまったMcAfee さん、
今度は、自分のサイトを見てくる顧客に間違った XSS対策の知識を植え付けて、何をしようとしてるのでしょうか?
これは恐ろしいですね!
Comments