| <html devsite><head> |
| <title>网络安全性最佳做法</title> |
| <meta name="project_path" value="/_project.yaml"/> |
| <meta name="book_path" value="/_book.yaml"/> |
| </head> |
| <body> |
| <!-- |
| Copyright 2018 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| //www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <p>本部分包含可确保 Android 设备上网络通信安全性的建议。</p> |
| |
| <h2 id="securing-listening-sockets">保护监听套接字</h2> |
| |
| <p>请谨慎使用监听套接字。通常情况下,设备上不应该有任何打开的监听套接字,因为它们可以让远程攻击者访问设备。</p> |
| |
| <ul> |
| <li>Android 设备应尽量减少它们公开的互联网监听套接字的数量(尤其是在启动时或默认情况下)。默认情况下,启动时不应在互联网上监听任何套接字。 |
| <ul> |
| <li>Root 进程和归系统唯一标识符 (UID) 所有的进程不应公开任何监听套接字。</li> |
| </ul> |
| </li> |
| <li>必须能够在不使用 OTA 更新的情况下停用监听套接字的功能。这种停用行为可以通过更改服务器或用户设备配置来实现。</li> |
| <li>对于使用套接字的本地 IPC,应用必须使用只有某个组可以访问的 UNIX 域套接字。为 IPC 创建文件描述符,并允许特定 UNIX 组对其执行 +RW 操作。所有客户端应用都必须在该 UNIX 组内。</li> |
| <li>有些拥有多个处理器的设备(例如,无线装置/调制解调器从应用处理器中分离出来)会借助网络套接字在处理器之间进行通信。在这种情况下,处理器间通信所用的网络套接字必须使用单独的网络接口,以防止设备上未经授权的应用访问(例如,使用 iptables 防止设备上的其他应用访问)。</li> |
| <li>负责处理监听端口的守护进程必须能够防范格式有误的数据。您应该使用未经授权的客户端(在可能的情况下,也可以使用已获授权的客户端)针对端口进行模糊测试。提交错误以跟进崩溃。</li> |
| </ul> |
| |
| <p><a href="/compatibility/tests/">Android 兼容性测试套件</a> (CTS) 包括检查是否存在开放监听端口的测试。</p> |
| |
| <h3 id="disable-adb">停用 ADB</h3> |
| |
| <p>Android 调试桥 (ADB) 是一款非常实用的开发和调试工具,但它只适合在受控的安全环境中使用,不得针对一般使用情况启用该工具。</p> |
| |
| <ul> |
| <li>确保 ADB 默认处于停用状态。</li> |
| <li>确保 ADB 会要求用户先将其开启,然后再接受连接。</li> |
| </ul> |
| |
| </body></html> |