IPAがCソースコードのセキュリティスキャンツールを公開、しかし構造体には対応せず 34
ストーリー by hylom
構造体禁止……え? 部門より
構造体禁止……え? 部門より
あるAnonymous Coward 曰く、
IPAがソースコードセキュリティ検査ツール「iCodeChecker」なるものを公開している。Cのソースコードをスキャンし、バッファオーバーフローや配列インデックスの検証不備、書式文字列問題といったセキュリティ問題を検出するというものだ。
ただし検出可能なソースコードには制限があり、100ファイル以下、構造体やgotoを使用していない、というものでなければ診断ができない。そのため、(学習用といえども)利用できるケースは相当に制限されそうな感じではある。
機能もライセンスも微妙すぎる (スコア:5, 参考になる)
これなら、オープンソースな静的解析ツールの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)あたりが定番ですね。
Re:機能もライセンスも微妙すぎる (スコア:4, 参考になる)
> ただし、CSAはfalse positiveが多いので、
まさにフリーのツールは誤検出が多いというのが開発動機の1つらしいんだけど。報告書 [ipa.go.jp]くらい読もうず。
今後の課題として構造体への対応が挙げられているので、(少なくとも建前上は)わざと削ったわけではないらしい(予算が足りないと暗に言っているのかもしれない)。
Re: (スコア:0)
ドキュメントのみから判断するとライセンスは微妙を通り越して違反しているように見えるが
Re: (スコア:0)
違反って何? ROSEは修正BSDだから何の問題もなさそうだけど。ほかにパクってるコンポーネントでもあるの?
Re: (スコア:0)
iCodeChecker/lib/open_source_licenses.txtを見るとGPLV3と互換性のない古いRubyライセンスが含まれている
re:部門名 (スコア:3, おもしろおかしい)
私たちには 「配列」 があるじゃないですか!
Re:部門名 (スコア:1)
void*の配列でなんとかなりそうだな
Re:部門名 (スコア:1)
ということにしたいのですね。
Re:部門名 (スコア:1)
したくないしたくないw
Re:部門名 (スコア:1)
Re: (スコア:0)
元のソースのどこにエラーがあってどう直せばいいのかわかりやすく表示されるというウリが台無しじゃないですか。
Re: (スコア:0)
それなんて共用体?
Re: (スコア:0)
FIELD1 EQU *
Re: (スコア:0)
をを、PHP4の悪夢再び。
製品とぶつかるからかな? (スコア:1)
この制限は、製品の静的解析ツールとぶつかるからかな?
構造体禁止とかまったく実用に堪えるとは思えない。
これだったら、cppcheck とかの静的解析の方がまだマシだと思う。
by rti.
Re:製品とぶつかるからかな? (スコア:3, 興味深い)
IT系に限った話ではありませんが、こういう「商用製品と競合する可能性がある」無償素材類を官公庁やそこに繋がった団体が公開する場合、商用製品への配慮として重要な機能を削除する、というのはよくある話だったりします。
確かに官公庁は「税金」という、悪く言えばチート行為で採算を無視してソフトを作ってるわけで、商用製品には勝ち目が無くなる、というのはその通りだとは思いますが・・
Re: (スコア:0)
要するに、役に立たないゴミを作るために税金を突っ込んだというわけだが、それが問題にならないというのも不思議なはなし。
Re: (スコア:0)
IPAは昔からろくなことしていない。
害がないだけまだましな方。
Re:製品とぶつかるからかな? (スコア:1)
"民業圧迫" のキーワードで調べてみるといいよ。
まあ、この件に限らずいまいち使い出のないものが生まれるのはよくある話。
Re: (スコア:0)
まったく何の役にも立たない情報量0のコメントありがとうございます。
Re: (スコア:0)
オマエモナー
VMイメージを展開しようとしたら (スコア:1)
Win8CPの圧縮フォルダでは「あと734PB必要です」とか言われて展開できなかった。どんだけディスク容量を消費するねん。
# ほかのツールに切り替えたらあっさり展開できたけど
Re: (スコア:0)
で、MSにバグレポート送ったの?
Re: (スコア:0)
報告義務あるんだっけ?
Re: (スコア:0)
製品版にそのバグが残ってても誰も文句言わないなら無理して報告しなくてもいいんじゃないの
実際には鬼の首でも取ったかのように「8はバグだらけ!」って大騒ぎするんだろうけど
ダウンロードファイルのSHA-1ハッシュ値が合わないんだけど。 (スコア:0)
VMイメージは一致したけど
パッケージファイル: 691DE0302C3CC48F1B0C2321151E60FEA874147C
ソースコード: C328F2859794596D3E5AFD763270E9C9B066040B
になった。署名ファイルはソースコード以外httpでの配布だから意味ないし。
私が中間者攻撃を食らってるのか?
Re:ダウンロードファイルのSHA-1ハッシュ値が合わないんだけど。 (スコア:2, おもしろおかしい)
それに気づいた人だけが、構造体サポートバージョンをもらえるという落ちなら納得。
Re: (スコア:0)
今見てみたら,ハッシュ値は修正されたみたいだね。
Makefile が酷い (スコア:0)
autoconf automake くらい使ってくれないかな。
依存関係が手動で Makefile に書かれてたり
"sudo aptitude install" とか "ccache --cleanup --clear" みたいな
コマンドがあるのは抵抗がある。
Unix 慣れしてない人が作ったのか。
ぬるぽ (スコア:0)
マニュアル読んだところ,そもそも C を理解していないんじゃないかと思ったりする次第.
Re: (スコア:0)
「商用製品への配慮」なんですよ。たぶん。きっと。
コードをざくざくと読んでみる (スコア:0)
typedef std::basic_string string_t; //! stringlist_t; //! 文字列リスト型
しょっぱなからくじけそうになったがw
うーん。gccのpluginとしてフックかけた方が実装楽じゃないかしら?
とりあえずgccで食える物は全部食えるようになるでしょう。
Dehydraのように変態プロジェクトになる可能性もなくはないがw