2017年9月13日星期三

【专题策划】知己知彼,百战不殆——网络钓鱼面面观(置顶)

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
【专题策划】知己知彼,百战不殆――网络钓鱼面面观(置顶)  阅读原文»

钓鱼套路深,安全要认真!

要想玩得转,还得功夫深!

什么是网络钓鱼?

2017年网络钓鱼现状?

反钓鱼思路和解决方案?

一步一步教你成为网钓老司机!

网络钓鱼最强学习手册

所谓"知己知彼,百战不殆",击败敌人的首要前提是要了解敌人。那究竟什么是网络钓鱼呢?

网络钓鱼大讲堂 Part1 | 网络钓鱼攻击定义及历史

网络钓鱼大讲堂 Part2 | 网络钓鱼风险(攻击带来的损失)

网络钓鱼大讲堂 Part3 | 网络钓鱼攻击向量介绍

网络钓鱼大讲堂 Part4 | 网络钓鱼攻击战术

网络钓鱼大讲堂 Part5 | 网络钓鱼对策(反钓鱼)

网络钓鱼的现状:危机四伏

2017年第二季度重点关注:
  • 中国是全球受到网络钓鱼攻击影响第二大国家
  • 银行业是网络钓鱼攻击的第一大目标(占比23.49%)
  • Trojan-Downloader.JS.SLoad(8.73%)位列最流行的恶意软件家族榜首;Trojan-Downloader.JS.Agent(3.31%)位列第二,而Trojan-PSW.Win32.Fareit(3.29%)排名第三
  • 发现一大波将自身伪造成知名快递服务公司通知的恶意邮件
  • 发现密码保护文档中隐藏恶意附件的新型邮件
  • Necurs僵尸网络仍在持续分发垃圾邮件
  • 通过合法服务传播垃圾邮件:利用求职网站进行财务欺诈
  • 域名欺诈:攻击者将网络钓鱼页面放在知名组织拥有的域名上

卡巴斯基发布《2017年Q2垃圾邮件与网络钓鱼分析报告》 我国依然形势严峻

反钓鱼思路与方案

事前预警 事中防御 事后整改

为了有效应对钓鱼攻击,应该全面评估钓鱼攻击可能利用的各种弱点,以及黑色产业链条各个环节可能带来的影响,需要建立一个覆盖立法监管、培训和教育、举报和反馈,以及技术监控等多个层面的反钓鱼体系。

对抗网络钓鱼,应该遵循"主动搜索,积极防御"的原则,也就是尽早发现尽可能多的钓鱼网站,并通过多种方式予以控制。一个较为行之有效的思路:基于事件发生的时间线索,把钓鱼攻击拆分成三个阶段,分别实施有针对性的监测和控制。

如果把钓鱼网站的发现到关闭这个阶段定义为"事中阶段",包含至少一次完整的钓鱼攻击,那么这个阶段主要考虑控制钓鱼攻击的影响。在钓鱼网站真正产生危害之前,即便钓鱼网站已经存活,但没有发现,这个阶段可定为"事前阶段",主要解决如何及时发现钓鱼网站,并通知用户的问题。基于钓鱼攻击的后续处理阶段,则统称为"事后阶段",包括案例总结、分析,专项整改等事项,以避免同类事件的再次发生。

反钓鱼的整体防护思路

绿盟科技解决方案

绿盟邮件威胁分析系统/NSFOCUSThreat Analysis Center for EmailTAC-E提供了业界领先的未知威胁检测能力,通过新一代的威胁分析检测技术,绿盟科技的产品和技术能够有效检测通过电子邮件进入网络的已知和未知的恶意软件,发现利用零日漏洞的APT攻击行为,发现恶意勒索软件代码、保护客户网络免遭这些攻击所造成的诸如内网入侵、信息窃取、数据丢失等各种风险。总体而言,绿盟邮件威胁分析系统通过降低攻击面,增加纵深安全防御的方式将有力的协助金融客户提升和加强自身的信息安全体系防护能力。

金融行业邮件安全解决方案

 


黑客技术官网地址:http://www.hackdig.com/

【干货分享】手把手教你Android Logcat组件安全  阅读原文»

在应用的开发、调试和运行期间,往往需要日志信息跟踪,以此作为辅助手段定位问题、洞察程序运行细节等。在不同的开发阶段,日志信息存在差异。一般而言,开发版(Development Version)作为正在开发的内测版本,会有很多调试信息;而发行版(Release Version)是签名后发布给用户的正式版本,日志量会较少。那么,如何避免日志输出敏感信息呢?

1. 日志输出介绍

1.1 Log

android系统提供了android.util.Log类输出日志信息,一共包含五种输出级别:


从左到右,冗长度越来越小。

1.2 Log Native源码

Log.v()/ Log.d()/ Log.i()/ Log.w()/ Log.e()最终都是调用println_native()方法:

而println_native()是Native方法:

println_native()定义如下:

总的来说println_native()的操作就是打开设备文件然后写入数据。

2. 风险分析

2.1 Android 4.1之前

在Android 4.1(API Level 16 JELLY_BEAN)之前,应用只需要申请android.permission.READ_LOGS权
限即可读取日志。所以对于Android 4.1之前的版本,当目标应用使用Log输出敏感的日志信息时,恶意应用
是可以获取目标应用的敏感信息(见3.2)。

2.2 Android 4.1 以及之后

而在Android 4.1以及更高版本,谷歌已经意识到允许应用读取其他应用的日志信息是存在安全风险的,
所以对Logcat的签名调整为"signature|system|development"。这意味着只有系统签名的应用(每个手机厂商
或者ROM厂商发布ROM使用的签名)或者系统应用(System/App/目录下的应用,一般指预置应用)才有
使用该功能的权限。还有一个例外是具有root权限的应用。

具有root权限应用获取读取日志权限的实例代码:

2.3 测试判断标准

1)正式版本,如果通过Logcat输出敏感信息的话,认定为存在安全漏洞;

2)基于第一点的前提下,根据是否兼容Android 4.1以下版本(minSdkVersion < 16,目测超过80%最
低版本小于16),调整风险等级。

3. 测试

3.1 Android 4.1之前读取日志信息

假设:目标应用通过Log.i()输出用户的登录账号信息,tag是LOGIN_ACTIVITY。
恶意应用读取目标应用输出的敏感日志信息代码示例:

调用getLog():

相当于执行 adb logcat -d -f /sdcard/dump_log.txt -s LOGIN_ACTIVITY:I。
从保存文件中获取用户的账户信息:

另外,获取到的日志信息也可以通过网络、短信等方式回传给攻击者。

3.2 Android 4.1及以后版本读取日志信息

需要root权限,参照2.2。

3.3 smali注入logcat

公司申总曾经在drops上发布一篇文档(一次app转包引发的Android分析(续)),在分析APP提交的
HTTP加密参数时,通过在smali代码中注入logcat,获取加密前的明文信息。

使用改之理注入logcat非常方便,大致为:
invoke�\static {v0, v0}, Landroid/util/Log;�\>e(Ljava/lang/String;Ljava/lang/String;)I

4. 安全建议

4.1 准则

关于Logcat的使用,google给出的建议是:

需要补充一点的是,google的建议是基于开发人员知晓恰当使用Log的级别,但是很有可能不同的开发
人员会出现Log.i(“xxx”,”敏感信息”),Log.d(“xxx”,”敏感信息”)等情况。所以笼统的建议是在生产环境中,不
要输出敏感信息日志。

4.2 最佳实践

为了调试,很难杜绝不会通过Log输出敏感信息,在开发版本中存在这种情况应该认定是合理的。所
以,不同版本差异化输出显然是一个需求。

满足这个需求的做法,一方面可以定制自己的Log输出,另一方面借助IDE插件区别对待不同版本。

4.2.1 Log统一管理类

4.2.2 Proguard 移除相关代码

eclipse中progurad是一个代码优化插件(也常常用于代码混淆),可以配置proguard移除
Log.v()/Log.d()等。配置之后,APK文件中相应的代码将会被移除。

测试:

配置proguard(proguardproject.txt):

assumenosideeffects (assume no side effects) ,假定无效,该属性用于标识无效代码。上
面配置我们将Log.v()/Log.d()/Log.w()方法从正式发布非APK中删除。

反编译查看源码,Log.d()被删除,而没有配置的Log.e()仍保留。

安装APK,运行,通过adb查看日志也只有log.e():

 


黑客技术官网地址:http://www.hackdig.com/

阅读更多内容

没有评论:

发表评论