App安全加固怎么做?全面大盘点
2021/09/23

下面我们再跟大家分享一下App安全加固的相关内容。App存在风险,我们也知道要去检测的内容了,那有问题之后要怎么办呢?有什么办法来避免这些问题?修复这些问题呢?


Android安全加固技术


源码加固

Java源码加固-dex文件加壳保护、dex函数抽取加密; 

SO库加固-SO文件加壳保护、高级深度混淆、ELF数据隐藏;

Html加固;

资源文件加固-音视频加密、配置文件和数据库加密;


运行环境加固

完整性保护-签名、防二次打包;

防调试保护-双向ptrace保护、反IDAPro调试; 

防篡改保护-防数据破解分析、防数据劫持; 

反编译保护-反apktool、反ApkIDE、反jd-gui;

模拟器识别; 

ROOT检测;


业务场景加固

密钥保护; 

安全键盘; 

防界面劫持; 

反外挂;

清场;

通信协议加密;


iOS加固技术


高级混淆

字符串加密

指令多样化  

基本块分裂  

控制流引入  

跳转指令插入  

控制流扁平化控制流间接化


安全防护SDK

越狱检测  

重签名检测  

Cydia Substrate框架检测  

逆向工具检测  

代码注入框架检测调试器检测


安全键盘SDK

键盘字符混排   

输入无回显


移动应用安全加固


通过分析Android和ios两大主流平台的加固技术,这里给大家推荐了一个App整体的安全加固方案。通过静态层面、动态层面以及数据层面,多个层面全方位立体式地去进行加固防护。


静态层面,有防逆向,如DEX文件的保护、SO文件的保护、SDK的保护以及JS、H5、HTML等文件的保护,利用一些加固技术去做防逆向的保护。静态层面还有签名保护,主要是防篡改,一个是代码防篡改,一个是资源文件防篡改。将防篡改技术加入进来,嵌入之后,就能实现静态层面的防篡改。


动态层面主要是防调试,一般是通过动态调试来查看你这个平台的逻辑是什么样的,要有防动态调试的技术。还要放进程调试、防内存DUMP、防模拟器、防HOCK攻击等。


数据层面要有数据的防泄漏,像针对内存数据的保护,内存中的数据有没有加密?使用完后有没有及时释放?日志数据,有没有存储一些关键的数据?有没有存储一些敏感数据?以及在数据传输的过程中的一些加固技术要加入进来。针对页面数据的保护,有应用防截屏、应用防劫持、安全键盘等。