1、软 件 安 全 问 题 的 根 源 :内 因 : 软 件 有 错 误* 脆 弱 点* 缺 陷 (设 计 层 )* Bug(实 现 层 )* 软 件 开 发 方 法 存 在 问 题外 因 : 软 件 的 运 行 环 境* 网 络 对 软 件 的 发 展 产 生 了 巨 大 的 影 响 ( 负 面 居 多 )外 部 环 境 : 黑 客 、 恶 意 代 码内 部 环 境 : 误 操 作 、 报 复 、 经 济 犯 罪7+1 的 软 件 安 全 问 题 领 域 :1.输 入 验 证 和 表 示 法2.滥 用 API3.安 全 特 性4.时 间 和 状 态5.错 误 处 理6.代 码 质 量7.封 装*
2、.环 境1.输 入 验 证 和 表 示 法输 入 验 证 和 表 示 问 题 由 元 字 符 、 替 换 编 码 、 数 字 表 示 法 引 起 。 如 果 选 择 使 用 输 入 验 证 , 那 么 就 要 使 用白 列 表 、 而 不 是 黑 列 表 。由 于 轻 信 输 入 而 造 成 的 大 问 题 包 括 : 缓 冲 区 溢 出 、 跨 站 脚 本 攻 击 、 SQL 注 入 、 缓 存 毒 药 和 其 它 脚本 小 子 们 非 常 轻 易 吃 到 的 “低 挂 的 果 实 ”( 这 里 只 安 全 性 较 低 的 软 件 设 计 ) 。2.滥 用 APIAPI 规 定 了 调 用
3、者 和 被 调 用 程 序 之 间 的 使 用 约 定 。 滥 用 API 的 常 见 模 式 是 由 调 用 者 错 误 地 信 任 被调 用 方 造 成 的 。 例 如 , 调 用 者 希 望 从 被 调 用 程 序 那 里 返 回 获 取 用 户 信 息 , 而 被 调 用 程 序 并 没 有 任 何 的安 全 性 保 证 其 信 息 的 可 靠 性 。 于 是 调 用 者 就 假 定 了 调 用 程 序 返 回 数 据 的 正 确 性 和 安 全 性 。 当 然 , 也 存在 “坏 人 ”有 意 破 坏 调 用 者 -调 用 程 序 之 间 约 定 的 行 为 。3.安 全 特 性软
4、件 安 全 不 是 安 全 软 件 。 世 界 上 所 有 的 加 密 算 法 都 不 能 满 足 真 正 的 安 全 需 要 。 尽 管 使 用 SSL 保 护网 络 流 量 的 手 段 , 而 认 证 、 访 问 控 制 、 机 密 性 保 障 、 加 密 算 法 、 权 限 管 理 等 都 可 能 存 在 着 安 全 缺 陷 。4.时 间 与 状 态分 布 式 计 算 与 时 间 和 状 态 相 关 。 为 了 使 多 个 组 件 进 行 通 信 , 状 态 必 须 在 组 件 之 间 共 享 , 而 所 有 这 些 都需 要 花 费 时 间 。 因 此 在 时 间 和 状 态 之 间
5、可 能 存 在 着 巨 大 的 、 未 发 现 的 天 然 攻 击 资 源 。多 数 开 发 者 人 格 化 了 他 们 的 工 作 ( 将 程 序 看 作 “它 ”的 单 体 ) 。 他 们 自 以 为 单 一 、 全 能 的 控 制 线 程 能够 孜 孜 不 倦 地 日 夜 工 作 , 以 同 一 种 方 式 支 撑 整 个 应 用 。 而 现 代 计 算 机 在 任 务 之 间 切 换 速 度 与 日 俱 增 ,并 且 多 核 、 多 CPU 或 者 分 布 式 系 统 的 应 用 使 两 件 事 情 完 全 可 以 在 同 一 时 间 发 生 。 因 此 缺 陷 便 出 现 在开 发
6、者 所 设 想 的 程 序 执 行 模 型 和 实 际 情 况 之 间 的 差 异 中 。 这 些 缺 陷 与 在 线 程 、 进 程 、 时 间 和 信 息 之 间的 无 法 预 期 的 交 互 相 关 。 而 这 些 交 互 往 往 通 过 共 享 状 态 发 生 : 信 号 、 变 量 、 文 件 系 统 、 全 局 信 息 等 。5.错 误 处 理如 果 想 破 坏 软 件 , 那 么 就 让 它 抛 出 一 下 垃 圾 数 据 , 并 看 看 你 导 致 了 哪 些 错 误 。 在 现 代 面 向 对 系 统 中 ,异 常 的 想 法 取 代 了 被 禁 止 的 goto 概 念 。
7、与 错 误 处 理 相 关 的 安 全 缺 陷 在 开 发 中 很 常 见 。 在 API 被 滥 用 的 情 况 下 , 安 全 缺 陷 主 要 存 在 于 两 种 方式 : 第 一 , 开 发 者 忘 记 处 理 错 误 或 者 粗 略 得 处 理 错 误 ; 第 二 , 在 产 生 错 误 时 要 么 给 出 过 于 详 细 的 信 息 ,要 么 错 误 过 于 太 具 放 射 性 以 至 于 没 有 可 处 理 它 们 的 方 式 。6.代 码 质 量安 全 是 可 靠 性 的 子 集 。 如 果 可 以 完 整 地 描 述 你 的 系 统 和 其 存 在 的 正 面 、 负 面 的
8、安 全 可 能 性 , 那 么 安 全成 为 了 可 靠 性 的 子 集 。 劣 质 代 码 将 导 致 无 法 预 期 的 行 为 , 从 软 件 使 用 者 的 观 点 , 它 将 被 认 为 是 很 差 的可 用 性 ; 而 从 攻 击 者 的 视 角 看 , 糟 糕 的 代 码 将 提 供 给 系 统 施 压 的 可 乘 之 机 。7.封 装封 装 是 指 在 事 物 之 间 的 边 界 和 它 们 之 间 建 立 的 界 限 。 在 web 浏 览 器 中 , 它 确 保 了 移 动 代 码 不 能 够强 行 我 们 的 硬 盘 攻 击 。 在 web 服 务 端 , 它 意 味 着
9、 在 经 过 认 证 的 有 效 数 据 和 私 密 数 据 之 间 的 差 别 。 这里 的 边 界 非 常 重 要 , 如 今 在 类 之 间 的 一 些 方 法 构 成 了 重 要 的 边 界 , 因 此 信 任 模 式 需 要 谨 慎 的 设 置 。8.环 境这 是 上 面 七 种 领 域 的 外 部 领 域 , 它 包 括 在 代 码 外 部 的 所 有 东 西 , 并 对 于 我 们 建 立 的 软 件 安 全 同 样 重 要 。十 大 web 安 全 问 题 :1.未 验 证 输 入问 题 描 述 : web 请 求 信 息 在 被 Web 应 用 使 用 之 前 都 是 未 验
10、 证 的 , 攻 击 者 能 够 利 用 其 中 的 弱点 攻 击 服 务 器 ; 攻 击 者 通 过 伪 造 HTTP 请 求 的 各 个 部 分 , 例 如 URL, 查 询 字 符 串 , 头 ,cookies, 表 单 域 , 隐 藏 域 等 绕 过 站 点 的 安 全 机 制 。这 些 常 见 的 伪 造 输 入 攻 击 通 常 包 括 : 强 制 浏 览 , 命 令 插 入 , 跨 站 脚 本 , 缓 冲 区 溢 出 , 格 式 化 字符 串 , SQL 注 入 , cookie 中 毒 , 隐 藏 域 操 作 等 等 。保 护 方 法 : 过 滤 恶 意 输 入 ; 客 户 端
11、输 入 验 证 、 服 务 器 端 验 证 。2.破 坏 访 问 控 制问 题 描 述 : 对 认 证 用 户 能 够 进 行 的 操 作 缺 乏 合 理 的 限 制 。 攻 击 者 利 用 其 中 的 缺 陷 访 问 其 他 用 户的 账 户 , 浏 览 敏 感 文 件 , 或 使 用 未 授 权 的 功 能 。保 护 方 法 :加 强 对 会 话 的 保 护 ( 会 话 ID) ;防 止 暴 力 浏 览 绕 过 访 问 控 制 检 查 ;合 理 设 置 访 问 权 限 ;禁 止 客 户 端 缓 存 。3.破 坏 认 证 和 会 话 管 理问 题 描 述 : 账 户 信 用 和 会 话 令
12、牌 没 有 被 合 理 保 护 , 攻 击 者 能 够 危 及 密 码 、 密 钥 、 会 话cookies 或 其 他 限 制 而 冒 用 他 人 的 账 户保 护 方 法 :加 强 密 码 强 度 ;限 制 登 录 次 数 ;使 用 SSL 保 护 传 输 中 的 认 证 信 息 ;使 用 SSL 保 护 会 话 ID;禁 止 客 户 端 缓 存 。4.跨 站 脚 本 缺 陷问 题 描 述 : web 应 用 能 被 利 用 将 攻 击 转 送 到 端 用 户 的 浏 览 器 。 成 功 的 跨 站 攻 击 能 够 暴 露 用 户的 会 话 令 牌 , 攻 击 本 地 计 算 机 或 者
13、用 虚 假 信 息 欺 骗 用 户 。保 护 方 法 :对 用 户 提 供 的 输 出 进 行 编 码 ;根 据 白 列 表 , 严 格 验 证 查 询 字 符 串 ;过 滤 、 清 除 页 面 请 求 中 的 活 动 内 容 。5.缓 冲 区 溢 出 漏 洞问 题 描 述 : Web 应 用 组 件 可 能 存 在 缓 冲 区 溢 出 漏 洞 , 对 它 的 攻 击 会 造 成 严 重 的 攻 击 后 果 。 这种 漏 洞 是 由 于 CGI, 库 函 数 , 驱 动 程 序 、 应 用 服 务 器 组 件 等 没 有 合 理 地 验 证 输 入 。保 护 方 法 :密 切 跟 踪 Web
14、应 用 产 品 的 最 新 错 误 报 告 , 及 时 打 补 丁 ;使 用 漏 洞 扫 描 工 具 定 期 对 系 统 进 行 缓 冲 区 溢 出 漏 洞 扫 描 ;严 格 审 查 Web 应 用 程 序 中 从 用 户 请 求 接 收 数 据 的 代 码 , 确 保 对 缓 冲 区 长 度 进 行 了 检 查 。6.注 入 缺 陷问 题 描 述 : Web 应 用 在 访 问 外 部 系 统 或 本 地 操 作 系 统 时 需 要 传 递 参 数 , 这 些 参 数 可 能 会 被 攻击 者 利 用 嵌 入 恶 意 代 码 , 这 样 导 致 外 部 系 统 能 以 应 用 服 务 器 的
15、 权 限 执 行 系 统 命 令 。保 护 方 法 :避 免 使 用 外 部 解 释 器 ;对 于 涉 及 到 的 后 台 数 据 库 调 用 , 应 对 数 据 进 行 严 格 验 证 ;将 Web 应 用 程 序 设 置 为 能 满 足 需 要 的 最 小 权 限 运 行 ;不 得 不 使 用 外 部 命 令 时 进 行 严 格 检 查 ;应 该 检 查 调 用 的 所 有 输 出 、 返 回 代 码 和 错 误 代 码 , 最 低 限 度 要 能 确 定 何 时 发 生 了 错 误 。7.不 合 理 的 错 误 处 理问 题 描 述 : 正 常 操 作 中 的 错 误 条 件 没 能 合
16、 理 处 理 , 如 果 攻 击 者 使 Web 应 用 产 生 未 作 处 理 的错 误 , 就 能 得 到 具 体 系 统 信 息 , 使 安 全 机 制 失 效 , 使 服 务 器 崩 溃 。保 护 方 法 :设 计 合 理 的 错 误 处 理 策 略 并 作 好 文 档 , 包 括 要 处 理 的 错 误 类 型 、 错 误 提 示 信 息 、 日 志 需 记 录 的信 息 ;处 理 所 有 可 能 的 错 误 , 但 不 暴 露 不 该 暴 露 的 细 节 ;遇 到 重 复 的 错 误 尝 试 时 发 出 警 告 。8.不 安 全 存 储问 题 描 述 : Web 应 用 经 常 使
17、 用 加 密 函 数 保 护 信 息 和 身 份 证 明 , 这 些 函 数 和 保 护 其 完 整 性 的 代码 很 难 完 全 正 确 地 实 现 , 从 而 导 致 弱 保 护 问 题 。保 护 方 法除 非 必 要 , 尽 量 少 保 存 数 据 ;存 储 密 码 的 摘 要 ( 例 如 SHA-1) 而 非 加 密 的 密 码 ;必 须 使 用 加 密 算 法 时 , 尽 量 采 用 公 开 的 密 码 算 法 库 。 并 妥 善 存 储 秘 密 信 息 , 如 密 钥 、 证 书 、 密码 等 。9.拒 绝 服 务问 题 描 述 : 攻 击 者 能 够 消 耗 Web 应 用 的
18、资 源 , 使 其 无 法 正 确 为 合 法 用 户 服 务 , 或 封 闭 用 户账 户 甚 至 使 服 务 瘫 痪 。保 护 方 法 :限 定 分 配 给 每 个 用 户 最 少 量 的 资 源 ;限 制 每 个 合 法 用 户 仅 有 一 个 连 接 , 并 采 用 适 当 的 丢 弃 部 分 请 求 的 策 略 ;避 免 非 认 证 用 户 对 数 据 库 或 其 他 关 键 资 源 的 非 必 要 访 问 ;使 用 内 容 缓 存 的 方 法 减 少 对 数 据 库 的 访 问 。10.不 安 全 配 置 管 理问 题 描 述 : 对 服 务 器 合 理 配 置 是 实 现 安 全
19、 性 的 重 要 因 素 , 服 务 器 通 常 都 有 损 害 安 全 性 的 不 合 理配 置 。保 护 方 法 :为 特 定 服 务 器 和 Web 服 务 器 建 立 强 化 安 全 配 置 策 略 , 关 闭 无 用 服 务 , 建 立 角 色 、 权 限 和 账 户 ,使 用 日 志 和 告 警 措 施 ;始 终 维 护 服 务 器 的 安 全 配 置 , 跟 踪 最 新 安 全 漏 洞 , 应 用 最 新 补 丁 , 升 级 安 全 设 置 , 定 期 漏 洞 扫描 , 定 期 进 行 内 部 审 查 。两 种 安 全 模 型 :微 软 的 安 全 软 件 开 发 模 型 :1.
20、安 全 开 发 生 命 周 期 ( SDL) :SDL 总 计 为 四 步 :第 一 步 : 安 全 教 育 , 通 过 教 育 才 能 提 高 安 全 意 识 。设 计 人 员 : 学 会 分 析 威 胁开 发 人 员 : 跟 踪 代 码 中 每 字 节 数 据 、 质 疑 所 有 关 于 数 据 的 假 设测 试 人 员 : 关 注 数 据 的 变 化第 二 步 : 设 计 阶 段 , 利 用 威 胁 建 模 技 术 建 立 系 统 模 型 。第 三 步 : 开 发 阶 段 , 编 码 与 测 试 并 行 。第 四 步 : 发 行 与 维 护 阶 段 , 使 用 标 准 的 修 复 机 制
21、 修 复 安 全 缺 陷 。2.威 胁 建 模 :威 胁 模 型 是 一 种 基 于 安 全 的 分 析 , 有 助 于 人 们 确 定 给 产 品 造 成 的 最 高 级 别 的 安 全 风 险 , 以 及 攻 击 是 如何 表 现 出 来 的 。其 目 标 是 确 定 需 要 缓 和 哪 些 威 胁 , 如 何 来 缓 和 这 些 威 胁 。主 要 分 为 四 个 步 骤 :第 一 步 : 分 解 应 用 程 序 。 使 用 DFD( 数 据 流 图 ) 或 者 UML( 统 一 建 模 语 言 ) 描 述 威 胁 模 型 , 作 为分 析 应 用 程 序 的 重 要 组 成 部 分 。
22、对 应 用 程 序 进 行 形 式 化 分 解 , 自 顶 向 下 , 逐 层 细 化 , 在 分 解 过 程 中 关注 过 程 之 间 的 数 据 流 。例 如 :第 二 步 : 确 定 系 统 面 临 的 威 胁 。 按 照 “STRIDE”威 胁 模 型 :S: 身 份 欺 骗 (Spoofing identity), 造 成 冒 充 合 法 用 户 、 服 务 器 欺 骗 (DNS 欺 骗 , DNS缓 存 中 毒 )。T: 篡 改 数 据 (Tampering with data)。R: 否 认 (Repudiation)、 。I: 信 息 泄 露 (Information disc
23、losure)。D: 拒 绝 服 务 (Denial of service, DOS)。E: 特 权 提 升 (Elevation of privilege)。第 三 步 : 威 胁 评 估 。 按 照 “DREAD”算 法 为 威 胁 分 级 , 并 建 立 攻 击 树 :D: 潜 在 的 破 坏 性 (damage potential)R: 再 现 性 (reproducibility)E: 可 利 用 性 (exploitability)A: 受 影 响 的 用 户 (affected users)D: 可 发 现 性 (discoverability)例 如 :Threat #1: 恶
24、 意 用 户 浏 览 网 络 上 的 秘 密 工 资 数 据潜 在 的 破 坏 性 : 读 取 他 人 的 私 密 工 资 并 不 是 开 玩 笑 的 事 。 风 险 值 为 8再 现 性 :100%可 再 现 。 风 险 值 为 10可 利 用 性 : 必 须 处 于 同 一 子 网 或 者 处 于 同 一 路 由 器 下 。 风 险 值 为 7受 影 响 的 用 户 : 每 个 人 都 将 受 到 影 响 。 风 险 值 为 10可 发 现 性 : 让 我 们 假 设 它 已 经 发 生 。 风 险 值 为 10计 算 风 险 DREAD: (8+10+7+10+10) / 5 = 9攻
25、击 树 描 述 了 攻 击 者 利 用 系 统 漏 洞 破 坏 各 组 件 , 对 威 胁 目 标 进 行 攻 击 所 经 历 的 决 策 过 程 。 建 立攻 击 树 需 要 考 虑 的 几 个 方 面 :安 全 威 胁 : 潜 在 的 事 件 , 当 攻 击 有 动 机 并 付 诸 实 施 时 , 威 胁 转 变 为 攻 击 事 件 。安 全 漏 洞 : 系 统 中 的 弱 点 。资 源 : 受 威 胁 (或 攻 击 )的 目 标 。例 如 :对 Threat #1 的 威 胁 描 述 表 格 :Threat #1 的 攻 击 树 :第 四 步 : 建 立 缓 和 方 案 , 选 择 适
26、当 的 安 全 技 术 。接 触 点 开 发 模 型 :根 据 有 效 性 排 列 的 接 触 点 :代 码 审 查 ( Code review)架 构 风 险 分 析 ( Architectural risk analysis )渗 透 测 试 ( Penetration testing )基 于 风 险 的 安 全 测 试 ( Risk-based security tests )滥 用 用 例 ( Abuse cases )安 全 需 求 ( Security requirements )安 全 操 作 ( Security operations )1.代 码 审 查代 码 审 查 的
27、目 标 是 找 到 bug, 架 构 风 险 分 析 的 目 标 是 找 到 缺 陷 。 在 很 多 情 况 下 , 这 两 个 主 要 的 接 触点 的 执 行 顺 序 能 够 交 换 。静 态 分 析 工 具 :静 态 分 析 工 具 在 代 码 中 查 找 固 定 的 模 式 或 规 则 集 合 。静 态 分 析 工 具 的 输 出 仍 然 需 要 人 为 判 断 。错 报 ( false negatives) 问 题 , 程 序 中 含 有 bug 但 工 具 没 有 报 告 。误 报 (false positives)问 题 , 工 具 报 出 的 bugs 程 序 中 不 存 在
28、。动 态 分 析 工 具 :执 行 程 序 、 错 误 注 入 。二 进 制 分 析 :反 汇 编 和 反 编 译 都 是 攻 击 者 最 常 用 的 黑 客 工 具 。例 如 : Fortify Source Code Analysis Suite2.架 构 风 险 分 析架 构 风 险 分 析 的 主 要 活 动 是 从 适 当 的 高 度 建 立 一 个 目 标 系 统 的 视 图 , 避 免 “只 见 树 林 不 见 森 林 ”,提 倡 一 页 纸 的 总 览 , “forest-level”视 图 。例 如 :在 forest-level 视 图 中 主 要 分 析 以 下 几 个
29、方 面 :威 胁 ( 谁 可 能 攻 击 系 统 ) 、 每 一 层 环 境 中 的 风 险 、 每 个 组 件 和 数 据 流 中 可 能 存 在 的 漏 洞 、 技 术 风 险 可能 造 成 的 商 业 破 坏 、 风 险 被 实 现 的 可 能 性 、 任 何 在 每 一 层 能 够 实 现 的 可 行 对 策 、 考 虑 整 个 系 统 范 围 内的 可 用 保 护 机 制 。3.渗 透 测 试渗 透 测 试 , 针 对 系 统 威 胁 尝 试 对 系 统 进 行 渗 透 , 包 括 : 积 极 ( 正 向 ) 测 试 , 验 证 软 件 正 常 执 行 了 规 定的 任 务 ; 消
30、极 ( 负 向 ) 测 试 , 安 全 测 试 人 员 必 须 深 入 研 究 安 全 风 险 ( 可 能 由 滥 用 用 例 和 体 系 风 险 驱 动 )以 便 确 定 系 统 在 攻 击 之 下 如 何 反 应 。测 试 工 具 :错 误 注 入 工 具 。其 他 工 具 :Fortify Software, CANVAS。攻 击 者 的 工 具 包 。4.基 于 风 险 的 安 全 测 试此 测 试 旨 在 揭 示 可 能 的 软 件 风 险 和 潜 在 攻 击 。实 施 人 员 :使 用 传 统 方 式 的 标 准 测 试 组 织 可 以 执 行 功 能 安 全 测 试 ;基 于 风
31、 险 的 安 全 测 试 更 依 赖 于 专 门 技 术 和 经 验 , 而 不 是 测 试 经 验 和 安 全 经 验 ;教 会 测 试 专 业 人 员 学 会 在 测 试 时 如 何 象 一 个 攻 击 者 一 样 思 考 。实 施 方 式 :有 源 码 : 白 盒 测 试 , 静 态 分 析 发 现 程 序 中 的 错 误 ;根 据 基 于 对 软 件 体 系 深 入 的 理 解 而 进 行 的 风 险 分 析 的 结 论 , 进 行 白 盒 测 试 ;无 源 码 : 黑 盒 测 试 , 运 行 程 序 恶 意 输 入 。5.滥 用 用 例滥 用 用 例 指 软 件 开 发 人 员 需
32、要 在 正 常 特 性 之 外 思 考 软 件 系 统 的 固 有 特 性 , 如 可 靠 性 、 安 全 和 性 能 。实 施 方 式 :对 系 统 的 异 常 行 为 必 须 事 先 有 所 预 期 ;象 攻 击 者 一 样 思 考 你 的 系 统 , 利 用 “反 需 求 ”尝 试 出 错 点 。例 如 : 你 的 系 统 有 一 个 使 用 加 密 保 护 通 过 序 列 化 将 关 键 数 据 写 到 磁 盘 上 的 安 全 需 求 , 与 这 个 需 求 对 应的 反 需 求 就 是 要 确 定 当 缺 少 加 密 的 时 候 会 发 什 么 情 况 。6.安 全 需 求设 计 系
33、 统 的 安 全 需 求 。7.安 全 操 作注 重 配 置 管 理 的 安 全 性 , 由 于 配 置 的 改 变 是 必 然 的 , 因 此 我 们 在 开 发 和 维 护 过 程 中 需 要 控 制 配 置 的 改变 , 建 立 开 发 活 动 ( 程 序 、 数 据 、 文 档 ) 的 快 照 , 验 证 配 置 的 任 何 修 改 , 防 止 恶 意 修 改 配 置 。常 用 工 具 :Rational ClearCase, MS Visual SourceSafe 等 。实 用 的 安 全 Web 开 发 “药 方 ”规 划 体 系 结 构 和 设 计 解 决 方 案 时 :识 别
34、 和 评 估 威 胁 : 使 用 威 胁 建 模 系 统 地 识 别 威 胁 , 而 不 是 以 任 意 的 方 式 应 用 安 全 性 。 接 着 , 根 据 攻击 或 安 全 损 害 产 生 的 风 险 和 可 能 造 成 的 潜 在 损 失 , 对 威 胁 进 行 评 价 。 这 样 就 可 以 适 当 的 次 序 对 威 胁 进行 处 理 。创 建 安 全 的 设 计 : 使 用 尝 试 或 检 验 过 的 设 计 原 则 。 集 中 处 理 关 键 区 域 , 在 这 些 区 域 , 方 法 正 确 是 必须 的 , 而 且 经 常 会 出 现 错 误 。 这 里 将 它 们 称 为
35、 应 用 程 序 缺 陷 类 别 。 其 中 包 括 输 入 验 证 、 身 份 验 证 、 授权 、 配 置 管 理 、 敏 感 数 据 保 护 、 会 话 管 理 、 密 码 系 统 、 参 数 处 理 、 异 常 管 理 和 审 核 与 日 志 记 录 各 项 。要 特 别 注 意 部 署 问 题 , 包 括 拓 扑 、 网 络 基 础 设 施 、 安 全 策 略 和 步 骤 。执 行 体 系 结 构 和 设 计 复 查 : 应 用 程 序 设 计 的 复 查 与 目 标 部 署 环 境 和 相 关 的 安 全 策 略 有 关 。 需 要 考 虑底 层 基 础 设 施 层 安 全 性 (
36、 包 括 边 界 网 络 、 防 火 墙 、 远 程 应 用 程 序 服 务 器 等 ) 带 来 的 限 制 。 使 用 应 用 程序 缺 陷 类 别 帮 助 我 们 对 应 用 程 序 进 行 分 类 , 并 分 析 适 合 于 每 个 领 域 的 方 法 。进 行 应 用 开 发 时 :开 发 工 具 的 安 全 性 : 充 分 了 解 开 发 工 具 ( 包 括 语 言 、 虚 拟 机 、 IDE 环 境 、 引 用 的 第 三 方 工 具 包 ) ,最 好 选 择 开 放 源 代 码 的 开 发 工 具 , 这 样 以 便 仔 细 审 核 其 安 全 性 。 检 查 开 发 工 具 是
37、 否 提 供 了 用 户 和 代 码安 全 模 型 , 是 否 允 许 对 用 户 和 代 码 可 以 执 行 的 操 作 进 行 限 制 。 如 果 开 发 中 涉 及 公 开 对 称 和 不 对 称 的 加密 与 解 密 、 散 列 、 随 机 数 生 成 、 数 字 签 名 支 持 等 算 法 , 最 好 选 用 可 靠 的 公 开 算 法 , 避 免 自 己 炮 制 算 法 。编 写 安 全 代 码 库 : 对 程 序 集 进 行 数 字 签 名 , 使 它 们 不 能 随 意 改 动 。 通 过 遵 守 面 向 对 象 设 计 原 理 , 减小 程 序 集 受 攻 击 面 , 然 后
38、 使 用 代 码 访 问 安 全 性 , 进 一 步 限 制 哪 些 代 码 可 以 调 用 您 的 代 码 。 使 用 结 构 化的 异 常 处 理 方 法 防 止 敏 感 信 息 蔓 延 到 当 前 信 任 边 界 之 外 , 并 开 发 更 加 可 靠 的 代 码 。 避 免 常 规 问 题 , 特别 是 输 入 文 件 名 和 URL 的 问 题 。安 全 地 处 理 异 常 : 不 要 显 示 内 部 系 统 或 应 用 程 序 的 详 细 信 息 , 如 堆 栈 跟 踪 、 SQL 语 句 片 断 等 。 确保 这 类 信 息 不 被 允 许 蔓 延 到 最 终 用 户 或 当 前
39、 信 任 边 界 以 外 。 在 异 常 事 件 中 安 全 地 “失 败 ”, 确 保 应用 程 序 拒 绝 非 法 访 问 , 而 且 没 有 停 留 在 不 安 全 的 状 态 下 。 不 记 录 敏 感 或 私 有 数 据 , 如 密 码 , 以 免 造 成危 害 。 在 记 录 或 报 告 异 常 时 , 如 果 用 户 的 输 入 包 括 在 异 常 消 息 中 , 对 其 进 行 验 证 或 清 理 。 例 如 , 如 果返 回 一 个 HTML 错 误 消 息 , 那 么 应 该 对 输 出 进 行 编 码 , 以 避 免 脚 本 注 入 。执 行 第 三 方 代 码 的 安
40、全 复 查 : 使 用 分 析 工 具 分 析 二 进 制 程 序 集 , 确 保 它 们 符 合 安 全 设 计 准 则 , 并 修复 分 析 工 具 识 别 出 的 所 有 安 全 缺 陷 。 复 查 具 体 的 应 用 程 序 元 素 , 包 括 Web 页 面 和 控 件 、 数 据 访问 代 码 、 Web 服 务 、 服 务 组 件 等 。 要 特 别 注 意 SQL 注 入 和 跨 站 点 脚 本 编 写 缺 陷 。 保 证 开 发 人 员 工 作 站 的 安 全 性 : 使 用 一 套 方 法 保 证 工 作 站 的 安 全 性 。 保 证 帐 户 、 协 议 、 端 口 、
41、服 务 、共 享 、 文 件 与 目 录 和 注 册 表 的 安 全 。 最 重 要 的 是 , 保 持 工 作 站 具 有 当 前 最 新 的 补 丁 与 更 新 。 例 如 如果 在 Microsoft Windows_ XP 或 Windows 2000 上 运 行 Internet 信 息 服 务 (IIS), 则 运行 IISLockdown。 IISLockdown 应 用 安 全 的 IIS 配 置 , 并 安 装 URLScan Internet 安 全 应 用程 序 编 程 接 口 (ISAPI) 筛 选 器 , 该 筛 选 器 用 于 检 测 和 拒 绝 潜 在 的 恶 意
42、 HTTP 请 求 。编 写 具 有 最 低 权 限 的 代 码 : 可 以 限 制 代 码 能 够 执 行 的 操 作 , 这 与 运 行 该 代 码 所 使 用 的 帐 户 无 关 。 通过 配 置 策 略 或 编 写 代 码 , 可 以 使 用 代 码 访 问 安 全 性 控 制 来 限 制 代 码 允 许 被 访 问 的 资 源 和 操 作 。 如 果 代码 不 需 要 访 问 某 种 资 源 或 执 行 某 种 敏 感 操 作 , 可 以 安 全 性 配 置 /控 制 来 确 保 代 码 不 会 被 授 予 这 种 权限 。防 止 SQL 注 入 : 使 用 数 据 访 问 的 参
43、数 化 存 储 过 程 。 使 用 参 数 要 确 保 输 入 值 的 类 型 和 长 度 都 得 到检 查 。 将 参 数 视 作 安 全 文 本 值 和 数 据 库 内 的 不 可 执 行 代 码 。 如 果 不 能 使 用 存 储 过 程 , 也 可 以 使 用 带 有参 数 的 SQL 语 句 。 但 不 要 通 过 连 接 SQL 命 令 和 输 入 值 来 构 建 SQL 语 句 。 还 要 确 保 应 用 程 序 使用 具 有 最 低 权 限 的 数 据 库 登 录 , 以 限 制 它 在 数 据 库 中 的 功 能 。防 止 跨 站 点 脚 本 编 写 : 对 输 入 类 型
44、、 长 度 、 格 式 和 范 围 进 行 验 证 , 并 对 输 出 进 行 编 码 。 如 果 输 出 包括 输 入 ( 包 括 Web 输 入 ) , 则 对 输 出 进 行 编 码 。 例 如 , 对 窗 体 字 段 、 查 询 字 符 串 参 数 、 cookie等 进 行 编 码 , 以 及 对 从 无 法 确 定 其 数 据 是 安 全 的 数 据 库 ( 特 别 是 共 享 数 据 库 ) 中 读 取 的 输 入 进 行 编 码 。对 需 要 以 HTML 返 回 客 户 端 的 自 由 格 式 的 输 入 字 段 , 对 输 出 进 行 编 码 , 然 后 选 择 性 地 清
45、 除 在 许 可 元素 ( 如 用 于 格 式 化 的 或 标 记 ) 上 的 编 码 。 管 理 机 密 : 最 好 寻 找 避 免 存 储 机 密 的 替 代 方 法 。 如 果 必 须 存 储 它 们 , 则 不 要 在 源 代 码 或 配 置 文 件 中以 明 文 的 方 式 存 储 。安 全 地 调 用 代 码 接 口 : 特 别 注 意 传 递 给 接 口 和 接 口 返 回 的 参 数 , 防 止 潜 在 的 缓 冲 区 溢 出 。 验 证 输 入和 输 出 字 符 串 参 数 的 长 度 , 检 查 数 组 边 界 , 并 特 别 小 心 文 件 路 径 的 长 度 。执 行
46、安 全 的 输 入 验 证 : 对 输 入 进 行 限 制 、 拒 绝 和 清 理 , 因 为 验 证 已 知 有 效 类 型 、 模 式 和 范 围 的 数 据要 比 通 过 查 找 已 知 错 误 字 符 来 验 证 数 据 容 易 得 多 。 验 证 数 据 的 类 型 、 长 度 、 格 式 和 范 围 。 对 字 符 串输 入 , 请 使 用 正 则 表 达 式 。 有 时 候 可 能 需 要 对 输 入 进 行 清 理 。 一 个 例 子 是 在 对 数 据 编 码 后 清 理 编 码 元数 据 , 以 保 证 其 安 全 性 。保 证 页 面 访 问 身 份 验 证 的 安 全
47、性 : 安 全 地 划 分 Web 站 点 , 隔 离 匿 名 用 户 可 以 访 问 的 公 共 可 访 问 页面 和 需 要 身 份 验 证 访 问 的 限 制 性 页 面 。 使 用 安 全 套 接 字 层 (SSL) 来 保 护 窗 体 身 份 验 证 凭 据 和 窗 体身 份 验 证 cookie。 限 制 会 话 生 存 时 间 和 确 保 身 份 验 证 cookie 只 在 HTTPS 上 传 输 。 对 身 份 验证 cookie 加 密 , 不 要 在 客 户 端 计 算 机 上 保 留 它 , 也 不 要 将 其 用 于 个 性 化 目 的 ; 对 个 性 化 使 用 单
48、 独的 cookie。管 理 和 维 护 系 统 时 :实 现 补 丁 管 理 : 针 对 Microsoft 平 台 , 那 么 可 以 使 用 Microsoft Baseline Security Analyzer (MBSA) 检 查 当 前 安 装 可 能 漏 掉 的 补 丁 和 更 新 。 定 期 运 行 该 操 作 , 保 持 服 务 器 当 前 安 装 有 最 新 的 补丁 和 更 新 。 在 应 用 补 丁 前 , 对 服 务 器 数 据 进 行 备 份 ; 在 将 补 丁 安 装 在 生 产 服 务 器 上 之 前 , 先 在 测 试 服务 器 上 进 行 测 试 。 还
49、要 使 用 Microsoft 提 供 的 安 全 通 知 服 务 , 并 订 阅 通 过 电 子 邮 件 接 收 安 全 布 告 。针 对 Unix/Linux 平 台 , 可 以 订 阅 有 关 漏 洞 及 补 丁 的 邮 件 列 表 , 定 期 使 用 工 具 , 检 查 服 务 器 上 安 装的 补 丁 是 否 与 Unix/Linux 厂 商 发 布 的 最 新 补 丁 列 表 相 一 致 。 保 证 Web 服 务 器 的 安 全 性 : 针 对 Microsoft 平 台 上 运 行 的 IIS 服 务 , 可 以 使 用 IISLockdown应 用 安 全 的 IIS 配 置 , 并 安 装 URLScan Internet 安 全 应 用 程 序 编 程 接 口 (ISAPI) 筛 选 器 , 该筛 选 器 用 于 检 测 和 拒 绝 潜 在 的 恶 意 HTTP 请 求 。 针 对 Unix/Linux 平 台 上 运 行 的 Apache 服 务 ,可 以 采 用 选 择 性 访 问 控 制 ( DAC) 和 强 制 性 访 问 控 制 ( MAC) 的 安 全 策 略 , 或 者 安 装 安 全 相 关 的modules。 针 对 WebService 常 用 的 协 议 ( 如 soap) , 可 以 使 用 XML