blob: 125f6365fbfbe1f3537fd272eca2e461bbd10c67 [file] [log] [blame]
<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>