1研究背景
近年来,国家对网络信息安全的重视程度日益提升,2012年,国务院发布《关于大力推进信息化发展和切实保障信息安全的若干意见》(国发[2012]23号)提出建设我国网络与信息安全保障体系的要求,十八大报告中19处提及信息技术与信息安全,并提出“健全信息安全保障体系”的目标。在此大背景之下,基础电信企业和增值IDC/ISP企业作为互联网建设和接入的第一主体,承担起信息内容安全防护及溯源定位的安全责任。2012年,工信部电管局发布《工业和信息化部关于进一步规范因特网数据中心业务和因特网接入服务业务市场准入工作的通告》,宣布恢复跨地区IDC、ISP许可申请,并在申请实施方案中明确要求新申请企业需建设信息安全管理系统,具备基础数据管理、访问日志管理、违法违规网站及违法信息发现处置等技术能力。2013年,基础电信企业责任制考核中加入了移动上网日志留存与IDC/ISP信息安全管理系统建设相关考核指标。伴随着基础企业责任制考核、IDC/ISP企业准入/年检实质性评测工作的开展,信息安全的测试工作量也迅速上升,信息安全测试技术手段的建设与评测要求日益迫切,根据测算在移动上网日志留存系统测试中,每种上网方式拨测量约1.1万次,针对IDC/ISP信安管理系统测试,每处局址EU拨测量约2万次,而在某些违法信息监测效果评估项目中,一轮测试的拨测量就超过24万次,一年中累计拨测量达到了数百万次。为配合相关考核及准入评测工作,迫切需要开发和完善稳定、高效、可靠的移动应用拨测工具套件,以便提高有关信息安全技术系统/设备的现网技术测试效率,规范拨测操作、简化评测实施难度,为此我们根据移动上网日志留存系统、IDC/ISP信息安合移动网络业务特点,针对互联网上主流应用协议及应用场景进行了分析,自主研发了具备HTTP、HTTPS、FTP、SMTP等11种公开协议、基于TCP和UDP的2种私有协议的的拨测套件。
2系统设计及功能说明
2.1系统功能简介
本文所述信息安全综合拨测工具指的是具备用户网络行为模拟,具备各类网络协议拨测,用于验证企业日志留存准确性、违法信息处置有效性的综合拨测系统。
2.2系统设计框架
本项目研究内容主要是拨测系统的各功能模块实现,根据现有测试需求,分为移动业务拨测工具、桌面业务拨测工具、服务端业务参考网站及辅助模块四个部分,框架示意图如图1所示。本项目研究内容将主要围绕上述模块的应用协议设计及实现、拨测方案设计及实现、测试结果统计及报告导出等实现具体功能。
2.3功能模块说明
2.3.1移动业务拨测工具本模块实现移动业务访问和用户行为模拟,在终端选型中主要考虑可靠性强,可编程行完善,能主流厂商量产便携终端、支持多种移动制式(2G/3G/4G)。支持Wi-Fi、支持USB及扩展存储,并具有主流操作系统,能便捷地开发移动终端应用,操作系统应支持多种硬件,经过筛选,最终确定了An-droid操作系统,并考虑到制式支持全面等问题,优先选取全网通终端。软件功能上,拨测工具开发具备如下多种功能。•支持多种拨测协议(HTTP、FTP、SSH、SMTP、POP3、IMAP、SMTPS、IMAPS、DNS、NTP、SNMP及自定义端口的拨测)。•支持代理拨测(HTTP代理、Socks代理),能通过代理协议进行HTTP拨测。•支持数据对比,能支持大小写敏感的文件列表匹配,支持几万条URL直接对比。•支持多线程拨测,能根据CPU核数和网络环境进行自动调整。•支持用户行为定义,能配置时间间隔,定义同一TCP流中是否进行多次HTTP请求。•能定义HTTP请求的UA信息。•自定义超时配置,能根据网络环境定义HTTP请求及响应的超时信息。•项目管理,支持以项目为单位,对拨测结果进行统计、导出。•报告导出,支持用户拨测记录按照指定格式导出测试记录报告。•地理位置识别,能通过GPS和网络自动定位当前拨测地点。•手机号码识别,能自动识别SIM卡中的手机号码,对于不能识别的SIM卡,支持以IMSI为标识符的手动管理。•服务端同步管理,支持URL远程下载,支持URL远程上传。•自动更新,支持云端自动检测软件版本,支持自动下载更新。•错误反馈,支持在程序崩溃后自动将错误日志提交远程服务器,支持错误后自动重启。•授权管理,支持机器码相关的授权管理,支持远程授权验证。开发的UI界面摘选如图2所示。2.3.2桌面业务拨测工具本模块实现桌面业务访问和用户行为模拟,在终端选型中主要考虑可编程性完善、便携性强,具有主流操作系统,能便捷的开发桌面应用程序,主流厂商量产便携终端、支持Wi-Fi、支持USB及扩展存储,通过USB扩展移动上网功能。功能上拨测工具与移动业务拨测工具类似,不同之处在于桌面业务拨测工具性能更强,能具备支持高并发、大流量的拨测能力,且能支持代理验证功能。开发的UI界面摘选如图3所示。2.3.3服务端业务参考网站本模块配合拨测工具实现服务端业务系统模拟,设计中主要考虑系统需具备可靠性,能承担大压力的业务会话处理,具备可扩展性,具备丰富的应用接口,最终选定用PHP下的bootstrap框架、Python下的Tornado框架以及MySQL实现服务端业务参考网站。功能上支持如下功能。•多种协议响应回显功能(HTTP、FTP、SSH、SMTP、POP3、IMAP、SMTPS、IMAPS、DNS、NTP、SN-MP及自定义端口的回显)。•支持日志查询,包括各类协议,各个字段查询。•支持拨测记录统计,可按单位和终端两个维度统计用户的拨测工作量及拨测所在网络。•支持各类管理操作,具备客户端注册管理、客户端校验回显、公网URL分配、企业导出URL管理、APK应用版本升级管理、代理服务器信息管理、应用崩溃日志管理。业务系统示意图如图4、图5所示。2.3.4辅助模块本部分主要包括业务爬虫、拨测列表筛选器和代理服务器三个组成部分,具体说明如下。•业务爬虫爬虫编写较为复杂,为此我们考虑其编写框架应具有可扩展性,具备丰富的编程扩展库,具备丰富的程序接口;此外需具备高效性,具备高效爬取互联网上业务URL的能力;考虑到可靠性,具备在服务器上持续运行的稳定性,最终我们选用了Python下的Scrapy爬虫框架,并发情况下1天可爬取500万条公网URL,能高效的实现业务上对URL的爬取。•拨测列表筛选器拨测列表筛选器需要是对业务爬虫爬取的URL进行筛选,能从大量的URL中挑选出实际可用的URL,主要功能需包括去除重复URL、去除非法URL(含非法字符)。考虑到测试的高效性,我们筛选中还会针对性的帅选URL目的文件较小的测试样本,以便在测试中提升测试效率,并节约流量。•代理服务器代理服务器目前Linux平台下具备相关成熟应用,我们将其整合到参考网站中,功能具备HTTP、HTTPS、Socks、DNS、FTP等各种协议代理,考虑到通用性,我们选用了3Proxy作为代理服务器应用,但在应用中我们发现3proxy对HTTP的PATH支持有限,部分情况下会出现代理URL转发错误,最终针对HTTP代理我们选用了更为成熟的squid3作为代理应用服务器。辅助模块的运行示意图如图6所示。
3项目难点、创新性及亮点
项目研究过程中我们发现存在若干难点,并创新性的提出了针对性解决方案,列举如下。一是如何在信息安全拨测中获取网络日志信息。测试需要源IP、源端口等详尽数据,但仅在客户端中无法得到上述信息,只有服务端才能获取相关数据,而标准的网络应用协议并不会传输上述网络日志信息,因此本项目在协议实现中,基于现网网络协议进行了流程改造,不仅能实现网络应用协议交互,还能传输测试所需的源IP、源端口、访问时间等日志信息。二是如何更好的模拟终端用户行为。在HTTP协议拨测中,传统的测试均只在一个TCP流中传输一次协议请求,但在现网环境,用户的一次交互会产生多次HTTP请求,并在同一个TCP流中完成,对于上述用户现网真实行为,需要在测试中进行重现。为此我们在测试工具实现时,支持针对不同用户行为的定制,可定义测试中是否进行重练接。在实际测试中发现,启用重练接后能有效验证企业测试中是否存在协议漏控现象。三是如何提高拨测效率。信息安全拨测的量巨大,测试耗时较长,曾经在某省测试中发现在3G网络下进行一次实验环境的测试耗时8个小时,为提高测试效率,本工具从技术实现、测试目标筛选、网络响应等方面进行了创新改造。首先是采用多线程并发的技术提高单位时间的拨测量,同时针对移动平台处理器性能较低的特点,我们在拨测算法上进行了优化,以便充分利用测试工具性能。其次是筛选测试目标。测试前,我们会通过爬虫程序对网络测试目标进行爬取,爬取中会判断筛选出延时小、访问便捷的测试目标作为拨测对象。提升实际测试中的效率。再次我们对自己的服务段业务参考网站进行了拨测方面的优化,采用了smarty框架进行模板渲染,能大大加强业务参考网站的并发性能,更好的响应拨测需求。四是如何确保测试结果准确性。测试工作涉及基础企业考核和准入企业牌照申请,因此需确保测试结果准确,结果不存在争议。为此我们会对测试过程进行详细的日志记录,留存好中间数据,包括每次的测试访问时间、服务器回应数据、拨测工具记录数据等。以确保测试过程所有数据均有据可循。同时为了确保测试结果的有效,我们还实现了从中间数据直接导出测试结果和测试报告的功能,即保证测试过程详细,又确保测试结果直观。
4应用现状
目前信息安全技术手段综合拨测系统已在基础企业考核、IDC/ISP信息安全准入评测、违法信息监测等项目中实际应用。8家信息安全测试机构、35个基础运营商省公司、4个省通信管理局已使用本测试工具用于信息安全测试工作,此外,工信部通信保障局也基于此测试工具,对基础企业考核提出了日常化考核方法低碳经济论文,并在2015年考核工作中推广。本项目已在实际工作中得到了广泛运用。
作者:罗成 杨剑锋 张昊星 杨振雄 单位:中国信息通信研究院