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

RLOを使いレジストリ汚染を隠ぺいするマルウェア 56

ストーリー by hylom
よく考えるなぁ 部門より

あるAnonymous Cowardのタレコミより。 多くの文化圏では、横文字は左から右に読むが、アラビア語などでは横文字は右から左に向けて読む。そのため、UnicodeはRLOという制御コードを利用することで、文字の記述方向を切り替えられるようになっている。これを悪用し、ファイルの拡張子を分かりにくくするといった攻撃方法は以前からあったが、このたびRLOを利用してサービス名を分かりにくく偽装するマルウェアが発見された(MicrosoftのMalware Protection Center)。

このマルウェアが偽装するのはGoogle Chromeなどで使われる「gupdate」という、サービスとしてバックグラウンドで動作するプログラム。マルウェアは先頭にRLO制御文字を加えた「etadpug」という文字列をサービス名として利用することで、一見「gupdate」というようにサービス名が見えるように偽装しているという。このように偽装された場合、目視での判別はかなり難しい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • そうか。 (スコア:3, おもしろおかしい)

    by yu-maru (34876) on 2013年08月23日 20時02分 (#2446939) 日記

    「ぜかまし」ちゃんってそーゆー事だったのか。

    • by rvman (42250) on 2013年08月23日 23時14分 (#2447047)
      今までで3人ほど、ホントにターャジスという製品があると思っている人に出会いました。
      「まず小さい『ャ』がある時点で気づけよ!」と言ったのですが、
      「だって『トョペット』とか『バャリース』とかあるじゃん」と反論されました。
      親コメント
  • 「レジストリー汚染」って、ソフトウェアがアンインストール後もレジストリーに設定を残す等の理由で、 Windows を使っていくにつれてレジストリーに不要あるいは有害な設定が増えていくことを指す言葉だと思っていた。マルウェアがレジストリーを書き換えるのは単に「マルウェアによるレジストリーの変更」のような気がする。

    本題に戻ると、ブログにも書いてある通り RLO を使ってファイル名を偽装するのは昔からある話で、レジストリーのキー名で同じことをするのは新しいのかもしれないけれど特に新鮮味はないなあ。

    • by Anonymous Coward

      誰も具体的に注意を促した実績がない所に、実際に出現して動作した事が重要なんです。
      あなたがお感じになったかもしれない「新鮮味」は、本題に全く関係ない事ですね…。
      (後出しですから、どーとでも言えますし)
      単語の定義にブツクサ仰ってる辺りも、典型的な言葉遊びです。
      もっと素直になろうよ。

      • ファイルのパス名に RLO を使うってネタが出てきたときに、レジストリーのパス名 (「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\gupdate」みたいなののこと) に RLO を使うことを思い付かないような一般人は、そもそもレジストリーの中を見ようとしないからこの偽装の意味もないだろうと思ったのですが、僕は素人の行動力を甘く見すぎかもしれませんね。

        親コメント
      • by Anonymous Coward

        用語に噛みつくのはここでは作法のうちですからその辺はよろしくお願いいたします
        俺は知ってたいまさらなんだ発言もここでは定型ですのでよろしくお願いいたします
        アクセス数向上に今後ともご協力いただければ幸いです

    • Windowsに、そんな糞仕様が設けられているとは知りませんでした。
      どうして、そんなせっかくの知識を、Wikipediaに書いてくれなかったんですか(;_;)

      あなたがWikipediaに書けば、他の人も
      "レジストリー汚染"の誤った使い方をすることは無かったかもしれません。
      たれこむ前に…記事にする前に…Wikipediaで調べたかもしれないからです!

      "レジストリー汚染"の使い方の定義を曖昧にし
      使い方を乱し、より曖昧にしてしまったのは
      その用語を知っていながら、Wikipediaへの記述を怠ったあなたがたでは無いか!

      #とか言ってみるテスト

  • RLOの部分だけが異なる色で表示される
    たとえば、色が薄くなったりする仕組みがあれば
    問題を回避できないでしょうか?

    • そんな糞仕様にしたら,アラビア語圏の人々が発狂します.

      親コメント
    • by SAW_Z (15894) on 2013年08月25日 23時13分 (#2447806) 日記

      明朝体の文書の中で、英数文字が出てきた時
      ちゃんと明朝体の英数文字を表示するように設定している?

      異なる言語の文字であれば、字体が違うことを
      仕方なしとしているのが日本なんじゃないのかな?

      誰も、アラビア文字は色を変えろとは言っていないよ。

      もちろん、強制もしていない。
      英数文字混じりの文書は、明朝体で表示しない自由があるように
      RLOでも、色を変えないで表示する自由を無くせとも言っていない。

      英数文字を、RLOで表示するような特殊な使い方を
      注意を喚起する方法として、色を変えることを提案しているの。

      まず、第一に右舷の船名の色を変えるところから考えてもらえないだろうか?
      えっ?あれは一行一文字の縦書きだって?

      親コメント
    • OS の側でそういうことを勝手にやると、思わぬところで問題が起きそうです。一方、アプリケーションの側で動作を選択するなら、ファイル名やレジストリーのキー・値の名前に RLO 等の directional override を使う必要はそもそもないと思うので、色を変えるよりも directional override を無効にする仕組みを用意しておく方が簡単のような気がします。 (なお、 #2446973 [srad.jp] に書いた通り、左から右の言語と右から左の言語が混在する文章であっても、 directional override は通常は不要です。)

      親コメント
  • by Anonymous Coward on 2013年08月23日 18時46分 (#2446889)

    いますぐChromeを削除しなくちゃw

    • by Anonymous Coward

      emorhc 「くっそーせっかく偽装したのに、まさかもうバレるとは

  • by Anonymous Coward on 2013年08月23日 18時47分 (#2446891)

    「かなり難しい」って不可能ではないということなんでしょうか?
    実は1ドットずれてるとか?

    • by nekonyanko (45835) on 2013年08月23日 18時58分 (#2446898)

      元サイトの例ですと、アルファベット順に並べた時に、本来の g の場所ではなくて e の場所に並んでいるようにみえますね。

      親コメント
    • by Anonymous Coward on 2013年08月23日 18時55分 (#2446897)

      RLOなんかを使わず、そのまま「gupdate」という名前にしてしまえばよいではないか。

      偽装する必要なんかない。

      親コメント
      • by Anonymous Coward on 2013年08月24日 0時46分 (#2447091)
        同じ名前だと本物が既に起動しているか確認するタイミングで、偽物が本物と間違われて本家アプリの動作に影響が出ると発覚が早まるとかそういう理由だと思われる。

        あとはgupdate自体の更新の際に強制終了させられるとかね。

        複数起動していてもプロセス間通信しているかもしれないし、機械側には区別してもらい、人間には同じものと見せる工夫なんだと思うよ。
        親コメント
      • by Anonymous Coward

        私もそう思うのですが、なにか意味があるのでしょうかね?

      • by Anonymous Coward

        gupdateは2つくらい入ってることあるから、どれが本物かわからないよね

      • by Anonymous Coward

        ファイル名の場合は拡張子を誤認させる目的があったがレジストリの場合は必要性が分からんな
        正規のキーと同居しちゃえよ

  • by Anonymous Coward on 2013年08月23日 19時19分 (#2446906)

    テキストの途中でRLOを入れれるような仕様にしたのが全ての間違い。
    先頭1文字目でのみ許可されるようにすべきだった。

    • by Anonymous Coward on 2013年08月23日 19時25分 (#2446910)

      先頭1文字目でのみ許可だと英語とアラビア語が混在する文章が作れないではないか

      親コメント
      • Re:RLOはUnicodeの仕様バグ (スコア:2, おもしろおかしい)

        by Anonymous Coward on 2013年08月23日 19時33分 (#2446917)

        そんなわけのわからない文章を作らなければいいのでは

        親コメント
      • by Anonymous Coward

        UnicodeにRLOの機能を持たせたのが間違いだ。

        • by Anonymous Coward

          RLOの制御文字がない文字コードでどうやって英語とアラビア語を混在表示しようというのだ。

          • 英語とアラビア語が混在する普通の文章を作るだけなら、 explicit directional override (RLO, LRO) は不要で、 implicit directional mark (RLM, LRM) や explicit directional embedding (RLE, LRE) で十分だと思います。 explicit directional override にも使い道はあるようですが、よく知りません。

            親コメント
          • by Anonymous Coward

            Unicodeは文字セットなのに文字列に関することが出てくるというのが仕様としてどうよ。
            // 他に文字列に関するものってあったっけ。

            • by Anonymous Coward

              制御文字に関していえば、
              文字列(制御文字で囲まれた文字)の操作に関するものは山ほどありますよ。
              別にUnicodeに限った話でなく。

          • by Anonymous Coward

            なんで32bitも領域があるのに、制御コードが必要なの?
            単純にそのコードを見れば、英字なのか、アラビア文字なのか、判別できますよね。
            描画するときに、左からなのか、右からなのか、判断すれば良いでしょ。

            • なんで32bitも領域があるのに、制御コードが必要なの?

              その二つは関係ない気がする。あと、くだらない揚げ足取りをすると、 Unicode のコードポイントは 0x10FFFF までだから 32 ビットもない。 20 ビットちょい。

              単純にそのコードを見れば、英字なのか、アラビア文字なのか、判別できますよね。
              描画するときに、左からなのか、右からなのか、判断すれば良いでしょ。

              その判断はするけれど、 bidi の処理って意外と複雑だから、それだけじゃ済まないんだよ。感嘆符等、方向のない文字もあるし、制御文字を除いて同じ文字列でも状況によって方向が変わったりする。例えば、英語のソフトウェアの中でアラビア語の単語が 3 個並んでいたとして、 3 個の単語が一つのフレーズを成すなら右から左に並べるけれど、各単語が別個の選択肢を表しているなら左から右に並べるとか。

              bidi 制御文字がなくても何とかする方法はあるだろうけれど、少なくとも bidi 制御文字が使えて便利な場面はある。

              親コメント
            • 君は若いから知らないのかもしれないが、昔は日本語もRLOだったんだよ。
              つまり、単純に日本語だからと言って、LROで表示すればいいってことは無い。

              ちなみに、牛耕式 [wikipedia.org]って書き方もあるね。

              親コメント
          • by Anonymous Coward

            。だのういとうよし示表在混を語アビラアと語英てっやうこでドーコ字文いなが字文御制のOLR
            | rev

        • by Anonymous Coward

          アルファベット文字なのに逆並びが指定できるのがおかしいのだから
          解釈する側が逆順にならないFONT(アルファベットとか漢字とか)では
          無視するなどの処理を行うべきなんだろう。

    • by Anonymous Coward

      先頭にRLO制御文字を加えた「etadpug」という文字列

      なので、それじゃ駄目なのでは。

    • by Anonymous Coward

      マークアップ言語やアプリケーション側で制御をするのが良かったと思う。
      ルビとか上付き・下付き文字みたいに

      • by Anonymous Coward

        確かに、結局、RLOなどの制御文字を入れるんだったら、Unicodeじゃなくて、ISO-2022-JPなどの様に切り替えシーケンスで複数のエンコードを切り替えるという仕様でも良かった気はします。

        ただ、それだとエンコード毎にアドホックな対応が必要で実装が大変だから、統合しようぜってことだったんでしょうけど、結局、Unicodeの仕様は大きすぎて、もうOSやらライブラリに頼らないと、一般のプログラマには手に負えないという・・・。

    • by Anonymous Coward

      全てはバベルの塔を建てようとした事が間違いだった。

  • by Anonymous Coward on 2013年08月24日 0時25分 (#2447084)

    車の車体に描かれてる文字が逆順で書かれることがある現象は日本(語)特有でしょうかね
    英語とかのラテン文字使う文化ではどうでしょうか

typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...