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

ミネソタ大研究者、研究のためとしてLinuxカーネルに意図的に脆弱性コードをコミット」記事へのコメント

  • *迷惑かけたとか道義的な話は一旦おいといて、*

    オープンソースに悪意のあるコードを差し込めるかどうかって興味深いし、
    そこにスポットを当てると意義のある実験。
    Linuxだからこそ対象にふさわしい。
    大手であり、重要なシステムに使われている。

    • 意義なんて無いですよ。技術的にも・倫理的にも褒めるところがありません。

      技術的な点でいうと、この実験はたとえば以下のようなC言語で書かれたカーネルのソースに対して
      ----
      free(p);
      ----

      たとえばこんな2行に変更したり
      ----
      if (p)
          free(p);
      ----
      こんな3行に変更するだけの
      ----
      if (p)
       return;
      free(p);
      ----
      パッチを大量に投稿しただけなのです。

      悪意のあるコードを差し込むとかそう言うレベルには達しておらず、ただのイタズラ、ただの迷惑行為でしかありません。
      こんなパッチでは実験はおろか、「興味深い」とか「意義がある」議論も難しいと思います。

      次に倫理面ですが、被験者の同意を取らずに被験者実験をおこなった、という1点だけで
      研究倫理違反、研究業界から追放されてもおかしくないレベルの大失態です

      たとえば「ヘルシンキ宣言」という宣言があります。
      https://ja.wikipedia.org/wiki/%E3%83%98%E3%83%AB%E3%82%B7%E3%83%B3%E3%... [wikipedia.org]
      端的にいえば「被験者となる人間のこと・気持ちを尊重しましょうね」って話です。

      ヘルシンキ宣言は研究に携わる人なら知らない人は居ない話で(知らないという人が居たらその人はモグリの研究者)
      ヘルシンキ宣言を知らなくても
      普通なら「こんなことをしたらカーネルコミュニティの人は不快に思うはず」と予想できるはずです。
      カーネルコミュニティの人からみたら、こんなの時間の無駄でしかないからです。

      「Linuxだからこそ対象にふさわしい。」こんな馬鹿なことは言わないでください。
      Linuxはソースコードじゃありません。開発陣、つまり心を持った人間のコミュニティなのです。

      親コメント
      • by Anonymous Coward

        ただのイタズラ、ただの迷惑行為レベルの内容でもコミットされちゃうのか…

        • by Anonymous Coward

          そりゃコミットはされるよ。誰からでも受け付けてるもん。
          レビューで弾くからマージはされない(はず)だけど。

      • つまり心を持った人間のコミュニティなのです。

        だからやったんだと思うね。pakki001@umn.edu says:

        I will not be sending any more patches due to the attitude that is not only
        unwelcome but also intimidating to newbies and non experts.

      • by Anonymous Coward

        細かいですけど、
        if (p)
         return;
        free(p);
        が本当ならメモリリークしているので悪意ありますね
        if (!p)
         return;
        free(p);
        なら、(後続処理がなければ)害はないですが

      • by Anonymous Coward

        そういうcommitって、ある程度自動で判別できそうな気がするけど全部目で見てるのかな。

      • by Anonymous Coward

        いやいや、手段(技術的・倫理的)に問題があったからといって、目的の正当性まで否定されないでしょ。
        親コメの意図を全然汲めてないし、例えも間違ってる。

        > free(p);

        > if (p)
        > free(p);

        に変更するのは一般的にメモリの二重開放の脆弱性対策としてのセキュアコーディングに適っている。
        ただ、実際には変更しなくとも別のルーチンで二重開放を防いでいる場合があり、その変更が本当に必要なものかどうかはコードの文脈を読まなければならない。
        静的解析ツールが機械的に出力した結果は(しばしばGoogle翻訳があてにならないように)そうした文脈を読まないことが多く、

        • by Anonymous Coward
          >> if (p)
          >> free(p);
          >
          >に変更するのは一般的にメモリの二重開放の脆弱性対策としてのセキュアコーディングに適っている。

          適ってねえよボケ。
          if(p)で二重解放しようとしてるかのチェックなんてできないしfree(NULL)は無処理って決まってるからただの無駄コードだよ。

          5000兆歩譲って二重開放と強弁するならこうだろうが
          > free(p);
          > p = NULL;
          • by Anonymous Coward
            >5000兆歩譲って二重開放と強弁するならこうだろうが
            二重開放「対策」のtypo
        • by Anonymous Coward

          >> if (p)
          >> free(p);
          >
          >に変更するのは一般的にメモリの二重開放の脆弱性対策としてのセキュアコーディングに適っている。

          freeしても引数がNULLになるわけではないし、仮にNULLになったとしてもfree関数は引数がNULLの時は何もしないので意味のない変更ですよ。

        • by Anonymous Coward

          > いやいや、手段(技術的・倫理的)に問題があったからといって、目的の正当性まで否定されないでしょ。
          という仮定(例え)の後に、目的の正当性とやらをほったらかして長々と手段に関して書くセンスが根本的にわからん
          親コメの意図を全然汲めてないし例えとしても間違ってる

      • by Anonymous Coward

        Linuxカーネルですらそんなレベルの変更を(コードフォーマッターではなく)人間がレビューしなければならない体制しか組めないのに「あたたかみがある日本企業の手作業」とか馬鹿にされるのなんか納得行かないな。それでコミュニティが疲弊するとしたら結局無能の証なのでは?

コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell

処理中...