购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第2章
信息安全攻击介绍

信息安全是指信息系统(包括硬件、软件、数据、人、物理环境及其基础设施)处于保护之中,不会受到偶然或者恶意的破坏、更改、泄露,系统正常地运行,信息服务不中断,最终实现业务连续性 [3]

针对金融业的信息安全攻击手段变幻莫测,并且在不断地更新进化,特别是随着近几年全球信息技术的飞速发展,攻击手段越加多样化。从最初利用计算机的系统漏洞、网站挂马、端口嗅探、口令爆破等单一的攻击手段,到现今的综合利用任何可用资源,拉长攻击周期,有组织、有计划、有目标的APT攻击。

纵观信息安全攻击的整个过程,虽然错综复杂、变化多样,但亦可寻得些许规律。针对金融业的信息安全攻击的目的主要可以分为两类,一是针对信息类,以窃取有价值信息为最终目的攻击;二是针对系统类,以攻陷系统获得控制权限伺机而动的攻击。攻击手段通常可以分为四个阶段,分别是:准备阶段、攻击阶段、收获阶段、扫尾阶段。下面以针对金融业的当前主流的攻击方式,从各个阶段所涉及的技术特点进行分析。其中,利用一个单独的信息安全攻击手段就可能达到攻击的最终目的,也可以综合利用,以实现针对高安全防护等级的金融系统的针对性持续攻击。

成熟的攻击者和组织在准备阶段会从人员、时间、环境、目标特性针对情报收集、社会工程学、技术试探、预入侵等方面做大量的前期工作。据权威媒体统计,美军网络司令部司令迈克尔·罗杰斯在美国国会一次听证会上称,美军从2013年年初开始组建网络部队,至2018年初已建成123支网络部队,总人数为4990人。建立如此大的网络安全部队其最终目的就是网络安全资源积累,这些积累主要体现在信息资源和安全漏洞资源沉淀上,以便应对不同阶段的网络攻防战。由此可见,准备阶段在国家信息安全战略中也属于重中之重。

下面将从情报收集、社会工程学、技术试探、预入侵4个层次解析准备阶段工作。

2.1 准备阶段

金融行业与交易、资金直接相关,金融系统的安全防御等级普遍较高,攻击者在启动攻击前会做好充分的准备工作,通常会对攻击的目标进行选择定位,收集并了解目标的相关信息,包括其组织架构、安全体系、资产及系统架构等信息。通过社会工程等技术手段描绘出目标弱点清单,编写或挖掘操作系统、数据库的零日恶意代码、溢出代码等,寻找路径跳板,进行预入侵,为攻击阶段提供有力素材。

2.1.1 情报收集

情报收集 [4] 是信息安全的基础,必须熟悉掌握各种情报收集手段,并从中整理提取出有价值的情报,历史上有很多因为情报收集失误而导致失败的案例,例如9·11事件、伊拉克战争等,都可以从中看到情报收集的影子。

在如今信息大爆炸的时代,情报收集工作可以说是攻防中最重要且最繁复的工作,各种数据及服务层出不穷,真正有价值的东西埋藏在大量无用数据之中,从而变得越来越隐秘。

既然情报收集如此重要,那么究竟什么是情报收集?情报收集一般有哪些内容?如何准确地收集到有价值的情报?下面将会阐述此类信息。

情报收集的本质是从目标处获取对需求存在价值的信息及线索。在情报收集工作中如果没有一套完整的体系,往往会漏掉很多有价值的信息。信息安全情报收集通常可划分为4个阶段,如图2-1所示:

000

图2-1 信息安全情报收集的4个阶段

1. 确定目标

当对一个攻击目标开展情报收集工作时,攻击者首先会勘定它的攻击范围,既有可能对目标单位进行广义的信息收集,也有可能只针对某个具体的信息资产进行信息收集。范围具体体现在目标信息资产中,其中包括资产目标地理位置、IP地址、域名、各类服务资源或工作人员社交信息 [5]

确认目标及需求是贯穿攻击者攻击思路的核心框架。所谓目标是指网络、服务器、数据库、应用系统、终端、相关管理人员这些载体;需求是指攻击者通过这些目标所能获取到的权限、信息、破坏行为。

银行网络及系统种类繁多,作为国之重器,其安全之重要性非一般的企业单位可以相提并论,在确认目标这个环节往往会耗费攻击者大量时间和精力。这里将大致从网络和应用系统的角度对银行目标进行划分。网络层面包括广域网骨干网络、机构总部局域网骨干网络、分支机构局域网骨干网络。这些骨干网络也是由网络设备、安全设备、前置中间件设备、后置中间件设备、计算机终端等基础单元组成。应用系统大致可以分为网上银行系统、重要支撑系统、重要交易系统、重要管理系统及其他运行关键业务或涉及客户身份、资产、交易记录等敏感信息的重要信息系统。

2. 制订计划

攻击者会对目标制订一个具体的收集计划,以时间为单位,规划每个时间段的收集任务。

3. 实施收集

这个阶段将会是情报收集阶段最繁复的一项,大约要占到70%的工作量。攻击者根据收集计划,灵活运用各类技术与社交手段,逐一进行信息的收集。

4. 分析处理

收集阶段结束后,进入分析处理阶段。攻击者将对收集到的数据进行分类挖掘,对有价值的情报进行提取。

在情报收集阶段,攻击者常用的情报收集工具有以下三种:互联网搜索引擎、whois查询以及端口扫描,下面将一一举例描述。

(1)互联网搜索引擎。谷歌互联网搜索引擎无疑是全球最强大的搜索引擎之一,除了可以搜索出日常所需之外,它还有令人意想不到的功能。在攻击者手中,它可以轻而易举地搜索出某些目标网站的漏洞,为攻击者完成情报收集任务。

(2)whois查询。whois(读作“whois”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库。

通过使用whois命令,攻击者可以收集到非常丰富的有用信息,如域名注册人姓名、注册人E-mail,甚至是电话号、传真、注册机构、通信地址、邮编,注册有效时间、失效时间等。

(3)端口扫描。通常网络中的端口是和服务一一对应的,例如22、25、3389端口分别对应着SSH、SMTP、RDP服务。攻击者需要获取目标服务所对应的端口号,才能发起入侵攻击。为了获取到端口号,攻击者通常会使用端口扫描工具进行嗅探扫描。常用的端口扫描工具有很多,例如Nmap、Zenmap等,如图2-2所示,利用图形化的Zenmap端口扫描工具,成功收集到了目标系统的开放端口(443、22、80、21),为进一步入侵提供了有价值信息。

000

图2-2 图形化的Zenmap端口扫描工具(示意图)

5. 分析处理

收集阶段结束后,进入分析处理阶段。攻击者将对收集到的数据进行分类挖掘,对有价值的情报进行提取。主要包括分析相关信息与目标是直接关联还是间接关联?关联程度如何?目标与未来设置的跳板主机是否存在敌对或同盟关系?目标的网络防御处于何种级别?目标的主机群的防护等级如何?目标与其所信任的关联人员之间的通信关系等。

2.1.2 社会工程学

社会工程学(Social Engineering)是指“通过心理弱点、本能反应、好奇心、信任、贪婪等一些心理陷阱进行的诸如欺骗、伤害、信息盗取、利益谋取等对社会及人类带来危害的行为”。高明的社会工程学攻击者都有自己独有的社工体系,本书将其划分三个部分,已知信息准备、伪装获取未知信息和心理弱点分析 [6]

1. 已知信息准备

已知信息准备是社会工程学开始的基础。在进行攻击之前,攻击者会精心准备目标的公开信息,如目标行业信息、内部公开信息。众所周知,大多地区及行业都有自己的规则约定,比如某种产品售价都基本一致,如果刻意低价销售就容易遭到其他公司及人员的抵制打压。作为银行职员就必须要知道压缩贷款、反担保、关联企业等内部公开术语。了解这些规则约定对攻击者后续的情报收集具有不可忽视的作用。

2. 伪装获取未知信息

在准备好这些内外部可获取的公开信息后,接下来就是通过伪装来获取更加机密的信息。比如攻击者可能会冒充某银行内部人员,了解他们内部的术语、行业术语等,然后再自制一张企业名片或者员工卡,如此一来,一般人都会相信其是内部人员。任何社会工程学攻击者都会想办法让目标感觉自己是可信任的、友好的、可交流的。

3. 心理弱点分析

心理弱点分析是社会工程学的最重要部分,现阶段各企业金融机构都有自己的员工安全意识培训、安全演练等,相对以前来说已不太容易受骗了。所以攻击者会根据目标传送的信息来判断对方的性格、感觉类型、心理特点等,再通过某种方式打消对方的疑虑。

攻击者利用社会工程学进行攻击的目的是获取诸如账号、密码、密钥、ID、身份证号、电话名单、具有访问权限的名单、社会关系、非公开的网络资源信息等情报信息。利用社会工程学的手段一般有网络钓鱼、第三方冒名、物理环境渗透、反向社会工程等。

(1)网络钓鱼。网络钓鱼(Phishing,音同fishing)是通过仿造来自于银行或其他机构的邮件、短信等,诱使收信人主动给出敏感信息的一种攻击方式。网络钓鱼具有隐蔽性、低成本、传播范围广等特点,因此成为攻击者最常用的攻击工具之一。在网络钓鱼盛行的今天,攻击者进行的网络钓鱼一般可分类为以下三种:正规网站钓鱼、邮件钓鱼、短信钓鱼。

1)正规网站钓鱼。攻击者利用网站漏洞入侵网站后,将钓鱼网站源码嵌入至正规网站目录中,以此逃脱网盾等安全软件的检测。攻击者将此页面在网络上进行传播,并以此盗用正规网站流量、欺诈用户,导致用户遭受不必要的损失。

2)邮件钓鱼。邮件钓鱼是目前互联网中比较常见的钓鱼方式之一,很多公司组织及个人都遭遇过此类攻击。邮件钓鱼相对来说目标性较强,一般是攻击者进行精心准备后的一种社工形式。通常的邮件钓鱼可以通过普通的恶意钓鱼网站或者基于某个应用程序漏洞进行攻击,前者以获取用户信息为主,后者以获取用户设备权限为主。

3)短信钓鱼。短信钓鱼表现为攻击者通过恐吓、欺骗手段向受害者发送虚假信息、链接从而获取不正当利益的行为。攻击者通过伪基站等设备将短信发送号码伪装成亲朋好友、10086等官方服务号码,尝试向目标用户发送短信,以此诱使用户上当受骗,又或者是以威胁手段恐吓用户,从而获取不正当利益。

(2)第三方冒名。第三方冒名是指犯罪分子通过电话、网络和短信等方式,编造虚假信息,设置骗局,对受害人实施远程、非接触式诈骗,诱使受害人给犯罪分子打款或告知敏感信息的犯罪行为。在计算机应用程序中也存在类似漏洞,攻击者通过某种方式伪装成其他用户,从而获取其操作权限。

(3)物理环境渗透。物理环境渗透是一种简单直接且暴力的社工方式,其核心在于渗透进目标的可控安全边界,我们经常在电视、电影中看到主人公为了得到敌人的某个敏感信息,伪装潜入敌人内部,买通内部人员或通过高科技手段等方式到达目标的可控范围,从而一举突破堡垒取得成功的情节。这些情节不仅仅会在电视、电影中出现,在真实生活中也时有发生。

物理环境渗透的对象及方法一般有以下几种:

1)个人电脑。诸如经常无人看守、未设置密码或者使用弱口令、授权经由他人操作过的个人电脑。大多数时候,当用户忙于其他的事情,个人电脑通常不会带在身边,甚至有些还会放置在可以被其他人接触到的公共场所内;在工作期间,用户离开座位的时候往往会忘记锁屏;个人电脑出现问题后往往随意丢给陌生人维修。诸如此类的行为,用户可能会认为这没什么影响,但一旦别有用心的攻击者接触到电脑,只需要一个U盘,通过一次插拔或者其他更高明的手段,就能轻松控制电脑,获取到个人信息。

2)数据中心机房。诸如无严格的审批流程可以进入的、闲杂人员可以进入的、网络区域划分不严的数据中心机房。有些机构或企业的数据中心机房管理不到位、管理制度不完善、管理人员纪律松散以及管理水平低下等,都会给攻击者留下可乘之机。攻击者可利用各类身份伪装,随意进入到这些管理松散的数据中心机房中,部署后门程序、窃取数据,甚至肆意破坏,危害极大。

3)无线网。覆盖范围大、无线设备暴露的网络环境。有时候无线网的辐射范围广也不是一件好事。假如在一个涉密的网络环境中使用无线网络,范围辐射广,外部人员只需要密码便可随意接入网络,那么很可能造成严重的泄密事故。例如现在有很多企业员工在企业网环境中使用第三方的无线网接入软件,比如WiFi万能钥匙等,WiFi万能钥匙是一个共享性的WiFi软件,它将用户的无线网络密钥保存并上传至云端,共享给每一个使用WiFi万能钥匙的用户。攻击者可以使用这个软件轻而易举地接入某个敏感的内网环境中,这是非常危险的。

4)外置设备。诸如NFC以及ATM、摄像头等内联公共设施。如果信用卡或借记卡支持RFID无线支付功能,比如银联的云闪付或者万事达的PayPass,它的信息有可能会被一个擦身而过的恶意黑客读取到。正如前段时间被大众所关注的“隔窗盗刷ETC卡事件”,一名男子利用移动POS设备靠近一辆轿车的ETC卡所在位置,几秒钟后便完成了交易,打印出了消费小票。虽然该事件随后被各大银行相继辟谣,但辟谣的论点也仅仅是证明了ETC卡片的独特性,其不具备“闪付”功能。倘若攻击者利用此类案例中的手段,将目标定位在具有“闪付”功能的银行卡上,那么被盗刷的风险仍旧不可避免。

(4)反向社会工程。反向社会工程学是一种比较巧妙的攻击方式,它是指攻击者通过技术或非技术手段给目标网络或者系统制造故障,迫使目标系统维护人员相信问题的存在,从而攻击者可扮演“支持角色”套取所需要的情报信息。

反向社会工程学包括三个部分:暗中破坏、自我推销和进行帮助。攻击者首先是对目标网络系统进行暗中破坏,让目标网络出现明显的问题。然后攻击者伪装成“支持角色”来对网络进行维修,并顺理成章地从内部员工那里获得他真正需要的信息,而雇员根本不会意识到攻击者的真实身份。

2.1.3 技术试探

在攻击准备阶段,技术试探也是必不可少的,攻击者会通过技术手段侦听、扫描出目标系统存在的弱点以及突破口,建立目标弱点清单,识别出保护目标所设置的安全屏障。这一环节俗称“踩点”。

1. 主动探测

主动探测过程为脆弱性评估过程,其性质是攻击者利用系统及应用程序的已知漏洞对目标系统进行扫描,从而判断是否存在漏洞。通常情况下,主动探测会被系统管理员用来发现网络和主机中可能会被利用的薄弱点,从而想方设法对这些薄弱点进行修复,以加强网络和主机的安全性。但另一方面,攻击者也可以利用主动探测来探查目标网络和主机系统的入侵点。当然了,这也许并不都是坏事,攻击者的行为同样有利于加强网络和主机的安全性,因为漏洞是客观存在的,只是未被发现而已,而只要一个漏洞被攻击者发现并加以利用,那么人们最终也会发现该漏洞。

常见的主动探测有两种方式,即端口服务探测、业务系统漏洞探测。

主机及其应用程序探测常用的工具有Nessus、Hscan、X-scan等工具,Web应用程序探测主流工具有Appscan、Awvs、HPwebinspect、Burpsuite、安恒明鉴、bugscan、metasploit等。另外,目前网络上还涌现出一些商用的扫描探测工具。下面分别列举目前主流的两种类型的工具来加以说明。

Nessus是一个功能强大而又易于使用的远程安全扫描器。安全扫描器的功能是对指定网络进行安全检查,找出该网络是否存在安全漏洞。网络漏洞扫描器(Web Vulnerability Scanner,WVS)是一个自动化的Web应用程序安全测试工具。它可以扫描任何可通过Web浏览器访问的和遵循HTTP、HTTPS规则的Web站点和Web应用程序。攻击者经常会利用主动探测对目标金融系统进行泛公式化扫描,扫描会针对系统的端口、服务以及应用层漏洞,进行诸如端口扫描、SNMP探查、DNS递归、目录枚举、暴力破解和旗标掠夺等各式的主动探测。这样的探测扫描可以借助应用程序自动完成,因此几乎是每时每刻都在发生,在企业的边界防火墙上经常可以看到这类的告警信息。虽然攻击者不能直接入侵或是获取什么权限,但这类探测在获取情报的准备阶段通常都会卓有成效。

2. 识别防御机制

经过多年的建设,金融机构已经建立起一套符合监管规范要求的信息安全架构,涵盖多重攻击防御机制。攻击者在实施攻击行动前会充分侦测、识别这些防御机制的存在与特点,尽可能绕开这些防御机制,以便在行动时不被阻碍。常见的防御机制有网络防御机制、系统防御机制和应用防御机制。

(1)网络防御机制。

1)识别网络线路、带宽。当攻击者知道目标网络的线路后可以通过多线对网络进行攻击,在知道带宽的情况下可以有效准备攻击资源,比如要进行DDoS攻击时,可精确准备攻击流量。

2)识别网络边界。有效识别网络边界有助于攻击者确定攻击的入口点,从而进行下一步攻击。

3)识别访问控制机制。攻击者会试图摸清整个网络中的用户访问机制,比如每个网络之间的访问控制列表、VLAN划分情况、VPN用户列表等,都将有助于攻击者后续扩散获取整个内网权限。

4)识别网络设备部署机制。攻击者想要在内网进行渗透,必须了解当前网络中的路由器、交换机等网络设备的部署情况,当攻击者在网络中进行攻击时,此网络若已经被攻陷,需要进入其他的内部网络时就必须在路由器或者三层交换机中配置其他网络访问路径。

5)识别安全设备。安全设备策略的有效识别能够大大提高攻击者攻击的成功率,很多安全设备将攻击者的攻击流量阻断,大大降低了攻击效率,这时攻击者就会对安全设备策略进行识别或者绕过,比如查询安全设备厂商及版本、默认安全策略、安全设备相关漏洞等。

(2)系统防御机制。

(3)应用防御机制。

3. 绘制弱点清单

经过前期的信息收集、主动性探测与防御机制识别后,可以得到一部分敏感信息,攻击者便会在文档中对目标系统绘制出一张弱点清单,后续攻击将根据绘制的清单进行放大,清单信息可能包括以下几类:

(1)网络清单。包括网络拓扑、网络设备、安全设备、版本信息、地理位置信息、错误信息、管理人员信息、漏洞信息。

(2)服务器清单。包括操作系统版本信息、补丁信息、端口及服务信息、管理人员信息、IP地址、漏洞信息。

(3)应用程序清单。包括应用程序版本信息、补丁信息、漏洞信息、用户信息、业务逻辑信息、管理人员信息。

(4)人员清单。包括目标人员基本信息、目标人员性格特点。

2.1.4 预入侵

当攻击情报与技术试探结果全部汇总完毕,绘制出目标系统的弱点清单后,攻击者便会开始入侵行动。攻击者通常会针对目标系统的系统、应用等细节信息开发木马工具,或是寻找针对性的已知漏洞或未公开漏洞,例如零日漏洞。利用上述工具和攻击方法,攻击者可以针对已发现弱点进行一系列入侵尝试。

1. 零日漏洞

零日漏洞(Zero-day/0-day Vulnerability,0day),从信息安全意义上理解,指的是在系统开发商知晓并发布修复补丁之前的漏洞。此前这类零日漏洞经常被用于软件和游戏的破解之中,基本属于非营利应用。随着信息的飞速增值,越来越多的零日漏洞变成了“市场”的货品。攻击者可以自行挖掘零日漏洞,也可以在这些“市场”中购买到适合的零日漏洞。

背后的危险才是真正的危险,零日漏洞由于没有公布,系统的开发商不会及时修复,安全防御体系不能识别,因此对目标系统的入侵将是最有效的手段。一些未公布的操作系统零日漏洞价值巨大,常常被军方作为网络作战中的撒手锏武器而进行极高级别的保密。

2. Fuzz技术

攻击者挖掘零日漏洞时,常用的技术就是Fuzzing。模糊测试(Fuzz Testing)是一类安全性测试的方法。模糊测试是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型。它充分利用了机器的能力:随机生成和发送数据;同时也尝试将安全专家在安全性方面的经验引入进来。一般模糊测试的流程如图2-3所示。

000

图2-3 一般模糊测试的流程

银行业使用的部分软件与IT通用软件有一定区别,挖掘漏洞者较为稀少,故而公布的漏洞较少。但是攻击者一旦获得银行使用的软件C/S端,可以搭建响应的环境,挖掘银行系统的零日漏洞,危害非常巨大。

假设攻击者要测试的是一个C/S架构的银行使用的服务端程序,此应用运行在Linux平台上名叫bankserver。攻击者可以知道客户端和bankserver之间使用TCP协议进行通信。在这种情况下,攻击者可以尝试以下两种方式找到应用系统中可能的漏洞。

传统办法:如果有bankserver的源代码,通过代码审计的静态方法可以发现漏洞。可是如果没有源代码,那只能采用逆向一个位于TCP/IP协议栈中工程反编译出源代码,再使用代码审计的方法去发现漏洞。可是,当前银行使用的系统非常复杂,通过阅读代码的方式发现漏洞的工作量非常大,很难在短时间内发现漏洞。

Fuzz技术:采用Fuzz技术就不一样了,攻击者只需要抓取网络通信的数据包,对数据包的网络协议的格式定义进行分析,修改部分字段重放给服务端来尝试发现bankserver服务端漏洞。由于这种模糊测试的工作量较大,人工手工触发漏洞的概率非常低,因此攻击者可以写出自动化Fuzz测试工具,由程序自动生成测试样本,对服务端bankserver进行模糊测试,攻击者只要测试是否可以让服务端崩溃即可找到零日漏洞。模糊测试使用的测试数据需要攻击者有一定的经验,用最为快速的方式找到漏洞。

常见的Fuzz工具包括:

Fuzz测试示例(见图2-4):

从执行过程来说,模糊测试的执行过程非常简单。backFuzz是一款在blackhat上面发布的Fuzz测试工具,代码使用python语言编写,非常容易使用。以backFuzz为例:

(1)使用backFuzz以随机或是半随机的方式生成大量超长数据。例如在FTP测试中,可以设定登录时USER长度为随机方式生成,当USER长度超长时会触发FTP服务器崩溃。

(2)backFuzz将生成的数据发送给被测试的服务端。

(3)backFuzz检测被测服务端的状态是否有异常。

000

图2-4 Fuzz测试示例

(4)根据被测服务端的状态异常来判断是否存在漏洞。例如对HTTP服务器进行Fuzz测试时,如图2-5所示,对HTTP协议中的HEAD、OPTIONS、PUT、HOST等字段进行随机测试,当HOST字段超长的情况下,会导致HTTP服务器崩溃,我们如果检测到HTTP服务器崩溃,那么就说明Fuzz的payload是可以成功触发漏洞的。

000

图2-5 对HTTP协议中的字段进行随机测试

3. 设计攻击路径

攻击路径是指在目标系统上存在的所有威胁弱点的概念图,又称攻击树。攻击树中包含所有可能的攻击方法,以试图成功获取目标系统弱点。攻击者会根据攻击树进行预入侵测试,试探并分析出攻击树中每一个节点上标注的弱点的有效性,进行筛选过滤,选择出最佳攻击路径,实施攻击。

攻击路径设计的好坏很大程度上能够决定攻击是否能够成功并且高效,在基于情报信息及弱点清单绘制后,反击者根据相关弱点进行攻击路径规划,如表2-1所示。

表2-1 根据弱点信息进行的攻击路径规划

000

2.2 攻击阶段

如果准备阶段的素材收集充分,试探与分析都比较准确,那么攻击者在攻击阶段便会发动精确攻击,先是巧妙地绕过各个防御系统,然后依据事先制定的攻击路径,进入内网驻留且在目标“合规”的时间段进行内网的横向扩展,以发现高价值目标,并利用系统脆弱性逐步入侵目标系统,在核心系统提升权限,最终取得目标数据的访问权限。

2.2.1 绕过防御机制

在准备阶段里,攻击者已经识别了目标系统中存在的各种防御机制,那么发动攻击的第一步便是选择绕开这些防御机制,目的是在攻击中保持隐身状态,不去触动目标系统中信息安全监控系统的警戒线。攻击者经常会轻松绕过一些主流的防御系统,如防火墙(FireWall,FW)、反病毒(AntiVirus)、入侵检测系统(Intrusion Dection System,IDS)、入侵防御系统(Intrusion Prevention System,IPS)、统一威胁管理(United Threat Management,UTM)、Web应用防护(Web Application Firewall,WAF)等。攻击者采用网络逃逸等技术(详见3.5.3高级逃逸技术AET)绕过防火墙、入侵检测等防御系统,将木马病毒程序植入目标系统,采用病毒免杀等技术绕过反病毒、UTM、WAF等防御系统。

1. 鱼叉式攻击

鱼叉式攻击,又称为鱼叉式钓鱼攻击,是一种针对特定目标的网络钓鱼攻击。鱼叉式攻击一般通过电子邮件等电子方式进行,针对特定企业、组织或个人。通常来说,攻击者会花时间了解攻击目标姓名、邮箱、社交媒体等网络信息,假冒组织、部门、政府机构等名义发送钓鱼邮件,邮件中会包含漏洞文档、可执行程序附件或正文包含恶意网站链接,诱使攻击目标点击或者输入账号密码等,攻击者借机安装木马等恶意程序,持续破坏目标电脑。恶意程序一般首先会进行压缩,以压缩包形态传输,存在少数采用压缩包加密后发送的情况,这种情况一般通过正文或其他方式将压缩包密码提供给攻击目标。通过压缩加密的方式,恶意程序能逃避部分杀毒软件的检测。

鱼叉式攻击具有定制化、精准化的特性,传统的防御机制往往无法有效识别并阻止此类攻击。某个员工一旦不小心点击钓鱼邮件,可能会为企业和组织带来严重后果。除此之外,鱼叉式攻击还可以部署恶意软件来劫持计算机,将该计算机所在的网络变成可用于拒绝服务的庞大僵尸网络。

2. 水坑式攻击

与鱼叉式攻击类似,水坑式攻击的目标也是特定的企业、组织或个人。攻击者首先通过猜测(或观察)确定攻击目标经常访问的网站,然后入侵其中一个或多个网站,植入恶意软件。在攻击目标访问该网站时,会被重定向到恶意网址或触发恶意软件执行,导致攻击目标中部分成员甚至全部成员被感染。水坑式攻击是一种看似简单但成功率很高的网络攻击方式。由于采用曲线攻击方式,绕过企业或组织的防御机制,攻击手段隐蔽,水坑式攻击难以被发现,大大降低了攻击被安全产品检测发现的概率。

3. 病毒免杀

病毒的攻击手段主要有以下四种:编码、加壳、白名单以及进程注入。

(1)编码。正常编写的木马病毒程序如果没有进行编码加密就载入执行,很容易被杀毒软件查杀。一般情况下通过编码绕过反病毒软件的方式有两种:base64加密绕过和XOR加密绕过。

(2)加壳。加壳是一种以文件“穿马甲”形式给程序加密保护的功能,有缩小文件体积、躲避杀毒软件查杀、文件保护的功能。当被加壳的程序运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。一切操作自动完成,用户不知道也无须知道壳程序是如何运行的。一般情况下,加壳程序和未加壳程序的运行结果是一样的。

(3)白名单。各大杀毒软件厂商对不知名程序查杀较严,但是对一些比较著名的软件程序设置了白名单,攻击者利用这个特点绑定这些程序后做一些加密处理,就可以在一定程度上逃脱杀毒软件的查杀。

(4)进程注入。进程注入也叫线程插入、DLL注入,对于应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,攻击者可以往容器里加其他东西(如应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被清除,系统会找一个新的进程容器来容纳它。

2.2.2 内网横向移动

内网横向移动攻击指的是攻击者以某台内网主机为跳板,利用已窃取的某个账户(如普通用户或服务账户)的有效凭证,建立与目标主机之间的连接。内网的这台跳板主机通常是一台已被攻陷的主机。在大多数情况下,攻击者会通过包含恶意附件的钓鱼邮件或恶意网站链接,攻陷第一台主机作为跳板。一旦攻击成功,攻击者通常会提升权限、提取存储在源主机中的凭证信息,开展后续的横向移动攻击。

金融企业网络和业务系统众多,网络拓扑一般比较复杂,大部分应用运行在内网中,少部分业务暴露在互联网中,图2-6是银行比较常见的业务系统。银行网络一般由广域网骨干网络、机构总部局域网骨干网络、分支机构局域网骨干网络构成一个整体的网络体系,这些骨干网络由总行、一级分行、二级分行、支行和各个网点组成。银行业务系统由网络设备、安全设备、前置机、终端机构成。由此可见,要完成内网的横向移动可从下面几点进行:

000

图2-6 银行业务系统

2.2.3 常见的攻击手段

当攻击者完成初步的准备阶段工作,了解完银行的基本网络结构、应用体系以及物理侦察后可通过以下这些比较常见的攻击手段入手,对目标进行渗透攻击。

1. 网络嗅探

任何东西都具有两面性,网络嗅探原本是管理人员用来掌握实时网络情况、测试网络性能、发现网络问题的一种技术,但是在攻击者手里,它可以用来做ARP欺骗、ARP攻击+网络嗅探、协议分析等。

(1)ARP欺骗。地址解析协议是一个位于TCP/IP协议栈中的网络层协议,负责将某个IP地址解析成对应的MAC地址,ARP攻击仅能在以太网(局域网如机房、内网、企业网络等)中进行。ARP攻击的方式较多,常见的有以下几种:仿冒网关攻击、仿冒用户攻击、泛洪攻击。

(2)ARP攻击+网络嗅探。当攻击者身处于局域网中,比如在攻入某台内网服务器的环境下时,往往利用ARP欺骗+网络嗅探组合攻击方式,便能够获取用户的敏感信息。

(3)协议分析。协议分析是指通过程序分析网络数据包的协议头和协议尾,从而了解数据在产生和传送过程中的行为。协议分析的工具包括对DNS、SMB、SSL、IPS/IDS的识别、VPN等,典型工具包括:

1)SMB工具。尝试创建IPC链接和admin链接,如果能成功地创立链接,就代表猜到了用户名和密码。它还可使用用户名和密码字典枚举尝试与目标IP/IP列表进行IPC与admin链接。

000

图2-7 使用SMB工具猜测用户名和密码

2)SMTP分析工具。smtp-user-enum可以通过请求目标主机枚举一些用户名和密码。

3)SSL分析工具。例如sslscan,其可扫描服务器SSL接受的加密方式、公钥等其他信息。

000

图2-8 使用SSL分析工具

000

图2-9

4)数据包分析工具。Wireshark是一个网络封包分析软件,能帮助使用者对网络行为有更清楚的了解。

000

图2-10 Wireshark软件

2. 命令执行

(1)系统命令执行。系统命令执行是指攻击者可操控如exec、system等执行系统命令的函数的参数,将输入篡改为恶意系统命令,从而进行系统命令执行攻击。当应用程序在调用这些系统命令函数执行系统命令的时候,如果将用户的输入直接作为系统命令的参数拼接到命令行中,同时又未过滤用户输入的情况下,就会出现命令执行漏洞。

bash远程命令执行漏洞(CVE-2014-6271)的原理:bash除了可以将shell变量导出为环境变量,还可以将shell函数导出为环境变量!当前版本的bash通过以函数名作为环境变量名,以“(){”开头的字串作为环境变量的值来将函数定义导出为环境变量。

(2)代码命令执行。在应用系统中,有时候会用到一些命令执行的函数,如php中system、exec、shell_exec等,当程序没有对用户输入的命令进行限制或者过滤不严导致用户可以执行任意命令时,就会出现代码命令执行漏洞。

(3)文件上传。文件上传漏洞是指攻击者利用服务器漏洞上传了一个可执行的脚本文件,并通过此脚本文件获得了执行命令的能力。这种攻击方式是最为直接和有效的,技术门槛较低。

3. 注入

(1)SQL注入。SQL注入是指攻击者在前端提交的请求参数中构造恶意的SQL语句,传入后台相关程序处理后在数据库中执行,从而达到非授权的增删改查数据库的目的。当攻击者发现此类漏洞后,一般都会对数据库中的敏感信息进行窃取、修改甚至是删除的操作。

SQL注入按参数类型可以分为两种:数字型和字符型。当注入点参数为整数时,属于数字型注入。当注入点参数为字符串时,属于字符型注入,需要引号来闭合。SQL注入按数据库返回结果可以分为三类:回显注入、报错注入、盲注,其中:

(2)XML注入。XML是用于标记电子文件使其具有结构性的标记语言,通常用来标记数据、定义数据类型,它是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。当XML允许引用外部实体时,攻击者可通过构造恶意内容,导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。

(3)XPath注入。XPath注入攻击是指利用XPath解析器的松散输入和容错特性,能够在URL、表单或其他信息上附带恶意的XPath查询代码,以获得权限信息的访问权并更改这些信息。XPath注入攻击是针对Web服务应用新的攻击方法,它允许攻击者在事先不知道XPath查询相关知识的情况下,通过XPath查询得到一个XML文档的完整内容。XPath是xml的路径语言,用于配置文件的查找。它的数据库就是XML文件。

4. 跨站类攻击

跨站类攻击也称为XSS跨站脚本(Cross Site Scripting,XSS),当目标网站目标用户浏览器渲染HTML文档时执行未预期的脚本指令,此时就发生跨站脚本攻击。通常分为三类:反射型跨站脚本、存储型跨站脚本和DOM型跨站脚本。

(1)反射型跨站脚本。反射型跨站脚本又称非持久性跨站脚本,它是指攻击者发送带有恶意参数的URL,当此URL地址被用户点开时,所包含的恶意参数即会被浏览器解析、执行,从而达到入侵的目的。它的特点是非持久化,必须由用户点击带有特定参数的链接才能触发。反射型跨站脚本的测试语句千变万化,这是由于大多数用户都会使用过滤器及部分安全产品来防范此类攻击,因此攻击者通常会以查看源代码的方式来构造不同反射性跨站脚本的语句。

(2)存储型跨站脚本。攻击者提交恶意脚本至服务器,由于服务器未过滤或者过滤不严而导致恶意脚本存储在服务器的存储介质中,当脚本调用该数据并输出至用户端浏览器等载体中进行解析时,就此触发该恶意脚本并且遭受攻击。由于该类型恶意数据的持久特性,因此称该漏洞为存储型跨站脚本。

(3)DOM型跨站脚本。DOM型跨站脚本与反射型跨站脚本、存储型跨站脚本不同,其差别在于DOM型跨站脚本代码不需要服务器为其解析响应,触发跨站脚本是依靠浏览器的DOM解析。DOM是指文档对象模型(Document Object Model),可以理解为JavaScript执行的输出页面,因此DOM型跨站脚本是由客户端直接触发执行的。

5. 中间人攻击

中间人攻击的思路就是劫持局域网中被攻击机器和服务器间的对话。被攻击机器和服务器表面上工作正常,实际上已经被中间人劫持。网站开发使用HTTPS传输协议时未对本地和服务器证书进行校验,导致攻击者可使用中间人攻击窃取和伪造数据。客户端和服务端通信时需交互大量数据,其中的密码、身份证号、Token、ID、配置信息等敏感信息在传输时若未经加密,攻击者便可通过中间人抓包等手段获取明文的敏感信息,导致个人及企业遭受不必要的损失。

6. 中间件缺陷攻击

中间件是提供系统软件和应用软件之间的连接,在应用框架如Web服务、面向服务的体系结构等框架中应用非常广泛,例如Apache的Tomcat,IBM的WebSphere,Oracle的WebLogic以及国内厂商的中间件产品。中间件的安全问题主要来源于两部分,自身由于设计缺陷而导致的安全问题,以及默认配置或错误配置导致的安全问题。

中间件自身缺陷的典型例子是Java反序列化漏洞,大多数的金融机构业务系统会使用Java开发,在Java开发中有一种机制是序列化和反序列化,用来将Java中的对象的状态加以转换,以方便轻松地传输或保存Java对象,ObjectInputStream类的readObject()方法是被设计用来进行Java对象的反序列化的,在正常情况下,数据流被反序列化后会得到预期的对象,但readObject()方法在执行时并没有对输入数据流做安全性校验,如若被选序列化的数据是一组被攻击者恶意构造的序列化数据流,那么就会发生非预期的结果,虽然程序会抛出Exception异常,但事实上这个对象已经被创建出来,构造函数已经被调用执行了,这就为远程命令执行提供了可能。通过Java反序列化漏洞,攻击者可用来攻击主流中间件,包括WebLogic、WebSphere、JBoss等,实现远程代码执行。

配置错误通常包括默认口令或弱口令、访问目录未限制、分配权限过大等。以开源中间件Tomcat为例,Tomcat支持远程部署,通过访问管理地址远程上传WAR格式的文件,便可以发布到网站,方便开发人员部署代码。另外,管理地址如使用默认口令或弱口令,攻击者可远程上传木马,控制服务器。

7. 配置类攻击

(1)协议配置。协议配置主要有两种方法。

1)HTTP方法。除标准的GET和POST方法,HTTP请求还使用其他各种方法。许多这类方法主要用于完成不常见与特殊的任务。如果低权限用户可以访问这些方法,他们就能够以此向应用程序实施有效攻击。

2)WebSocket测试。WebSocket是一个能够给单TCP连接提供全双工信道的HTML5特性。它的持续性连接功能,使得构建B/S模式的实时应用成为可能。WebSocket常常用在那些带有聊天功能的WEB应用上。不幸的是,WebSocket相关的安全漏洞也逐步被披露出来,其中最容易发生的就是跨站点WebSocket劫持漏洞。

(2)组件配置。组件配置主要面临4个漏洞。

1)默认凭证。默认凭证漏洞是指组件使用默认配置运行所带来的安全问题。例如很多中间件默认配置会存在默认的管理员登录密码等。

2)目录遍历。对于安全的Web服务器来说,所承载的Web内容应当进行恰当的访问控制,这是极为关键的。目录遍历是HTTP存在的一个安全漏洞,它使得攻击者能够访问受限制的目录,并在Web服务器的根目录以外执行命令。

3)PaddingOracle测试。PaddingOracle针对的是加密算法中的CBCMode,当加密算法使用CBCMode时,如果满足攻击条件,那么利用PaddingOracle能够在不知道密钥的情况下,解密任意密文,或者构造出任意明文的合法密文。

4)SSL/TLS加密算法测试。安全套接层(Secure Sockets Layer,SSL)及传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密,是一个被广泛使用的加密协议。SSL/TLS协议加密算法RC4存在漏洞。由于通过“受戒礼”攻击,攻击者可以在特定环境下只通过嗅探监听就可以还原采用RC4保护的加密信息中的纯文本,导致账户、密码、信用卡信息等重要敏感信息泄露,并且可以通过中间人攻击(Man-in-the-middle)进行会话劫持。

(3)策略配置。策略配置主要面临4个漏洞。

1)弱密码规则测试。通过在用户注册页面查看分析密码规则,攻击者可根据系统密码强度校验机制的不完善来破解用户账号密码。例如部分网站密码规则校验不完善,用户注册时可使用弱口令作为密码,存在安全隐患。

2)错误代码分析。尝试访问不存在的页面,构造一些恶意或者非恶意的字符串提交,获取服务器返回错误信息,错误信息中可能会泄露网站目录、网站容器等信息,攻击者可通过收集这些信息来制定下一步攻击策略。

3)代码异常处理攻击。代码的异常处理,是指代码运行异常后导致错误处理行为。代码异常处理出现的原因主要是由于开发人员对代码运行出现异常后的处理不当造成的。攻击者可提交敏感参数致使程序抛出异常,某些异常页面可能导致一些敏感信息的泄露。

4)敏感信息泄露。敏感信息是指不为公众所知悉,具有实际和潜在利用价值的信息。攻击者通常会通过分析各个请求和响应数据,查找敏感数据,收集网站的敏感信息以制定下一步的攻击策略。

(4)账户配置。账户配置主要面临3个漏洞。

1)账户恶意锁定。攻击者提交大量异常操作数据造成正常账户无法登录。例如很多网站有登录次数限制,如果账号密码连续输入错误超过指定的次数,就会锁定该账号一定的时间。

2)登出测试。登出测试是指用户正常退出系统后,攻击者尝试使用上次登录的cookie做登录测试,验证是否能登录成功。部分网站账号登出后仅设置了新的cookie,而没有将之前的cookie做失效处理,导致利用旧cookie仍能成功登录。

3)用户账户唯一性测试。用户账户唯一性测试是指攻击者尝试使用相同的账号注册多个用户,观察是否能注册成功。

8. 业务逻辑攻击

在业务应用开发过程中,开发者未对数据、流程进行保密性、完整性以及可用性校验,攻击者通过篡改参数、绕过流程校验步骤等方式实现对业务逻辑的攻击,导致资金损失、隐私泄露、非授权访问等业务问题。

(1)数据篡改。数据篡改主要分为3种形式。

1)金额数据篡改。抓包修改金额等字段,例如在支付页面抓取请求中商品的金额字段,修改成任意数额的金额并提交,查看能否以修改后的金额数据完成业务流程。

2)商品数量篡改。商品数量篡改是指攻击者按照正常流程下单后,抓取有商品数量的数据包,修改商品数量为负值,购买后支付金额为负值,直接从网站运营者处获得正值金额,从而导致网站运营者的直接经济损失。

3)最大限制突破。很多时候,开发人员为了提升服务器效率,会将一些流程设计在客户端完成校验,如字符输入的长度、字符类型等。当这些限制在客户端进行的时候就可能会产生一系列的安全问题,攻击者可以修改客户端验证字段,轻松绕过安全设置的限制。

(2)密码找回漏洞。密码找回漏洞主要分为以下13种形式。

1)用户凭证暴力破解。用户凭证暴力破解是指网站未对用户登录次数做限制,导致攻击者可以使用账户密码字典不断尝试登录系统。

2)返回凭证。返回凭证是指验证码输出在客户端或者cookie中,导致攻击者可以直接从客户端代码查看验证码。

3)邮箱弱Token。Token就是令牌,最大的特点就是随机性、不可预测,攻击者很难猜测。Token的作用一般在两个地方,一是防止表单重复提交,二是anticsrf攻击,两者在原理上都是通过SessionToken来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到Session中,然后将Token发给客户端,下次客户端提交请求时,Token会随着表单一起提交到服务器端。

邮箱弱Token是指邮箱登录或者其他一些需要防止恶意提交的地方采取Token防护机制,但是因为邮箱服务器返回到客户端的Token可以猜测或者服务端未对返回的Token校验造成Token防护机制形同虚设。

4)用户凭证有效性。服务端发送的验证凭证无效导致攻击者可以直接修改任意用户的密码。

5)重新绑定。很多网站为了加强用户账户的安全会采用多因素认证,最常见的办法就是通过绑定手机号或者绑定邮箱的方式实现;但是部分网站手机或邮箱绑定业务程序存在缺陷,致使攻击者可以修改绑定的手机号,攻击者修改绑定的手机号码后可以按照正常流程找回密码或者越权访问绑定手机号的相关信息。

6)服务器验证。服务端发送的验证凭证可控导致攻击者可以修改他人的密码。

7)用户身份验证。部分网站身份校验不严格,校验短信验证码时使用cookie校验,而不会校验请求中的手机号,这样导致攻击者可以把手机号改为目标用户手机号,从而重置任意用户密码。

8)密码找回。密码找回功能本意是设计给那些忘记密码的用户,以便他们能够找回自己的密码。找回密码的步骤一般是:输入用户名→验证身份→重置密码→完成。但攻击者通常会尝试跳过验证身份环节、找回方式环节,直接跳到重置密码界面。

9)本地验证。本地验证是指重置密码过程中,在本地验证服务器返回的信息来确定是否执行重置密码请求,但是返回的信息中有可控内容,攻击者可通过修改可控内容控制重置流程。

10)注入。通常“找回密码”的环节,某些参数过滤不严会导致存在SQL注入。

11)Token生成。一个正常的找回密码流程应该遵循以下步骤:填写找回账号→选择通过邮箱找回→服务器发送验证码到邮箱→邮件中给出一串链接,链接中包含找回账号及一串Token进行校验,此时再点击链接即可进行密码找回。攻击者通常会对此处的Token加以利用。网站本是想通过Token校验找回密码链接是否正确,但是一旦Token生成不够复杂,便容易被攻击者猜测到,导致了任意账号密码重置。

12)注册覆盖。注册覆盖是指在用户注册时没有校验用户是否注册过,当注册相同用户名的账号时,覆盖了之前的账号信息。

13)Session覆盖。Session实际上是一个特定的时间概念,代表浏览器与服务器的一次会话过程。例如在我们浏览百度网站的时候,从打开网站到关闭网站的时间段就是一个Session。

(3)验证码突破。验证码突破的方式有以下4种。

1)暴力破解。验证码暴力破解是指根据网站验证码变化规律生成对应的字典表,字典表包括了所有验证码可能的情况范围,并对在此范围内的所有可能情况逐一验证,直到全部验证完毕。很多网站验证码时效设置较长,且没有对验证码频率做限制导致了验证码暴力破解。

2)时间次数突破。部分网站验证码没有过期处理,导致攻击者可以反复使用之前的验证码从而绕过验证码限制。抓取携带验证码的数据包不断重复提交,例如在某网站投诉建议页面输入要投诉的内容信息及验证码参数,此时抓包重复提交数据包,查看历史投诉中是否存在重复提交的参数信息。

3)回显测试。部分网站验证码输出在客户端,攻击者可通过抓包获取服务端返回的验证码。当客户端有需要和服务器进行交互,发送验证码时,使用firefox浏览器,通过按F12调出firebug即可看到客户端与服务器进行交互的详细信息。

4)绕过测试。绕过测试是指篡改或者清空验证码,验证该步骤验证码是否可以绕过。某网站通过验证码对暴力破解做了防范,当登录一个账号密码错误时,再次登录就需要填写验证码。

(4)授权攻击。授权攻击的方式主要有以下两种。

1)未授权访问。非授权访问是指用户在没有通过认证授权的情况下,能够直接访问需要授权才能访问到的页面或文本信息。

2)越权测试。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据未进行权限的判定,越权可分为垂直越权、水平越权:

(5)业务流程乱序。业务流程乱序的方式主要是程序执行缺陷。开发者进行程序开发时设计的网站逻辑通常是这样:首先进行A过程→其次进行B过程→再次进行C过程→最后进行D过程。程序执行缺陷是指攻击者能够修改程序执行的流程,例如从B过程直接进入D过程,绕过C过程的攻击手段。如果C是支付过程,那么用户就绕过了支付过程而买到了一件商品。如果C是验证过程,那么用户就绕过了验证过程直接进入网站程序。

(6)业务接口调用。业务接口调用的方式主要有以下3种。

1)恶意注册。一般网站开发者为了保证注册用户的真实性,往往都会要求验证手机、验证邮箱,通过发送验证码的方式来保证注册账号并非僵尸账号。但是攻击者会利用部分网站验证码功能可被绕过的缺陷,进行恶意注册,导致系统新增大量无用数据。

2)短信炸弹。短信炸弹是一种类似于DDoS的攻击方式,攻击者利用网站发送短信功能未做限制,长时间不间断对用户的手机发送短信,导致手机瘫痪。很多网站仅在前端通过JS校验时间来控制短信发送按钮,但后台并未对发送次数做任何限制,导致攻击者可通过重放包的方式大量发送恶意短信。

3)短信内容编辑。短信内容编辑是指攻击者通过抓取数据包分析,发现参数如sendData/inserttxt的内容由客户端控制,攻击者可将短信内容修改为任意想要发送的内容进行短信欺诈。

(7)时效绕过安全。时效绕过安全的方式主要有以下两种。

1)时间刷新缺陷。时间刷新是指针对那些需要每隔一段时间定时刷新的业务,由于时间刷新控制代码存储在客户端,导致攻击者可以将时间关联变量重新设置成1s或者更小的缺陷。

2)时间范围攻击。时间范围测试是指针对带有时间限制的业务,修改其时间限制范围,例如在某项时间限制范围内查询业务,修改含有时间明文字段的请求并提交,查看是否能绕过时间限制完成业务流程。例如:通过更改查询手机网厅的受理记录的month范围,可以突破默认只能查询6个月记录的限制。

9. 拒绝服务攻击

拒绝服务攻击(Denial of Service,DoS)是以破坏目标系统业务连续性为目的的攻击行为,它通过发送海量的有效或无效的数据报文,致使目标网络出口过载拥堵,或是使得目标系统超负载运作、崩溃,无法正常对外提供服务。

DoS的攻击原理并不复杂,攻击者利用向目标系统发送大量的虚假源地址报文,使得目标系统接收后占用一定的系统资源等待后续报文,由于攻击报文的源地址是伪造的,因此目标系统不可能接收到回应,系统资源便会一直得不到释放,从而导致系统资源耗尽,无法提供正常业务的处理与响应。常见的DoS攻击有SYNFlood、UDP洪水攻击、Ping洪流攻击、Ping of Death攻击、TearDrop攻击、Land攻击等。

SYNFlood利用服务器的连接缓冲区和特殊程序设置TCP的Header,向服务器不断成倍发送具有只有SYN标志的TCP连接请求。当服务器接收之后,判断为均是没有建立起来的连接请求,于是给这些请求建立会话,排到缓冲区队列中。直到发送的SYN请求超过了服务器的缓冲区,服务器便不再接受其他的合法请求。

(1)UDP洪水攻击。攻击者利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次的UDP连接,回复地址指向开着Echo服务的一台主机,这样就生成在两台主机之间存在很多的无用数据流,这些无用数据流就会导致带宽的服务攻击。

(2)Ping洪水攻击。由于在早期的阶段,路由器对包的最大尺寸都有限制。许多操作系统对TCP/IP堆栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64KB上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接收方死机。

(3)TearDrop 攻击。泪滴攻击利用在TCP/IP堆栈中实现信任IP碎片中的包的标题头所包含的信息来实现自己的攻击。IP分段含有指明该分段所包含的是原包的哪一段的信息,某些TCP/IP(包括service pack 4以前的NT)在收到含有重叠偏移的伪造分段时将崩溃。

(4)Land攻击。Land攻击原理是用一个特别打造的SYN包,它的原地址和目标地址都被设置成某一个服务器地址。此举将导致接收服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接。被攻击的服务器每接收一个这样的连接都将保留,直到超时。不同操作系统对Land攻击反应不同,许多Unix将崩溃,NT变得极其缓慢(大约持续5分钟)。

(5)Smurf攻击。一个简单的Smurf攻击原理就是:通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行攻击。最终导致该网络的所有主机都对此ICMP应答请求做出答复,从而造成网络阻塞。它比Ping of Death的流量高出1个或2个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方崩溃。

DoS攻击经常被用来瘫痪目标系统,同时它也能用来干扰部分安全防御系统,使其失去辨识能力,其攻击力度强、威胁巨大、反攻击成本高,因此成为目前攻击者最喜欢的攻击手段之一。

随着系统性能的飞速发展,攻击者原本使用的单一的攻击程序已无法造成瘫痪高性能的目标系统的目的,这时攻击者会扩大攻击源的规模,利用诸如僵尸网络那样庞大的受控系统内大量的信息节点,同时启动攻击程序,制造海量的攻击报文像洪水一般涌向目标系统,即使目标系统的性能再强大,也会因为资源有限而力不从心。这样的新型攻击方式被称为DDoS。

DDoS是在DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式进行,而DDoS则可以利用网络上已被攻陷的计算机作为“僵尸”主机针对特定目标进行攻击。所谓“僵尸”主机,即感染了僵尸程序(即实现恶意控制功能的程序代码)的主机,这些主机可以被控制者远程控制来发动攻击。在“僵尸”主机量非常大的情况下(如10万甚至更多),可以发动大规模DDoS攻击,其产生的破坏力是惊人的。

2.3 收获阶段

从近年来的信息安全攻击案例分析来看,攻击者入侵的目的越来越呈现出一种趋利性,毫无目的的炫耀性攻击行为已然很少了,取而代之的是更多以商业利益、政治为目的的针对性攻击,针对金融行业的攻击目的大多都为前者。因此在攻击者入侵成功后,通常会为达到预先设定的目的 [7] ,开始动手“收获”。

2.3.1 潜伏等待时机

高明的攻击者在攻击阶段结束后,如果并未达到自己的预期,他们有足够的耐心等待,直至获取自己想要的情报。潜伏性是APT攻击的一个高级特性,在很多震惊安全界的攻击案例中,攻击者往往潜伏至少数月乃至数年。

著名的超级工厂病毒攻击为人所知主要源于2010年伊朗布什尔核电站遭到Stuxnet蠕虫攻击的事件曝光。遭遇超级工厂病毒攻击的核电站计算机系统实际上是与外界物理隔离的,理论上不会遭遇外界攻击。坚固的堡垒只有从内部才能被攻破,超级工厂病毒也正充分地利用了这一点。超级工厂病毒的攻击者并没有广泛地传播病毒,而是针对核电站相关工作人员的家用电脑、个人电脑等能够接触到互联网的计算机发起感染攻击,以此为第一道攻击跳板,进一步感染相关人员的移动设备,病毒以移动设备为桥梁进入“堡垒”内部,随即潜伏下来。病毒很有耐心地逐步扩散,一点一点地进行破坏。这是一次十分成功的APT攻击,而其最为恐怖的地方就在于极为巧妙地控制了攻击范围,攻击十分精准。

潜伏等待时机的前提是攻击者已经有计划地主动在目标某处设置了陷阱或者通过技术和非技术手段获得对应漏洞以待一举攻破系统。

常规情况下,在潜伏期间攻击者一般存在下列行为:

1. 传播

攻击者向工作人员发送恶意邮件、信息,邮件和信息包含一些木马病毒,并通过木马病毒控制目标工作人员个人电脑(PC)、工作机、手机等设备,通过钓鱼方式获取目标账号密码、IP信息、个人敏感信息、PC或者移动设备信息、第三方敏感信息。

2. 后门

攻击者通过在已拥有权限的应用或者主机中安装后门,例如键盘记录、摄像头监控,方便维持控制已拥有权限。

3. 内网嗅探

攻击者可通过内网嗅探方式尝试获取内网环境中明文或弱密文传输的系统用户名及其密码。

4. 网络信息收集

攻击者在内网进行网络信息的进一步收集,一般针对以下信息:

5. 购买或挖掘相关漏洞

攻击者通过挖掘目标服务器、应用、中间件漏洞,或是查找管理漏洞通过Tor网络等相关场所购买对应漏洞。

2.3.2 窃取价值数据

企业的核心价值数据一般蕴含于海量数据之中,想要通过远程渗透方式准确定位并找出目标价值数据,难度相当大。当然,攻击者也不会考虑将数据全部“送”出来,因为这样既会耗费大量的时间,同时也会占用目标系统大量的网络资源,触动目标监控阈值告警,引起目标人员警觉,容易暴露。

为了达到目的,以尽可能低的代价窃取到最精准的价值数据,攻击者通常会选择目标内部的一台并不起眼的服务器资源作为“数据中转站”,将渗透获取到的分散数据错峰发送给中转站,由中转站进行过滤筛选,将可能有价值的数据进行加密并分段打包,通过目标系统内的后门程序,与攻击者部署的用来收集价值数据的服务器之间建立隐秘通道,进行数据传出,通常这条隐秘通道会使用HTTPS这种常见的、加密的协议,这样既不会引起目标人员注意又能使得安全分析设备无法识别传输内容。

当这些数据被传出后,攻击者会进一步对其筛选与提取,最终成功窃取到目标价值数据,以达到其攻击目的,获得利益报酬。

从上节的潜伏动机可以看到其潜伏目的为权限及信息数据,其窃取的有价值信息一般情况下包括以下几个部分:

2.3.3 价值拓展

信息安全攻击收获完成,攻击者的目的就已达成,通常攻击者会选择攻击退出,进行扫尾清理工作。但也有攻击者会继续驻留在目标企业内部,拓展攻击价值,最大化攻击成果,例如可以伺机寻求进一步的有用信息,或者是转变目标系统为其所用。

1. 掠夺敏感信息

驻留于目标系统内的后门会继续时刻保持与攻击者服务器的隐秘通信,在防御体系不健全的目标企业中,攻击者会进一步行动,提升权限获得系统更多的控制权,例如攻击者可感染监控系统获取音视频资源,入侵门禁系统获取人资情报,查找共享目录、源代码库或是备份系统等,这些数据和情报并非本次攻击目标的价值数据,但对攻击者来说可能会成为其下次攻击的利用素材,或是可被直接变现的资源。

2. 僵尸网络

攻击者亦可以使用已经感染恶意代码的系统,利用同样的口令破解漏洞等方式感染到非核心区域的系统,并且利用横向渗透,逐渐感染同网段内存在漏洞或安全隐患的系统,将其组织成僵尸网络(Botnet),统一受攻击者部署的控制节点调用,这样受感染的节点即成为可被攻击者操控的“肉鸡”,在需要时被攻击者远程唤醒,实施其他方面的网络犯罪活动,构建能为攻击者所用的“僵尸网络”。

“僵尸网络”是指攻击者利用某种手段获取大量集群权限后将肉鸡集中在某个控制程序上,以便发起下一步攻击,比如DoS攻击、恶意邮件、秘密窃取信息、滥用资源、挖矿等。常见的“僵尸网络”攻击工作过程包括传播、加入和控制三个阶段。

(1)传播阶段。一个有效的“僵尸网络”首先需要的是具有一定规模的被控计算机(通常被称作“肉鸡”),而这个规模是逐渐随着采用某种或某几种传播手段的僵尸程序的扩散而形成的,在这个传播过程中有如下几种手段:

1)主动攻击漏洞。其原理是通过攻击系统存在的漏洞获得访问权,并在Shellcode执行bot程序注入代码,将被攻击系统感染成为僵尸主机。属于此类的最基本的感染途径是攻击者手动地利用一系列黑客工具和脚本进行攻击,获得权限后下载bot程序执行。攻击者还会将僵尸程序和蠕虫技术进行结合,从而使bot程序能够进行自动传播,著名的bot样本AgoBot就是实现了bot程序的自动传播。

2)邮件病毒。bot程序还会通过发送大量的邮件病毒传播自身,通常表现为在邮件附件中携带僵尸程序以及在邮件内容中包含下载执行bot程序的链接,并通过一系列社会工程学的技巧诱使接收者执行附件或点击链接,或是通过利用邮件客户端的漏洞自动执行,从而使得接收者主机被感染成为僵尸主机。

3)即时通信软件。利用即时通信软件向好友列表中的好友发送执行僵尸程序的链接,并通过社会工程学技巧诱骗其点击,从而进行感染,如2005年初爆发的MSN病毒采用的就是这种方式。

4)恶意网站脚本。攻击者在提供Web服务的网站中在HTML界面上绑定恶意的脚本,当访问者访问这些网站时就会执行恶意脚本,将bot程序下载到主机上,并被自动执行。

5)特洛伊木马。伪装成有用的软件,在网站、FTP服务器、P2P网络中提供、诱骗用户下载并执行。

通过以上几种传播手段可以看出,在僵尸网络的形成中传播方式与蠕虫和病毒以及功能复杂的间谍软件很相近。

(2)加入阶段。在加入阶段,每一个被感染的主机都会随着隐藏在自身上的bot程序的发作而加入到僵尸网络中去,加入的方式根据控制方式和通信协议的不同而有所不同。在基于IRC协议的僵尸网络中,感染bot程序的主机会登录到指定的服务器和频道中去,在登录成功后,在频道中等待控制者发来的恶意指令。

(3)控制阶段。在控制阶段,攻击者通过中心服务器发送预先定义好的控制指令,让被感染主机执行恶意行为,如发起DDoS攻击、窃取主机敏感信息、完成自我更新等。

2.4 扫尾阶段

当攻击者的攻击目的达成,如成功窃取到了有价值的数据,或破坏了目标的业务连续性后,他便准备退出。为了阻止受害目标追责,避免受害目标通过可能的信息追溯其来源,攻击者通常会在扫尾阶段将系统存留的访问足迹擦除,甚至会对目标系统进行一定程度的破坏。

2.4.1 痕迹清除

金融机构的业务系统通常都会记录有日志,通常包括系统网络日志、系统审计日志、安全日志、会话日志、应用日志、错误日志等。一个健全的应用系统通常会将到访者的每一个行为记录进日志系统中,系统运维人员可以汇总全部的系统日志,进行关联分析,以便了解系统的健康状况,排查可能的风险隐患。正是这样简单的日志系统,可以在受害目标未来取证时,提供网络犯罪责任认定中最有利的证据。攻击者在系统中的一举一动,都会留下足迹,它就成为攻击者入侵的唯一“目击证人”。因此,攻击者在退出系统之前,通常不会忽略自己留下的“尾巴”。

痕迹清除是攻击者在扫尾阶段的惯例,他们会删除之前为入侵阶段准备的木马、病毒,还原系统的状态,恢复权限并清除入侵时间点内与之有关的系统日志,将一切足迹抹去。

2.4.2 破坏目标

有些攻击者在结束整套攻击流程后甚至还会破坏目标系统的网络、程序等,可能的原因如下:

当然,并不是所有的足迹都可以被轻松抹去,由于安全技术的提升,攻击者可能还是会留下一些痕迹,诸如旁路镜像的分析系统、使用了加密加锁技术的日志收集系统等。攻击者在面对这种不得已将要暴露的情况时,通常会选择暴力破坏系统,使用获得的超级权限让系统彻底瘫痪,将关键性的证据抹除,导致证据不充分,以逃避法律追责。这类做法较为极端,对于未做好灾难备份的目标企业来说,造成的负面影响很大。另外,对于以破坏为目的进行信息安全攻击的攻击者来说,目的达成这个环节也应该属于收获阶段。 8gkZ1u51MF4/xxOT3/bc5vQm3BzyE+VCfVQFr3T1WrYhfx9E3tLJqy+ROhXch2El

点击中间区域
呼出菜单
上一章
目录
下一章
×