本节包含确保 Android 设备网络通信安全的建议。
保护监听套接字
谨慎使用监听套接字。设备上通常不应该有任何打开的侦听套接字,因为它们为远程攻击者提供了访问设备的媒介。
- Android 设备应最大程度地减少其暴露的互联网侦听套接字的数量,尤其是在启动时或默认情况下。默认情况下,启动时不应监听任何套接字。
- 根进程和系统唯一标识符 (UID) 拥有的进程不应公开任何侦听套接字。
- 必须能够在不进行 OTA 更新的情况下禁用侦听套接字。这可以通过服务器或用户设备配置更改来执行。
- 对于使用本地 IPC 的套接字,应用程序必须使用仅限某个组访问的 UNIX 域套接字。为 IPC 创建一个文件描述符,并将其设置为特定 UNIX 组的 +RW。任何客户端应用程序都必须位于该 UNIX 组内。
- 某些具有多个处理器的设备(例如,与应用程序处理器分离的无线电/调制解调器)使用网络套接字在处理器之间进行通信。在这种情况下,用于处理器间通信的网络套接字必须使用隔离的网络接口,以防止设备上未经授权的应用程序进行访问(即使用 iptables 来防止设备上的其他应用程序进行访问)。
- 处理侦听端口的守护进程必须能够抵御格式错误的数据。您应该使用未经授权的客户端(如果可能的话)使用授权客户端对端口进行模糊测试。归档错误以跟踪崩溃情况。
Android 兼容性测试套件(CTS) 包括检查是否存在开放侦听端口的测试。
禁用亚行
Android 调试桥 (ADB) 是一种有价值的开发和调试工具,但设计用于在受控的安全环境中使用,不应启用一般用途。
- 确保默认情况下禁用 ADB。
- 确保 ADB 要求用户在接受连接之前将其打开。