【WitAwards 2016 “年度安全产品”参评巡礼】阿里聚安全挪移安全组件解析_黑客教程_安琪教程网

黑客教程

【WitAwards 2016 “年度安全产品”参评巡礼】阿里聚安全挪移安全组件解析

时间:2018/10/16 23:53:58 作者:安琪 来自:www.aqfls.com 浏览:272 评论:0
内容摘要:阿里聚安满是一个面向开发者,以挪移应用安全为核心的开放平台。今年5月发布的《中国挪移互联网发铺状况及其安全讲演》中,据统计,2015年中国境内活跃的手机网民数量达7.8个亿,占天下生齿数量的56.9%。其中用户使用至多的就是Andriod体系的智能手机,占比高达78.9%,而苹果的iOS体系占到了13.08%。挪移设备...

阿里聚安满是一个面向开发者,以挪移应用安全为核心的开放平台。 

今年5月发布的《中国挪移互联网发铺状况及其安全讲演》中,据统计,2015年中国境内活跃的手机网民数量达7.8个亿,占天下生齿数量的56.9%。其中用户使用至多的就是Andriod体系的智能手机,占比高达78.9%,而苹果的iOS体系占到了13.08%。

挪移设备越来越普及,各类应用层出不穷,针对挪移端App的攻击也不是什么新鲜事了。常见的挪移App问题包括:外挂、重打包、收集要求仿冒、秘要数据泄露、核心逻辑破解、运行环境危害监控等。那么该怎么样在重重威胁下保障你的应用安全呢?针对这些安全问题,目前市面上已经涌现出了一些解决办法,阿里聚安全的挪移安全组件就是其中之一。

相干产品先容

阿里聚安全的挪移安全服务首要包括安全扫描、应用加固、兼容性测试以及安全组件。除了安全组件,其他的功能都是只需开发者将本人的应用上传上来,就能够获得相应的服务。

QQ截图20161011112740.png

安全扫描

可以扫描漏洞、App中是否存在恶意代码、是否是山寨App。

应用加固

是通过加壳、加密、逻辑混淆、代码隐躲等各类安全加固要领,增添挪移安全应用的安全防护等级,防止挪移App被逆向阐发,反编译,和防止二次打包潜入各类病毒、广告等恶意代码。应用加固是针对挪移应用的装置包直接加固,无需开发者修改源代码或进行二次开发。

兼容性测试

能够测试App在不同体系环境中的——装置,启动,Monkey,卸载;多版本的笼盖装置,脚本登录;App的启动时间,所占cpu、内存、流量情形;获取错误日记以及activity截图;测试实现后会发给用户通知并出具测试讲演。

要是需要个性化的定征服务,那么就需要安全组件了。

安全组件

作为阿里挪移安全自立研发的安全SDK(Software Development Kit),它是一套针对挪移应用的专业安全解决方案。主若是对挪移应用的常见问题如外挂、重打包、收集要求仿冒、秘要数据泄露、核心逻辑破解、运行环境危害监控等问题,进行针对性的安全维护以及预警。

多平台支持:Android 、iOS、Windows Phone等。

分为免费版本以及对企业用户的收费版本。

QQ截图20161011112601.png

核心功能

安全组件为应用提供了多层次的安全维护手艺,底层安全模块防止安全组件代码被静态阐发,运行层安全模块防止用户应用被动态阐发,在保障安全组件以及载体应用都安全的基础上,在应用层为用户提供多项安全功能,功能层次及说明以下图所示:

QQ截图20161011111935.png

应用层

1.安全存储:加解密过程中使用的密钥是随机生成的,并且与设备绑定。破解者即使拿到了用户手机上的加密数据,在本人的手机上也没法实现解密操作。能够保障应用隐衷数据的秘要性,不被恶意应用所窃取。

2.安全加密:其全部加解密过程都在安全沙箱中实现,纰谬外暴露任何密钥以及加密算法。

3.安全署名:将要求的每一个参数都计算一个署名值,并将这个署名值附加在要求的最后面。服务器在收到该要求的时辰,只需使用服务器端安全组件对每一个参数重新计算署名值,并以及要求中附带的署名值做对比即可判定该要求是否被恶意篡改以及伪造。

在这里提一下加密以及署名的区分

加密的目的是通过将信息翻译成暗码内容来隐躲。署名则是用来确定信息的完备性以及身份识别性,保障信息的发送者以及发出的内容没有被篡改,保障客户端与服务端通讯要求不被伪造。

运行层

1.安全沙箱:上述应用层的核心功能都构建在阿里自立研发的安全沙箱之上。在安全沙箱中,完成了反调试、反篡改、反内存窃取等核心功能。

2.加密中心:加密中心包括了白盒加密,白盒署名,动态秘钥生成及秘钥治理的功能。

3.动态更新:实时更新组件,保障攻防匹敌的强度。

在这里不得不提到的是安全加密以及白盒加密到底有什么区分

白盒加密算法是一种基于加密函数的计算手艺,将加密密钥隐躲在一系列的数据表中,用于在不安全环境下的加密计算。密钥再也不以字符串或二进制数据的情势保存,而是融入到全部白盒算法中,化作算法本身,在全部加密、署名过程中,密钥不会以完备明文情势在内存出现。客户端只能加密,服务器端通过对应的SDK进行解密。

安全加密功能,其全部加解密过程都在安全沙箱中实现,对外不暴露任何密钥以及加密算法。

白盒加密以及安全加密在功能上类似,即都是把明文转化成密文。然则两者在完成方式上完全不同,白盒加密的手艺新颖、运算愈加迅速,在安全强度上遥遥高于普通的安全加密。

体系底层

1.字符串混淆:隐躲程序中的敏感字串,降低程序可读性,增强内部程序逻辑安全,抬举破解以及阐发门槛。

2.控制流混淆:扩充分支逻辑以及控制流程,隐躲程序核心逻辑,提高对程序执行流程的阐发难度。

3.代码隐躲:定制的程序文件加壳维护,隐躲原始逻辑以及程序入口。

4.代码加密:对代码进行加密隐躲。

5.指令插花:定制的干扰指令以及程序乱序存储手艺会增添静态阐发难度,匹敌IDA、readelf等静态阐发工具指令乱序。

Android应用部署要领

上传应用

在登录后台以后,可以点击下图中的“添加应用”来上传本人的应用。其中Android平台需要上传应用的Android装置包;iOS平台需要上传应用的IPA文件。另外,iOS版安全组件目前仅对企业用户开放。

QQ截图20161011114113.png

下载安全组件

选择已经上传过的应用。最后点击页面底部的“生成SDK”以及“下载SDK”即可实现安全组件SDK的下载操作。一样也是分为基础版以及企业版。

a15b4afegw1f7d1zkq561j20zd0ouju0.png

将下载的SDK解压后,目录结构以下:

a15b4afegw1f7d24lzy6lj205e02ht8i.png

其中,android-client.zip为客户端SDK;yw_1222_0335.jpg为客户端安全加密图片;server.zip为服务器端SDK;conf.properties为服务器端对应密钥文件。

解压android-client.zip,内里会包含一个Android.SecurityGuardSDK. ${version}.tar.gz文件,解压以后目录结构以下:

a15b4afegw1f7d24mlaguj208o02dglf.png

从上图中可以看到,安全组件SDK分为两种版本,WEB黑客,一种是Android Studio使用的aar,另一种是Eclipse使用的jar以及so,两种版本功能一致,可以根据接入方式选择对应版本(当然,Android Studio也能够使用jar以及so的情势接入),以下表所示:

QQ截图20161011115651.png

注意:免费的基础版只会包含SecurityGuardSDK这一个组件。

集成前预备

安全组件SDK在阿里巴巴的很多开放SDK中都有包含,要是你的APK中同时引入了这些SDK,则在集成安全组件SDK之前需要将这些SDK中包含的安全组件(.jar、.aar文件)、图片文件(yw_1222*.jpg)整个删掉。

开发流程

根据接入方式不同使用不同方式导入SDK,Android Studio使用aar方式导入,Eclipse使用jar以及so方式导入。

1.Android Studio导入aar

如图把所有的aar都复制到项目的libs目录下,然后在该Module的build.gradle中增添如图设置:

a15b4afegw1f7d24srqaij22bc1cce47.png

2.Eclipse导入jar包以及so

把SDK中的所有的jar包以及so文件都复制到工程的libs目录下:

a15b4afegw1f7d24wjupj20v8100t妹妹.png

目条件供两种架构下的so文件,armeabi是针对arm架构编译的包,x86是针对x86架构编译的包。应用程序在不同cpu架构的机型里会选择相应的so文件加载。

注意:要是在想在x86的摹拟器上运行你的程序,必须导入x86架构的so,然则可以在应用发布时去掉x86目录下的so。

3.导入加密文件

第一步中已经得到了加密文件yw_1222_0335.jpg,现在需要把这个加密文件导入到工程中 res\drawable\目录下,要是没有这个文件夹,请先创建。

下方左图为Android Studio中安全加密图片地位,右图为Eclipse中安全加密图片地位。

lALObQVQ5c0Ctc0DUw_851_693.png_620x10000q90g.jpg

4.添加权限信息

要是是Android Studio项目,则不需要在项目中额外设置权限,因为在aar中我们本人已经声明晰权限。

要是是Eclipse项目,需要在AndroidMenifest.xml文件中添加如下权限设置:

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<uses-permission android:name="android.permission.WRITE_SETTINGS" />

5. 添加ProGuard设置

要是使用了proguard进行混淆,也根据接入方式的不同而分为Eclipse以及AndrodStudio两种情形。

Eclipse:

要是在project.properties中指定了proguard设置,譬如在project.properties中有以下的语句:proguard.config=proguard.cfg,则表明使用了proguard进行混淆,混淆设置在proguard.cfg文件中:

a15b4afegw1f7dwdor29zj205602w3yk.png

Android Studio:

要是在build.gradle中设置了proguardFiles,并且开启了minifyEnabled,如图所示,则表明使用proguard-rules.pro这个设置文件进行混淆。

a15b4afegw1f7dweayq39j20ic02g74e.png

为了保障我们需要的一些类不混淆,因此需要在proguard的设置文件中添加一些指令,也就是加入下列设置到proguard的设置文件内里:

-keep class com.taobao.securityjni.**{*;}

-keep class com.taobao.wireless.security.**{*;}

-keep class com.ut.secbody.**{*;}

-keep class com.taobao.dp.**{*;}

-keep class com.alibaba.wireless.security.**{*;}

6.调用安全组件

项目设置实现以后,就可以写代码调用安全组件了。

7.客户端接口说明

聚安全安全组件的首要接口以下表:

QQ截图20161011132717.png

初始化:负责全部聚安全安全组件的同步初始化。

异常:调用初始化或安全接口时,当接口调用失败时会抛出JAQException异常。JAQException包含错误码,可以用来甄别详细错误类型。

安全接口:提供了安全署名、安全加密、安全存储、摹拟器检测四大类接口。其中,安全署名、安全加密需要使用指定的安全秘钥。这里说的“安全密钥”是指在聚安全官网上生成SDK时随机自动生成的“密钥”。以下图所示,该安全秘钥默认是隐躲的。

a15b4afegw1f7dujqonh7j20d407t3yl.png

指定密钥key默认隐躲

点击“查看安全密钥”按钮即可显示该密钥,以下图。

a15b4afegw1f7dujpyckoj20fw05qt8t.png

秘钥信息

要是在使用安全署名以及安全加密功能时需要输入密钥KEY作为参数,只要填入上述“259fa***ff388”即可。

注意

a.安全组件SDK的加解密操作都是在自带的安全沙箱中进行的,对外并不暴露密钥以及加密算法。应用在调用加解密接口的时辰传入上述“安全密钥”,它会去沙箱中索引真实的密钥进行加解密操作。因此,这个“安全密钥”并不是传统意义上加密算法使用的密钥,而是一个密钥的索引。同时,秘钥信息以及应用强绑定,黑客即使通过逆向手段拿到该密钥索引,也没法获取安全沙箱中执行加解密操作的真正密钥。

b.白盒加密以及白盒署名采用了白盒加密手艺对数据进行加密以及署名操作,全部加密过程不会有秘钥的参与,因此不会存在秘钥泄露的危害。

发铺现状

目前,阿里聚安全提供了全流程的危害管控服务,其包含仿冒监测、运行环境监测、攻击举动监测。目前监测到的注入攻击情形以下图所示。

监测.png

产品用户已笼盖8亿终端。

安全组件内部使用c说话以及汇编完成,代码经过量次优化以后,首要接口的执行效劳均在毫秒级。无非以后并未将工具开源的打算。

安全组件已经应用于手机淘宝、支付宝等大型、超大型应用,历经多次双11活动,证明其稳定、安全、可靠性。

团队先容

阿里聚安满是2016年2月25日阿里巴巴正式推出的企业安全产品,创建的初衷是与全社会同享阿里巴巴的专业安全手艺以及能力。阿里安全手艺产品总监陈树华表示,阿里巴巴生于互联网,有最丰富的互联网营业场景,阿里聚安满是阿里巴巴16年危害防控手艺的结晶。其中最大亮点是大数据风控。阿里巴巴安整个基于近10年对黑灰产业链的情报网络、深入研究以及用户举动阐发,结合大数据模型,针对各类危害确立了一整套数据驱动的监控-阐发-识别-审理-处置的风控手艺系统。阿里聚安全实人认证照样全网唯一通过公安部与工信部认可的在线手机发卡认证方案。

WitAwards年度安全评比火热报名中

FreeBuf主办的FIT 2017(2017 FreeBuf互联网安全创新大会)将于2016年12月28日-29日在上海陆家嘴上海国际会议中心召开。与FIT 2017大会并行的WitAwards 2016,作为一年一度的互联网创新安全评比盛典以及FIT 大会的重头戏之一,自然备受业界关注。  

201347081521117549.png  

WitAwards 2016互联网安全年度评比,旨在发掘全年卓著的安全产品以及卓越人物;给予在2016年为安全行业做出奉献的小我私人、团队及产品以掌声以及肯定;为超过100款安全产品的创新以及起劲,及行业的专业精神全情投入喝彩。

参选奖项报名

920146496057948409.png  

不同奖项的参与报名通道现已开启,9月15日-10月31日,针对以上四大奖项,任何人都可以进行线上报名,或觉得他人及其产品提名的情势参与WitAwards 2016评比。FIT官方会对报名以及提名的项目进行初步考核。

WitAwards2016参选奖项报名入口:http://wit.freebuf.com

行业评委申请

自古高手出民间,尤为在安全领域更是躲龙卧虎。

本届WitAwards年度互联网安全评比,特邀“懂安全”的你担当我们的行业评委,也信赖你能够代表业界同行评比出最专业最优秀的奖项。

入选行业评委,将获得FIT 2017大会门票。

WitAwards 2016行业评委申请入口:http://form.mikecrm.com/liMYUT


标签:年度 安全 产品 巡礼 阿里 


本站所有资源默认解压密码:www.aqfls.com 如有问题请联系管理员说明


本站资源仅供学习参考,所有资源均来源于网络搜索及网友提供,所有言论并不代表本站立场

投诉与建议 文章投稿 E-mail:1437232096@qq.com

相关评论
加载中