编写我的第一个应用程序安全审查的建议

信息安全 应用安全 视窗 已知漏洞 审计 硬化
2021-08-22 01:22:58

我希望为在封闭 LAN 或 WAN 上运行的特定 Windows 服务器/客户端应用程序(跨多个站点的 1 到 200 多个用户)编写安全审查;它不是一个网络应用程序。该应用程序在我国的一个行业内被广泛使用(市场领导者),并且存储在应用程序中的信息非常敏感。

我已经确定的问题类型是:

  1. 使用默认数据库用户名和密码(完全管理员访问权限)。此登录以纯文本形式保存在应用程序文件夹中。
  2. 在数据库中以纯文本形式存储用户密码
  3. 没有复杂的密码要求
  4. 有权访问应用程序中可以运行 SQL 查询的工具的用户(具有完全权限;尽管他们自己的应用程序级别权限限制)
  5. 在响应 API 请求的所有客户端计算机上运行的 HTTP 服务器服务。无需用户/密码。
  6. 与所有应用程序文件的默认文件共享,包括包含数据库/用户名/密码的文件
  7. 已在价值百万美元的欺诈/法律/人力资源案件中用作证据的用户操作的审计信息(可以轻松更改/删除/伪装 - 请参阅上述任何一项!)

我什至没有看过缓冲区溢出、SQL 注入等。但是一位同事提出要帮助我解决这个问题。

因为我对此有点陌生;我认为这将是供应商未要求的技术评论(类似于已发表的期刊文章)?该软件的较大用户通常会尽可能地保护它;我想我可以写一个“硬化”指南吗?

谁能给我建议:

  • 基于上述的任何一般性建议?
  • 我应该写安全审查或强化指南吗?
  • 有没有类似评论类型的好例子?(我可以找到很多 Web 应用程序评论;但没有那么多应用程序评论 - 但是一些 SCADA 评论很有用

谢谢!

2个回答

基于上述的任何一般性建议?

与可能受到系统潜在攻击伤害的人交谈:直接或间接。了解他们的担忧并让他们知道您将尽最大努力保护他们的记录和隐私。作为安全代表,您的工作是保护资产(个人数据等)免受威胁。在您了解您要保护的内容后,您最好的以安全为中心的解决方案就会出现。

寻找漏洞,但不要太详细。总会有技术上非常复杂的漏洞,但在很多事件中,被利用的是相对简单的漏洞。错过需要高技能复杂攻击者的漏洞几乎不会受到批评,但错过简单漏洞会受到很多批评。

考虑操作安全性。在一个大部分封闭的系统中,内部威胁是一个重大问题。在可行的情况下,工作轮换是一种很好的方法。寻找分割或分解数据的方法,以便在出现违规或泄漏时限制损失。

我应该写安全审查或强化指南吗?

我认为你应该专注于安全审查。各种版本的windows都有安全资源,希望有竞争的管理员运行这些windows系统。

有没有类似评论类型的好例子?

我是从同事经验的背景下说的,因此它应该被视为第三方信息,通常聘请您进行渗透测试的组织期望某种形式的文档列出发现的问题和受影响系统的补救措施。你说的话引起了关注:

I'm thinking that this would be a technical review (similar a published journal article) un-requested by the vendor

如果我是这家供应商,我会立即起诉并确保贵公司丢失我可能使他们失去的任何和所有许可证。这是由客户和签订的合同自行决定的。我会查看 DISA 提供的强化指南(STIGS 提供了一种方便的方式来展示强化指南)。我唯一可以充满信心地说的是审查提供给贵公司的合同并从那里开始。