| 产品/服务 | Article |
|---|---|
| Dynamics CRM | |
| Web 应用程序 | |
| 数据库 | |
| Azure 存储 | |
| WCF | |
| Web API | |
| IoT 现场网关 | |
| IoT 云网关 |
识别解决方案中的敏感实体并实施更改审核
| Title | 详细信息 |
|---|---|
| 组件 | Dynamics CRM |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | N/A |
| 步骤 | 识别解决方案中包含敏感数据的实体,并对这些实体和字段实施更改审核 |
确保对应用程序强制实施审核和日志记录
| Title | 详细信息 |
|---|---|
| 组件 | Web 应用程序 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | N/A |
| 步骤 | 在所有组件上启用审核和日志记录。 审核日志应捕获用户上下文。 识别所有重要事件并记录这些事件。 实现集中式日志记录 |
确保日志轮换和分离已到位
| Title | 详细信息 |
|---|---|
| 组件 | Web 应用程序 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | N/A |
| 步骤 | 日志轮换是一种在系统管理中使用的自动化过程,将带日期的日志文件进行归档。 运行大型应用程序的服务器通常记录每个请求:面对批量日志,日志轮换是限制日志总大小的方法,同时仍允许分析最近的事件。 日志分离基本上意味着你必须将日志文件存储在与操作系统/应用程序运行所在不同的分区,以避免拒绝服务攻击或降低应用程序性能。 |
确保应用程序不会记录敏感的用户数据
| Title | 详细信息 |
|---|---|
| 组件 | Web 应用程序 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | N/A |
| 步骤 | 检查是否不记录用户提交到站点的任何敏感数据。 检查是否存在有意的日志记录以及设计问题导致的副作用。 敏感数据的示例包括:
|
确保审核和日志文件具有受限访问权限
| Title | 详细信息 |
|---|---|
| 组件 | Web 应用程序 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | N/A |
| 步骤 | 检查以确保适当地设置对日志文件的访问权限。 应用程序帐户应具有仅写访问权限,操作员和支持人员应根据需要具有只读访问权限。 管理员帐户是唯一应该具有完全访问权限的帐户。 检查日志文件上的 Windows ACL,确保它们受到适当的限制:
|
确保记录用户管理事件
| Title | 详细信息 |
|---|---|
| 组件 | Web 应用程序 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | N/A |
| 步骤 | 确保应用程序监视用户管理事件,例如成功和失败的用户登录、密码重置、密码更改、帐户锁定、用户注册。 这样做有助于检测和响应潜在的可疑行为。 它还允许收集作数据;例如,跟踪谁正在访问应用程序 |
确保系统内置了防止滥用的防御
| Title | 详细信息 |
|---|---|
| 组件 | Web 应用程序 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | N/A |
| 步骤 | 应有控制措施来在应用程序被滥用时抛出安全异常。 例如,如果输入验证已到位,攻击者尝试注入与正则表达式不匹配的恶意代码,可能会引发安全异常,这可能表示系统滥用 例如,建议对安全异常做记录,并对以下问题采取行动:
|
在 Azure 应用服务中为 Web 应用启用诊断日志记录
| Title | 详细信息 |
|---|---|
| 组件 | Web 应用程序 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | EnvironmentType - Azure |
| 参考 | N/A |
| 步骤 | Azure 提供内置诊断来帮助调试应用服务 Web 应用。 它还适用于 API 应用和移动应用。 应用服务 Web 应用为来自 Web 服务器和 Web 应用程序的日志记录信息提供诊断功能。 这些在逻辑上分为 Web 服务器诊断和应用程序诊断 |
确保在 SQL Server 上启用登录审核
| Title | 详细信息 |
|---|---|
| 组件 | 数据库 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | 配置登录审核 |
| 步骤 | 必须启用数据库服务器登录审核才能检测/确认密码猜测攻击。 捕获失败的登录尝试非常重要。 在取证调查期间捕获成功和失败的登录尝试可提供额外的好处 |
在 Azure SQL 上启用威胁检测
| Title | 详细信息 |
|---|---|
| 组件 | 数据库 |
| SDL 阶段 | 构建 |
| 适用的技术 | SQL Azure |
| 属性 | SQL 版本 - V12 |
| 参考 | SQL 数据库威胁检测入门 |
| 步骤 | 威胁检测可检测异常数据库活动,指示对数据库的潜在安全威胁。 它提供一个新的安全层,使客户能够通过针对异常活动提供安全警报来检测和响应潜在威胁。 用户可以使用 Azure SQL 数据库审核来浏览可疑事件,以确定它们是否因尝试访问、破坏或利用数据库中的数据而产生。 借助威胁检测,无需成为安全专家或管理高级安全监视系统即可轻松应对数据库的潜在威胁 |
使用 Azure 存储分析审核对 Azure 存储的访问
| Title | 详细信息 |
|---|---|
| 组件 | Azure 存储 |
| SDL 阶段 | 部署 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | 使用存储分析监视授权类型 |
| 步骤 | 对于每个存储帐户,可以使用 Azure 存储分析来执行日志记录和存储指标数据。 存储分析日志提供重要信息,例如某人访问存储时使用的身份验证方法。 如果严格保护对存储的访问,这非常有用。 例如,在 Blob 存储中,可以将所有容器设置为专用容器,并在整个应用程序中实现 SAS 服务的使用。 然后,您可以定期检查日志,以查看是否使用存储帐户密钥访问 Blob,这可能意味着安全漏洞,或者 Blob 是公共的但不应该是这样。 |
实现足够的日志记录
| Title | 详细信息 |
|---|---|
| 组件 | WCF |
| SDL 阶段 | 构建 |
| 适用的技术 | .NET Framework |
| 属性 | N/A |
| 参考 | MSDN、巩固王国 |
| 步骤 | 安全事件后缺乏适当的审核线索可能会妨碍取证工作。 Windows Communication Foundation (WCF)提供记录成功和/或身份验证尝试失败的功能。 日志记录失败的身份验证尝试可能会警告管理员潜在的暴力攻击。 同样,如果合法帐户遭到入侵,日志记录成功的身份验证事件可以提供有用的审核线索。 启用 WCF 的服务安全审核功能 |
Example
下面是启用了审核的示例配置
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name=""NewBehavior"">
<serviceSecurityAudit auditLogLocation=""Default""
suppressAuditFailure=""false""
serviceAuthorizationAuditLevel=""SuccessAndFailure""
messageAuthenticationAuditLevel=""SuccessAndFailure"" />
...
</behavior>
</servicebehaviors>
</behaviors>
</system.serviceModel>
实现足够的审核失败处理
| Title | 详细信息 |
|---|---|
| 组件 | WCF |
| SDL 阶段 | 构建 |
| 适用的技术 | .NET Framework |
| 属性 | N/A |
| 参考 | MSDN、巩固王国 |
| 步骤 | 开发的解决方案配置为在无法写入审核日志时不生成异常。 如果 WCF 配置为在无法写入审核日志时不引发异常,则不会通知程序失败,并且可能无法审核关键安全事件。 |
Example
<behavior/>下面的 WCF 配置文件的元素指示 WCF 在 WCF 无法写入审核日志时不通知应用程序。
<behaviors>
<serviceBehaviors>
<behavior name="NewBehavior">
<serviceSecurityAudit auditLogLocation="Application"
suppressAuditFailure="true"
serviceAuthorizationAuditLevel="Success"
messageAuthenticationAuditLevel="Success" />
</behavior>
</serviceBehaviors>
</behaviors>
将 WCF 配置为在无法写入审核日志时通知程序。 该计划应具有替代通知方案,以提醒组织未维护审核线索。
确保对 Web API 强制实施审核和日志记录
| Title | 详细信息 |
|---|---|
| 组件 | 网络应用程序接口 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | N/A |
| 步骤 | 在 Web API 上启用审核和日志记录。 审计日志应捕获用户上下文。 识别所有重要事件并记录这些事件。 实现集中式日志记录 |
确保在现场网关上强制实施适当的审核和日志记录
| Title | 详细信息 |
|---|---|
| 组件 | IoT 现场网关 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | N/A |
| 步骤 | 当多个设备连接到现场网关时,请确保在现场网关上记录和维护单个设备的连接尝试和身份验证状态(成功或失败)。 此外,如果现场网关维护单个设备的 IoT 中心凭据,请确保在检索这些凭据时执行审核。制定一个过程,定期将日志上传到 Azure IoT 中心/存储,以便长期保留。 |
确保在云网关上强制实施适当的审核和日志记录
| Title | 详细信息 |
|---|---|
| 组件 | IoT 云网关 |
| SDL 阶段 | 构建 |
| 适用的技术 | 常规 |
| 属性 | N/A |
| 参考 | 物联网中心操作监控简介 |
| 步骤 | 用于收集和存储通过 IoT 中心操作监控所收集的审核数据的设计。 启用以下监视类别:
|