我每个月只有 4 个小时来安全检查基于云的应用程序 - 如何使用我的时间?

信息安全 Web应用程序 渗透测试 攻击 云计算 天蓝色
2021-08-22 16:30:09

我的任务是管理部署到 azure 的应用程序。我每个月被分配了 4 个小时。

我基本上有半个工作日来保护这个应用程序/保证它的安全。什么是我的时间的有效利用?

我应该专注于:

  • 确保所有组件都是最新的?
  • 检查所有日志以确保没有任何问题?
  • 试图自己“破解”应用程序?
  • 从安全角度详细记录系统?
  • 正在研究此/相关技术中的当前漏洞?
  • 确保备份等工作正常?
  • 灾难恢复的东西?
  • 围绕“被黑客入侵”制定政策?
  • 使用一些工具来审核源代码以搜索不良模式?

还是某种组合/其他?

我正在寻找基于经验的答案,最好是来自进行这种安全维护的人。如果有任何现有的最佳实践/指南也确实有帮助。

技术栈是:

  • SQL Server 数据库 (Azure SQL)
  • C# Web API
  • 角前端

还有几个额外的组件,但我并不是真的在寻找特定于技术的答案,更多的是关于如何解决这个问题的策略。

4个回答

正如评论中提到的,我也同意一个月 4 小时太少了。了解,更重要的是,让您的利益相关者了解,对于 4h,他们不应该期望太多。考虑到他们已经给了你 4 小时,看起来他们也不是认真地保护这个应用程序。

根据评论,答案和我自己的想法,我将尝试整理一些东西。以下是我认为您的选项应该按顺序排列的方式。

  1. 要求更多时间。让他们明白,如果他们想在 4 小时内保护应用程序,这实际上是没有用的。
  2. 聘请代理机构,并在 4 小时内确定他们的范围,确定他们的行动优先级并审查他们的结果。(@尼尔森)
  3. 如果你不能做到以上几点,我建议你把低垂的水果固定好,这样你就可以在 4 小时内覆盖更多的地面。以下是我认为重要的
    • 将面向外部的服务设置为更新。(约 1 小时查找和设置更新的重要应用程序)。关闭您认为无用的不必要的端口/服务。
    • 设置 MFA(约 10 分钟) - 因为您没有太多时间,所以设置快速的东西,保护您免受常见攻击并提醒您。
    • 查看您的秘密 - 确保它们安全存储,对您的代码运行扫描程序以查找硬编码的秘密。(约 1 小时)
    • 灾难恢复 - 我建议您花一些宝贵的 4 小时时间来设置出现问题时的保护措施,因为它们会的。开始在不同区域创建备份(如果可行,创建 2 个)。我假设该平台会帮助您解决此问题,但仍需要时间。在此期间,您还可以草拟一个粗略的灾难恢复计划。(约 1.5 小时)
    • 最后,用你所剩无几的时间,记录下来。记录您已完成的工作、尚未完成的工作以及下次有人有 4 小时的时间来进一步保护应用程序时应该采取的后续步骤。(〜剩菜)

DoS 保护是好的并且是必需的,但我只是找不到将其纳入上述计划的方法,我也无法为它换掉任何东西。也许这应该在您的后续步骤中记录下来。

总的来说,在 4 小时内保护某些东西是一个牵强的要求。但是,如果我的任务是完成它,我会按照上述步骤来完成。我不确定在这 4 小时内是否可以对系统是否已被黑客入侵进行任何调查。当您有 4 小时的时间进行保护时,您可以选择将其用于保护应用程序免受潜在威胁或调查系统中的攻击者(需要不同的计划)。最初的选择是你的。

从 Azure 顶级安全最佳实践开始,以便您可以逐步维护和提高 Azure 解决方案的安全性:

  1. 同意并将您的 Azure 订阅升级到 Azure 安全中心标准。这将帮助您发现和修复安全漏洞、应用访问和应用程序控制来阻止恶意活动、使用分析检测威胁并迅速响应攻击;
  2. 将您的密钥、数据库凭据、API 密钥和证书存储在 Azure Key Vault 中。另外确保解决方案中的密钥和秘密不存储在应用程序源代码中;
  3. 安装 Web 应用程序防火墙 (WAF),它是应用程序网关的一项功能,可保护您的 Web 应用程序免受常见攻击和漏洞的影响;
  4. 对您的管理员帐户强制执行多因素验证;
  5. 加密您的虚拟硬盘文件;
  6. 通过将 Azure 虚拟机和设备放置在 Azure 虚拟网络上,将它们连接到其他联网设备;
  7. 使用提供额外缓解功能的 DDoS 保护标准缓解和防御 DDoS;

当你准备好 1-7 时,专注于:

  1. 管理您的 VM 更新,因为 Azure 不会自动推送 Windows 更新
  2. 确保为重要的云操作设置流程,例如补丁管理、备份、事件管理、变更管理、紧急用户访问、特权访问;
  3. 启用密码管理并使用适当的安全策略来防止滥用;
  4. 查看您的安全中心仪表板以维护所有 Azure 资源的安全状态的概览,以便在需要时对建议采取措施;

阅读有关Azure 安全最佳实践的 Microsoft 文档。

文档:

Microsoft Azure 安全基础知识

Microsoft Azure 安全文档

这是一个非常离谱的答案(也就是它与实际安全性无关),所以请随意忽略我的建议。这个问题本身是相当基于意见的,所以我想我会尝试一个完全不同的“类型”答案。

您已负责应用程序的安全性。这是一件好事!

不幸的是,您的雇主对获得申请所需的条件抱有非常不切实际的期望。4 小时远远不足以完成这项工作。需要明确的是,这仍然比大多数公司(每月准确分配 0 小时的专用安全时间)要好。但现实是4小时是微不足道的。所以这就是你要做的:

  1. 带着人们在这里给出的所有建议奔跑
  2. 每月花费超过 4 小时
  3. 为避免让您的雇主不高兴或直接不服从命令,请在自己的时间做额外的工作。计划在接下来的几个月里定期加班。
  4. 在这段时间里,您将了解诸如审查代码以发现安全漏洞、安装和使用 SEIM 系统、安装和使用日志系统(ELK 堆栈是常用的)、入侵检测系统、自动应用程序扫描等等!(完整的清单可能太长了,在几个月的业余时间里学习它,但要尽力而为!)
  5. 你的公司最终会得到你免费劳动力的好处,这有点可悲,但是......
  6. 作为您的官方职责的一部分,您将在培训自己成为一名安全专业人员的路上顺利进行(如果您想要一个职位,那么您正在成为一名应用程序安全工程师),保护生产中的实际 Web 应用程序利用!
  7. 开始申请作为应用程序安全工程师的下一份工作。你可能会找到一份更好的工作来做更有趣的工作,你也可能会得到更高的报酬!

显然,我不能对事情的结果做出任何保证,但实际上你得到的是允许开始训练自己以适应职业变化。投资未来的机会!安全专业人员比工程师更受欢迎,所以我个人会接受并使用它。特别是如果它对我有利,我什至不会因为我现在的雇主短视而吝啬我将给他们的免费工作。

我建议

  1. 从进行风险评估开始
  2. 将此处给出的列表(由您自己和在答案中)编译成可操作的项目
  3. 将结果返回给您的上级,并要求他们提供更多时间或优先级。