web-dev-qa-db-ja.com

エンドユーザーにとって、HTML5 / JavaScriptはFlashよりも安全ですか?

これらは脆弱なサービスへの攻撃であり、クライアント側の既存の脆弱性を使用してエンドユーザーに影響を与えないため、サーバー側のセキュリティやXSSの脆弱性については触れていません。これらは、Web開発者が脆弱なWebアプリケーションを作成し続ける限り存在します。

次の2つのシナリオで、エンドユーザーのセキュリティに焦点を当てたいと思います。

  1. Flashがインストールされて有効になっているが、JavaScriptが無効になっている
  2. JavaScriptが有効、Flashがインストールされていない、または有効になっていない

エンドユーザーのセキュリティの観点から、ほぼ完全に(内部的に)異なるが競合する2つのテクノロジーを比較する必要がある種類の質問を投げかけることで得られる可能性のある回答に興味があります。

45
Jonathan Gray

理論的には、すべてのサーバーとそれらへの接続が完全に安全(不可能)で信頼できる(真でない)場合、どちらも他よりも「安全」ではありません-主にWebサイトの開発者が完全に制御しているためサイトのコンテンツ。 FlashとJSはクライアントに提供されるため、エンドユーザーに影響を与えるためには、サーバーが悪意のあるコンテンツをエンドユーザーに提供する必要があります。

残念なことに、私たちは完璧な世界に住んでいるわけではなく、サーバーのセキュリティが低下した場合、JSはより安全になる傾向があります。クライアントに影響を与える能力ははるかに制限されます。 Flashの脆弱性の多くには、任意のコードを実行する機能があります。これは、サンドボックスから抜け出すために複数の脆弱性を必要とすることが多いブラウザのエクスプロイトよりもはるかに有害です。つまり、JSエクスプロイトはクライアントがそのページを表示している間しかクライアントを操作できず、通常は閉じた後は持続できないのに対し、FlashエクスプロイトはRATまたはその他のマルウェアにクライアントを感染させ、攻撃者がブラウザが閉じられた後でもクライアント。

JSを使用するもう1つの利点は、クライアントがソースを表示できることです。サイトを使用している誰かがソースで疑わしい何かに気づき、開発者に通知して、侵入をより簡単に検出できるようにする可能性があります。 Flashの場合、悪意のある攻撃者が既存のswfに悪意のあるコードを挿入する可能性があり、ユーザーはswfを分解せずにソースを表示できないため、悪意のあるコードが検出されなくなる可能性があります。

エンドユーザーの場合、シナリオ2:

JavaScriptが有効、Flashがインストールされていない、または有効になっていない

上記の理由と、Adobe Flashのエクスプロイトの履歴を考えると、はるかに安全です。 NVDでの検索により、合計 610の脆弱性そのうち3 が2014年1月から2015年12月の間にあることがわかります。ほとんどのJS関連のエクスプロイトはブラウザ固有である傾向があり、影響を受けるクライアントの数。Flashはクロスプラットフォームであることが意図されているため、影響を受けるクライアントの数が増加します(最近では、多くの人々がFlashを無効にしていることを考えると、この数は減ります)。

TLDR:フラッシュをオフにして、代わりにJSを使用します。

54
WillS

WillSの優れた答えに加えて、セキュリティに影響を与えるいくつかの違いがあります。

  • Flashは製品ですが、HTML5/Javascriptは仕様です。製品(特にクローズドソースの製品)では、もぐらたたきのゲーム(Adobeは見事にやっていますが、長期的には敗戦です)をプレイするベンダーに常に依存しています。仕様は、必要に応じて再実装できます(仕様自体に欠陥がない限り、ただし通常は修正可能です)。
  • エンドユーザーは最新バージョンのFlashを使用していない可能性があり、アップグレードできない可能性があります。たとえば、LinuxとAndroid=の実装は古く、サポートされていません。
  • Flashは非常に古いものです。前世紀に最初に作成されました。古くなったソフトウェアは、現時点ではおそらく巨大なダクトテープの玉です。繰り返しますが、これは主にFlashが仕様ではなく製品であることによるものです。 HTMLとJavascriptもその昔にさかのぼりますが、少なくとも同じ程度ではなく、この問題に悩まされることはありません。

更新 Flashに関する2つの追加の問題:

  • Flashは独自のTCP=接続を確立できます。暗号またはハッシュが脆弱であることが判明した場合、ブラウザはそれを非推奨にするかもしれませんが、Flashはそれを引き続き使用する可能性があります。アドビはそのような修正についてかなり良い傾向があります問題(少なくともサポートされているプラ​​ットフォームでは)ですが、それでもモグラたたきの要素が2倍になります。
  • Flashには、ブラウザのCookieとは別に独自のCookieがあります。これは主にセキュリティの問題よりもプライバシーの問題ですが、多くの人々はこれら2つの問題が関連していると考えています。
31
Kevin Keane

「ブラウザからxxを実行するとマシンがクラッシュしたり、セキュリティが低下したりする可能性がある」という観点からは、答えは明らかです。フラッシュは古いテクノロジーであり、もはや十分にサポートされておらず、エクスプロイトの長い歴史があります。したがって、それは潜在的に危険であることが知られています。

Html5、javascript、およびその他の現在話題になっているテクノロジーについては、本質的に安全ではなく、サードパーティによって記述されたコードをマシン上で実行しています。彼らができることを制限しようとする試みがありますが、その効果は実装の品質と基礎となる設計に依存します。エクスプロイトは避けられません。

0
ddyer