sonarqube扫描报告之安全热点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sonarqube扫描报告之安全热点
sonarqube扫描报告之中有⼀个“安全热点”,按照⾃⼰的理解,安全热点就是安全漏洞嘛,或者安全问题。
在准备sonar培训的时候,⾃⼰特意去了解扫描报告的各种问题类型,看到下⽂解释“安全热点”⾮常透彻,于是收藏在此。
什么是安全热点?
安全热点突出显⽰开发⼈员需要审查的安全敏感代码段。
经过审查,您要么会发现没有威胁,要么需要应⽤修复程序来保护代码。
查看热点的另⼀种⽅式可能是其中在应⽤程序中放置了⼏个冗余保护层,以便在发⽣攻击时变得更有弹性。
漏洞还是热点?
热点和漏洞之间的主要区别在于在决定是否应⽤修复之前需要进⾏审查:
使⽤热点,可以突出显⽰安全敏感的⼀段代码,但可能不会影响整体应⽤程序安全性。
由开发⼈员审查代码以确定是否需要修复以保护代码。
对于漏洞,已发现需要⽴即修复的影响应⽤程序安全性的问题。
⼀个例⼦是,其中建议使⽤cookie 安全标志来防⽌通过⾮ HTTPS 连接发送 cookie,但需要进⾏审查,因为:
HTTPS 是抵御 MITM 攻击的主要保护措施,因此安全标志只是在⽹络安全发⽣某些故障时的附加保护。
cookie 可能被设计为随处发送(包括⾮ HTTPS ⽹站),因为它是跟踪 cookie 或类似的。
通过热点,我们尝试为⽤户提供⼀些⾃由,并教育他们如何根据上下⽂(预算、威胁等)选择最相关/最合适的保护措施。
为什么安全热点很重要?
虽然修复单个热点的需要取决于上下⽂,但您应该将安全热点视为提⾼应⽤程序健壮性的重要部分。
固定热点越多,您的代码在遭受攻击时就越安全。
查看安全热点允许您:
了解风险——了解何时以及为何需要应⽤修复以降低信息安全风险(威胁和影响)。
确定保护措施– 在查看热点时,您将了解如何避免编写有风险的代码、确定哪些修复已到位,并确定仍需要实施哪些修复以修复突出显⽰的代码。
识别影响– 通过热点,您将学习如何根据对整体应⽤程序安全性的影响应⽤修复程序来保护您的代码。
热点页⾯中包含推荐的安全编码实践,以帮助您进⾏审核。
⽣命周期
安全热点具有专⽤的⽣命周期。
要更改状态,⽤户需要管理安全热点权限。
默认情况下启⽤此权限。
具有浏览权限的⽤户可以评论或更改分配给安全热点的⽤户。
状态
在整个⽣命周期中,安全热点采⽤以下状态之⼀:
To Review – SonarQube 设置的新安全热点的默认状态。
已报告安全热点,需要检查。
已审核– 开发⼈员已⼿动评估安全热点并决定是否应⽤修复程序。
⼯作流程
按照此⼯作流程查看安全热点并应⽤保护代码所需的任何修复程序。
审核优先级
当 SonarQube 检测到⼀个安全热点时,它会根据其审查优先级从⾼到低添加到安全热点列表中。
具有⾼审查优先级的热点最有可能包含需要保护并⾸先需要您注意的代码。
审核优先级由每个安全规则的安全类别决定。
在 OWASP 前 10 名和 CWE 前 25 名标准中排名靠前的类别中的规则被认为具有⾼审查优先级。
排名不⾼或未在 OWASP 前 10 名或 CWE 前 25 名标准中提及的类别中的规则被评为中或低。
查看热点
在查看热点时,您应该:
1. 查看什么是风险选项卡以了解为什么会引发安全热点。
2. 从“您是否有风险”选项卡中,阅读“问⾃⼰是否存在”部分以确定您是否需要应⽤修复程序来保护热点中突出显⽰的代码。
3. 从“如何修复它”选项卡中,如果您确定代码不安全,请按照推荐的安全编码实践来修复您的代码。
完成这些步骤后,将安全热点设置为以下之⼀:
已修复– 如果您已应⽤修复程序来保护热点突出显⽰的代码。
安全- 如果代码已经安全并且不需要修复。
(例如,其他更相关的保护措施已经到位)。
审查- 如果您需要其他⽤户的审查。
回顾历史
“审查历史记录”选项卡显⽰安全热点的历史记录,包括分配的状态以及审查者对热点的任何评论。
在 IDE 中查看热点
直接在 IDE 中查看安全热点可以帮助您更好地了解其上下⽂并确定它是否安全。
这是您将作为经过⾝份验证的⽤户看到的在 IDE 中打开按钮的⽤途。
此功能可供以下⽤户使⽤:
4.29 及更⾼版本的
4.13 及更⾼版本的
1.20 及更⾼版本的
5.7 及更⾼版本的
项⽬需要在合适的IDE中打开,并通过SonarLint的连接⽅式绑定到服务器。
请记住,SonarQube 分析的修订或分⽀可能与您在 IDE 中打开的不同。
在这种情况下,SonarLint 将尽最⼤努⼒在您的本地代码中定位安全热点。
安全热点和漏洞有什么区别?
安全热点和漏洞的不同之处在于:
安全热点是⼀段对安全敏感的代码,突出显⽰但不⼀定影响整体应⽤程序安全。
由开发⼈员审查代码以确定是否需要修复以保护代码。
漏洞是影响应⽤程序安全的问题,需要⽴即修复。
有关更多详细信息,请参阅页⾯。
为什么我看不到任何漏洞或安全热点?
由于以下原因,您可能看不到任何漏洞或安全热点:
您的代码是在未使⽤任何安全敏感 API 的情况下编写的。
漏洞或安全热点规则可⽤,但未在您的质量配置⽂件中激活,因此不会引发安全热点或漏洞。
SonarQube ⽬前可能没有很多适⽤于您的语⾔的规则,因此它不会引发任何或仅少数漏洞或安全热点。
概念定义
分析仪分析源代码以计算快照的客户端应⽤程序。
数据库存储配置和快照
服务器⽤于浏览快照数据和进⾏配置更改的Web 界⾯
质量
概念定义
漏洞表⽰代码中出现错误的问题。
如果这还没有打破,它会,⽽且可能是在最糟糕的时刻。
这需要修复。
昨天。
代码⽓味代码中与可维护性相关的问题。
保持原样意味着维护⼈员最多会⽐他们对代码进⾏更改更难。
最坏的情况是,他们会对代码的状态感到困惑,以⾄于在进⾏更改时会引⼊额外的错误。
成本查看修复成本债务见技术债
问题当⼀段代码不符合规则时,快照上会记录⼀个问题。
问题可以记录在源⽂件或单元测试⽂件中。
有 3 种类型的问题:错误、代码异味和漏洞
措施给定时间给定⽂件或项⽬的度量值。
例如,类 MyClass 上的 125 ⾏代码或项⽬ myProject 上 30.5% 的重复⾏密度
公制⼀种测量。
随着时间的推移,指标可以具有不同的值或度量。
⽰例:代码⾏数、复杂性等。
度量可以是定性的(给出组件的质量指⽰、重复⾏的 EG 密度、测试的⾏覆盖率等)或定量的(不给出质量指⽰)在组件上,EG 代码⾏数,复杂度等)
新代
您密切关注代码中引⼊新问题的变更集或时期。
理想情况下,这是因为previous_version,但如果您不使⽤类似 Maven 的版本控制⽅
码定
案,您可能需要设置⼀个时间段,例如 21 天,从特定分析开始,或使⽤参考分⽀。
概念定义
义
质量
⼀套规则。
每个快照都基于单个质量配置⽂件。
另见
简介
规则应遵循的编码标准或实践。
不遵守编码规则会导致错误、漏洞、安全热点和代码异味。
规则可以检查代码⽂件或单元测试的质量。
修复
修复漏洞和可靠性问题所需的估计时间。
成本
快照在给定时间针对给定项⽬的⼀组措施和问题。
每次分析都会⽣成⼀个快照。
安全
需要⼿动检查的安全敏感代码段。
经过审查,您要么会发现不存在威胁,要么会发现存在需要修复的易受攻击的代码。
热点
技术
修复所有可维护性问题/代码异味所需的估计时间
债
漏洞⼀个与安全相关的问题,代表攻击者的后门。
另请参阅。