Snyk CodeのRuby向けメールアドレスルールを削除
Frank Fischer
2022年10月13日
0 分で読めますSnyk Codeは、クラウドネイティブ分野で重要なさまざまな言語に対応しており、Rubyもその1つです(多くの方にご利用いただいており、ありがとうございます!)。当社の研究者は、オープンソースプロジェクトのトレーニングセットだけでなく、スキャン対象コードでルールがどのように機能しているかも継続的に監視しています。これはSaaSサービスならではの利点です。念のためお伝えすると、Snykはお客様のコードをトレーニングに使用しません。ただし、利用状況の統計情報は集計しています。
Rubyのデータを確認したところ、外れ値が見つかりました(ユーザーの皆さんからもフィードバックをいただいていました)。

Ruby向けHardcodedEmailルールを削除した理由
Rubyコード内のメールアドレスを検出し、優先度の低い問題の可能性があるとして報告するルールがありました。コードにメールアドレスをハードコードしないことはベストプラクティスですが、このルールによる問題は無視されたり、対処されなかったりすることが多いと分かりました。数値を詳しく調べた結果、発生するノイズと推奨事項の利用状況には関連性がないと判断し、このルールを削除することにしました。データフローを利用して誤用された認証情報やパスワードを検出するほかのルールがあるため、この点については引き続き十分にカバーされています。
皆さんにとってどのような意味があるのでしょうか。Rubyをお使いの場合、まもなく、メールアドレスに基づく優先度の低い検出結果が減る見込みです。
Ruby向けルール以外から得られる教訓は?
静的アプリケーションセキュリティテスト(SAST)ツールはもちろん、より一般的な静的コード解析ツールもすべて、健全性(真陽性の問題だけを特定する一方で、一部を見逃す可能性があること)と完全性(考えられる問題をすべて特定する一方で、誤検知によるノイズが多くなること)のバランスを保つ必要があります。Snyk Codeは高速であるため、言語ごとに12万〜15万件のプロジェクトをテストセットとして活用し、この健全性と完全性のバランスを維持しやすいという大きな利点があります。
さらに、Snykアプリから得られる利用状況データもあります。これをもとにシステムを最適化し、継続的に改善しています。これにはいくつかの理由があります。
環境は絶えず変化します。JavaScriptでは、2週間ごとに新しい人気ライブラリが登場するとよく言われます。冗談はさておき、どの言語の環境でも、新しいライブラリが追加されたり、既存のライブラリが変更されたりします。機械学習を使ってこうした変化を自動的に学習し、ナレッジベースに反映しています。
ベストプラクティスが必ずしも実践されているとは限りません。コードにメールアドレスをハードコードしないことがベストプラクティスだとしても、実際にはそうでない場合があり、別の方法を選ぶ正当な理由があることも受け入れる必要があります。
新しい種類の問題が登場します。Trojan Sourceを覚えていますか?これは、それまで見られなかったまったく新しい種類の問題でした。わずか数日で、Snyk Codeチームは、対応するすべてのプログラミング言語で高精度に検出できるルールを提供しました。
製品改善のためのフィードバックやご提案をお寄せいただき、ありがとうございます。データに基づく意思決定に加えて、皆さんからの声は私たちにとって貴重な情報源です。私たちは声に耳を傾け、対応します。まだSnyk Codeをお使いでない方は、ぜひこの機会にお試しください。無料のSnykアカウントに登録するだけで、数秒で結果を確認できます。
無料のRubyコードチェッカーツールをお試しいただき、Snyk Codeエンジンがセキュリティや品質の問題をどのように解析するかご確認ください。
Capture the Flagを始めよう
オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。



