驚き!Stack Overflowから粗悪なコードをコピーすると、GitHubジョブに脆弱性が生まれる

Table of Contents

驚き!Stack Overflowから粗悪なコードをコピーすると、GitHubジョブに脆弱性が生まれる

プログラミングを学んでいる人や、経験を積んだソフトウェア開発者の間では、コーディングの問題について質問できる Q&A フォーラムである Stack Overflow からコード スニペットをコピーして貼り付けるのが一般的です。

このやり方を強調するために、O'Reilly 風の偽本「Stack Overflow からのコピー アンド ペースト」も出版されていますが、このやり方は単に怠惰なだけでなく、セキュリティ上のリスクもあることが判明しています。

プレプリントサービス ArXiv に提出された研究論文の中で、イランのシラーズ大学、カナダのケベック州モントリオール工科大学、イランのシャムラン大学出身の 6 人のコンピューターサイエンスの専門家、モルテザ・ヴェルディ、アシュカン・サミ、ジャファル・アコンダリ、フーツェ・コム、ギアス・ウディン、アリレザ・カラミ・モトラグは、1,325 件の Stack Overflow の投稿にある 72,000 件を超える C++ コード スニペットを調べ、29 種類の脆弱なスニペットを 69 件発見したと述べています。

絶対数としてはそれほど多くありませんが、69件の脆弱なスニペットは2,589件のGitHubプロジェクトに存在します。研究者らは、影響を受けるプロジェクトの作者に通知し、既知のCWEを含む脆弱性を修正したプロジェクトもあったものの、すべてではないと述べています。

論文「クラウドソースのコード例における C++ の脆弱性に関する実証的研究」は、IEEE Transactions on Software Engineering 誌への掲載に向けて審査中です。

イランのシラーズ大学のコンピュータサイエンス、エンジニアリング、情報技術の准教授アシュカン・サミ氏は、 The Registerとの電話インタビューで、この研究は、欠陥のあるコードがStack OverflowからGitHubにどのように移行するかを調べる試みであると語った。

「基本的に、私たちが示そうとしたのは、Stack Overflow を注意深く検討せずに使用すると、アプリケーション内に潜在的な脆弱性が生じる可能性があるということです」とサミ氏は語った。

この調査は、Stack Overflow に投稿された 1,161 件の安全でないコード スニペットが、Google Play で入手可能な 130 万個の Android アプリケーションにコピーされ、貼り付けられていたことを発見した 2017 年の学術論文と一致する。

研究者たちは、Stack OverflowのSOTorrentデータセット バージョン2018-09-23を利用しました。このデータセットは2008年から2018年までの投稿を網羅しており、重複したコードスニペットもいくつか含まれています。

研究者たちは、C++が特に組み込みのリソース制約のあるプログラムや大規模な分散システムで広く使用されていることから、C++に焦点を当てました。彼らは、こうしたシステムにおける脆弱性は重大な影響を及ぼす可能性が高いと主張しています。

最も頻繁に見つかった CWE は、CWE-1006 (不適切なコーディング方法)、CWE-754 (異常または例外的な状況の不適切なチェック)、および CWE-20 (不適切な入力検証) でした。

スタックエクスチェンジ

モデレーター銃殺隊:Stack Exchangeが「彼が言った、彼女が言った、彼らが言った」論争に巻き込まれる

続きを読む

「Stack Overflowは質問と回答の場であり、開発者が回答する際には、セキュリティに関する適切な教育を受けていないか、質問者なら対処法を知っているだろうと想定していることが多い」と、マギル大学でコンピュータサイエンスの博士号を取得し、現在はテクノロジー業界で働いているジアス・ウディン氏は述べた。「しかし、そのような思い込みは良くない」

サミ氏も同様の意見を述べた。「Stack Overflowを使っている人は、完全に信用すべきではありません」と彼は言った。「プログラマーは苦労して安全なコーディングを学ぶ方が良いでしょう。」

それでも、研究者たちは、開発者がStack Overflowのコードスニペットをコピー&ペーストする際にセキュリティをより意識できるようにするためのChrome拡張機能を開発しました。この拡張機能は、コピーされたコードをCWEデータベースと照合し、スニペットに欠陥がある場合は警告を表示します。Uddin氏によると、論文が正式に発表された時点でリリースする予定とのことです。

ウディン氏は、この研究によって Stack Overflow での回答の質が向上するだけでなく、ソーシャルメディアで共有されるコードには欠陥があることを開発者に思い出させるきっかけにもなることを期待していると述べた。®

Discover More