什么是脆弱性?
在信息安全技术《信息安全风险评估规范GB/T 20984-2018标准》中对于脆弱性的解释是“可能被威胁所利用的资产或若干资产的薄弱环节”。
当然脆弱性也可称为弱点或漏洞,脆弱性一旦被威胁成功利用就可能对资产造成损害。脆弱性可能存在于物理环境、组织、过程、人员、管理、配置、硬件、软件和信息等各个方面。脆弱性是风险评估的基本要素。脆弱性依附在资产上,资产具有的脆弱性越多则其风险越大,脆弱性是未被满足的安全需求,威胁者可利用脆弱性从而危害资产。
注:我们今天讨论的是软件层面的脆弱性,如:操作系统、应用程序等。
说到脆弱性很多人会将其跟漏洞画上等号,但其实不尽然,脆弱性还包含了弱口令和基线配置,虽然严格意义上讲,弱口令也是一种漏洞,但其和常规意义上的漏洞还有一定的区别,因此将其单独摘录出来。
如何有效检出脆弱性
01漏洞检测
漏洞检测从大的分类来看主要分为两类,基于主机的扫描分析和基于网络的扫描分析,主机型扫描器需要在被检测主机中安装“代理”程序,从而实现对主机的脆弱性扫描。基于网络型的扫描器无需安装“代理”程序,而是通过发送构造好的数据,根据被检测设备的应答形式和内容,判断目标系统是否存在已知的脆弱性。以下分别是两种扫描器的优劣势分析:
主机型
优势:更加准确地发现系统漏洞,能够访问目标系统的所有文件与进程,网络性能影响小;
劣势:部署成本高,适用场景受限,远程渗透能力较弱等;
网络型
优势:基于网络的扫描分析的优势是通用性强、安装方便、扫描效率高;
劣势:占用网络带宽,准确度相对较低(PoC扫描除外),且受网络安全策略影响;
针对网络型扫描准确度又可分为三个类型,基于版本号的漏洞验证、基于特征规则的漏洞验证和基于PoC程序的漏洞验证,目前传统扫描器更多基于特征规则的验证,而新兴的扫描系统更多采用基于PoC的方式进行漏洞验证,其精准性更高,也带来了漏报问题。但目前针对PoC的检测方式更加受到组织管理者的关注。
02弱口令检测
弱口令检测的方式相对较为简单,主要是通过工具进行探测,弱口令工具有两个重要指标,分别为协议的支持数量和字典库的准确率。弱口令字典才是弱口令的灵魂所在,因为我们不能用一个庞大的弱口库去对资产进行碰撞,这种检出效率是管理者无法接受的。
以下列举弱口令字典的三种生成方式:
基于人工经验的生成:大多数情况下安全工程师都会有自己的弱口令字典,该字典是在日常工作中日积月累积攒起来的,其准确率完全取决于该工程师经验是否丰富。
基于规则的生成:基于规则的方式可以根据一系列入参如“姓名、常用密码、常用字符、生日、电话、QQ等相关入参”由系统经过排列组合进行生成。
基于机器学习生成:基于机器学习的生成是采用有监督学习模型进行训练,在第二种结果的基础上通过人工方式进行标识,实现对特定行业部分弱口令的精准预测。
03安全基线
目前因计算机配置错误而导致越来越多的安全漏洞问题,因此安全配置同样是脆弱性的重要检测维度。当前安全基线检测已被众多行业所关注,对服务器而言安全基线核查主要包含“操作系统基线、数据库基线、中间件基线”等相关内容的检查。以下列举安全基线核查的方式:
人工检查:人工检查意味着效率低下,针对一台服务器其至少需要 10 分钟或更长时间,但目前小型数据中心都具有几百上千台服务器规模,该方式已经被逐步淘汰;
自定义脚本检查:脚本的编写、测试、维护需要花费大量时间,并需要有较强的技术能力支撑,当然脚本在检测分析时要比人工检测方式的效率有所提升;
自动化工具:远程方式检测,极大的提升了检测效率,但前期配置需要大量人工参与,需要配置具体的目录及主机的用户名和密码,如果服务器定期修改密码,那么远程方式也会产生一定的人力成本。
Agent方式:该方式是目前较为推崇的方式,其在各个方面都具有较强的优势如:周期监控、人力消耗、维护成本、工作效率等,也是安全基线核查的发展方向。