パスワードを忘れた? アカウント作成
219543 story
プログラミング

Webプログラミングにおいて、すべての言語はセキュアでない 21

ストーリー by hylom
「何を使うか」ではなく「どう使うか」が大事です 部門より

あるAnonymous Coward 曰く、

しばしば、「○○というプログラミング言語は△△に比べて安全だ」「Webプログラミングの分野において最も安全な言語は何?」といった主張が繰り広げられることがある。これに対しSecurity Ninjaが「どの言語を選択しても関係ない、(なぜなら)それらは等しくセキュアでないからだ!」と反論している。

記事ではWhite Hat Securtyの統計レポート を元に、「どの言語も脆弱性がある入力の割合は大差なし」「かつて重要な脆弱性があったWebサイトの割合はどの言語でも70~80%台」「現在でも脆弱性があるWebサイトの割合はどの言語でも50~70%台」といったデータが示されている。このデータではPerlで実装されたWebサイトについて若干脆弱性が多いように見えるものの、結論としては「どの言語も等しくセキュアでない」とのことで、「セキュアなコードはセキュアな開発プロセスや開発者に対するセキュリティ教育を含むビジネスへの取り組みによってしか産まれない」と述べている。

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

    by Anonymous Coward on 2010年05月13日 18時06分 (#1763391)

    俺は厳しいが公平だ 言語差別は許さん
    VB豚、Perl豚、PHP豚を、俺は見下さん
    すべて―――平等に価値がない!

  • by manmos (29892) on 2010年05月13日 18時08分 (#1763392) 日記

    チャック・ノリス [wikipedia.org]がセキュアにするのだ。

  • by gonta (11642) on 2010年05月13日 18時17分 (#1763399) 日記

    どんな環境でも、穴があるようにコーディングしたら、セキュアじゃないでしょ。

    何やったら問題かを、わかった上でコーディングしないと。

    Web上のセキュリティホールって、何をさすのかも問題だし。SQLインジェクションなのか?CSRFなのか?

    ただ、PHPの出力がデフォルトでhtmlspecialcharsがかかった状態で出力されるべきである、というのは同意だな。それだけでも(詳しくない人間が当座で書いた)初心者コードがかなり助かったと思う。あと、PDO標準装備であるべきだったと思う・・・PHP登場時は、クラスが無かったら無理か。

    magic_quote, magic_quote_gpcってのもあるみたいだけど、評判悪いし。

    --
    -- gonta --
    "May Macintosh be with you"
    • Re:言語? (スコア:3, すばらしい洞察)

      by yatakaras (37253) on 2010年05月14日 9時18分 (#1763782)

      現状では言語仕様自体がセキュアなんてことはないと思う。

      もし、存在するとすればXSSやSQLインジェクションなんか書いたら
      コンパイルエラーかワーニングで指摘してくれる新世代の言語なんだろう。

      ただそれでも環境設定一つで脆弱性は生み出されてしまう。
      言語だけでセキュアにしようなんていうのはその考えが「脆弱性」
      セキュリティ教育による「技術者意識の向上」が一番の解決策だろう。

      親コメント
      • by taka2 (14791) on 2010年05月14日 13時15分 (#1763946) ホームページ 日記

        > もし、存在するとすればXSSやSQLインジェクションなんか書いたら
        > コンパイルエラーかワーニングで指摘してくれる新世代の言語なんだろう。

        旧世代の perl4 の時代から、perl には taint モードがありますよ。
        外部から入力されたデータは「汚染されている」ものとマークされ、
        変数代入などで汚染が伝播していきます。
        でもって「危険なオペレーション」に「汚染されたデータ」を入れるとエラーになる。

        最大の問題は、デフォルトはオフで、-Tオプションを付けないとtaint mode にならないことですかね。
        setuid している場合は自動でオンになるので、普通のスクリプト言語として使う分には困らないのですが…

        あと、taint mode を使ってると、たまに汚染除去がめんどくさくなって
        「$a=($a=~/^(.*)$/)[0];」みたいなコードを書いちゃったりして、

        > セキュリティ教育による「技術者意識の向上」が一番の解決策だろう。

        という意見はその通りだと思う耳が痛い話ですが…

        親コメント
    • by Anonymous Coward

      どんな言語でも結局は書き手の技量に依存するわけですね。
      読みにくいのも、インセキュアなのも、スパゲッティ……なのは、スパゲッティモンスター様の気分次第か。

      # XSS対策は本当に難しいです。

    • by Anonymous Coward
      >デフォルトでhtmlspecialcharsがかかった状態で

      これはこれでhtmlspecialchars()されると危険な状態が作られてしまいそう
      発見しにくいうえに原理を理解するのがややこしい
  • 「バナナのみ食すというダイエットは絶食に比べて安全だ」「低カロリー料理の分野において最も美味なものは何?」といった主張が繰り広げられることがある。
    これに対しオデは「どの食事を選択しても関係ない、(なぜなら)君らは等しく運動をしていないからだ!」と反論してみる。

    // 痩せるための行動 → システム構築と考えると
    // 結局は「当人の意識次第」ってことだよね。
    // whatよりhowの精神でございましょうて(:>^

  • by Anonymous Coward on 2010年05月13日 21時22分 (#1763514)

    今さらメモリ保護の無い言語をウェブアプリケーション開発には使わないし,優れたフレームワークや欠陥検出ツールが脆弱性を減らすために有効なのも間違いない.

    そもそも, Security Ninja の記事が酷い誤誘導だ.「安全な言語は無い」のと「言語の選択には意味がない」のは全然別の話だろう.
    WhiteHat Website Security Statistics Report には下のように書かれていて,言語やフレームワーク毎に脆弱性の種類などに違いがあったとしているのに.

    Empirically, programming languages / frameworks do not have similar security postures when deployed in the field.

    (アブストを流し読みしただけなので,あとは専門の人に任せた.隣接分野なので本文まで読む暇はないです)

  • さすがにみんなスルーしているけど

    しばしば、「○○というプログラミング言語は△△に比べて安全だ」「Webプログラミングの分野において最も安全な言語は何?」といった主張が繰り広げられることがある。

    こんな突っこまれやすい主張や質問、誰もしてないっすよ。聞いたことない。まあ、どこかにあるかもしれないけど、誰も相手にしないから話題にもならないんじゃないかな?

    --
    LIVE-GON(リベゴン)
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...