业务关键信息和服务可访问性的安全计划

时间:2008-10-23 12:44:03

标签: security backup

我参与创建基于Web的业务解决方案。我们的想法是,客户将使用它,将他们的业务流程和信息集中到一个地方,并通过系统间通信获得额外的业务价值。简而言之,他们将把它作为日常工作的核心工具,并将高度依赖它。

需要解决方案的一个问题是如何使这个网络系统足够安全,成为我们和客户都满意的替代方案。我正在寻找其他曾经或处于同样情况的人的好建议。

在我们的特定场景中,我们目前正在考虑使用Java SE 6,Tomcat(作为Servlet容器,我们将使用Wicket所需),Hibernate(与我们的数据库交互)和MySQL(作为DBMS)。

我认为问题和建议也会引起其他技术用户的兴趣。因为许多问题都与硬盘故障,网络可访问性等有关。

随意提供您的任何建议!我仍然提出一些问题和想法让我们继续前进:

  • 系统需要通过Internet访问。在决定如何主持时,我们应该考虑什么? (即我们是否需要我们的网络主机有多条物理路径将它们连接到互联网和类似的问题。)
  • 这些东西有清单吗?通过查看文章/检查清单/学术论文/书籍,或许通过ISO标准或其他方式看到我们走在正确的轨道上?
  • 在项目的后期,我们认为让一个在该领域拥有丰富经验的人参与是一个好主意。在这种情况下,我们不是在寻找一个普通的Web开发人员。很可能会有更多的咨询公司告诉我们他们有能力提供这方面的专业知识。关于我们如何与合适的人接触的任何提示? (我们的总部设在斯堪的纳维亚半岛,所以最好在那里找人。)
  • 多长时间足够好? 99.99%似乎是一个合理的目标。但任何停机都可能导致我们的客户失去业务。
  • 我们如何保证每位客户只能访问自己的数据?由于系统将能够访问它自己的数据库,这似乎很难。正确的开发过程涉及大量测试,实际上是关于用户权限的所有内容。
  • 我们如何处理硬盘故障? RAID 5是否与每日增量备份和每周完整备份相结合?或者你会选择RAID 6吗?
  • 如果一台服务器足以为客户提供服务。你还会使用集群吗? (我会这么认为。)在这种情况下,你会在群集中拥有多少个节点?
  • 您会使用哪种备份策略?
  • 您认为在计算机云中托管系统是一个不错的选择吗? (即由亚马逊,谷歌或其他人提供。)
  • 您会使用硬盘加密吗?如果是这样,那是哪种? (一个澄清:是的,如果有人窃取了硬盘,这是唯一的好处,但这仍然增加了安全性,可能会阻止(物理)入侵者访问重要的客户业务数据。)
  • 为客户提供自己备份的方法以及良好的替代方案吗?这些客户不会以技术为导向。那么在这种情况下,下载包含Microsoft Office文件的ZIP存档中的信息可能是一个好方法吗?
  • 您如何监控解决方案?
  • 您认为我们应该在内部做哪些事情以及哪些应该来源?当然,我们将开发自己的核心系统。
  • 如果您认为系统是安全的,那么作为技术人员。你如何说服非技术人员确保其安全可靠?

感谢您的时间!我希望你有一些分享的意见。稍后可能会添加更多问题。

4 个答案:

答案 0 :(得分:2)

我也在个人的时间和工作中制作网络应用程序,这样我就能理解为什么你会问上述问题。在工作中没有讨论上述问题,我在个人工作中非常关注这些问题。我无法回答你的所有问题,但对于那些问题,我会说:

您如何监控解决方案?我正在开发一个ASP.NET Web应用程序,因此我正在使用性能监视器,日志记录,跟踪(仅适用于开发人员),运行状况监视以及我正在编写的自定义Sql Server性能监视系统(尽管在此之前获得)推出后,我将使用AdventNet的AppManager。

Which of these things do you think we should do in house and which should be out sourced? We will develop the core system our self's, of course.

这是一个很好的问题,因为我一直有同样的决定。我会外包不属于我技能组的东西(所以如果我需要做3d工作,外包它)。此外,坚持您的团队的优势,专注于业务功能,因为这将取悦/吸引用户(我从面向家庭用户的Web应用程序的商业角度说这个),并外包关键的内部系统比如备份,监控,日志记录等(由于我有可用的成本/财务资源,我没有外包这个,而且我可以学习东西,所以我可以学习 - 因此即使这是一个很长的方法 - 但我喜欢它)。

Are there check lists for these kinds of things? Maybe ISO standards or some other way of seeing that we are on the right track by looking through an article/check list/academic paper/book?

您说您正在使用Java / MySQL / Hibernate,但Microsoft有一些关于Web应用程序安全性的优秀指南,并且通常构建可伸缩且安全的应用程序(基于Web和Windows)。查看Microsoft模式和实践。

Do you think hosting the system in a computer cloud is a good alternative? (i.e. as provided by Amazon, Google or others.)

是。这是便宜,有效的,并将减轻您的内部架构的压力(我正在考虑如何使用CDN和Amazon EC2存储静态文件)。我说静态文件,因此您可以存储不经常更改的内容,以及可以缓存的内容。

If you feel that the system is secure, as a technical person. How do you convince a non technical person that it's safe and secure?

要求他们造成违规行为。

How do we guarantee that each customer only will be able to access its own data? As the system will be able to access it's own database, it seems hard. A proper development process, involving lots of testing, is really all we have regarding user privileges.

我不确定我理解这个问题是什么,但您可以使用登录系统,成员资格/角色(仅限ASP.NET)和存储过程以确保用户只能看到他或她自己的数据,而不是任何人。

我也会对其他问题的答案感兴趣。

答案 1 :(得分:2)

免责声明:我不是网络工程师。我跳过了我觉得无法回答的问题

系统需要通过Internet访问。在决定如何主持时,我们应该考虑什么? (即我们是否需要我们的网络主机有多条物理路径将它们连接到互联网和类似的问题。)

  

我会根据需要扩大规模。在你的第一阶段,你可能不需要多余的一切。一旦人们依赖您满足其业务需求,请升级网络中最不稳定的部分。如果您的互联网不可靠,请获取辅助管道。如果您的开关已经关闭,请将它们加倍。

多长时间足够好? 99.99%似乎是一个合理的目标。但任何停机都可能导致我们的客户失去业务。

  

The Nines。不要为停机时间支付更多的工作时间。如果你因意外地停工一小时而损失50K,你应该支付大约50K以保持一小时以下的停机时间。 4 Nines每年52分钟的停机时间。这对你有用吗?五个九是非常困难的。开始的四个9可能更难。我从事财务工作,我们的运营率约为98%至99%,计划停机时间约为50-80%。我们相处得很好。

我们如何保证每位客户只能访问自己的数据?由于系统将能够访问它自己的数据库,这似乎很难。一个适当的开发过程,涉及大量的测试,实际上是我们对用户权限的全部。

  

我们遇到同样的问题。良好的开发人员,适当的开发实践,自动化测试,手动测试,开发工具(例如,在公共环境中使用对象时提出警告的专有数据属性),代码扫描程序(例如查找使用专有表的proc和代码没有引用它的指标),代码审查等。

您会使用哪种备份策略?

  

我能够合理地承受得起。如果可能的话,我会说24小时每小时,每周3小时,每周无限。

您认为在计算机云中托管系统是一个不错的选择吗? (即由亚马逊,谷歌或其他人提供。)

  

乔尔喜欢说你的核心业务不应该外包。如果您的核心业务是存储文档,可能没有。如果您的核心业务是文件的附属,似乎是合理的。

您会使用硬盘加密吗?如果是这样,那是哪种?

  

这只会在有人偷走您的硬盘时帮助,而不是在他们攻击您的系统时。您正在查看加密错误。你不希望加密加密 - 你想要它实际上有用的地方。 HTTPS是很好的加密。也许(-maybe-)在逐个文档的基础上加密每个文档,并要求用户提供密码来解密它。

为客户提供自己备份的方法以及一个好的替代方案吗?这些客户不会以技术为导向。那么在这种情况下,下载包含Microsoft Office文件的ZIP存档中的信息可能是一个好方法吗?

  

无论如何,这都是一个很好的功能。将其作为备份计费是合理的,但如果您真的想为他们的netops提供备份解决方案,那么它将需要比这更强大。

您将如何监控解决方案?

  

向我的黑莓发送短信提醒,对使用情况进行健全性检查,24/7随叫随到,可以对系统进行故障排除。

如果您认为系统是安全的,那么作为技术人员。你如何说服非技术人员确保其安全可靠?

  

非技术人员?把挂锁放在网站上。或者,让他们的技术朋友相信它是安全的(让他们看到你的安全),并让朋友向非技术人员担保。

答案 2 :(得分:1)

系统需要通过Internet访问。在决定如何主持时,我们应该考虑什么?

我会考虑一些事情。首先,您的托管服务提供商需要提供从托管位置到Internet的多条独立网络路径。其次,您愿意为您的机器投入多少物理安全级别?通常情况下,至少在英国,您(大多数)通过U(高度单位)租用公共空间,这意味着在同一个机架(甚至可能是同一个机房​​)工作的任何人都可以使用您的机器。如果您租用整个货架,可能有自己的钥匙。

多长时间足够好? 99.99%似乎是一个合理的目标。但任何停机都可能导致我们的客户失去业务。

首先,考虑何时需要正常运行时间。 99.99%听起来不错,但如果客户只需要访问周一至周五,08:00-20:00,您可以获得不到50%的可用性,而不会降低客户满意度。还要考虑您必须进行可能影响应用程序可用性的维护(数据库检查,备份和其他事情),因此我确保将其包含在服务级别保证中(作为“窗口中的X%可用性”) “或”X%可用性在宣布的,意外中断之外“)。

如果一台服务器足以为客户端提供服务。你还会使用集群吗? (我会这么认为。)在这种情况下,你会在群集中拥有多少个节点?

如果一台服务器在可预见的未来足够好,我个人不会打扰一个群集,但我确保在co-lo网站上有相同的机器,关闭电源,所以一台机器的停机时间很短。

您认为在计算机云中托管系统是一个不错的选择吗? (即由亚马逊,谷歌或其他人提供。)

您对数据云提供商的正常运行时间,数据隐私等方面有何保证?您不能(或者,至少,不应该)向您的客户保证更多的东西。此外,如果您可以在斯堪的纳维亚半岛托管您的机器,那么您可能比通过美国托管的计算云提供类似服务的人拥有网络优势。老实说,我不知道是否有任何计算云提供商在斯堪的纳维亚半岛拥有服务器,但他们可能很乐意回答这个问题。

您认为我们应该在内部做哪些事情以及哪些应该来源?当然,我们将开发自己的核心系统。

“这取决于”。你在内部做的越多,你需要支付的其他服装就越少。另一方面,如果你能找到好的外围服务提供商(数据中心设计,可能是基本的机器构建,可能是服务监控,也许是安全监控,可能每周都会出现X天更换备份磁带并将旧磁带带到安全的地方地点)。在公司内部做这件事的一个好处是,它可以作为员工的激励因素。另一方面,如果您的一名或多名员工被公共汽车撞到,您在公司内部工作的次数越多,您的暴露程度就越高。所以,对于你在内部做的任何事情,请确保你至少有两个

答案 3 :(得分:0)

  

系统需要可以访问   通过互联网。我们应该怎么做   在决定如何做的时候考虑一​​下   主持吗? (即我们是否需要我们的网络主机   有多个物理路径   将它们连接到互联网和   类似的问题。)

如果你想要99%的正常运行时间,那么你会的。我会看一家名为Server Vault的公司。

  

是否有这些类型的检查清单   东西的?也许ISO标准或一些   另一种看待我们的方式   通过查看正确的轨道   文章/检查清单/学术   纸/书?

官方清单,不是我见过的。通常情况下,这意味着要为每次灾难和缓解措施制定相应的政策。

  

在项目的后期我们认为会   让某人参与是一个好主意   谁拥有丰富的经验   领域。在那种情况下,我们不看   对于普通的Web开发人员。它是   可能更多的咨询公司会   告诉我们他们有能力提供   实际上,这种专业知识   是。关于我们如何进入的任何提示   与合适的人联系? (我们是   总部设在斯堪的纳维亚半岛,所以它会   最好在那里找人。)

我会查看Internet Security Solutions或At Stake。我相信它们遍布世界各地。

  

多长时间足够好?   99.99%似乎是一个合理的目标。但任何停机都可能导致损失   我们的客户的业务。

如果您真的希望您的客户的业务依赖于您的业务,那么停机时间确实是不可接受的。您可以通过拥有群集服务器和DR站点来实现此目的。在这一点上,这对你来说可能是可行的,所以我想说每个月可能有几个小时的维护时间是可以接受的。您将不得不检查客户所在的位置,因为您可以在半夜停工,因为您可能会在当天中午为您的客户。

How do we guarantee that each customer only will be able to access
     

自己的数据?正如系统一样   它能够访问它自己的数据库   看起来很难。一个适当的发展   过程涉及大量的测试,是   我们真的对用户有所了解   特权。

大量测试。我会建议经常进行渗透测试,以确保你不会在某个地方留下一个洞。

  

我们如何处理硬盘故障?是   RAID 5与每日组合   增量备份和每周完整备份   备份够吗?或者你会去   RAID 6?

我会使用某种类型的Raid和多台服务器。如果服务器出现故障,您需要进行某种监控以提醒您。根据您托管它的位置,他们可能会有一些您可以雇用它们的监控解决方案,因此他们将负责让您知道某些内容是否脱机。我建议使用Nagios进行服务器监控。

If one server is enough to serve the clients. Would you still use a cluster? (I would think so.) And in that case, how many nodes would you have in the cluster? 

是的,你永远不知道会发生什么。

   Which backup strategy would you use?

具有灾难恢复站点的群集解决方案,日志传送(我知道sql server我知道有一个进程可以保持多个数据库服务器同步)和夜间备份。所有备份应在异地发货并保存至少7天。它们也应加密以确保数据安全。

Do you think hosting the system in a computer cloud is a good alternative? (i.e. as provided by Amazon, Google or others.) 

我不知道我是否会相信他们,我听说他们非常贵。对于关键任务系统,我会使用我所知道的并使用经过验证的技术。这是我的看法。他们可能工作正常。

Would you use hard disk encryption? And if so, which kind? (One clarification: Yes it's only good if someone steals the hard disk, but that's still added security and may prevent (physical) intruders access to vital client business data.) 

可能不是。它会使服务器速度过慢。我宁愿选择一个我信任的托管服务来保证服务器的安全。

Is providing the customer with a way to do their own backups as well a good alternative? These customers won't be technically oriented. So in that case downloading the information in a ZIP archive containing Microsoft Office files might be a good way? 

提供选项可能会很不错,但是如果你能向他们展示一个全面的备份策略,我会说这就足够了。

How would you monitor the solution? 

像Nagios这样的东西,并雇用托管服务来观察服务器的健康状况。对于100%的正常运行时间,它确实需要像NOC那样有人总是在那里观看服务器监视器。

您认为我们应该在内部做哪些事情,哪些应该来源?当然,我们将开发自己的核心系统。

做你喜欢的事情并且能够胜任。这听起来像编程和测试。我会雇人来做服务器设置,托管和监控。关键是不要与最低出价者一起。和那些做得好的人一起去吧。

If you feel that the system is secure, as a technical person. How do you convince a non technical person that it's safe and secure? 

您遵循一套书面政策和程序。您有一个列表,列出了您使用的所有供应商以及他们如何配置运行。您确保您签订合同的所有供应商都具有良好的信誉并具有可靠的跟踪记录。