顯示具有 Static Code Analyzer 標籤的文章。 顯示所有文章
顯示具有 Static Code Analyzer 標籤的文章。 顯示所有文章

2024年3月18日 星期一

[研究]減少 Fortify SCA 報告發現,改善掃描花費時間

[研究]減少 Fortify SCA 報告發現,改善掃描花費時間

2024-03-18

環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19

********************************************************************************

Fortify Static Code Analyzer ( SCA ) 做原始碼安全掃描時,如果是任何等級都檢查,會很花時間;預設 Filter Set 是 Quick View,下圖似乎僅有 Critcal 和 High

下圖 Filter Set 改選 Security Auditor View,數量其實很多 ( 除非你原本就是 Quick Scan,沒有一些次要較不重要、較不可信的問題,切換了也有)。

最近嘗試切換到  Security Auditor View,修改掉數量大的 Medium 或 Low 類型問題,挑那種破千或破百的,掃描時間可以明顯下降。

(完)

相關

2021年7月7日 星期三

[研究][ASP.NET]Fortify SCA 報告Password Management: Empty Password 和 Hardcoded Password

[研究][ASP.NET]Fortify Static Code Analyzer (SCA) 報告Password Management: Empty Password 和 Hardcoded Password

2021-07-07
2022-06-13

Password Management: Empty Password



string oldPwd = "";   

改成


string oldPwd = "empty";   
  

掃描結果不再 Empty Password 問題,但是出現 Password Management: Hardcoded Password 問題

改成 ( 其他地方 oldPwd 都改名 oldPawd)


string oldPawd = "";   

疑似 Fortify SCA 源碼檢檢測時把 Pwd 當成是密碼相關設定,變數名稱不要包含它就好。

目前已知,變數名稱包含 Pwd 或 Password 則  Fortify SCA 會懷疑它可能是密碼;變數名稱包含 PW 或 Pawd 不會。

ASP.NET 控制項(Control) 的名稱包含 Password 就沒關係,例如 TextBox 的名稱是 TextBoxPassword 是不會被報告的。

********************************************************************************

2022-06-13

Credentials那行賄出現 Password Management: Hardcoded Password 問題

SmtpClient smtp1 = new SmtpClient("SMTP郵件伺服器網址");
smtp1.Credentials = new System.Net.NetworkCredential("寄信帳號", " 寄信密碼");

Recommendations:

請勿將密碼硬式編碼,且通常應該要將密碼模糊化,並於外部資源中進行管理。 將密碼以純文字方式儲存於系統的任一處,任何有足夠權限的人都可以讀取密碼,並可能誤用密碼。

Microsoft(R) 提供了一個工具,可以與 Windows Data Protection application programming interface (DPAPI) 一起使用以保護組態設定檔案中敏感的應用程式項目 [1]。

Tips:

1. 為識別 null、Empty Password 或 Hardcoded Password,預設規則只考慮包含 password 一詞的欄位及變數。然而,Fortify Custom Rules Editor 會提供 Password Management 精靈,方便您建立規則來偵測自訂名稱欄位與變數的密碼管理問題。

(完)

相關

[研究][ASP.NET]Fortify SCA 報告Password Management: Empty Password 和 Hardcoded Password
http://shaurong.blogspot.com/2021/07/aspnetfortify-sca-password-management.html

[研究][ASP.NET]Fortify Static Code Analyzer (SCA) 報告從資料庫取得資料直接顯示於 Label 可能 Cross-Site Scripting: Persistent (XSS)
https://shaurong.blogspot.com/2021/07/aspnetfortify-static-code-analyzer-sca.html

[研究] Microsoft Anti-XSS Library V4.3 (Anti-Cross Site Scripting Library) 與 AntiXssEncoder.HtmlEncode
http://shaurong.blogspot.com/2017/06/microsoft-anti-xss-library-v43-anti.html

[研究] Microsoft Anti-XSS Library V4.3 (Anti-Cross Site Scripting Library)
https://shaurong.blogspot.com/2017/06/microsoft-anti-xss-library-v43-anti.html

AntiXssEncoder.HtmlEncode 方法 (System.Web.Security.AntiXss) | Microsoft Docs
https://docs.microsoft.com/zh-tw/dotnet/api/system.web.security.antixss.antixssencoder.htmlencode?view=netframework-4.8

[研究][ASP.NET] 用了 AntiXssEncoder.HtmlEncoder 仍被 Fortify SCA v17.20 說有問題
https://shaurong.blogspot.com/2018/04/aspnet-antixssencoderhtmlencoder.html

[研究] [ASP.NET] DropDownList1 的 Cross-site scripting (XSS) (Reflected XSS) 修正
https://shaurong.blogspot.com/2017/09/aspnet-dropdownlist1-cross-site.html

[研究] [ASP.NET] Cross-Site Scripting(XSS) 防範,白名單輸入驗證
https://shaurong.blogspot.com/2019/06/aspnet-cross-site-scriptingxss.html

[研究] X-XSS Protection
https://shaurong.blogspot.com/2017/06/x-xss-protection.html

[研究][ASP.NET][C#]Fortify SCA 報告 Eval()有 Cross-Site Scripting: Persistent解法
https://shaurong.blogspot.com/2020/10/aspnetcfortify-sca-eval-cross-site.html

[研究] Fortify SCA 19.10 與 jquery-3.3.1-vsdoc.js, line 812 (Dynamic Code Evaluation Code Injection)
https://shaurong.blogspot.com/2019/07/fortify-sca-1910-jquery-331-vsdocjs.html

[研究] Fortify SCA 報告 Web.Config 連線資訊有 Insecure Transport: Database 問題
https://shaurong.blogspot.com/2018/12/fortify-sca-webconfig.html

[研究][ASP.NET] Fortify SCA v17.20 報告 Web.config ( Insecure Transport: Datbase) Critical 問題
https://shaurong.blogspot.com/2018/04/aspnet-fortify-sca-v1720-webconfig.html

[研究][JavaScript] CKeditor 4.9.1 與 Fortify SCA v17.20
https://shaurong.blogspot.com/2018/04/javascript-ckeditor-491-fortify-sca.html

[研究][ASP.NET][JavaScript] hideShowPassword 與 Fortify SCA 白箱測試
https://shaurong.blogspot.com/2018/04/aspnetjavascript-hideshowpassword.html



2020年5月29日 星期五

[研究] Fortify SCA 20.1.0 是否支援 ASP.NET Code 3.1 React and Redux 測試

[研究] Micro Focus Fortify SCA 20.1.0 是否支援 ASP.NET Code 3.1 React and Redux 測試

2020-05-28

Micro Focus Fortify Static Code Analyzer 20.1.0 原始碼安全掃描工具於 2020-05-22 釋出。

官方網頁上說支援到 .NET Code 3.1。

本篇測試一下是否支援 ASP.NET Code 3.1 的 React.js 和 Redux 架構的專案。








似乎是支援。

(完)

相關

[研究] Micro Focus Fortify SCA 20.1.0 是否支援 ASP.NET Code 3.1 React and Redux 測試

[研究] Micro Focus Fortify SCA 20.1.0 是否支援 ASP.NET Code 3.1 Razor測試

[研究] Micro Focus Fortify SCA 20.1.0 是否支援 ASP.NET Code 3.1 MVC 測試

[研究] Micro Focus SCA 20.1.0 是否支援 ASP.NET Code 3.1 Razor測試

[研究] Micro Focus SCA 20.1.0 是否支援 ASP.NET Code 3.1 Razor測試

2020-05-29

Micro Focus Static Code Analyzer 20.1.0 原始碼安全掃描工具於 2020-05-22 釋出。

官方網頁上說支援到 .NET Code 3.1。
https://www.microfocus.com/documentation/fortify-static-code-analyzer-and-tools/2010/Fortify_Whats_New_20.1.0/index.htm#Content%2020.1.0/Fortify%20Static%20Code%20Analyzer.htm%3FTocPath%3DWhat's%2520New%2520in%2520Micro%2520Focus%2520Fortify%2520Software%252020.1.0%7C_____2

本篇測試一下是否支援 ASP.NET Code 3.1 的 Razor 架構的專案。

Click 圖片可顯示 100% 原尺寸圖片。







似乎是支援。

(完)

相關

[研究] Micro Focus Fortify SCA 20.1.0 是否支援 ASP.NET Code 3.1 React and Redux 測試

[研究] Micro Focus Fortify SCA 20.1.0 是否支援 ASP.NET Code 3.1 Razor測試

[研究] Micro Focus Fortify SCA 20.1.0 是否支援 ASP.NET Code 3.1 MVC 測試



2018年12月4日 星期二

[研究][ASP.NET] Fortify SCA 報告 Web.Config 資料庫連線字串設定有 Insecure Transport: Database 問題

[研究][ASP.NET] Fortify Static Code Analyzer (SCA) 報告 Web.Config 資料庫連線字串設定有Insecure Transport: Database 問題

2018-12-04

工具:Fortify Static Code Analyzer (SCA) 18.20
Visual Studio 2017 v15.9.3

WebForm 方案的 Web.Config 中,連線資料庫的資訊有 Password 關鍵字,每次都被 Fortify SCA 判斷有問題,雖然可以使用 .NET Framework 提供的 aspnet_regiis.exe 對 Web.Config 的連線資訊做加密,但是一般開發階段不會這樣去做,除非 deploy 到正式機後才會做。

aspnet_regiis -pe "connectionStrings" -app "/MyApplication"

於是做了個實驗,把 <connectionStrings> 和 </connectionStrings> 內容註解,再拿去 Fortify SCA 掃描,結果不會再因有 Password 關鍵字而誤判了。

(下圖) Web.Config 因有 Password 關鍵字被誤判了

(下圖) Web.Config 因有 Password 關鍵字被誤判了

(下圖) 掃描前註解掉 Web.Config 的連線字串

(下圖) 掃描後不再有誤判資訊

********************************************************************************
上面是掃描時,比較省時的作法,但比較正確的作法如下:


保護連接字串與其他設定資訊 (C#)
使用「 ASP.NET IIS 註冊工具 (aspnet_regiis.exe) 」 對 Web.Config 中 <connectionStrings> 中資訊加密。

********************************************************************************

另外發現下面也會被誤判
<add key="SSO_ForgetPwd" value="https://ec2-12-345-678-90.ap-northeast-1.compute.amazonaws.com/SSO/forgetPwd.jsp" />

但下面不會被誤判
<add key="MailPwd" value="abc123aaa" />

表示 Pwd 不是會被誤判的關鍵字,只是不清楚判斷邏輯。

(完)

相關

逐步解說:使用受保護的組態加密組態資訊
Visual Studio 2010 更新:2007 年 11 月
https://msdn.microsoft.com/zh-tw/library/dtkwfdky(v=vs.100).aspx

HOW TO:建置並執行受保護的組態提供者範例
Visual Studio 2010 更新:2007 年 11 月
https://msdn.microsoft.com/zh-tw/library/33ws57y0(v=vs.100).aspx

匯入和匯出受保護的組態 RSA 金鑰容器
Visual Studio 2010 更新:2007 年 11 月
https://msdn.microsoft.com/zh-tw/library/yxw286t2(v=vs.100).aspx