SDK的一些安全测试

SDK安全要求

在android应用开过过程中,SDK是android应用中不可缺少的一部分,通过集成各种第三方的SDK可以减少APP应用开发的工作量。但是在APP应用中集成各种第三方SDK可能存在各种安全的风险,除了一些基础的安全问题还有一些致命的异常崩溃的安全问题,通过验证测试分析sdk的安全风险尽可能规避安全风险。

下面来源:<<移动互联网应用程序SDK安全技术要求及测试方法>> 文档中,它罗列出来sdk中的安全基本要求:

SDK安全测评

SDK可能存在的安全风险包括:

  1. 这些安全风险不仅包括会出现sdk中可能存在代码漏洞,这会促使APP应用容易受到攻击;

  2. 第三方SDK没有在维护更新或无法使用;

  3. 使用第三方免费SDK可能存在知识产权的问题。

所以在sdk集成之前很有必要对sdk进行测试验证分析,验证测试方式:

  1. 可以检测第三方依赖性中的漏洞的插件(例如:dependency-check-gradle)在应用接入SDK前进行验证测试sdk是否存在安全漏洞;

  2. 也可以通过jeb或者jadx将sdk的代码反编译分析是否存在可能的漏洞;

  3. 对sdk的隐私数据保护、访问权限的控制进行测试;

  4. 对sdk的行为LOG和调用栈LOG进行测试。

SDK的基本安全测评:

SDK数据存储风险测评

SDK数据交互风险测评

SDK重要组件测评

SDK代码及资源文件安全测评

SDK的异常处理

当SDK代码进入异常或者错误状态时,就会发生异常。java和C++代码都可能引发异常。通过验证测试异常是为了确保应用将处理异常并转换为安全状态,而不是通过UI界面或日志记录机制公开敏感信息。

1、确保SDK使用精心设计和统一的方案进行管控代码;

2、通过创建适当的空检查、绑定检查等来规划标准 RuntimeException(例如 NullPointerException、IndexOutOfBoundsException、ActivityNotFoundException、CancelException、SQLException)。应有意抛出 RuntimeException 的子项,并且应由调用方法处理意向。

3、确保对于每个非运行时 Throwable,都有一个适当的 catch 处理程序,最终正确处理实际异常。

4、引发异常时,确保SDK程序具有用于导致类似行为的异常的集中处理程序。这可以是静态类。对于特定于方法的异常,请提供特定的 catch 块。

5、确保sdk在其 UI 或日志语句中处理异常时不会公开敏感信息。确保异常仍然足够详细,可以向用户解释问题。

6、确保在执行 finally 块期间,始终擦除高风险应用程序处理的所有机密信息。

下面几种方式可以对SDK中异常进行动态分析:

1、使用Xposed或者frida工具进行hook方式,并使用意外值调用它们,或使用意外值(例如空值)覆盖现有变量;

2、在Android应用程序的UI界面字段中键入意外值。

3、使用应用程序的意图、公共提供程序和意外值与应用程序交互。

4、篡改网络通信或应用程序存储的文件。

 如何入门学习网络安全

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

视频配套资料&国内外网安书籍、文档&工具

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

猜你喜欢

转载自blog.csdn.net/Python_0011/article/details/130986265