如何系统有效地提升Android代码的安全性

发布时间:2021-12-22 15:30:17 作者:柒染
来源:亿速云 阅读:103

今天就跟大家聊聊有关如何系统有效地提升Android代码的安全性,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

众所周知,代码安全是Android开发工作中的一大核心要素。

Android应用安全存在多重隐患

尹彬彬首先提到,Android和iOS两大操作系统占据了几乎全部移动端的市场份额,但是相比后者,缺少足够严格管控以及未能形成完善安全生态的Android系统,往往会存在很多安全隐患,给企业、开发者和用户都带来了不好的影响。

比如说:

随着技术的不断发展升级,移动App安全防护发展到现在的阶段,也已经成功引入了“安全生态链”的概念,并出现了融入到整个App开发上线周期链中的全套安全服务,这个生态链包含了安全开发、应用审计、安全加固、渠道检测等。

如何系统有效地提升Android代码的安全性

安全开发能有效降低开发者维护成本

安全开发是指在开发阶段减少安全风险,从而将安全缺陷降低到最小程度,避免后期线上运营阶段出现安全问题,但是成本较高。

安全开发生命周期(SDL)是侧重于软件开发的安全保证过程,旨在开发出安全的软件应用。其核心理念就是将安全考虑集成在软件开发的每一个阶段:需求分析、设计、编码、测试和维护。从需求、设计到发布产品的每一个阶段每都增加了相应的安全活动,以减少软件中漏洞的数量并将安全缺陷降低到最小程度,尽可能地在产品版本回归前清除漏洞。

尹彬彬表示,在这一阶段,一方面可以开展SDL培训,强化安全开发意识,制定安全编码规范;另一方面是使用较成熟的安全组件。

具体的安全建议包括有:

在开发阶段、测试阶段发现或者预防安全隐患成本较低,上线阶段或者运营阶段出现安全问题的成本较高,因此,开发者应明确安全开发的重要性。

应用审计

“只要是人在开发代码,就会存在安全漏洞”,尹彬彬如是说。近几年来,安全漏洞的形式越来越多种多样,拒绝服务、Webview明文存储密码等漏洞深切困扰着企业和开发者。因此,应用审计的重要性也越来越显著。

如何系统有效地提升Android代码的安全性

一般而言,应用审计的方式主要包括漏洞扫描和渗透测试。

1. 漏洞扫描

在漏洞扫描中,黑盒测试是比较常见的手段之一,也方便集成到现有的开发流程中。它能够很方便地提供漏洞详情、漏洞代码行数、风险等级、修复建议等。自动化移动应用安全测试框架Mobile Security Framework就是个很好的工具。

如何系统有效地提升Android代码的安全性

2. 渗透测试

渗透测试可以有效检测客户端程序安全、敏感信息安全、密码软键盘安全性、安全策略设置、手势密码安全性、通信安全、配置文件、拒绝服务、本地SQL注入等威胁类型。

如何系统有效地提升Android代码的安全性

代码加固

代码加固主要包括应用加固(DEX文件、SDK文件、SO文件)和源码混淆(Java、C/C++、JavaScript/HTML)两种常见手段。

1. DEX加固

从Java到C++语言,越往底层走,系统的粒度就越来越细(文件、方法、指令),壳逻辑与被加固的业务逻辑边界也越来越模糊。所以要想获得安全性和执行效率的平衡点,就可以采用DEX加固的方式。

如何系统有效地提升Android代码的安全性

2. SDK加固

Java字节码较容易被反编译,拿到SDK基本等于直接获取了源码。目前针对SDK的保护仅限于开发阶段的Proguard混淆,没有较高强度的安全保护措施。

但可以借用Dex加固的思想,对Java字节码做抽取处理:

如何系统有效地提升Android代码的安全性

3. SO加固

SO加密包括自定义节加密和自定义Linker,如下的例子所示:

如何系统有效地提升Android代码的安全性

4. Java源码混淆

此方式下可以设置自己的字典,这也是最常用的安全防护手段之一。

如何系统有效地提升Android代码的安全性

5. C/C++混淆

C/C++混淆可利用Obfuscator-LLVM工具高效实现,主要包括以下方法:

如何系统有效地提升Android代码的安全性

其他常见的C/C++混淆手段还有:

6. H5混淆

H5混淆是指从JS的语法和逻辑上进行混淆。

这种是从抽象语法树角度对JS的源码进行语法分析,将源码字符串转换为树形结构,然后对相应的属性(如字符串、变量名、函数名等)进行混淆或加密。

如何系统有效地提升Android代码的安全性如何系统有效地提升Android代码的安全性

渠道监测能够随时感知安全态势

渠道监测也是Android安全开发中的一个重要课题,其工作内容主要是App是否被调试、HOOK、脱壳等运行时信息的上报,以便随时感知安全态势。

如何系统有效地提升Android代码的安全性

看完上述内容,你们对如何系统有效地提升Android代码的安全性有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. 代码健康:如何利用代码审查的机会提升你的代码?
  2. php如何提高代码安全性

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android

上一篇:Java类的加载过程是怎样的

下一篇:mysql中出现1053错误怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》