*本文作者:ChuanFile;本文属 FreeBuf 原创奖励文章,未经许可禁止转载。
笔者因为孩子生病n次去医院输液,终于在最后一次打吊针的时候被人偷走了手机(医院果然是作案高发区),于是有了我补办手机卡的经历。一张电信手机卡在电信营业厅提供了身份证+照相人脸识别后顺利补办成功,另一张移动手机卡却遭遇了困境,移动要求身份证+服务密码+3个月内的任意5次拨出记录,但我的移动手机是备机+对外注册机(接收各种骚扰),3个月内也就拨出过极少的一两个电话,在丢失手机的情况下我根本不可能记得拨出的号码,而且如果想查通话记录必须手机的随机短信密码才可以,身份证+服务密码+本人也不行,这样我就陷入了死循环! 移动给的方案是:停机保号3个月,然后再补卡就不验证通话记录了,我就。。。。。,作为一名中国公民,我竟然没法证明我是我了!!!
此问题当前已解决,但作为搞安全的同学不得不多思考下这个经典的安全问题,移动为什么设置这个策略,他们是用什么逻辑证明这个关于我的问题:1、你是你 2、设备是你的3、你在用你的设备。
我们详细分析下这个问题:
1、你要证明你是你:带着身份证来我就认为你是你,当然还要抬头看看你是不是你,高科技的方式就是加上人脸识别;
2、你要证明设备是你的:对于商家,sim卡就是他的设备,那提供服务密码就可以证明设备是你的了(电信是默认身份证后六位,存在安全隐患);
3、你要证明你在用你自己的设备:提供你最近3个月打过哪些电话,也就证明sim卡这个设备是你自己用的(这个电信没有这个步骤,估计是因为电信起步晚,起步的时候已经开始实名制),其实移动设置这个的目的是历史遗漏问题,以前没实名制的时候,很多卖卡的用自己的身份证注册并设置服务密码,然后卖给其他人,那其实他并没有在使用sim卡。如果仅仅验证1、2,则存在卖卡人代替使用人补卡的问题。但其实这里有个bug,证明你在用你的设备,只需要10086拨打使用者电话,然后回访姓名身份证对照注册信息即可(这个10086已经对笔者做过此操作,但10086没有用这个验证逻辑)。此外验证来电也是个很好的操作(为防止恶意拨打,建议仅验证补办一周前通话时长较长且频繁的来电,这样使用者有时间补办,也防止了冒用者),也可以解决我这种只用来当备机+对外注册机使用的用户了。
1、身份认证,确定用户身份,一般来说pc都是采取系统登陆认证、web服务登陆认证等,账户密码就是用户的身份证
2、设备认证,确定设备所属,一般采集设备的id,这个id是通过购买和发放和用户关联起来的,你知道这个id就证明设备的合法性,设备是你的。这个id就相当于用户的服务密码了
3、行为认证,确定用户在用自己的身份在使用自己的设备,这就需要提取用户行为,如网络行为、文件操作行为、软件启动行为等,用户确认行为是否为自己所为,这也就是类似确认通话记录的过程了。但这里仅能类比不能等同,因为pc设备的行为过多,完全确认无法做到,而且总是让用户确认行为会造成用户抵触,无法取得安全和服务的平衡点,最终安全措施无法落地。黑客就是利用这个漏洞,潜伏在pc设备,实时破坏活动或信息窃取。那我们怎么才能解决这个问题发现黑客呢?
带着这个疑问,首先我们分析下黑客的目的,我们聚焦下专业黑客,他们的目的是为了窃取数据,根据这些年互联网公布的入侵看,被窃取的数据主要包括:用户信息(包括名字、密码、住址、联系方式等),用于倒卖或登录获取更多有用数据;支付凭据(信用卡、社保信息等),用于直接获利;游戏数据(账号、密码、级别、资产等),用于直接获利;虚拟资产数据(充值卡号、充值卡密码等),用于直接获取。其次我们再分析下窃取渠道,从内网安全的角度窃取的通道是:内网服务器->pc终端->外网黑客接收端;pc终端->外网黑客接收端两种形式,当然如果合并看,仅仅认为只存在pc终端->外网黑客接收端一种形式也是合理的。最后,我们分析下被窃取的信息本身,信息的重要性不是由大小决定,而是由重要级别决定的,敏感数据1M > 低敏感度数据1G的道理每个人都懂,但大多数企业无法做到数据敏感度分级这也是不争的事实,那一般留给安全人员的就只有把控泄露数据大小这个点了,但多少泄露数据多?多少是少?这个唯一的决定权就是决策者(如领导)了,不过这里数据分析人员可提供下基本的数据给决策者,如平均外传大小等
此外,黑客入侵还有侦查、投递、漏洞利用、感染植入、控制C2、扩散等阶段,但我们只讨论最后的收割阶段,因为如果一木马病毒不外传数据,在没有人力的情况下,“养着”也未尝不可。
分析到这里,我们已经可以聚焦了,我们需要确认的是从pc传出去过量数据的行为是用户主动的还是非主动的?
1、记录进程实时流量大小,并做归并统计,主要统计上传数据量,用于计算是否超过阈值;
2、分析外传流量,获取外传目的和外传时间区间,用于和用户确认;
3、设置阈值(可结合进程黑白灰检测进一步缩小范围)
a) 同一终端单个进程>1G,对抗黑客利用单一进程外传的场景,此为最常见的场景;
b) 同一终端同一目的>1G,对抗黑客利用多个进程同时外传的场景,目的是加快外传速度或多进程躲避检测等;
c) 多个终端同一目的>1G,对抗黑客入侵多台终端外传的场景,多台机器被控制同时外传,从几率分析此场景较少;
d) 多个终端单一进程>1G,对抗黑客入侵多台终端外传的场景,多为正常程序操作,仅作为参考,相关机器可作为重点关注对象;
4、根据黑客利用几率设置预警级别:高级、中级、低级、待观察
5、最终用户确认,如非本人行为则触发事件
a) 高级风险5分钟确认
b) 中级风险4小时确认
c) 低级风险24小时确认
1、 通过网络数据分析或软件记录流量并分析
A方法:网络数据分析
1) 开启主机防火墙日志,可获取时间+进程名+源ip+源端口+目的ip+目的端口
2) 通过网络记录设备,如snort等,记录session,可获取获取时间+源ip+源端口+目的ip+目的端口+session大小,我们这里用wirshark演示
3) 利用主机日志+网络日志,最终确定每个进程的外传流量(源为本机则为外传, 不区分是否主动外传,包括正反向木马)大小
例如:
2017/10/18 12:00:01 liveupdate360.exe 192.168.187.143 54267112.65.68.41 80 2048MB
B方案:独立开发软件记录
火绒剑演示:
全代理演示:
2、归并计算分析是否达到阈值
a) 同一终端单个进程>1G:yes
b) 同一终端同一目的>1G:no
c) 多个终端同一目的>1G:no
d) 多个终端单一进程>1G:no
3、判定报警级别,并相应确认
a) 高风险,5分钟相应并确认,非本人操作则为事件
综上,实验证明方案可行,通过此方案可监控终端进程的外传情况,解决大量泄露问题,避免被窃取大量数据而不自知的场景(最近确实发生了太多了泄露事件),也可及时阻断泄露过程,有效控制损失量。当主机被入侵窃取大量数据时,我们可通过监控看到某未知进程(或已知进程被注入未知模块)在一段时间外传了过量数据,我们可及时发现并预警阻断;当员工主动泄露敏感数据时,我们可监控到某已知进程(如百度云盘、微盘等)在一段时间外传了过量数据,及时发现并要求其确认,达到震慑和确认目的。
*本文作者:ChuanFile;本文属 FreeBuf 原创奖励文章,未经许可禁止转载。