web-dev-qa-db-ja.com

CSVに悪意のあるコードを含めることはできますか?

他のユーザーがダウンロードしたCSVファイルをユーザーがアップロードできるシステムを使用しています。

システムは、すべてのCSVファイルがRFC 4180準拠のパーサーによって解析可能であり、有効なUTF-8であることを(とりわけ)検証します。これにより、ファイルがダウンロードされるときにContent-Type: text/csv; charset=utf-8Content-Disposition: attachment; filename="download.csv"

システムがマルウェアや悪意のあるコードの送信に使用される可能性があるという懸念が提起されました。

悪意のあるCSVファイルがコードを受信者に実行させる既知のメカニズムはありますか?もしそうなら、もたらされるリスクを低減するであろうさらなる検証はありますか?

8
James_pic

はい、ランダムな「コード」の実行を引き起こす悪意のあるCSVファイルの例がいくつかあります。人々は、MS Excel、Open Office、またはマクロ実行機能を備えたそのようなソフトウェアでCSVファイルを開くことを選択します。

いくつかの例:

https://www.contextis.com//resources/blog/comma-separated-vulnerabilities/https://hackerone.com/reports/72785

MS Excelなどの一般的なアプリケーションを使用してCSVを開かない環境では、リスクが大幅に軽減されます。ドライブバイダウンロードをホストしている可能性のある、ダウンロードされたCSVに外部の潜在的に悪意のあるリンクの存在も探します(したがって、これらのリンクにアクセスすることは避けたいでしょう)。

8
whoami

はい、CSVファイルを開いているマシンで実行される任意のシステムコマンドが含まれている可能性があります。スプレッドシートソフトウェアは、CSV値を挿入されたコマンドとしてレンダリングし、複数の警告を表示した後に実行します。

例-次の2行でCSVファイルを作成します-

ユーザー名、メール、指定

= 2 + 5 + cmd | '/C calc '!A0、a @ b.com、SSE

それを保存し、MS Excelを使用して開きます。 Windowsシステムで電卓が開きます。

さらに読むために-

2
Arka