安易な「コピー&ペースト」禁止!(吉田行男 氏)

安易な「コピー&ペースト」禁止!(吉田行男 氏)
Bookmark this on Hatena Bookmark

コピー&ペーストによる脆弱ソースコード

インドのハイテクメディアであるFossbytesによると人気の高いQ&Aサイトである「Stack Overflow」に掲載されているサンプルコードをコピー&ペーストすることが原因で脆弱な状態のソースコードを含んだソフトウェアがGitHubに多数存在していると伝えました。

研究者のグループが発表したレポートによると、「Stack Overflow」への1,325件の投稿から72,000を超えるC++のソースコードの断片を分析した結果、

29種類の69個の脆弱な断片を発見したそうです。そして、その脆弱なコードがそのまま2,589ものプロジェクトで再利用されているそうです。

Stack Overflowの対応

これを受けて、「Stack Overflow」もQ&Aに掲載されているサンプルコードは脆弱性を含んでいる可能性があることを認識するとともに、ソースコードの内容を理解してから活用することを推奨しています。

また、上位8つの脆弱性として、下記のものをあげています。

CWE(*1) 内 容
CWE-754 異常条件または例外条件の不適切なチェック
CWE-20 不適切な入力値検証
CWE-252 返り値チェックの未実施
CWE-477 非推奨または廃止された機能の使用
CWE-789 制御されていないメモリ割り当て
CWE-158 ヌルバイトまたはヌル文字の不適切な処理
CWE-134 外部制御文字の使用
CWE-476 ヌルポインタ参照
(*1)CWE: Common Weakness Enumerationの略で、ソフトウェアにおけるセキュリティ上の弱点の種類を識別するための共通の基準

このように安易にインターネット上にソースコードをコピー&ペーストすることで、脆弱性を含んだソフトウェアをリリースしてしまうことになります。

また、「Stack Overflow」で最もコピー&ペーストされたJavaのコードに不具合があることも指摘されています。そのコードは、バイト数を人間が読みやすい形に変換するためのコードですが、そのコードがGitHubの6,000以上のプロジェクトに含まれていることが判明しています。

コピー&ペーストは内容精査と理解が原則

このように多くのコードをコピー&ペーストすることで、開発効率を上げようとする開発者もいるようですが、安易にコピー&ペーストすることで、バグや脆弱性が拡散していきますので、せめてコピー&ペーストする場合は、書かれているコードの内容を精査し理解したうえで、活用してもらいたいものです。

脆弱性チェックをサポートする拡張機能に期待

また、コードのセキュリティを判断するためのChromeの拡張機能を研究者たちは開発しています。この拡張機能のインストール時にコピーされたコードをCWEのデータベースで照合し、既知の問題がある場合は、開発者に警告します。まもなく、この拡張機能はリリースされるようなので、楽しみにお待ちください。

(*2)本文中記載の会社名、商品名、ロゴは各社の商標、または登録商標です。
Bookmark this on Hatena Bookmark

OSSカテゴリの最新記事