パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

signed_execで実行時にプログラムの身元確認」記事へのコメント

  • リンク先の資料をざっと読みました。
    署名、と言う話だけど、コマンド自身のチェックサム結果を内部に埋め込むか、
    システム側に上記のコマンドのチェックサム結果のデータベースを持っていて、
    それを起動直前にチェックして、結果が合致すればコマンドが起動できる、って
    ものみたいですね。

    #コマンド単体だと、トロイの木馬が正直にチェックサムつけてたら
    #置き
    --
    ---- redbrick
    • reference implementationでは,署名DBはcd9660 fs上に,またはread-onlyなffs上でimmutableフラグをセットしたファイルに置くと書いてありますね.

      PPT資料でも

      Only as secure as the security of the signature database.
      と言ってますし,その辺はちゃんと分かってるみたいです.
      • by Anonymous Coward on 2003年04月18日 17時25分 (#300907)
        まず最初に、このスレッドの最初からの間違いだけど、署名はチェックサムじゃなくてMD5ですね。

        で、ここからが本題。
        CDとかに署名DBを置くのであれば、セキュリティFixとかでバイナリが入れ替わる度に焼き直ししなきゃいけないんですよね?
        だったら最初からバイナリはCD上に置いて、CDからしかバイナリは実行できないようにした方が早いんじゃないかと・・・
        CDだと最初の一度目の実行には多少時間かかるかもしれませんが、それはDB参照する時も一緒だし、2度目からは(RAMさえ潤沢にあれば)ディスクキャッシュが効きます。
        何らかのバグでディスクキャッシュが汚染されるとダメだけど、それはこの署名DBをCDに置いた場合でも同じ。
        チェックサム検証にかかる時間分だけ早くて済みそう。

        immutableフラグにしても、署名DBにimmutableフラグが付いてれば信用できるというのであれば、バイナリにimmutableフラグを付ければ済むような・・・

        と、ケチばかり付けててもアレなので(^^;別解。
        カーネル中にGPGの公開鍵を持っておいて、バイナリにはバイナリのMD5と、そのMD5へのGPG署名を持つというのはどうでしょう?
        これだと信頼できるバイナリ提供者からのバイナリはそのまま使えますし、自分でバイナリ作る場合はあらかじめ自分のGPG公開鍵を含んだカーネルを作っておけばOK。
        もちろんカーネル自体を入れ替えられてしまうとダメですが、そこまで言ったらこのsigned_execでも同じ事だし・・・

        親コメント
        • CDとかに署名DBを置くのであれば、セキュリティFixとかでバイナリが入れ替わる度に焼き直ししなきゃいけないんですよね?
          だったら最初からバイナリはCD上に置いて、CDからしかバイナリは実行できないようにした方が早いんじゃないかと・・・
          至極ごもっとも,と思ってPDF資料を読み直してみたらちゃんと書いてありました.
          • 攻撃に成功してもrootkitも置けずバイナリも改竄できないような環境では,そもそも攻撃を受けたかどうかが管理者には分からない
          • Honeypotなどでこれを使うと,攻撃を受けた/受けていることが容易に分かるので,他のシステムに対して警告が出せる
          だそうで.
          親コメント
          • by Anonymous Coward on 2003年04月18日 18時31分 (#300969)
            攻撃をして欲しいのかして欲しくないのか良くわかりませんが(^^;

            >至極ごもっとも,と思ってPDF資料を読み直してみたらちゃんと書いてありました.

            • 攻撃に成功してもrootkitも置かずバイナリも改竄しなければ,そもそも攻撃を受けたかどうかが管理者には分からない
            • Honeypotだけセキュリティを上げても無意味だし、他のシステムより先にHoneypotへ攻撃してくれると期待する理由がわからん
            という気がします。
            Honeypotは、クラッカーの生態を観察する:-)とか、クラッカーの身元を特定して逮捕、告発するためには有用ですが、そのためには少しでも長く留まっていてくれた方が良い。
            しかし、こういう仕組みを入れてしまうと、速攻で「おいししくない」と思われて逃げられてしまうので意味が無い。

            「面白そうだ」と思って作ってみたけど、色々穴があったので無理矢理こじつけた「利用価値」という感じがします。

            親コメント
        • >カーネル中にGPGの公開鍵を持っておいて、バイナリにはバイナリのMD5と、そのMD5へのGPG署名を持つというのはどうでしょう?

          .NET Frameworkの実行時検証がこれと似たような仕組みだったような気がします。あまりちゃんと勉強してないので違ってるかもしれませんが。
          自分の管理するシステム内をどこまで信頼するか、という問題と、アプレットなどのシステム外部のバイナリを信頼するかという問題とを同一視してはいけないのかもしれませんが、PKIの技術でシームレスに世界が広がるという観点からは、サーバよりはクライアントマシンに、もしくは動的なWebサービスとかに生きてくるんだろうか?という感じがします。
          親コメント

計算機科学者とは、壊れていないものを修理する人々のことである

処理中...