◀Unicode版開発トップへ
  • 1384 パッチ:ユーザの意図しないプログラム実行の抑制
    • 1399 Commit報告(Fix) ユーザの意図しないプログラム実行の抑制
    • 1400 Re:パッチ:ユーザの意図しないプログラム実行の抑制
      • 1401 Re2:パッチ:ユーザの意図しないプログラム実行の抑制
        • 1402 Re3:パッチ:ユーザの意図しないプログラム実行の抑制
          • 1404 Re4:パッチ:ユーザの意図しないプログラム実行の抑制
            • 1408 Re5:パッチ:ユーザの意図しないプログラム実行の抑制
        • 1403 Re3:パッチ:ユーザの意図しないプログラム実行の抑制
          • 1405 Re4:パッチ:ユーザの意図しないプログラム実行の抑制
      • 1407 Re2:パッチ:ユーザの意図しないプログラム実行の抑制
    • 1409 Re:パッチ:ユーザの意図しないプログラム実行の抑制
      • 1410 Re2:パッチ:ユーザの意図しないプログラム実行の抑制
  • [1384] パッチ:ユーザの意図しないプログラム実行の抑制 もか 2010年08月30日 13:59

    PatchUnicode#3055709 ユーザの意図しないプログラム実行の抑制
    例のアレです。
    A用 >>dev:5679
    • [1399] Commit報告(Fix) ユーザの意図しないプログラム実行の抑制 もか 2010年10月16日 00:54

      rev1840 でcommitしました。

      ブラックリスト方式ですから"完璧"ではないけど、ないよりはましだと思います。
    • [1400] Re:パッチ:ユーザの意図しないプログラム実行の抑制 anonymous 2010年10月16日 08:08

      この脆弱性の対応方法を間違ってます。
      ・DLL名にサクラのEXEの絶対パスを付けて一意にしてしまう
      ・DLL検索パスをデフォルトからサクラパス(必要ならWindowsのSYSTEMパスも含む)のみにしてしまう
       (検索パスを変更するWinAPIがあるはず)
      そのあとDLLをロードします。
      • [1401] Re2:パッチ:ユーザの意図しないプログラム実行の抑制 999 2010年10月16日 09:19

        > この脆弱性の対応方法を間違ってます
        commitされたやりかたのどんな点が「間違い」なのでしょうか?
        カレントディレクトリを移動するのは正しい方法のひとつだと思いますが...

        > ・DLL名にサクラのEXEの絶対パスを付けて一意にしてしまう
        利便性の点から私は各種dllをWindowsディレクトリに置いています。
        サクラEXEの絶対パスで一意に固定されてしまうと不便です。

        >  (検索パスを変更するWinAPIがあるはず)
        そのAPIはXP SP1以後くらいからしか使えないので、それ以前のOSに対策できませんよね?
        念のためにダイナミックロードでそのAPIを実行しておけば、より安心かもしれませんが。
        • [1402] Re3:パッチ:ユーザの意図しないプログラム実行の抑制 anonymous 2010年10月17日 16:47

          EXEフォルダに移動してWindowsフォルダのDLLをロードしたいのですか?

          それは検索パスの順序をすりかえられると脆弱性にひっかかります
          • [1404] Re4:パッチ:ユーザの意図しないプログラム実行の抑制 999 2010年10月17日 18:22

            > EXEフォルダに移動してWindowsフォルダのDLLをロードしたいのですか?
            EXEフォルダへは移動してもしなくてもどっちでもいいです。
            EXEフォルダもしくはWindowsフォルダのどちらかにDLLを置いたときにそれがロードできればいいです。
            両方にあるときはどちらが優先でもいいです(自分は片方にしか置かない)。
            開いているドキュメントのフォルダからロードされるのだけが不要です。

            > それは検索パスの順序をすりかえられると脆弱性にひっかかります
            これはどういうことですか?

            (開いているドキュメントのフォルダにあるDLLをロードしてしまうというのであれば、そのフォルダがネットワーク共有フォルダの場合、そのフォルダに悪意のDLLを設置するだけで任意のコードが実行可能、という点で問題があると思いますけど)

            「検索パスの順序をすりかえ」なんていうことがネットワーク越しでも容易にできるのでしょうか?
            それをしただけで「任意のコードを実行」などという凶悪な状況になるのでしょうか?(できるのは、せいぜいユーザーが意図したフォルダにあるのとは別の、旧バージョンのDLLをロードさせることができる”かもしれない”、という程度ですよね)
            すりかえができるとすれば、それ(すりかえできること)が本来の脆弱性なのであって、その脆弱性が先に塞がれるべきではないでしょうか?

            攻撃者の能力を過度に見積もって、別の脆弱性が破られた状況まで前提にしてしまえば何でもかんでも「脆弱」ということになると思います。そういうのは無理なシナリオをでっちあげて不安を煽るための詭弁です。

            例) EXEフォルダのDLLをすりかえられると任意のコードを実行できるのでEXEフォルダからDLLをロードするアプリには脆弱性がある
            ↑この例は、ネットワーク共有されていないローカルフォルダに攻撃者が自由にDLLを設置できるという前提。そんなことができるならもう手のうちようがない状況。こんなことを言い出す人は頭がおかしい。

            「JVNの脆弱性情報で掲載(公開)されない程度の対策を施す」というのがリーズナブル(公的機関からとやかく言われるほどでないものは無視してよい)なように思えますが、現状の対策では不足なのでしょうか?

            自分はあまり詳しくないので、ぜひ、そのあたりの判断基準をお教えいただけると嬉しいです。現状の対策では足りないことが明示された文書(社会的に信用された公的文書)があればご紹介ください。

            #今回サクラでどう対処するかに興味があるだけでなく自身の開発物件でもその判断基準を参考にしたいです。(なので、はぐらかしのないよう、できれば上記「?」のある箇所ひとつひとつにそれぞれ回答いただきたいです)
            • [1408] Re5:パッチ:ユーザの意図しないプログラム実行の抑制 anonymous 2010年10月18日 22:41

              ↑この例は、ネットワーク共有されていないローカルフォルダに攻撃者が自由にDLLを設置できるという前提。そんなことができるならもう手のうちようがない状況。こんなことを言い出す人は頭がおかしい。

              そうして脆弱性が作りこまれます
        • [1403] Re3:パッチ:ユーザの意図しないプログラム実行の抑制 anonymous 2010年10月17日 16:49

          DLLを勝手に検索してくれる便利さを突いた脆弱性なのですから
          それを排除するしかないです。
          • [1405] Re4:パッチ:ユーザの意図しないプログラム実行の抑制 999 2010年10月17日 21:35

            ▼ anonymousさん
            > DLLを勝手に検索してくれる便利さを突いた脆弱性なのですから
            > それを排除するしかないです。
            最近、Windows側の脆弱性修正で、カレントフォルダからのDLLロードを塞ぐ手立ても用意されるようになったようです。が、それにはユーザーの意思によるレジストリ変更が必要で、必要性を意識している人にしか提供されません。塞ぐのをデフォルトにしないのは、過去との互換性(利便性優先)が考慮されているのだと思われます。そのせいで、結局のところ対策はアプリ個別にも必要なまま改善されてないわけですが。
            http://support.microsoft.com/kb/2264107

            サクラエディタでだって、脆弱性を公的機関に非難されない程度の範囲で過去の互換性(利便性優先)は維持してもらいたいです。今回、対策をしていただいたおかげでドキュメントフォルダからDLLがロードされることはなくなっていると思います。ろくな知見も持ち合わせていないくせに過度にセキュリティを騒ぎ立てるユーザーの意見こそ排除していただきたいと思います。

            再度回答してください。
            現状の方法は「間違い(修正しないと高い知見を有する公的機関に非難される)」ですか?
            「間違い」の根拠となる具体的なシナリオはどのようなものですか?
            そのシナリオは無理のないもの(攻撃者の能力を過度に見積もってはいない/他の脆弱性が前提ではない/ユーザーの落ち度が前提ではない)ですか?
      • [1407] Re2:パッチ:ユーザの意図しないプログラム実行の抑制 1000 2010年10月18日 13:18

        > この脆弱性の対応方法を間違ってます。

        JVN のこの件に関する情報ページ
        http://jvn.jp/cert/JVNVU707943/

        の中の、「プログラム開発者向けの対策方法」にて
        Microsoft 提供情報
        "Another technique for Fixing DLL Preloading attacks"
        http://blogs.msdn.com/b/david_leblanc/archive/2010/08/23/another-technique-for-fixing-dll-preloading-attacks.aspx

        カレントディレクトリを安全なディレクトリに移動して
        からDLLロードする対策方法が明示されてます。

        なので、JVNやMicrosoftでのダメ出しはないでしょう。
    • [1409] Re:パッチ:ユーザの意図しないプログラム実行の抑制 anonymous 2010年10月18日 22:45

      あなたの修正に対しての指摘が気分を害されたようで申し訳ありません。
      今後あなたの修正に対しては一切指摘しないようにします。
      • [1410] Re2:パッチ:ユーザの意図しないプログラム実行の抑制 もか 2010年10月19日 15:21

        >あなたの修正に対しては一切指摘しないようにします。
        もかです。
        「あなたの」は私に掛かっているようなのですが999さんも1000さんも(anonymousさんも)私ではないです。
        私(Moca,もか,moca_skr,モカ)が他の名義でこの掲示板に書いたりすることは、ほぼ確実にありません。
        掲示板上で話し合うような内容ではないので発言を控えていました。
        できればOpenID等を含めIDでのTracker(Private)か直接メールかIPAを通じて報告していだだけるとありがたいです。

        この掲示板でユーザの"同一性"を証明することが困難なのは承知しています。
        例えIDの騙りを排除できても違うID2人が同一人物か否かを判断するには直接会う以外の方法がないのです。
        さらに言えば私は個人ですが、IDを共有している人が居る可能性も考慮すると、それも証明になりません。
        このID同一性は、昔げんたさんが似たようなものを書いていたと思います。