北京大学医学院校园安全防护探索(2)
(1)数据存储与交互安全隐患
校园数据安全是高校信息化安全建设的重要组成部分。高校数据库一般都部署在学校内网的服务器中,并且有专门的防火墙限制,利用网络层面进行数据保护。而在使用移动应用的过程中,如果开发者在 文件中权限配置不当,客户端本地静态数据如本地系统文件、本地业务数据等都可能被盗用,造成用户的敏感信息泄露。
Android 系统本身有四大组件:Activity、Service、Broadcast Receive 和 Content Provider。Activity 组件是 Android 程序与用户交互的界面;Service 组件是后台运行的服务进程;Broadcast Receiver 组件对外部事件进行过滤接收,并根据消息内容执行响应;Content Provider 组件是应用程序之间共享数据的容器,可以将应用程序的指定数据集提供给第三方APP。不同的应用程序或进程之间可能存在共享数据,然而应用程序中不同的数据具有严格的访问权限。如果访问权限设置不当,应用程序中的数据可能被其他程序直接访问或修改,导致用户的敏感数据泄露,或应用程序被恶意篡改账号,盗取账号信息等。若组件中设置了导出权限,会存在登录界面被绕过、敏感数据泄露、数据库SQL 被注入的风险。
(2)数据传输安全隐患
客户端与服务器之间传输数据通常遵循通信协议指定的内容格式和内容类型,如果未对传输数据加密,传输数据很有可能被还原成网络层的数据包进行解包并分析,暴露通信过程中的各种关键数据。
在使用HTTPS 协议时,客户端需对服务器身份进行完整性校验,即验证服务器是真实合法的目标服务器。如果没有校验,客户端可能与仿冒的服务器进行通信链接,即造成“中间人攻击”。
当客户端的WebView 组件访问使用HTTPS 协议加密的URL时,如果服务器证书校验错误,客户端应该拒绝继续加载页面。如果重载WebView 的onReceivedSslError()函数并在其中执行(),客户端可以绕过证书校验错误继续访问此非法URL,将导致“中间人攻击”。攻击者冒充服务器与手机客户端进行交互,同时冒充手机客户端与服务器进行交互,充当中间人转发信息的时候,也有可能窃取手机号、账号、密码等敏感信息。
实践
1.解除程序源文件安全隐患
应用开发者可以使用自己开发的加固工具或是第三方的加固工具,来强化应用程序的安全能力。加固技术可以在不改变应用客户端代码的情况下,将针对应用程序的各种安全缺陷保护技术集成到应用客户端中,提供应用开发、打包、发布、运行全生命周期的安全,并在文件中设置防二次打包的配置,有效防止针对移动的反编译、二次打包、内存注入、动态调试等恶意攻击行为,全面保护应用程序安全。
图3 APK 文件加固方案
北京大学医学部在开发校园APP 时,研发人员采用加固方式保护Android 版本的程序源文件安全。
对APK 文件加固后,可以有效保护Android 应用程序不被反编译。同时,代码混淆通过将Java 代码中的方法名、变量名、类名、包名等元素名称改成毫无关联且无意义的名字,或对简单的逻辑分支进行混淆,使攻击者难以找到函数调用的内容,无法掌控APP 内部实现逻辑,增加逆向工程和破解的难度。
除使用加固工具外,北京大学医学部还针对打包上线的应用程序,将Android 版本应用发布在校园内的服务器上;因iOS 应用必须通过APP Store 审核,故将iOS 版本应用发布在APP Store 上,同时向用户公布官方下载路径。由此可以有效避免校园应用被植入其他应用程序,防止APP 被破解、被盗版,防止恶意推广安装其他应用软件,避免用户安装仿冒软件等。
2.解除校园APP 数据安全隐患
(1)解除数据存储与交互的安全隐患
如上文所说,校园APP 在数据存储与交互时存在安全隐患。目前,高校大都使用统一身份认证,故登录时的账号和密码都不会在本地存留。应在考虑数据安全时重点考虑业务数据存储安全、交互数据安全和传输数据安全。
解除Webview 明文存储密码风险。其他恶意程序也可能通过提权或者root 的方式访问Webview 数据库,窃取用户的用户名信息及密码。北京大学医学部在开发APP 时通过设置()中的方法setSavePassword(false)关闭Webview 组件的保存密码功能。
关闭必要组件的导出权限。限制 中的Activity、Broadcast Receiver、Content Provider、Service 组件导出权限,对于须导出的组件必须限制于授权用户或者应用组件。
文章来源:《新乡医学院学报》 网址: http://www.xxyxyxb.cn/qikandaodu/2021/0728/598.html
上一篇:谢拉和埃里克萨姆森健康中心
下一篇:汕头大学新医学院