問題タブ [find-sec-bugs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Scala コードに見つからないパス トラバーサルの脆弱性
SonarQube + FindBugs + FindSecBugs プラグインを使用してコードをスキャンしようとしています。
アイデアはコードの脆弱性を検出することであり、github プロジェクトの件名にあるように、scala で動作します https://github.com/find-sec-bugs/find-sec-bugs
ドキュメントにあるようにプラグインをインストールし、いくつかのスキャンを試みましたが、scala の脆弱性に関連するものは何も表示されません。
コードが本当に良いのか、それとも SonarQube の設定に誤りがあるのかを調べるために、http://find-sec-bugs.github.io/bugs.htmにアクセスして、例の 1 つを取り上げました。 (潜在的なパス トラバーサル)、サンプル コードを挿入し、もう一度スキャナーを実行しました。見つかりませんでした。
ルール (セキュリティ - 潜在的なパス トラバーサル (ファイル読み取り)) は品質プロファイルでアクティブ化され、Java プロファイルであるにもかかわらず、前述の例のコードは Scala であるため、プロジェクトに割り当てられます。
find-sec-bugs に由来するすべてのルールが Java のものであることに気付きました。そのため、それらが scala で機能しないのか、それとも機能させるために他にできることがあるのだろうかと考えています。
事前に感謝します。追加情報が必要な場合はお知らせください。喜んで提供させていただきます。
findbugs - Gradle プラグインを使用して実行すると、Spotbugs XML レポートに instanceHash 値がありません
SpotbugsのFindSecBugsプラグインを使用して、コードの静的セキュリティ分析を行いました。私のプロジェクトの一部はgradleを使用して構築され、一部はmavenを使用して構築されています。次のようなxmlレポートを提供するmavenのテストに成功しました:
BugInstance instanceOccurrenceNum="0" instanceHash="f52576b87914efbf135c588c2449648e" cweid="117" rank="15" abbrev="SECCRLFLOG" category="SECURITY" priority="3" type="CRLF_INJECTION_LOGS" instanceOccurrenceMax="0">
うまく機能しているようです。次に、Gradle についても同じことを試みました。InstanceHash 属性を取得していないようです。その属性を使用して、バグが繰り返されないようにします。報告を受けます
BugInstance type="PATH_TRAVERSAL_IN" priority="1" rank="10" abbrev="SECPTI" category="SECURITY">
私のbuild.gradleファイル:
私は何か間違ったことをしていますか?XML レポートに一部の属性が表示されないのはなぜですか?
scala - HTTP パラメータ汚染の警告を解決するには?
findSpecBugs
scala ベースのアプリケーションで警告を確認しているときに、次のメッセージが表示されました。
次のメッセージを含む HTTP パラメーター汚染警告: 検証されていないユーザー入力を URL に連結すると、攻撃者が要求パラメーターの値を上書きする可能性があります。
この問題は、URL をデータベースから取得した値と連結しているときに発生します。その値をどのようにサニタイズまたは検証できますか、またはこの問題を解決する他の方法はありますか?
java - Sonar と findsecbugs Spring Expression 使用時のコード インジェクションの可能性
spring-boot (2.4.2) アプリケーションと、SpEL 処理を使用して定義されたカスタム アノテーションで注釈が付けられた「Around」メソッドを処理する Aspect クラスがあります。
SpEL 式は、アノテーションのフィールドとして定義されています。
Sonar ツールを Findsecbugs と一緒に実行すると、コードに脆弱性があり、「This use of org/springframework/expression/ExpressionParser.parseExpression(Ljava/lang/String;)Lorg/springframework/式/式; コード インジェクションに対して脆弱である可能性があります (Spring Expression)". 問題のある行は、以下の 4 行目です。
このアスペクトを使用する注釈付きコードは次のようになります。
最後に、カスタム注釈は次のようになります。
このコードには、Spring 式の入力が提供されているため、脆弱性はないようです。これは Findsecbugs による誤検出ですか? <@SuppressFBWarnings(value = {"SPEL_INJECTION"}, justification = "false positive")> 注釈を使用する以外に、Sonar & Findsecbugs エラーが表示されないようにする方法はありますか?