web-dev-qa-db-ja.com

CSSファイルにマルウェアを含めることはできますか?

JavaScriptファイルにはマルウェアが含まれている可能性があることを知っています。ただし、CSSファイルについてはよくわかりません。それらはページの表示方法にのみ影響しますよね?私はcssファイルがクリックジャッキングに使用できることを知っていますが、それらがどのように使用されて誰かに感染するのか想像できません。マシンを危険にさらすためにcssファイルをどのように使用できますか? CSSファイルを使用したマルウェア/エクスプロイトの例はありますか?どんなポインタも役に立ちます。ありがとう!

7
Pervy Sage

はい:CSSにはマルウェアが含まれている可能性がありますが、私の経験では、通常は脆弱性に関連付けられています。 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3971

JavaScriptが含まれている限り、これは間違いなくベクトルですが、悪用の成功は通常、ブラウザー、OS、およびJavaScriptエンジン内の脆弱性によって制限されます。脆弱なActiveXコントロールもそのようなシナリオの要因です。

7
W1T3H4T

CSSルールには実際にはJSコード(少なくとも一部のブラウザーでサポートされている)を含めることができるため、その観点から見ると、CSSはJSと同じくらい「悪い」可能性があります。

このSO回答は、詳細が必要な場合に役立ちます。 https://stackoverflow.com/a/482088

5
cloudfeet

信頼できないデータには、2種類の問題があります。

  1. 悪意のあるコードが直接実行される可能性があります(マルウェア)
  2. 正当なアプリケーションが不規則に動作し(悪用)、何か悪いことを実行する(ペイロード)ように作成することができます。

JavaScriptは本当に最初のカテゴリーです。ブラウザまたはPDFライターベンダー(またはJSを使用する他のソフトウェアベンダー)が、JavaScriptエンジンが攻撃者に何を許可するかについて十分な注意を払わない場合、JavaScriptコードを作成して、たとえば、XML外部エンティティ攻撃は、JavaScriptコードのXML仕様を使用して、アクセスを許可されていないファイルに到達します。

CSSファイルにはコードは本来含まれていませんが、cloudfeetが指摘したように、不正なCSSファイルは、スクリプトを含む外部ファイルをロードして実行するようにブラウザーをトリガーする可能性があります。これは、CSSファイルを使用してJavaScriptの実行をトリガーできることを意味します(ただし、スクリプトをブロックするブラウザー拡張機能がインストールされている場合は、そのようなスクリプトもブロックする可能性があります)。

これに加えて、コードが含まれていない「静的」ファイルは、ブラウザーのバグまたはミス(脆弱性と呼ばれる)の存在を悪用する(慎重に選択された)偽のデータを含むことにより、ブラウザーを傷つける可能性があります。ブラウザーがこの偽のデータの処理に失敗する方法により、攻撃者が探しているアクションがブラウザーで実行されます。たとえば、ブラウザのコードの実行を、通常のブラウザコードではなく、機械語命令を含むCSSファイルのセグメントにリダイレクトする場合があります。

これはありそうに聞こえませんが、実際には多くの攻撃がこのカテゴリに属しています。たとえば、JPEGおよびPNGライブラリは、(ブラウザやOSのような他のプログラムによって)非常に広く使用されている低レベルのコードであるため、ターゲットとされる場合があります。多くの場合、ブラウザはファイルを解析し、Webページをレンダリングする特権を取り除いた特定のプロセスを作成して、そのようなコードの実行に関連するリスクを軽減します。

悪いニュースは、これについては何もできず、常にWeb上の危険にさらされていることです。あなたの唯一の助けは、攻撃対象を減らすためにすべてのソフトウェアを最新に保つことです。

1