近几年,我们的互联网生活中多了一词——'互联网金融'。将钱存进余额宝,用微信支付都是在参与着互联网金融活动。互联网金融不是互联网和金融业的简单结合,而是在实现安全、移动等网络技术水平上,被用户熟悉接受后,适应新的需求而产生的新模式及新业务。互联网金融的崛起对传统银行业发展带来了巨大冲击,新时期背景下传统银行业强化创新发展,提出'电子银行'的概念,随着银行业对计算机网络系统的依赖程度增加,金融产品不断创新,网点不断增加,安全管理问题也变得越来越重要,安全是电子银行业务发展的生命线。
银保监会在《电子银行业务管理办法》中要求银行不长于两年进行一次电子银行系统安全评估。电子银行安全评估一般从电子银行系统入手,分别针对安全管理、技术安全、业务安全三个层面进行剖析。在技术安全层面可通过多种技术手段进行安全评估,其中渗透测试是重要手段之一。
渗透测试对于确保安全至关重要,它是企业从外部角度测试其网络安全性的一种方式。渗透测试人员在合法合规的条件下进行渗透测试,在此过程中毁坏系统软件并浏览本不该获得的数据信息。测试人员模拟黑客攻击目标系统,可以帮助企业发现其网络哪里存在安全故障。
渗透测试
渗透测试是一项在计算机系统上进行的授权模拟攻击,旨在对其安全性进行评估。简言之,整个渗透测试的过程就是渗透人员模拟恶意黑客的攻击手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的报告,可以清晰知晓系统中存在的安全隐患和问题。
测试基本流程
一般来说所有的测试方法可根据测试人员对目标系统信息的了解程度分为:黑盒、白盒和灰盒测试方法。以黑盒测试方法为例,测试的基本流程如下图所示,其中信息收集是整个渗透测试最重要阶段之一,可让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间,通常这个阶段占据整个渗透测试时间的40%~60%。
1. 目标定位
这个阶段主要是确定渗透测试的测试计划、范围、边界和目标。
2. 信息收集
这个阶段主要是尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。收集的方法包括公开来源信息查询、Google Hacking、社会工程学等。主要收集以下几类信息:
(1)收集域名信息
whois 查询:标准的互联网协议,可用于查询网络注册信息、注册的域名、IP 地址等信息。目前有很多网页接口简化的线上查询工具,可以一次向不同的数据库查询,如 https://whois.chinaz.com 等。
备案信息查询:国家信息部对网站的一种管理,为了防止在网上从事非法的网站经营活动的发生,如天眼查 http://tianyancha.com。
(2)收集敏感信息
在互联网上查询与目标网站有关的任何信息,如 Google 是一款强大的搜索引擎,渗透者可以构造特殊的关键字语法来搜索互联网上的一些敏感页面、敏感目录、网站内可下载的文件、可能出现的 sql 注入点和文件上传点、未授权访问页面等。
(3)收集子域名信息
在线子域名收集:比较常见的在线子域名搜索(爆破)的网站有:http://z.zcjun.com/、在线子域名查询 https://phpinfo.me/domain/ 等。
利用工具:扫描工具有 oneforall、layer 子域名挖掘机、SubDomainsBrute 等。
(4)收集端口常用信息
一个网站可能会开放多个不同的端口,渗透者可以通过同一网站的不同端口进行测试,常见的如 SSH 服务端口号 22 可能存在弱口令暴力破解、HTTP 端口 80 是常见的 web 漏洞、MySQL 数据库端口 3306 可能存在弱口令暴力破解、Redis 数据库端口 6379 可能存在 Redis 未授权访问漏洞。端口扫描方法可分为在线端口扫描和利用工具扫描,其中扫描工具有 nmap 和 masscan,在线端口扫描网站有 http://tool.cc/port/、http://coolaf.com/tool/port 等。
(5)指纹识别
是指通过关键特征,识别出目标的 CMS 系统、服务器、开发语言、操作系统、CDN、WAF 的类别版本等。在渗透测试中,只有识别出相应的 web 容器或 CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作,常见的网站指纹识别工具有 whatweb 等。


