软件和安全性 - 您是否遵循特定指南?

时间:2010-01-19 09:59:38

标签: security language-agnostic coding-style pci-dss

作为PCI-DSS审核的一部分,我们正在研究改进安全领域的编码标准,以确保所有开发人员都了解该领域的重要性。

您如何在组织内处理此主题?

另外,我们在.NET 3.5中编写面向公众的Web应用程序,接受信用卡/借记卡付款。

3 个答案:

答案 0 :(得分:6)

有许多不同的方法来打破安全。你可以期待无限的攻击者。你必须阻止它们 - 甚至是尚未发明的攻击。这个很难(硬。一些想法:

  1. 开发人员需要了解众所周知的安全软件开发指南。霍华德& Le Blanc“编写安全代码”是一个良好的开端。

  2. 但成为优秀的规则追随者只是其中的一半。能够像攻击者一样思考同样重要。在任何情况下(不仅与软件相关),请考虑漏洞是什么。您需要了解一些人们可以攻击系统的奇怪方式 - 监控功耗,计算速度,随机数弱点,协议弱点,人为系统弱点等。为开发人员提供自由和创造性机会来探索这些非常重要。

  3. 使用OWASP(http://www.owasp.org/index.php/Main_Page)等清单方法。

  4. 使用独立评估(例如http://www.commoncriteriaportal.org/thecc.html)。即使这样的评估过于昂贵,设计和就像你打算使用它一样。

  5. 确保明确表达您的安全论据。安全目标的共同标准是一种好的格式。对于严肃的系统,正式描述也很有用。明确您依赖的任何假设或秘密。监控安全趋势,并经常重新检查威胁和对策,以确保它们是最新的。

  6. 检查围绕您的软件开发人员和流程的激励措施。确保奖励在正确的地方。不要让开发人员试图隐藏问题。

答案 1 :(得分:1)

请考虑让您的QSA或ASV为您的开发人员提供一些培训。

答案 2 :(得分:0)

安全性基本上属于三个域中的一个或多个:

1)内部用户

2)网络基础设施

3)客户端脚本

该列表按严重性顺序编写,与违规概率的顺序相反。以下是从广泛的角度出发的适当的管理解决方案:

防止内部用户违规的唯一解决方案是教育用户,强制了解公司策略,限制用户自由并监控用户活动。这是非常重要的,因为这是最严重的安全违规,无论是恶意的还是无意的。

网络基础设施是信息安全的传统领域。两年前,安全专家不会考虑在其他地方寻找安全管理。一些基本策略是对所有内部IP地址使用NAT,在网络交换机中启用端口安全性,将服务物理地分离到单独的硬件上,并在所有内容都埋在防火墙后面时小心保护对这些服务的访问。保护您的数据库免受代码注入。使用IPSEC可以访问防火墙后面的所有自动化服务,并限制对IDS或IPS背后的已知点的访问点。基本上,限制对所有内容的访问,加密该访问,并且固有地信任每个访问请求都可能是恶意的。

超过95%的报告安全漏洞与来自Web的客户端脚本相关,并且大约70%的目标内存损坏(例如缓冲区溢出)。禁用ActiveX并需要管理员权限才能激活ActiveX。在从供应商发布补丁后的48小时内,在测试实验室中修补执行任何类型客户端脚本的所有软件。如果测试未显示对公司授权软件配置的干扰,请立即部署补丁。内存损坏漏洞的唯一解决方案是修补软件。该软件可能包括:Java客户端软件,Flash,Acrobat,所有Web浏览器,所有电子邮件客户端等。

为确保您的开发人员符合PCI认证,确保他们及其管理接受教育,以了解安全性的重要性。大多数Web服务器,甚至是面向Web服务器的大型企业客户端,都不会被修补。那些被修补的人可能需要几个月的时间才能被发现变得脆弱。这是一个技术问题,但更重要的是这是一个严重的管理失败。必须让Web开发人员了解客户端脚本本身就是开放的,甚至是JavaScript。随着AJAX的发展,这个问题很容易实现,因为信息可以通过动态注入匿名第三方而违反相同的原始策略并完全绕过SSL提供的加密。 最重要的是,Web 2.0技术本质上是不安全的,如果不破坏技术的优势,这些基本问题就无法解决。

当所有其他方法都失败时,聘请一些具有管理经验的CISSP认证安全经理,让他们直接与您的公司高管交谈。如果您的领导层不愿意认真对待安全问题,那么您的公司将永远不会符合PCI合规要求。