パスワードを忘れた? アカウント作成
13611683 story
セキュリティ

CSVファイル経由で感染するウイルス(ただしExcel限定)が話題に 26

ストーリー by hylom
本題はこれを使った攻撃が観測されたというところだね 部門より
あるAnonymous Coward曰く、

CSVファイルを開くだけでウイルスに感染するという話が報じられている

ExcelではExcelの関数が記述されたCSVファイルを開くと、状況によってはその関数を実行する仕組みになっているようだ。そのため、Excelで開いた際に悪意のある処理を実行するようなCSVを意図的に作成できてしまうという。

開いた時の話で問題があるのはExcelの方であり、またExcelはちゃんと怪しいCSVファイルを開いた時に警告を出すためどちらかというと利用者側の問題のような気もするが、実際にこの手法を使った攻撃が今年第一四半期に行われていたそうだ。

対策としては、不審なCSVファイルはExcelで開かなければ良いと思われる。

なお、ExcelがCSVファイル内の関数を実行するという問題については以前から指摘されてはいたが、Microsoftはユーザーがマクロを有効にする必要があることから脆弱性ではないとしている(2016年のサイボウズエンジニアブログ)。また、「安全なファイル形式」などというものは存在しないという指摘もある(twitterセキュリティネタまとめ)。

関連リンク

  • そういや以前(って言ってももう2年近く前か)にも類似したネタが上がってましたね。こんときは勝手に表示変わっちゃうくらいの話だったけど。
    Excelの自動書式により、遺伝子のリストを使用する論文の約20%に誤った遺伝子シンボルが掲載されているとの調査結果 | スラド IT [it.srad.jp]

    ここに返信
  • by Anonymous Coward on 2018年06月01日 15時56分 (#3418042)

    Excelって計算式を含むシート(やブック)をCSV形式で保存すると、全部、値として保存しちゃうから、読み込みも値だけなのかと思ってました。

    実は計算式や関数を含むCSVを読み込んで、評価してくれるんですね。

    今さらこれを知っても、何かに使える気はしないけど…。

    ここに返信
    • EXCELに関数あるけどCで書かれたライブラリが見つからなかった時
      CSVに書き出して、EXCELで開いて保存、再読み込みとかしたことがある

    • by Anonymous Coward

      01
      のような頭の 0 が、ただの CSV だと消えてしまいますが、
      ="01"
      のように式で表現すると 01 と 0 つきで表示されます。

      多分こんな感じで他にも応用がありそう……

      • by Anonymous Coward

        内部的にはあくまで式で、文字列の 01 じゃないので使いたくないなぁ。

        • by Anonymous Coward

          まぁ、CSVで式とか保存しないで、表計算ソフトのファイルでありながらテキストなSYLKとか使う方が幸せになれますよ。
          ちゃんとデータ型も保持されますし。

        • by Anonymous Coward

          内部的にはあくまで式で、文字列の 01 じゃないので使いたくないなぁ。

          文字列で入れたいなら、`01 では?

      • by Anonymous Coward

        保存時は
        '="01"
        ってやんなきゃいけないバッドノウハウな奴ですね(しかも表計算ソフト専用)。
        ファイルのダブルクリック時に”必ず”自動で取り込むのやめればいいのに…。
        (って、「テキストウィザード」がレガシーになったバージョンは触ったことないけど)

      • by Anonymous Coward

        2E5みたいな十六進数もそうしないと化ける。

    • by Anonymous Coward

      Excelって計算式を含むシート(やブック)をCSV形式で保存すると、全部、値として保存しちゃうから、

      ・CSVはセルの書式を含まない

      ・CSVが読み込まれる際は大抵デフォルトで「標準」書式となる

      ・「標準」書式は数値や式として機能する

      故に
      「2,3,=a1*b1」こういうCSVだと
      C1は6になるのですよ

      ただし
      「2,3,"=a1*b1"」とした場合
      Cは「=a1*b1」という文字列になります

      あぶないよねー
      ぴたごらぴたごら

      • by Anonymous Coward on 2018年06月01日 20時44分 (#3418201)

        追伸
        LibreOfficeも同様です

      • by Anonymous Coward

        ダブルクォートで囲っていても、文字列ではなく標準書式として解釈されるのが納得いかん。

        • by Anonymous Coward

          ダブルクォートで囲っていても、文字列ではなく標準書式として解釈されるのが納得いかん。

          そんなときは「''」シングルクォーテーションで

  • by Anonymous Coward on 2018年06月01日 16時01分 (#3418046)

    登録が必要なのでリンク先は全部読んではいないのですが、
    これExcelのデータが読み込める、
    たとえばLibre OfficeとかOpen Officeとか、
    そういうのは大丈夫なんですかね。
    個人的にはその類いは使っていないので関係ない……あ、一太郎使ってるな。

    ここに返信
  • by Anonymous Coward on 2018年06月01日 16時34分 (#3418068)

    脆弱性と考えて修正した [mag.osdn.jp]

    # ちなみにMSYS2上のEmacsについては25.3を出さず、最近26.1になった…

    ここに返信
    • by Anonymous Coward

      そっちは「自動的に有効」だからでは?
      Excelは読む前に警告出すし、ファイル自身ネット経由ならゾーンID付いてるし。
      複数段階の警告無視(解除)は流石に自己責任かも。

  • by Anonymous Coward on 2018年06月01日 21時03分 (#3418210)

    元のCSVファイルの形式を壊す(頭0埋めの値の頭0を消したりする)ソフトで、
    CSVを開く人なんているんですか?

    ここに返信
    • csvはデータを入れるもんだと考えてると辛いです
      excel用の簡易フォーマットだと思えば良いのです

      excelで開くとわかっていればカンマと改行を駆使して簡易レイアウトもできますし
      簡単に開けてそれなりに便利なもんですよ

      • by Anonymous Coward

        excelで開くとわかっていればカンマと改行を駆使して簡易レイアウトもできますし
        簡単に開けてそれなりに便利なもんですよ

        こ,う,で,す,ね,わ,か,り,ま,す,ん

        # 主は来ませn

    • >CSVを開く人なんているんですか?

       職場の業務システムを見ていると基幹システムからデータをCSVとか固定長で出力して、それを取り込んだ部門システムでコードの頭の0が消えてるなんて、ざら。
       数字と数値の違いとか、桁に意味を持たせているコードとか認識している人なんて、ITベンダーの現場担当者でも少ないと思うな(いわんや、一般ユーザーにおいては・・・)。
       いつだったかデータ交換のサンプルで渡された「CSVファイルです」が、Excelかなんかで作った帳票をそのまま出力した物(行毎に項目も、項目数も違っていて識別する情報が無い)で驚いたことがあります。
      • 職場の業務システムを見ていると基幹システムからデータをCSVとか固定長で出力して、それを取り込んだ部門システムでコードの頭の0が消えてるなんて、ざら。
        固定長とわかってるフィールドレコードなら、読み込んだあとで調整してますね。
        面倒だけど、定形処理ならマクロ化しちゃえば良さそう。

    • by Anonymous Coward

      Excelで編集することを考慮しているシステムで使うCSVだと色々と楽ですからね
      ツールや説明なしでエンドユーザーが簡単に閲覧・編集できるのは大きい

    • by Anonymous Coward

      やるよ。軽く中身を見たいだけでダブルクリック以上の操作がだるい時。

typodupeerror

普通のやつらの下を行け -- バッドノウハウ専門家

読み込み中...