最近安安子在看新闻的时候注意到这么一条消息,微软自去年7月以来,已经为提交微软系统漏洞的安全人员提供1370多万美金的奖励。这么说来,每次专心挖掘漏洞不就可以衣食无忧了?看的安安子燃起了转行的熊熊烈火,这么多钱,要写多少期小课堂才能挣得到!!
但是漏洞到底是什么?要怎么挖掘?这钱到底好不好赚呢?充满好奇的同学建议先行百度,建议看的懂前三页词条之后再回来考虑这条商机。当然,对于普通人来说,虽然不至于以挖掘漏洞为饭碗,但是了解一些关于安全漏洞的知识总是没有坏处的,今天安安子老师就为大家带来一期关于漏洞的小科普。
一、什么是安全漏洞?
1、定义
关于漏洞的定义,百度百科给出解释是:安全漏洞是信息系统在生命周期的各个阶段(设计、实现、运维等过程)中产生的某类问题,这些问题会对系统的安全(机密性、完整性、可用性)产生影响。[1]
漏洞之所以被描述为某种”问题”,是因为我们无法简单地用脆弱性、缺陷和Bug等概念来涵盖它,而更象是这些概念的一个超集。
漏洞会在系统生命周期内的各个阶段被引入进来,比如设计阶段引入的一个设计得非常容易被破解的加密算法,实现阶段引入的一个代码缓冲区溢出问题,运维阶段的一个错误的安全配置等,以上这些都有可能最终成为漏洞。
安全漏洞与BUG的关系
Bug是指电脑系统的硬件、系统软件或应用软件出错。在英语中,bug一词原意指的是虫子。在计算机历史上,第一个计算机Bug,是由于一只飞蛾意外飞入了一台电脑内部,而导致电脑不能正常运作,于是人们就用Bug一词来代指“出问题”,并沿用至今。在程序员语言中泛指有错误的代码。
漏洞是指在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
◆ 那么BUG是否就是漏洞呢?
其实漏洞与Bug并不等同,他们之间的关系基本可以理解为:大部分的Bug影响功能性,并不涉及安全性,也就不构成漏洞;大部分的漏洞来源于Bug,但并不是全部,它们之间只是存在交集。[2]
知乎上有多种形式来解释两者间的关系,例如
或打比方:你家里的窗可以从外面打开,那叫漏洞。你家里的窗打开时非常费劲,那叫bug。
二、漏洞的威胁
关于漏洞相关的新闻近年来总是时不时地出现在热搜,无论是安全圈内还是圈外,大家对漏洞的关注度都居高不下,即使并不了解,也会下意识地关注相关讯息。漏洞之所以引起普遍关注,和它自身可以引发的一系列神秘后果不无干系。
在电影世界中,一个小小的漏洞可以引起一个城市乃至一个国家的瘫痪,所有人的命运都和漏洞紧密地联系在了一起,漏洞虽然看起来其貌不扬,然而,作为世界顶级黑客的男主角通常会在人性和漏洞之间选择其一,最终用科技改变命运,科技改变世界,迎来perfect ending。当然这只是电影世界中被艺术手法包装过的漏洞,现实中的漏洞影响力虽然无法让整个世界灭亡,但其危险程度不容小觑。
2010年的伊朗核设施事件,一种名为Stuxnet的网络漏洞病毒被人用来修改伊朗核电厂离心机的工作流程,从而导致离心机失控旋转,爆炸着火。Stuxnet蠕虫病毒(超级工厂病毒)是世界上首个专门针对工业控制系统编写的破坏性病毒,能够利用对windows系统和西门子SIMATIC WinCC系统的7个漏洞进行攻击。[3]
这是第一次使用恶意计算机程序造成物理损坏。这起重大漏洞安全事件不仅给国家带来巨大的损失,同时也严重影响中东地区各方关系,导致国际形势愈发紧张。
Stuxnet事件之后,网络安全问题变成了全球国家安全对话的最前沿。此事件也引发了许多关联问题,例如国家如何确定网络攻击何时构成战争行为,以及一个国家可能利用数字领域对另一国家造成严重破坏的方式等。
三、安全漏洞的分类
正因为安全漏洞具有多方面的属性,所以a也就可以从多个维度对其进行分类。国家质量监督检验检疫总局及标准化管理委员会早在2013年出台过GBT30279-2013《信息安全技术安全漏洞等级划分指南》,根据漏洞的访问路径、利用复杂度和影响程度进行了分类。随着时间的推移,安全漏洞的种类和数量不断更新,本次小课堂主要依据最新版2020年360-CERT发布的《2020安全漏洞年报》中的漏洞视角来进行分类。[4]
- 安全产品漏洞
安全产品作为企业信息安全建设的关键性产品,往往承担着保护企业业务正常运转的重任,一旦出现漏洞,可能会对企业安全体系造成致命打击。自2020年开始,出现了一种新的漏洞归属类型——安全厂商产品的漏洞。
代表类型:PaLoALto发布了SAML身份验证机制绕过漏洞通告。通告表明被其产品广泛使用的SAML存在身份验证绕过漏洞,使用了SAML单点登录身份验证保护的资源都会受到该漏洞的影响。
所以,作为安全产品应积极进行安全测试,及时发现并修补漏洞,及时跟进相关安全设备的漏洞安全通告信息,并加强对安全产品的行为审计。
- 序列化漏洞
序列化漏洞是除开代码执行漏洞之外数量第二多的漏洞类型,伴随着云原生、分布式等重度依赖系统间通信的解决方案的普及,序列化漏洞频繁出现。
代表类型:JAVA应用中,影响面较大的序列化漏洞有
CVE-2020-2551:Weblogic IIOP序列化漏洞
CVE-2020-2555:Weblogic T3序列化漏洞
Fastjson组件序列化漏洞
Jackson-Databind组件序列化漏洞
CVE-2020-4450:Weblogic IIOP序列化漏洞
CVE-2020-1948:Apache Dubbo序列化漏洞
随着互联网的蓬勃发展,序列化漏洞的利用难度上升,出现了更复杂的利用链,JAVA语言也针对序列化漏洞做出了JEP290的防御机制,序列化的攻击方式越来越多样化,需要企业高度重视序列化漏洞。
- 协议级漏洞
协议级漏洞主要集中在通讯协议,因为通讯的易达性和传播性很方便黑客实施大规模攻击。随着测绘技术的快速发展,协议级漏洞的影响力将达到一个前所未有的程度。
代表类型:
应用协议级漏洞
CVE-2019-2725:Weblogic XMLDecoder代码执行漏洞
CVE-2019-7238:Nexus解析Jexl表达式漏洞
系统协议级漏洞
VxWorks URGENT/11 TCP/IP漏洞
HTTP/2 DDoS漏洞
CVE-2019-0708/1181/1182:Windows RDP远程代码执行漏洞
硬件协议级漏洞
CVE-2019-15126:KROOOK WI-FI信息流量泄露漏洞
Treck TCP/IP协议库多个安全漏洞
综上可以看到,协议级漏洞的频频出现,带来了更高等级的安全风险和安全隐患,标志着底层安全问题愈发重要,如何开展安全防护正在不断地向底层开展探索。
- 浏览器漏洞
在 Web 安全中,服务端一直扮演着十分重要的角色。所以针对浏览器的漏洞问题也同样不容小觑。当今市面上主流浏览器有Chrome、FireFox、Internet、Edge以及Safari。Web和浏览器的主要漏洞类型完全不同。Web端漏洞主要以注入漏洞、身份验证漏洞、安全配置漏洞、序列化漏洞、XSS漏洞为主,而浏览器漏洞则主要以内存破坏性漏洞、信息漏洞、程序逻辑漏洞为主。
代表类型:
CVE-2020-15999:ChromeFreetype字体库堆溢出漏洞
CVE-2020-6819/6820:FireFox在野远程代码执行漏洞
CVE-2020-0674:Internet Explorer远程代码执行漏洞
CVE-2020-6418:Chrome V8 引擎远程执行漏洞
CVE-2020-6519:Chrome浏览器CSP绕过漏洞
浏览器与用户交互更频繁,被攻击面更广,作为整个互联网流量的主要入口,漏洞危害影响非常大,一个严重的浏览器漏洞往往可以远程执行代码,会被攻击者取得整机的完整控制权限。因此浏览器也需要各种安全防护以及沙箱保护来降低被攻击的风险。
- 操作系统漏洞
操作系统漏洞一直是学术界和工业界的主要研究对象,各类操作系统的用户量都非常巨大,一旦出现漏洞可能会影响众多基础设施(水/电/交通/通讯等),带来严重的经济损失和危害。常见的操作系统漏洞包括DoS、信息泄露、本地提权、远程代码执行漏洞。
代表类型:
操作系统内核代码庞杂,功能众多,运行机制复杂,漏洞挖掘工作更多地依赖于安全研究人员丰富的实战经验和对系统运行机制、原理的深入理解,以及更加高效、智能的Fuzz方法。漏洞背后有着诸如国家网络战的武器库、勒索病毒和蠕虫的黑色产业链等利益关系,需要时刻警惕安全发展态势,关注最新的漏洞披露。
四、安全漏洞的等级
对漏洞的分级有助于在漏洞被发现后,给用户提供更多的信息,便于更快对漏洞进行定位,并决定下一步采取的措施。[5]
漏洞按其对目标主机的危险程度一般分为三级:
A级漏洞
它是允许恶意入侵者访问并可能会破坏整个目标系统的漏洞。例如允许远程用户未经授权访问的漏洞。A级漏洞是安全威胁最大的一种漏洞,大多数A级漏洞是由于较弱的系统管理或配置错误所造成的。同时,几乎可以在不同的地方,在任意类型的远程访问软件中都可以找到这样的漏洞。如:FTP,GOPHER,TELNET,SENDMAIL,FINGER等一些网络程序常存在一些严重的A级漏洞。
B级漏洞
它是允许本地用户提高访问权限,并可能允许其获得系统控制的漏洞。例如,允许本地用户(本地用户是在目标机器或网络上拥有账号的所有用户,并无地理位置上的含义)非法访问的漏洞。网络上大多数B级漏洞是由应用程序中的一些缺陷或代码错误引起的。
SENDMAIL和TELNET就是典型的例子。因编程缺陷或程序设计语言的问题造成的缓冲区溢出问题,是典型的B级安全漏洞。据统计,利用缓冲区溢出进行攻击的比例占所有系统攻击的80%以上。
C级漏洞
它是任何允许用户中断、降低或阻碍系统操作的漏洞。例如,拒绝服务漏洞。拒绝服务攻击没有对目标主机进行破坏的危险,攻击只是为了达到某种目的,对目标主机进行故意捣乱。最典型的一种拒绝服务攻击是SYN-Flooder,即入侵者将大量的连接请求发往目标服务器,目标主机不得不处理这些“半开”的SYN,然而并不能得到ACK回答,很快服务器将用完所有的内存而挂起,任何用户都不能再从服务器上获得服务。
以上就是本期小课堂的全部内容,看完了这些关于漏洞的基本知识,大家对漏洞的印象有没有越来越深刻呢?做网络安全行业必然是离不开各种漏洞的,了解更多的相关知识便于大家更好地展开工作,希望大家都可以学习到一些东西,变得越来越优秀!
欢迎同学们随时与齐安安联系,分享和交流珍贵知识与宝贵经验!
参考文献:
[1] 漏洞 百度百科
[2] 《安全漏洞概念及分类》 CSDN ,2016年
[3] 《近10年重大网络安全漏洞事件 每一件事都在影响着数以亿计的人》新浪VR, 2019年
[4] 《2020安全漏洞年报》 360-CERT,2020年
[5] 《网络安全漏洞可以分为各个等级,A级漏洞表示?》百度知道