王骏翔
(中远海运科技股份有限公司, 上海 200135)
某大型航运企业的邮件系统建设于2015年,承载着企业总部及其下属各单位办公人员的日常邮件业务,总账户数约13 000个。目前已围绕该系统建设部署防病毒、防垃圾邮件和防攻击等安全保障措施,满足网络安全等级保护三级的建设要求,但因该系统具有互联网业务属性,在安全运营维护方面存在一些难点,主要表现在:
1) 系统的访问性相对开放,回溯可疑用户较为困难;
2) 企业分支机构较多、地域分布较广,且涉及境内和境外,可疑行为较难定位;
3) 用户通过手机收发邮件时,较难定位其可疑性;
4) 互联网IP(Internet Protocol)地址繁多,系统本身无法区分和过滤其物理地域(国家、区域等);
5) 日常办公业务中登录和退出操作的频率较高,日志数据量较大,系统本身无法有针对性地进行分析。
因此,围绕大型企业邮件系统开展信息系统安全分析很有必要,是企业信息系统安全工作的一部分。对于邮件系统账户安全而言,用户行为分析不仅是一个收集和统计信息的过程,更是一个提升管理和安全防控水平的过程,是未来邮件智能化安全防控的发展趋势。企业级邮件系统安全分析平台的主要作用是在尽可能少的人工干预下,结合运用算法分析模型、企业特性和安全预警机制,在不影响邮件系统全天高效、稳定运行的情况下,通过对外围数据进行采集和分析统计,实现辅助性的安全防护、实时监控和提前预警。
本文针对以上企业安全管理需求,借鉴面向对象的设计思想,结合跨平台、多语言的研发手段,构建一套基于用户行为识别的邮件系统安全分析平台,提供有关邮箱账户安全风险的大数据分析、企业可信任或授权的黑白名单配置和用户登入地轨迹分析等多维度的安全分析服务,有效提升企业邮件系统对其用户账号状态的安全分析和预警能力,继而主动并及时发现潜在的账号盗用、信息泄露等安全隐患,大幅度提高企业邮件系统的信息安全保障能力。
1) 掌握动态数据,精准定位。
(1) 实时掌握系统账户登入信息情况;
(2) 准确发现用户当前所属地与其企业/公司所属地的地域差异;
(3) 精准确定用户登入/操作的频率和地区;
(4) 及时过滤已知可疑的境内和境外IP。
2) 维护基础数据,可靠稳定。
(1) 通过定期分析和维护企业所属地域,保证分析维度数据的准确性;
(2) 通过定期分析和维护账户所属地域,保证分析对象的准确性;
(3) 通过自动收集、维护底层数据源信息,保证分析数据的精准性。
充分结合实际维护中普遍存在的难点和重复性问题,采用面向对象的设计思路[1]逐步开展模块设计,以满足大型企业邮件系统安全运营团队的需求:
1) 企业级邮件系统的维护相对呈现出多样化和琐碎化的特征,日常维护人员通常会针对账户的安全性采用一些传统的主动询问和被动告知的方式,当企业层级或分支机构较多、系统使用人数成规模化急剧增加时,面临着较难维护和运营的困境;
2) 大型企业存在较多分支机构,且呈现出地域化特点,针对实际用户的所属地管理较难收集和分析比对,由此引发的安全预警和分析力度很难显现;
3) 以每日新增的海量用户行为操作数据和地域数据为基础,对接企业已有的网络安全感知平台的可疑数据,实现对用户行为的识别和管理。
根据企业已有系统安全运营的情况,在不影响现有邮件系统架构的前提下,设计并建设一套基于用户行为识别的安全分析平台,以图形化的界面灵活管理所有与安全运营有关的分析和管理工作。平台分层架构图见图1。
系统后台的基础信息采集和分析模块作为分析平台的重要组成部分,能对邮件系统的用户基础数据、账户登入操作信息、企业基础数据和外部安全数据源进行有效整合,建立企业自身适用的算法模型,是帮助安全运营团队及时了解和掌握系统用户当前的基础信息和使用轨迹的有效手段;结合第三方的互联网位置信息源和外部安全数据源,能准确定位账户的安全性或可疑状态;配合安全预警机制,能在第一时间为运营团队提供有效的支撑数据,使可疑或异常安全风险在产生初期就得到处置。
图1 平台分层架构图
鉴于企业级邮件系统基本上以Linux X86架构为主,在底层数据采集和分析设计部分采用Python实现对邮件系统用户行为数据和安全算法分析的建模和处理[2]。
根据企业级邮件系统日常运营的特点,安全分析平台将实现6类功能的数据采集、清洗、分析和综合展现,实现即时的准确性数据捕获和告警。
1) 企业/分支机构所在地管理。通过对企业及其分支机构的办公所在地进行梳理,在平台的基础数据中统筹配置其地域信息,为邮件用户行为分析的安全算法提供必要的基础信息。
2) 邮箱账户所在地管理。通过对邮件所属账户的常用或近期办公所在地进行梳理,在平台的基础数据中统筹配置其地域信息,为邮件用户行为分析的安全算法提供更精准的分析依据。
3) 邮箱账户IP黑白名单管理。在日常运营过程中,可通过威胁告警信息对相关邮箱账户的IP地址进行黑白名单配置;同时,在外部安全数据源信息中,会自动对危险、可疑的IP地址进行补充。通过日常运营维护,结合外部信息,能精准过滤和定位到可疑的邮箱账户。
4) 境外IP登入分析。利用第三方的互联网位置信息源和外部安全数据源分析采集到的邮件系统用户登入操作信息,自动推送每日在境外使用的邮箱账户;采用安全分析算法对境外登入的可疑账户进行预警推送,协助运营团队快速定位异常用户和恶意攻击行为。
5) 境外IP多账户登入分析。基于平台存档的所有历史分析数据,结合业务场景,采用安全分析算法对可疑的多次登入不同账户的境外IP进行预警推送,协助运营团队快速定位异常IP和恶意攻击所在地。
6) 用户地域行动轨迹分析。对邮箱账户的所有登入地域进行分析,结合其日常办公场所的区域信息,为用户进行地理行为轨迹画像,进一步定位和过滤其账户的潜在安全隐患。
通过采集邮件系统的用户操作信息,提取其操作的IP地址信息;结合企业内部的IP地址库和第三方全球互联网IP位置信息,自动分析、匹配和重构用户操作信息。对于数据分析部分,利用平台关于每个邮箱账户的基础信息,结合算法模型标记其每次操作地域的威胁等级。
在该模块中,系统通过Python代码实现对所有用户操作IP地址的收集、匹配和比对分析,同时通过消息传输机制将实时数据准确传输至安全分析平台后端的数据库内,由平台统一展现,做到及时告警,准确定位延迟队列和故障点[3]。用户操作IP位置分析功能实现代码如下:
def ip_locaiton_search(ip):
try:
url = "https://xxxxxxx/?ip="+ip
result = '〈div id="result"〉.*?〈/div〉'
locaiton ='〈p〉所在地理位置:〈code〉(.*?)〈/code〉〈/p〉'
headers = {'User-Agent':'ozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36','accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3'}
req = urllib2.Request(url, headers=headers)
html = urllib2.urlopen(req).read()
type = sys.getfilesystemencoding() # local encode format
html.decode("UTF-8").encode(type)
html = urllib2.urlopen(req).read()
parser = HTMLParser.HTMLParser()
parser.unescape(html)
resultstr = re.compile(result,re.S | re.M).findall(html)[0]
crawl_result={}
crawl_result['locaiton'] = re.compile(locaiton,re.S | re.M).findall(resultstr)[0]
#print crawl_result['locaiton']
return crawl_result['locaiton']
except Exception,e:
return '地区未获取'
通过对系统中关于用户操作的IP位置进行分析,自动推送在境外地区使用的邮箱账户;采用安全分析算法对境外登入的可疑账户进行预警和邮件自动推送,协助运营团队快速定位异常用户和恶意攻击行为。邮件自动推送的境外IP登入分析功能实现代码如下:
def sendMail(ip_location_data):
#mail alert for network mpls
if ip_location_data!=None:
msg_subject = '[Mail Login Ip Location Report(Foreign)'+' For '+analyze_date +']'
msg_info = "〈table border=1〉"
msg_info += '''
〈tr style='background-color:write'〉
〈td align='center' colspan='4'〉分析数据源日期:Report-Date〈/td〉
〈/tr〉
〈tr style='background-color:gray'〉
〈td align='center'〉邮箱账户〈/td〉
〈td align='center'〉所属公司〈/td〉
〈td align='center'〉登入IP地址〈/td〉
〈td align='center'〉登入IP所属地〈/td〉
〈/tr〉
'''
msg_info=msg_info.replace("Report-Date", analyze_date)
for info in ip_location_data:
msg_info += "〈tr〉"
msg_info += '〈td〉'+info['login_user'] + '〈/td〉'
msg_info += '〈td〉'+info['company'] + '〈/td〉'
msg_info += '〈td〉'+info['ip'] + '〈/td〉'
msg_info += '〈td〉'+info['ip_location'] + '〈/td〉'
msg_info += '〈/tr〉'
msg_info += "〈/table〉"
#add receivers by line
receivers_mail_add = ['wang.junxiang@coscoshipping.com']
receivers_mail_add=None
#send mail alert
SendIpLocationMail(msg_subject,msg_info,receivers_mail_add)
print ("Message:Mail Login Ip Location Report(Foreign ) send!!!")
else:
print ("Warning:Mail Login Ip Location Report(Foreign ) is none!!!")
通过对邮箱账户境外IP登入进行分析,比对平台内所有已知的历史分析数据;采用安全分析算法对可疑的多次登入不同账户的境外IP进行统计分析,协助运营团队快速定位异常IP和恶意攻击行为所在地[4]。图2为境外IP多帐号登入分析界面。
图2 境外IP多帐号登入分析界面
通过对邮箱账户每次登入操作的地理位置信息进行分析,筛选出每日当前行动轨迹较为可疑的账户;结合其近期所处的地理位置和外部安全数据源,采用安全分析算法对可疑账户进行预警和直观的轨迹画像,协助运营团队快速定位潜在隐患账户。图3为账户地域行动轨迹分析界面;图4为账户地域行动轨迹画像。
图3 账户地域行动轨迹分析界面
图4 账户地域行动轨迹画像
系统通过对每日邮件系统境外IP登入方面的信息进行分析,主动推送和汇总以下应用效果:
1) 平台开始运行时,日均登入次数约为72万次,每日境外IP登入账号数约有2 700个,其中,每日高危账号筛选过滤数量约为250个,高危风险账号筛选率约为90.7%;
2) 在经过2个月的数据清洗和标签维护之后,每日高危风险账号的筛选数量减少至约150个,筛选率约为94.4%。
将大数据的相关技术和理念引入企业邮件系统的日常安全防护工作中,为企业通信系统的正常运行和日常监管提供有力的支撑,不仅能提高安全运营团队的分析运营效率和服务质量,而且能大幅度提高对业务系统安全分析和预测防范的力度,从根本上降低运营成本。
用户行为分析和操作轨迹画像是建立安全分析的基石,源于运维人员长期的工作积累,通过构建一套针对性较强的安全分析平台完成大型企业日常繁琐、重复的运维管理工作,是较为高效、稳妥和即时的解决方案。表1为某大型集团企业利用邮件安全分析平台前后的技术指标对比。
表1 某大型集团企业利用邮件安全分析平台前后的技术指标对比
从表1中可看出,引入基于用户行为分析的邮件安全分析系统,能简化系统运维团队和系统安全团队的工作,降低人工失误率,为系统资源的安全防护和企业信息系统关于网络安全风险的定级评估提供平台支撑保障。