次の方法で共有

安全帧:审核和日志记录 |缓解措施

产品/服务 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
步骤

应有控制措施来在应用程序被滥用时抛出安全异常。 例如,如果输入验证已到位,攻击者尝试注入与正则表达式不匹配的恶意代码,可能会引发安全异常,这可能表示系统滥用

例如,建议对安全异常做记录,并对以下问题采取行动:

  • 输入验证
  • CSRF 攻击
  • 暴力破解(每个用户针对每个资源的请求次数上限)
  • 文件上传违规

    在 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 中心操作监控所收集的审核数据的设计。 启用以下监视类别:

    • 设备标识操作
    • 设备到云通信
    • 云到设备通信
    • 连接
    • 文件上传