パスワードを忘れた? アカウント作成
3113581 story
セキュリティ

IPAがCソースコードのセキュリティスキャンツールを公開、しかし構造体には対応せず 34

ストーリー by hylom
構造体禁止……え? 部門より
あるAnonymous Coward 曰く、

IPAがソースコードセキュリティ検査ツール「iCodeChecker」なるものを公開している。Cのソースコードをスキャンし、バッファオーバーフローや配列インデックスの検証不備、書式文字列問題といったセキュリティ問題を検出するというものだ。

ただし検出可能なソースコードには制限があり、100ファイル以下、構造体やgotoを使用していない、というものでなければ診断ができない。そのため、(学習用といえども)利用できるケースは相当に制限されそうな感じではある。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2012年05月10日 6時46分 (#2150216)

    これなら、オープンソースな静的解析ツールのClang Static Analyzer [llvm.org] (CSA)の方がよっぽどマシでしょう。
    ただし、CSAはfalse positiveが多いので、企業だとSATソルバーによる高い検出精度を持つ商用のCoverity [coverity.com]が良く使われています。

    ちなみに動的解析は、メモリチェックのValgrind [valgrind.org]、スレッドチェックのHelgrind [valgrind.org]、整数チェッカのInteger Overflow Checker [utah.edu] (IOC)あたりが定番ですね。

    • by Anonymous Coward on 2012年05月10日 10時16分 (#2150311)

      > ただし、CSAはfalse positiveが多いので、
      まさにフリーのツールは誤検出が多いというのが開発動機の1つらしいんだけど。報告書 [ipa.go.jp]くらい読もうず。
      今後の課題として構造体への対応が挙げられているので、(少なくとも建前上は)わざと削ったわけではないらしい(予算が足りないと暗に言っているのかもしれない)。

      親コメント
    • by Anonymous Coward

      ドキュメントのみから判断するとライセンスは微妙を通り越して違反しているように見えるが

      • by Anonymous Coward

        違反って何? ROSEは修正BSDだから何の問題もなさそうだけど。ほかにパクってるコンポーネントでもあるの?

        • by Anonymous Coward

          iCodeChecker/lib/open_source_licenses.txtを見るとGPLV3と互換性のない古いRubyライセンスが含まれている

  • re:部門名 (スコア:3, おもしろおかしい)

    by soltiox (25610) on 2012年05月10日 7時14分 (#2150220) 日記

    私たちには 「配列」 があるじゃないですか!

  • この制限は、製品の静的解析ツールとぶつかるからかな?
    構造体禁止とかまったく実用に堪えるとは思えない。
    これだったら、cppcheck とかの静的解析の方がまだマシだと思う。

    --
    by rti.
    • by Anonymous Coward on 2012年05月10日 7時30分 (#2150227)

      IT系に限った話ではありませんが、こういう「商用製品と競合する可能性がある」無償素材類を官公庁やそこに繋がった団体が公開する場合、商用製品への配慮として重要な機能を削除する、というのはよくある話だったりします。

      確かに官公庁は「税金」という、悪く言えばチート行為で採算を無視してソフトを作ってるわけで、商用製品には勝ち目が無くなる、というのはその通りだとは思いますが・・

      親コメント
      • by Anonymous Coward

        要するに、役に立たないゴミを作るために税金を突っ込んだというわけだが、それが問題にならないというのも不思議なはなし。

        • by Anonymous Coward

          IPAは昔からろくなことしていない。
          害がないだけまだましな方。

  • by Anonymous Coward on 2012年05月10日 8時16分 (#2150243)

    Win8CPの圧縮フォルダでは「あと734PB必要です」とか言われて展開できなかった。どんだけディスク容量を消費するねん。
    # ほかのツールに切り替えたらあっさり展開できたけど

    • by Anonymous Coward

      で、MSにバグレポート送ったの?

      • by Anonymous Coward

        報告義務あるんだっけ?

        • by Anonymous Coward

          製品版にそのバグが残ってても誰も文句言わないなら無理して報告しなくてもいいんじゃないの

          実際には鬼の首でも取ったかのように「8はバグだらけ!」って大騒ぎするんだろうけど

  • VMイメージは一致したけど
    パッケージファイル: 691DE0302C3CC48F1B0C2321151E60FEA874147C
    ソースコード: C328F2859794596D3E5AFD763270E9C9B066040B
    になった。署名ファイルはソースコード以外httpでの配布だから意味ないし。
    私が中間者攻撃を食らってるのか?

  • by Anonymous Coward on 2012年05月10日 13時04分 (#2150442)

    autoconf automake くらい使ってくれないかな。
    依存関係が手動で Makefile に書かれてたり
    "sudo aptitude install" とか "ccache --cleanup --clear" みたいな
    コマンドがあるのは抵抗がある。
    Unix 慣れしてない人が作ったのか。

  • by Anonymous Coward on 2012年05月10日 14時34分 (#2150508)

    マニュアル読んだところ,そもそも C を理解していないんじゃないかと思ったりする次第.

    • by Anonymous Coward

      「商用製品への配慮」なんですよ。たぶん。きっと。

  • by Anonymous Coward on 2012年05月10日 23時50分 (#2150853)

    typedef std::basic_string string_t; //! stringlist_t; //! 文字列リスト型

    しょっぱなからくじけそうになったがw

    うーん。gccのpluginとしてフックかけた方が実装楽じゃないかしら?
    とりあえずgccで食える物は全部食えるようになるでしょう。

    Dehydraのように変態プロジェクトになる可能性もなくはないがw

typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...