パスワードを忘れた? アカウント作成
2489 story

『セキュア・プログラミング講座』スタート 14

ストーリー by yourCat
啓蒙はセキュリティの第一歩 部門より

youkan曰く、"3/1にアップされたIPAの『セキュア・プログラミング講座』、「ソフトウェア開発の現場で活躍されている技術者の皆様に,セキュリティ脆弱性をもたないようにプログラミングするテクニックの一端について紹介する」具体的な内容の解説記事です。
 日本語で読め、このくらいまとまったのも少ないんじゃないかと思います。Webプログラマは、いやプログラマでなくとも、いま話題の「クロスサイトスクリプティング脆弱性」をぜひとも読んでおきましょう。"

セキュアな開発に関しては日本語参考文献やwebページが確かに少ない。編集子はdeveloperWorks: Securityくらいしか読んでいないが、他にもお勧めはあるだろうか。
ともあれ件のページをIPAが公開している意義は大きい。背後にどんな問題が潜んでいるのかを知るためにも、ひとりでも多くの人に読んでもらいたい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 反面、これは「クラッカー養成講座」になってますよ、って非難が起きそうな気もするです。
    # shellcode の送り込みまで実践する必要があるかは‥う~んどうだろ。
    --
    みんつ
    • 知識自体は・・・ (スコア:2, すばらしい洞察)

      by oddmake (1445) on 2002年03月09日 13時13分 (#70308) 日記
      毒をもつふぐの種類と場所の知識はふぐ毒の抽出にもつかえる(人殺しに使える?)が、ふぐ料理には絶対必須であって。
      つまりどうしても必要な知識というものはあるんだってことで納得してもらわないといけないですね。
      さらにクラッカー云々、の場合には悪いやつだけ知っていて他の多くの人が知らない状態では、クラッカーしたい放題でとめることも出来ないしむしろ知識を広めて各自がこころがけたほうが有効、と説明するとか。
      #でも文句をつける人はつけるんでしょうねぇ。まぁそんなに声は大きくないでしょうけど。
      --
      /.configure;oddmake;oddmake install
      親コメント
    • 非難は起きるでしょうね・・・・・・

      でも,その程度(?)の攻撃も防げないプログラムはセキュアじゃないということでは?

      # でも,最近はファイアーウォールがやポートフィルターが
      # 頑張っているので意外に気がつかないセキュリティーホールが
      # 多いんですよねぇ・・・・・
      ## 注:バッファー攻撃は意外に分かりやすい方
      --
      『今日の屈辱に耐え明日の為に生きるのが男だ』
      宇宙戦艦 ヤマト 艦長 沖田十三氏談
      2006/06/23 JPN 1 - 4 BRA
      親コメント
    • と、議論すること自体はきわめて健全なことと思います。

      こういった情報をディスクローズした場合の懸念は、

      初心者ハッカーの急増による被害の増加。

      だと思うのですが、

      そうであれば、当然、こうした基本的なセキュリティホールの対処を怠っているシステム管理者の質の問題にも言及する必要があると思われます。 そうであれば、このレベルの管理者(そんな人いるのか?)の啓蒙にもこうした講座は役立つと思います。

      基本的には、隠しても問題の解決にはならない、わけですから。

      ところで、こうした基本的なホールをついてくるウィルスを作る人って、 どういう人が多いんだろう?どっかにそういう統計とっている人っているんだろうか?
      イメージとしては、暇な学生さんという感じなんだが。
      親コメント
  • assert は止めよう (スコア:2, すばらしい洞察)

    細かいんだけどタレコミの文書の「7-3 にsetuid は慎重に」 [ipa.go.jp]を
    読んで assert の使い方が変なのに気がついた。


    特権放棄と特権復帰

    assert(seteuid(getuid())==0); (注1)

    (注1・これはseteuid( )システムコールが失敗しないことを
    想定している例であり,assert( )マクロでseteuid()システム
    コールの返り値をチェックしている。)

    これじゃあデバッグを終えてプロダクツ版を(NDEBUGを入れて)ビルドする時
    にはコードが消えてしまうよ。

    「3-5 Javaのアサーション」 [ipa.go.jp]では、処理ロジックとアサーションの
    棲み分けを論じているんだけど、、、
    章ごとに別人が書いたのかしらん?
    --
    コンタミは発見の母
    • by tix (7637) on 2002年03月10日 12時56分 (#70484) ホームページ
      assert(seteuid(getuid()) == 0);
      というコードで assert を使うとよくない点は二つあります。どちらも「assert 中の式はデバッグビルドのときにのみ評価される」ということをよく理解していないと犯してしまう間違いです。1点めは親コメントにあるように、
      • これではリリースビルドのときに seteuid されない
      ということですが、では
      result = seteuid(getuid());
      assert(result == 0);
      と書けばいいかというと、これだと
      • リリースビルドのときチェックが行われないので、 seteuid がエラーを返すかもしれないような環境ではこれでもだめ
      です。正しく処理するには、 assert ではなく本当のエラー処理、すなわちエラーからの復帰のコードを書く必要があります。

      3-5 の「処理ロジックとアサーションの棲み分け」の節で注意しているのは2点めの間違いだと思います。ぼくは親コメントを読んで少し混乱したので補足しました。

      「リリースビルドでチェックが行われないなら、デバッグビルドを出荷すればよい」という意見を持つ人がいれば、それには反論が必要になりますが、そういう人がいないことを願います……。

      もちろん、コーディングのミス以外で seteuid がエラーを返すことを考えなくてもよいなら、2点めを気にする必要はないので result = ……; assert(result == 0); でいいです。
      --
      鵜呑みにしてみる?
      親コメント
  • by Anonymous Coward on 2002年03月09日 8時25分 (#70271)
    『せめてこれくらい読んでからコードを書け!!』と
    納品を拒否したい。
    # それを言えない私は臆病者。
    • それは最初にコーディング規約を設置しなかったあなたが悪いよ。
      • 既にオフトピ気味ですが、ちょっと補則。

        > それは最初にコーディング規約を設置しなかったあなたが悪いよ。

        はい。普段はコーディング規約も用意するし、
        コードレビューも行いますよ。
        今回に関しては、昨夜自分の仕事が終ってから
        上司に『これ、週明けに出荷だからヘルプに入っ
        て』と言われて泣いていたんです。
        # つまり、下請だけじゃなくてウチの会社もヘタ
        # レです。もちろん、そんな会社で働いている自
        # 分も。

        ちなみにその
  • by Anonymous Coward on 2002年03月09日 11時10分 (#70284)
    これ、私の職場では、「スタック」とか「ヒープ」とかを理解 できない人ばかりなので(苦笑)読んでも理解されないと思います。。 #「ばかり」というは言い過ぎか。 これを読んで理解できる人は、そもそも読む必要ないと思われ。
    • ごもっともです。
      「スタック」は基本情報処理(第2種)で出てくると思うので知ってる人は多いんだけど、「ヒープ」はあまり知ってる人はいなかったなぁ。

      「ヒープ」に限らず、いちいち説明するのもかったるいので、その当たりのコードは結局私が面倒みることになって、
      私の仕事が増える。
      自分の仕事が増えると当然自分の配下のバグが増える。
      バグが増えると自分にクレームが来る。
      クレームが来ると遅くまでバグ修正。
      あいつはバグばかりだすと同僚に言われる。
      評価が悪くなり給料が減る。

      なんて循環になるのが恐い。そんなの「知らないようぉ~」のほうがいいのかも?
      親コメント
  • by ydf (4862) on 2002年03月10日 8時26分 (#70443)
    初心者プログラマから脱却する第一歩との教科書として価値があると思います。経験が長いだけでは、「永遠の初心者」でしかない。IPAがこの文章を公開する意義は、ソフトウエア品質の最低限のガイドラインを示したことになると思います。
  • by Anonymous Coward on 2002年03月10日 17時56分 (#70552)
    俺の会社の先輩がこれの原稿書いてたなぁ。
    俺も早くそのくらいまで LV アップしたいです(しなきゃならん)。

    つか、うちの会社はプログラマーは居ないんですけどね(セキュリティ屋さんだから)。
typodupeerror

アレゲは一日にしてならず -- アレゲ研究家

読み込み中...