C#プロジェクトの脆弱性の何が問題になっていますか?













この短いメモは、オープンソースのC#プロジェクトにおける既知の脆弱性を検索するトピックに関する暫定的な要約です。 脆弱で別のCVEが表示されるコードの例を見てみたかったのですが、すべてがそれほど単純ではないことが判明しました...



背景(C / C ++プロジェクトの脆弱性)



プログラミング言語CおよびC ++に関しては、既に同様の問題に直面しています。見出しで提起された質問の本質がより明確になるように、以前に行った作業について少し言及したいと思います。



詳細は説明しませんが、いくつかの文章で説明します。 以前の目標は似ていました-オープンソースのC / C ++プロジェクトで見つかったCVEを調べ、PVS-Studioがそのような問題を見つけることができるかどうかを調べることです。 作業の結果に基づいて、私はいくつかの興味深い脆弱性を発見しました(そして、この方向で作業を続ければ、PVS-Studioを使用してその発生を防ぐことができたはずです)。 実験は正常に終了し、それに基づいて、「 PVS-Studioが脆弱性を見つけるのにどのように役立つか 」という記事を書きました。



便利なことに、CVEの説明には、多くの場合、脆弱性をカバーするコミットへのリンクが含まれていました。 したがって、コード変更の履歴を見ると、脆弱性が何であり、どのように閉じられたのかを理解することができました。 その結果、タスクはそのような修正の中で興味深いものを見つけることに要約されました。



上記を要約すると、チェックに便利なCVEを決定するいくつかのポイントを特定できます。





CVEがこれらの要件を満たしている場合、ソースコードの静的分析によって検出される可能性が高くなります。



C#プロジェクトの脆弱性



オープンソースC#プロジェクトの脆弱性を検索する方向で、さまざまな側面から何度か訪問しましたが、すべてが期待した結果をもたらしませんでした。



私が注目した主な情報ツールは、CVEデータベースCVE Details Webサイト(およびGoogle、GitHub、reddit、StackOverflow)でした。



私が使用した基本的なアプローチは次のとおりです。





驚いたことに、これらのアプローチはすべて期待した結果をもたらしませんでした。問題の本質を正確に理解するために、ソースコードへのリンクもある脆弱性がわずかに見つかりました。



C / C ++プロジェクトで同様の作業を経験したことは、私が驚いたことです:





おわりに



一般的に、C#プロジェクトの脆弱性に関するこの状況に驚かされました。 なぜそんなに少ないのですか? なぜクローズされた脆弱性の例が少ないのですか?



状況は本当にそうですか? または、必要な結果を得ることができなかった私のアプローチに欠陥がありましたか?



脆弱なコードの解析例(文書化されている、つまり、CVE識別子を持っている)がある場合、または予想される結果を得ることができない私のアプローチの明らかな欠陥に気付いた場合は、興味深いメールでvasiliev@viva64.comにメールを書いてください私はあなたの提案/コメントを読みます。



発見された脆弱性のリスト



以下に、CVE識別子と脆弱なコードの例の両方を持つ脆弱性をリストします。 おそらく彼らは誰かにとって興味深い/役に立つでしょう。 また、脆弱性コードの例への手紙のリンクを提供したい場合は、この脆弱性の識別子が以下のリストにあるかどうかを確認してください。













この記事を英語圏の聴衆と共有したい場合は、翻訳へのリンクを使用してください:セルゲイヴァシリエフ。 C#プロジェクトの脆弱性とは何ですか?



記事を読んで質問がありますか?
多くの場合、記事には同じ質問が寄せられます。 ここで回答を収集しました: PVS-Studioバージョン2015に関する記事の読者からの質問への回答 。 リストをご覧ください。



All Articles