パスワードを忘れた? アカウント作成
2213441 story
プログラミング

マルウェア Duqu で使われていた「未知の言語」の正体は C だった 25

ストーリー by reo
なるほど未知だ 部門より

hylom 曰く、

先日、マルウェア「Duqu」が未知の言語で開発されたかもしれないという /.J 記事 があったが、この「未知の言語」は実は C 言語だったことが判明した (Kespersky Lab の Igor SoumenKov 氏によるブログ記事より) 。

200 件以上のコメント、60 件以上のメールで「これは○○という言語ではないか」という声が寄せられたそうだが、アセンブラコードの癖などから、Visual C++ でコンパイルされたものだと分かったという。これに加えカスタムメイドのオブジェクト指向 C 言語フレームワークが使われているものと思われるそうだ。Simple Object Orientation for C (SOO) というものに似ているそうだが、SOO は Duqu がすでに出回ったあとにリリースされたために Duqu で使われている可能性はないとされている。

C++ ではなくこのようなフレームワークが用いられた理由としては「開発者が C++ コンパイラを信用していない」「移植性のため」などが挙げられている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • ご名答 (スコア:5, 参考になる)

    by ikotom (20155) on 2012年03月23日 11時10分 (#2122006)

    誰かこのACさんにすば洞をあげてください。
    http://developers.srad.jp/comments.pl?sid=562837&cid=2117607 [srad.jp]

    • Re:ご名答 (スコア:3, おもしろおかしい)

      by kicchy (4711) on 2012年03月23日 14時12分 (#2122137)

      バッカモーン!そいつがルパンだ!

      親コメント
    • by Anonymous Coward

      おお、これは凄いね

    • 言ってなかった?

      # 関心はあるが、追ってはない。のんき。

    • by Anonymous Coward

      環境に応じて自由自在に攻撃コードを合成したいような場合、
      「軽量言語 + 動的コンパイラ + Cの関数テーブル」
      あたりがいちばん快適なのかもしれませんね。

      アドレスやスタックを生でいじれるC言語を選択したのも、
      メソッドがvtblでなくてインスタンス直持ちというのも、
      内幕は単にハッカーくさい執念の帰結だったかも。

      • by Anonymous Coward

        THE REAL PROGRAMMER AT WORK
        「本物のプログラマの仕事」 [genpaku.org]
        ---------------------------
         典型的な本物のプログラマは、どこで働いているのだろうか?
        これほど有能な人物が努力してなすに値するプログラムとは、一体どんなものだろうか?
        本物のプログラマの誰一人としてCOBOLで会計プログラム書きやピープル誌の発送先リストのソートに没頭したりしないということは、
        誰でも知っている。

        本物のプログラマは地球が震え上がるような任務(それも文字通りのやつ!)をほしがっているのだ。

        • by Anonymous Coward
          さすがに地震兵器HAARPはネタとして賞味期限切れだろ
  • by Anonymous Coward on 2012年03月23日 12時25分 (#2122059)

    仮にもマルウェア解析のプロである人間がVC++で生成されたコードなんて極めてスタンダードなものがわからなかった理由が気になる。

    • Re:何故? (スコア:3, 参考になる)

      by Anonymous Coward on 2012年03月23日 12時57分 (#2122087)

      ひとくちにVC++といってもバージョンやコンパイルオプション(特にオプティマイザ?)でコードが変わると予想されるので、そんなに簡単に断定できなかったのではないでしょうか。
      ブログには、寄せられたコメントをてがかりに

      > I spent more time experimenting with different versions of MSVC compilers and different source codes and compiling options...

      した結果、

      > So, we can say with a high degree of certainty that the resulting binary was compiled with MSVC 2008 and options /O1 /Ob1 and the input source code was pure C.

      との記述がありますし。

      # GCCはひきあいにだされてるけど、Borlandは???

      親コメント
      • by epgrec (43527) on 2012年03月23日 13時06分 (#2122095)

        コンパイルオプションでずいぶん変わりますよね。

        当該コードの逆アセンブルの結果には、C/C++系の何か、で書かれたっぽいところはあります。
        最近は最適化が強力なので、そこから先の何かのレベルになるとわかりづらいんでしょうね多分。

        # 昔はアホアホコンパイラが多かったから、わりとわかりやすかったんだけど

        親コメント
      • by Anonymous Coward
        VC++6の頃最適化すると盛大に壊れてたな
      • by Anonymous Coward

        >ひとくちにVC++といってもバージョンやコンパイルオプション(特にオプティマイザ?)でコードが変わると予想されるので、そんなに簡単に断定できなかったのではないでしょうか。

        そんなこと言ったら、ほとんどのプログラムで作成されたコードが「簡単に断定できない」ってことになるんだが。
        Kaspersky Labsの人が単なる素人だった、ってレベルの話でもないだろ。

        • by Anonymous Coward

          今回の場合は、独自OOフレームワークが難読化にはからずも貢献したという話だ

    • by fareast (45345) on 2012年03月23日 13時04分 (#2122094) 日記
      Soumenkov氏「古代語Cは太古の昔に滅んだと聞いていたが、まさか地球上に未だにCを使う民族が残っていたなんて!これはシーラカンス以来の大発見!」

      # いやすごいいっぱいいるけど
      親コメント
    • by hogeman (4385) on 2012年03月23日 12時41分 (#2122075) 日記

      実はCって知ってたけど、作者を特定するための情報集めにみんな釣られたんじゃね?

      親コメント
    • by Anonymous Coward on 2012年03月23日 12時54分 (#2122081)

      前のストーリーには
      > C++のラインタイムライブラリやSTLの関数が含まれているものの、半分近くにあたる部分はどのような言語で作成されたのか分からないという。
      って書かれてるから、少なくとも半分がVC++だったってのは最初からわかってたんじゃないの。残り半分にはどんな未知の言語が使われているのかと思ったらそんなものはなかったぜ! と。

      親コメント
  • by Anonymous Coward on 2012年03月23日 13時12分 (#2122099)

    > Visual C++ でコンパイル
    > 「開発者が C++ コンパイラを信用していない」

    コンパイラじゃなくてコードじゃね?
    と思いソースのブログへ。
    軽く検索しただけですが、 Visual Studio とか MSVC とあるだけですかね。 古いバージョン?

    > SOO は Duqu がすでに出回ったあとにリリースされたために Duqu で使われている可能性はないとされている。

    普通は(?)構想からリリースまでに時間があるんだから、リリース元の周辺から洗うのが定石じゃないのかなぁ、と思ったり。

  • by Anonymous Coward on 2012年03月23日 13時40分 (#2122115)

    >Simple Object Orientation for C (SOO) というものに似ているそうだが、SOO は Duqu がすでに出回ったあとにリリースされたために Duqu で使われている可能性はないとされている。

    SOOの開発者がルパンだ!

    • by Anonymous Coward

      元記事の方に SOO の作者 Alex Marshall さんがコメントしてるよ。
      SOO の方は2010年10月から git で公開されているようだけど,Duqu が出回ったのっていつ頃だろう。
      認識されだしたのは約1年後だと思うけど…

    • by Anonymous Coward

      実は電車で拾ったCD-Rの中に。。

      「不遇な運命で生まれてきた子です。大切に育ててください」

typodupeerror

クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人

読み込み中...