什么是漏洞扫描?
什么是漏洞扫描**摘要**本文尝试从多个视角一起探讨一下漏洞扫描业务相关的诸多基本问题。本文分享自华为云社区《5W2H 分解漏洞扫描 - WHAT》作者 water^3 。首先什么是漏洞国内外各种规范和标准中关于漏洞也称脆弱性英文对应Vulnerability的定义很多摘录如下互联网工程任务组RFC4949[1]: 系统设计、部署、运营和管理中可被利用于违反系统安全策略的缺陷或弱点。中国国家标准 信息安全技术-网络安全漏洞标识与描述规范 GB/T 28458-2020[2]: 网络安全漏洞是网络产品和服务在需求分析、设计、实现、配置、测试、运行、维护等过程中无意或有意产生的、有可能被利用的缺陷或薄弱点。中国国家标准 信息安全技术-术语 GB/T 25069-2010[3]: 脆弱性(Vulnerability)是资产中能被威胁所利用的弱点。美国国家标准与技术研究所NIST[4]: 信息系统、系统安全规程、内部控制或实施中可能被威胁源利用或触发的弱点。国际标准化组织-信息安全管理体系 ISO27000[5]: 资产或控制中可能被一个或多个威胁利用的弱点。国际标准化组织-漏洞披露 ISO29147[6]: 违反默示或明示安全策略的产品或服务的功能性行为。维基百科[7]: 计算机安全中漏洞是威胁可以利用的弱点例如攻击者可利用漏洞在计算机系统内跨越权限边界。百度百科[8]: 漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷可以使攻击者能够在未授权的情况下访问或破坏系统。从各种定义中可以得到漏洞的一系列共性描述系统的缺陷/弱点、可能被利用于违反安全策略、可能导致系统的安全性被破坏。漏洞会涉及管理、物理、技术多种类型我们说的漏洞一般默认是指技术型的漏洞。如何描述具体漏洞针对已公开披露的漏洞通常以CVE编号进行描述。为了达成交流共识更好的识别、定义和修复已知漏洞由MITRE公司发起的公共漏洞枚举CVE项目[9]可以为每个典型的软硬件产品/公共组件的已知漏洞分配一个唯一的CVE编号这一做法得到全球主流IT厂商/组织的支持截止目前全球范围内已有近200个CVE编号授权机构[10]CVE已成为产业界的国际事实标准。需补充的是美国国家漏洞库NVD[11]全面兼容了CVE并提供了若干增强信息如漏洞的分类、影响等级、受影响的供应商产品版本列表等。CVE存在的价值在于支撑公共安全预警和协同修复它一般不含漏洞利用信息。通俗一点的描述就是通知XX供应商的XX产品的XX版本上有XX已知漏洞影响评分XX分如果您使用了受影响的产品版本请尽快修复修复版本为XX也正是基于这种正向的预警的属性CVE漏洞基本都已有较成熟的修复或缓解方案以帮助受影响的用户减少不必要的伤害。此外中国国家信息安全漏洞库CNNVD[12]也兼容CVE但它使用的是CNNVD编号精确到年月。例如CNNVD编号CNNVD-202110-1568映射到CVE编号CVE-2021-22965它们描述的是同一个漏洞 。已公开披露的漏洞只是冰山一角其主要涉及面向个人或企业的公共的商用软硬件产品或开源软件/组件。由于软硬件的使用场景不同有些已知漏洞只会受限披露甚至不会被披露。而由于软硬件系统的复杂性与多样性未知的漏洞则会更多。业界安全研究人员、软件厂商的测试部门每天都在持续不断的发现着新漏洞正如体检中心每天都会发现新病人。针对未公开披露的漏洞通常会采用类型描述而不会分配具体的CVE编号。MITRE公司的安全研究人员分析了大量已公开披露的CVE漏洞抽象化并提取了公共缺陷枚举CWE[13]用来对此类型的漏洞进行描述。当前CWE项目中的缺陷已有超过900个小类其中与软件开发相关的有400多个小类40个大类。缺陷是漏洞的根因因此每一个CVE编号都可以映射到一个或多个CWE编号。其他典型的可用作类型描述的还有针对Web应用系统的OWASP Top 10[14]。比较典型的是基于具体业务的应用程序的漏洞似乎永远不会被主动公开披露只会悄悄被修复。这是为了避免企业商业形象受损另外也因为业务应用一般不是标准产品具有独特性不涉及协同修复的属性即便涉及也在小范围内。除非漏洞已被利用造成了公共损失不得不进行披露否则知道这种负面信息的人越少越好是共识。最后回到什么是漏洞扫描大部分业界规范或标准中用到的相关概念是漏洞评估并直接将漏洞扫描作为一种选择和要求。以国际标准ISO/IEC 27005[15]信息安全风险管理为例在其附录D2中给出相关描述评估技术型漏洞的方法有哪些给出的第一个建议就是“使用自动化漏洞扫描工具”另外三条建议分别是 安全测试评估、渗透测试、代码审计。在中国国标GB/T 28449的”附录E 等保测评方式及工作任务“的“E.4 测试”部分中则明确指出需要对服务器、数据库管理系统、网络设备、安全设备、应用系统等进行漏洞扫描。此外还需要对应用系统完整性、保密性进行协议分析对系统进行内部和外部的渗透攻击等等。而在金融行业支付卡数据安全标准PCI DSS[16]针对漏洞扫描给出了两个较为明确可操作的定义如下面2图。对应用程序漏洞的安全评估对系统从外部及内部的漏洞扫描因此笔者认为漏洞扫描指的就是通过工具去扫描远端或本地运行的系统的行为以期达到快速识别系统中已知或未知漏洞的目的。它的关键是对漏洞的识别进行工具化降低识别漏洞的人工参与和技术门槛。漏洞扫描是漏洞评估的一种方法。漏洞扫描通常是渗透测试过程中的一个前置步骤。与漏洞扫描相关的工具通常有哪些呢在知名信息技术咨询公司Gartner的定义中按扫描结果类别的不同可以大致分为AST(Application Security Testing)应用安全测试类工具、SCA(Software Composition Analysis)软件成分分析类工具、VA(Vulnerability Assessment)漏洞评估工具, AST工具用于测试发现应用程序未知的安全缺陷SCA工具用于发现静态软件中引用的开源组件的已知漏洞VA工具则通常用于发现动态运行的系统中是否存在已知的漏洞。按扫描对象状态的不同又可以划分为静态工具和动态工具静态工具扫描源代码或二进制包动态工具扫描运行的系统。静态工具包括静态Static-AST工具(SAST) 源码SCA工具 二进制SCA工具。 动态工具包括 交互式Interactive-AST工具(IAST)、动态Dynamic-AST工具(DAST)、模糊测试(Fuzzing)工具、漏洞评估(Vulnerability Assessment)工具。 在这其中受到资源可获得性的限制在系统上线以后经常会被用到的漏洞扫描工具主要是 DAST工具和VA工具 而这也正是PCI DSS实践指南中列出的。WHY 为什么做漏洞扫描漏洞扫描能发现漏洞扫描的结果能用来支撑漏洞评估、漏洞修补、风险评估相关工作以降低系统安全性的风险。还有其他目的吗 且听下回分解。文末福利华为云漏洞扫描服务 VSS 基础版限时免费体验参考链接[1] https://datatracker.ietf.org/doc/html/rfc4949[2] http://std.samr.gov.cn/gb/search/gbDetailed?idB4C25880C3E91CB3E05397BE0A0A92D0[3] http://std.samr.gov.cn/gb/search/gbDetailed?id71F772D7D71AD3A7E05397BE0A0AB82A[4] https://csrc.nist.gov/glossary/term/vulnerability[5] https://www.iso.org/standard/73906.html[6] https://www.iso.org/standard/72311.html[7] https://en.wikipedia.org/wiki/Vulnerability/_(computing)[8] https://baike.baidu.com/item/漏洞/1688129[9] https://cve.mitre.org/[10] https://www.cve.org/PartnerInformation/ListofPartners[11] https://nvd.nist.gov/[12] http://www.cnnvd.org.cn/web/index.html[13] https://cwe.mitre.org/[14] https://owasp.org/www-project-top-ten/[15] https://www.iso.org/standard/75281.html[16] https://www.pcisecuritystandards.org/document/_library点击关注第一时间了解华为云新鲜技术~《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取以上资料如何领取文章来自网上侵权请联系博主