SDK基本安全要求
a) 应确保分发过程具备有效的完整性校验机制,避免提供的代码、资源文件遭篡改。
b) 应确保分发包、Demo包内不包含病毒、木马等恶意程序。
c) 应避免调试信息函数输出通信日志、关键变量等敏感信息。
d) 应避免分发包、Demo包内残留内网URL、测试账号、测试数据等测试信息。
e) 应避免嵌入与业务功能无关的插件、代码,或在分发包中私自打包提供其他SDK产品。
f) 申请系统权限应遵循最小必要原则,避免索要非实现业务功能所必须的权限。
数据存储安全要求 SDK数据存储安全要求
a) 应对存储于最终用户设备上的含有个人信息、重要数据的文件进行加密(如库表加密、文件加 密等),避免被宿主App、其他App、恶意程序等非法访问、篡改。
b) 宜对与宿主App或其他本地程序共同处理、使用的数据进行加密处理,并约定安全有效的解密方 案,确保数据的合法授权访问。
c) 应对存储于最终用户设备上的数字证书文件进行加密,避免数字证书泄露或遭非法篡改。
d) 应对存储于最终用户设备上的备份数据进行加密,避免备份数据泄露。
e) 应限制本地存储的配置信息、用户偏好等轻量数据读写权限,避免遭其他程序越权访问、篡改。
f) 宜限制个人信息、重要数据本地存储时间,确保到期数据自动删除。
g) 应避免本地存储去标识化数据与原始标识的对应关系信息,防止相关信息泄露导致去标识化失 效。
h) 应避免本地存储明文的鉴权信息(如账号、密码等),宜采用加随机盐的哈希值方式存储相关 数据,避免用户个人敏感信息泄露。
数据交互安全要求 SDK与宿主App、服务端数据交互应满足的安全要求
a) 应采用安全的传输协议确保SDK与服务端数据交互的机密性、完整性、可用性。
b) 涉及个人信息、重要数据传输的场景,应采用HTTPS等加密传输协议或对相关数据单独加密,确保个人信息加密传输。
c) 使用HTTPS传输协议时,宜开启SDK与服务端的双向验证机制,确保服务端身份真实性。
d) 使用HTTPS自定义证书时,应对服务端主机名进行校验,验证服务端主机身份。
e) 应使用安全的加密算法、密钥生成机制,避免使用不安全的加密算法(如RC4、AES ECB或OFB 工作模式等),避免加密算法破解。
重要组件安全要求
SDK使用系统功能组件应满足的安全要求如下:
a) 应在使用组件调用系统功能时确保其配置安全性,避免出现配置不合理导致的安全风险。
b) 应在使用组件调用系统功能时遵循最小必要原则,避免调用与实现业务功能无关的功能。
c) 调用网页视图(WebView)应确保其配置安全性,避免出现配置不合理导致的安全风险。
d) 调用网页视图(WebView)实现与服务端交互时,应符合5.1.3章节各项要求。
e) 宜在调用Intent组件时验证接收方合法性并对参数进行过滤,避免出现越权调用、隐式调用等 风险。
f) 宜在调用Intent组件时增加异常捕获机制,避免出现程序崩溃等风险。
代码及资源文件安全要求 SDK代码及资源文件安全要求
a) 宜采用代码混淆、加固等手段提高逆向分析的难度,降低关键函数、逻辑等泄露风险。
b) 宜对本地存储的so文件进行加固/混淆处理,避免敏感信息泄露。
c) 宜对本地存储的h5资源文件进行加密处理,避免资源文件遭篡改。
d) 如采用资源文件热更新技术,宜对文件解压文件名进行限制,避免更新的资源文件被非法获取。
e) 宜对本地存储的so文件进行地址空间随机化,降低缓冲区溢出攻击风险。
f) 宜对本地存储的so文件进行编译器堆栈保护,避免栈溢出时系统不对程序进行保护。
g) 宜对本地存储的密钥、证书进行加密,避免本地密钥、证书泄露或遭篡改。
h) 宜避免代码内存在硬编码或强耦合的URL地址,避免链接遭篡改。
SDK 安全测试项
SDK分发缺少完整性校验
风险描述:分发过程缺少完整性校验机制可能导致APP提供者获取伪造、遭篡改的SDK代码
测试方式:访问SDK下载渠道,查验是否提供hash值对比、签名证书等完整性校验机制
内含恶意程序
风险描述:分发包内含有病毒、木马等恶意程度对APP提供者、最终用户可能造成安全威胁
测试方式:解压缩SDK分发包,扫描是否含有恶意代码、木马等恶意程序
调试日志输出敏感信息
风险描述:调试信息函数输出日志可能泄露代码逻辑等敏感信息,导致安全风险
测试方法:反编译SDK代码,查验调试信息函数是否禁用,如未禁用则查验输出日志是否含有敏感信息
残留测试信息
风险描述:残留测试数据可能导致测试服务器地址、测试账号等信息泄露,威胁运维安全
测试方式:反编译SDK代码,查验是否残留服务器地址、测试账号等信息
内嵌无关插件、SDK
风险描述:与业务功能无关的插件、SDK等可能会携带恶意程序或造成其他安全风险
测试方法:解压缩SDK分发包,查验资源文件中是否存在与业务功能无关的插件、SDK等
索要非必要权限
风险描述:索要与实现SDK业务功能无关的非必要权限可能导致合规性风险
测试方法:核验SDK权限声明情况,比照业务功能,判断是否申请与业务功能无关的系统权限
数据明文存储
风险描述:本地明文存储数据,可能导致个人信息、重要数据等遭非法访问、篡改
测试方法:进入SDK本地数据存储路径,查验是否存在明文存储的数据库文件,如有则查验其内容是否存在敏感信息
共享数据明文存储
风险描述:SDK与本地程序共同处理、使用的数据未加密,可能导致数据越权访问风险
测试方法:进入宿主APP及SDK本地数据存储路径,结合技术文件查验是否存在明文存储的共享文件,如有则查验其内容是否存在敏感信息
数字证书明文存储
风险描述:明文存储的数字证书可能遭窃取、篡改,导致传输数据被截获、伪造传输请求等安全风险
测试方法:反编译SDK代码,查验资源文件中是否存在明文存储的证书文件
备份数据明文存储
风险描述:如sdk开启数据备份功能并以明文存储备份数据,可能导致备份数据遭越权访问
测试方法:反编译SDK代码,查验是否开启了数据备份功能,如是则进入SDK备份数据存储目录,查验备份数据是否是明文存储
数据全局可读写
风险描述:如开启轻量数据全局读写权限,可能导致本地存储的配置信息、用户偏好等信息遭越 权访问、篡改
测试方法:查阅 SDK 技术信息,查验 SDK 开发过程中是否关闭或限制轻量数据读写权限
数据超期存储
风险描述:如未限制数据存储周期,可能导致个人信、重要数据超期存储
测试方法:查阅SDK技术信息,查验SDK开发过程中是否限制本地数据存储周期,进入SDK本地存储路径,查验超出存储期限数据是否删除
标识对应关系本地存储
风险描述:如本地存储区标识化数据与原始标识的对应关系信息泄露,可能导致去标识化失效
测试方法:结合SDK技术信息查询,进入SDK本地存储路径,查验是否存在本地存储的标识化数据与原始标识的对应关系信息
鉴权信息明文存储
风险描述:如本地明文存储鉴权信息(如账号、密码等)可能导致用户个人敏感信息泄露
测试方法:结合SDK技术信息,查验SDK是否仅存储鉴权信息哈希值,且哈希值计算过程中添加了随机盐
敏感信息HTTP协议传输
风险描述:HTTP协议通信使用明文传输且不验证通信方的身份及完整报文,可能导致数据泄露、中间人攻击等安全风险
测试方式:抓取HTTP协议数据包进行分析,查验是否存在明文的个人信息、重要数据等敏感信息
敏感信息明文传输
风险描述:明文传输的数据可能遭截获,导致敏感信息泄露
测试方法:抓取通信流量并分析内容,查验是否可截获明文个人信息、重要数据等敏感信息
HTTPS未开启双向认证
风险描述:未开始HTTPS双向证书校验可能导致加密数据遭劫持、解密。导致数据泄露等风险
测试方法:配置证书文件并进行流量分析,查验是否使用了HTTPS单项认证机制
HTTPS未验证主机名
风险描述:缺少主机名校验机制,SDK可能与仿冒的服务器建立通信,导致中间人攻击
测试方法:反编译样品文件,查验是否使用了自定义SSL证书,如是则查验HTTPS相关设置是否开启主机名校验
随机数不安全使用
风险描述:随机数生成机制设置不当可能导致生产的随机数可被预测,威胁秘钥安全性
测试方式:反编译样品,查验是否使用了不安全的随机数方法
加密算法不安全使用
风险描述:对称加密算法相关设置不当可能导致加密失效,导致加密文件遭破解、传输数据遭截获等
测试方法:反编译样品文件,查验是否使用了不安全的AES/DES加密算法
系统组件的不安全配置
风险描述:系统组件策略、规则不安全配置可能导致相关组件遭恶意调用,为恶意行为提供便利
测试方法:反编译样品文件,查验组件调用过滤规则、调用路径是否存在不安全的配置
webview组件不安全配置
风险描述:webview组件加载网页、功能、资源时,如果存在不安全配置,可能导致数据泄露、劫持、篡改等风险
测试方法:反编译样品文件,查验webview相关功能是否存在不安全配置
intent越权调用
风险描述:intent组件调用未进行严格过滤,可能导致构造特殊格式的URL越权调用activity组件
测试方法:反编译样品文件,查验intent调用是否进行了严格过滤
intent隐私调用漏洞
风险描述:使用隐式intent调用时,并未对消息接受方进行限制,可能导致intent内容泄露
测试方法:反编译样品文件,查验是否隐私调用了intent函数
应用本地拒绝服务漏洞
风险描述:如调用intent函数是未校验输入参数,如存在异常输入,可能导致崩溃
测试方法:对intent导出的组件传递一个不存在的序列化对象,查验是否导致程序进程崩溃
代码未混淆、加固
风险描述:代码未进行混淆、加固可能降低反编译难度,易暴露代码逻辑,导致安全机制遭绕过、破解等风险
测试方法:反编译文件,查验代码关键类名、逻辑、赋值等是否进行混淆处理
so文件未混淆、加固
风险描述:so文件包含动态链接库文件,未混淆、加固可能导致代码运行逻辑等信息泄露
测试方法:反编译样品文件,静态扫描代码文件,查看样品文件是否对so文件进行混淆加固
未限制解压文件名
风险描述:热更新禁止未限制解压文件名可能导致文件被解压到任意路径,导致恶意文件覆盖正常文件
测试方法:反编译样品文件,查验是否使用ziparchive实现解压功能且允许任意文件名
动态加载dex文件篡改
风险描述:热更新机制允许动态加载dex文件且未限制dex编辑,可能导致目标文件被篡改
测试方法:反编译样品文件,查验是否允许动态加载dex文件,如是,则检查dex文件是否可修改
未使用编译器堆栈保护技术
风险描述:向内存缓冲区内填充数据位超过缓冲区本身的容量,可能导致溢出的数据覆盖在合法数据上,导致内存中执行的程序地址被修改
测试方法:反编译样品文件,查验so文件是否使用了编译器堆栈保护技术
未使用地址空间随机化技术
风险描述:如应用程序的地址空间布局固定,其区域的基地址可能被获取,导致注入代码被执行
测试方法:反编译样品文件,查验so文件是否使用了地址空间随机化技术
秘钥明文硬编码
风险描述:代码中存在秘钥信息硬编码,可能导致鉴权信息泄露、加密流程遭破解
测试方法:反编译样品文件,查验代码内加密函数、方法是否存在明文的硬编码秘钥信息
URL信息硬编码
风险描述:代码内存在URL明文信息,可能导致后端服务器域名、接口等信息泄露
测试方法:反编译样品文件,查验代码内是否存在明文URL地址信息
题外话
初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:
2023届全国高校毕业生预计达到1158万人,就业形势严峻;
国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。
一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。
6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。
2022届大学毕业生月收入较高的前10个专业
本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。
具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。
“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。
网络安全行业特点
1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!
2、人才缺口大,就业机会多
2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!