執筆:EugeneAmnis
CSVインジェクション
CSVファイルを Excelで開く、取り込む。なんとはない作業ですが思わぬセキュリティリスクを抱える場合があります。使い方によっては便利ではありますが、注意喚起のためここに記します。
思わぬ挙動
CSVファイルを作成する際、普通に数字や日付・文字列を入力するかと思いますが、ここにSUMなどの関数を入れた場合はどうなるでしょう?文字列として表示されるのか、または関数として表示されるのか。
答えを言うと後者です。今はモバイル版のExcelや他の表計算アプリがあるのでそんな入力は出来ませんが、かつて仕方なくモバイルのメモアプリでデータ作成をした際に活用した記憶があります。家に帰ってパソコンで開けばボランティア残業の圧縮につながるとして。
この仕様はただローカルの関数を利用するだけなら便利ですが、致命的なセキュリティリスクになりかねません。そのひとつがWindows版で発生するスクリプトの実行です。ここでは詳細を明記しませんが、大雑把に言うと別のプログラムを実行できるリスクが発生します。
もうひとつはWEBSERVICE関数の利用です。ネットに繋がるだけならいいのではと思うかもしれませんが、サーバーにアクセス記録が残ることが大きな問題です。
いままで挙げた問題点はぶっちゃけると何度も警告ダイアログが表示されます。一度でもキャンセルすれば実行されることはありません。ただし実行してしまった場合、攻撃者にとって攻撃の糸口になりえる人物が存在するという重要な情報をもたらします。
例えるならサメのいる海で自分の血を垂らすようなものです。運が良ければ襲われないかもしれません。しかし、そんなリスクを負う必要はありません。
対策
そのような攻撃に対しては出処の分からないCSVファイルなどのテキストファイルはExcelでは開かない。もし開いたとしても警告に従う。が重要です。また中身をテキストエディタなど単機能なアプリで開き、中身を確認するのもありかもしれません。
自分自身がセキュリティリスクにならないように気をつけましょう。