【发布时间】:2012-07-05 23:52:13
【问题描述】:
我不确定这是否是主题,但它是如此特定于 .NET WinForms,我相信它在这里比在 Security stackexchange 站点更有意义。
(此外,它与 安全编码 密切相关,我认为它与我在整个网站上看到的任何关于常见网站漏洞的问题一样热门。) em>
多年来,我们的团队一直在对网站项目进行威胁建模。我们模板的一部分包括 OWASP 前 10 名以及其他众所周知的漏洞,因此在进行威胁建模时,我们始终确保我们有一个记录在案的流程来解决这些常见漏洞中的每一个。
例子:
SQL 注入(Owasp A-1)
- 标准实践
- 尽可能使用存储参数化过程来访问数据
- 如果存储过程不可行,请使用参数化查询。 (使用我们无法修改的第 3 方数据库)
- 仅当上述选项不可行时才转义单引号
- 数据库权限必须按照最小权限原则设计
- 默认情况下,用户/组无权访问
- 在开发过程中,记录每个对象(表/视图/存储过程)所需的访问权限以及访问权限的业务需求。
- [剪辑]
无论如何,我们使用 OWASP Top 10 作为网站特定漏洞的起点。
(最后是问题)
在极少数情况下,当 Web 应用程序不能满足需求时,我们会开发 WinForms 或 Windows 服务应用程序。我想知道是否有针对 WinForms 应用程序的常见安全漏洞的等效列表。
我脑海中浮现出一些....
- SQL 注入仍然是一个问题。
- 缓冲区溢出通常由 CLR 防止,但如果将非托管代码与托管代码混合使用则更有可能
- .NET 代码可以反编译,因此将敏感信息存储在代码中,而不是在 app.config 中加密...
是否有这样的列表,或者甚至是这样的列表的多个版本,我们可以从中借用来创建自己的列表?如果是这样,我在哪里可以找到它?
我一直没找到,但如果有的话,对我们以及其他 WinForms 开发人员都会有很大帮助。
【问题讨论】:
-
这是一个非常有趣的问题。我不确定整个社区对您针对 SO 的问题的主题性有何看法,但这仍然是一个好问题。
-
您的桌面应用程序是如何部署的?您是将此应用程序分发给任何需要它的人,还是仅限于现场受信任的个人?
-
仅供我们公司内部使用。我们从事零售业务,拥有相当多的零售地点(商店)。该应用程序是使用配置管理软件部署的,但本质上它是一个简单的 XCOPY 部署。我们确实信任我们的同事,但在这些站点有数千名同事,内部攻击的风险始终存在。我们创建的应用程序可能会或可能不会处理敏感信息。我们的模板包含一个“N/A”复选框,因此对于非安全应用程序,我们可能不会担心列表中的所有项目。我们只是想要一个好的列表开始。
标签: .net winforms security owasp