网络安全最佳实践

本部分包含确保 Android 设备网络通信安全的建议。

安全监听套接字

请谨慎使用监听套接字。设备上通常不应有任何开放的监听套接字,因为这些套接字会为远程攻击者提供访问设备的途径。

  • Android 设备应尽量减少其公开的互联网监听套接字的数量,尤其是在启动时或默认情况下。默认情况下,启动时互联网上不应监听任何套接字。
    • Root 进程和系统唯一标识符 (UID) 拥有的进程不应公开任何监听套接字。
  • 监听套接字必须能够被禁用,而无需 OTA 更新。这可以使用服务器或用户设备配置更改来执行。
  • 对于本地 IPC 使用套接字,应用必须使用 UNIX 域套接字,且访问权限仅限于某个群组。为 IPC 创建一个文件描述符,并使其对特定的 UNIX 群组具有 +RW 权限。任何客户端应用都必须位于该 UNIX 群组内。
  • 某些具有多个处理器(例如,与应用处理器分离的无线装置/调制解调器)的设备使用网络套接字在处理器之间进行通信。在这种情况下,用于处理器间通信的网络套接字必须使用隔离的网络接口,以防止设备上未经授权的应用访问(即,使用 iptables 阻止设备上其他应用的访问)。
  • 处理监听端口的守护进程必须能够可靠地处理格式错误的数据。您应该使用未经授权的客户端以及(在可能的情况下)授权的客户端对端口执行模糊测试。提交错误报告以跟进崩溃问题。

Android 兼容性测试套件 (CTS) 包含检查是否存在开放监听端口的测试。

禁用 adb

Android 调试桥 (adb) 是一种有价值的开发和调试工具,但它旨在受控的安全环境中使用,不应为一般用途启用。

  • 确保默认情况下禁用 adb。
  • 确保 adb 需要用户先开启才能接受连接。