【问题标题】:Security plan for business critical information and service accessibility业务关键信息和服务可访问性的安全计划
【发布时间】:2008-10-23 12:44:02
【问题描述】:

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

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

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

我认为其他技术用户也会对此问题和建议感兴趣。因为许多问题都是关于 HDD 故障、网络可访问性和其他方面的一般问题。

请随时提出您的任何建议!我仍然提供一些问题和想法来帮助我们继续前进:

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

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

【问题讨论】:

    标签: security backup


    【解决方案1】:

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

    您将如何监控解决方案?我正在开发一个 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 工作,就外包)。此外,坚持团队的优势,专注于业务功能,因为这会取悦/吸引用户(我是从面向家庭用户的网络应用程序的商业角度说的),并将关键的内部系统外包像备份、监控、日志记录等(由于我有可用的成本/财务资源,我没有将其外包,我制作东西以便我可以学习 - 因此即使这是长期的方法,也要自己编写代码 - 但我喜欢它)。

    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)和存储过程来确保用户只能看到他或她自己的数据,而不是其他任何人。

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      The Nines。不要为正常运行时间支付比停机时间损失更多的费用。如果您因意外停机一个小时而损失 50K,您应该支付大约 50K 以将停机时间控制在一个小时以内。 4 Nines 是一年 52 分钟的停机时间。这对你来说合理吗?五个九是极其困难的。开始的四个九可能更困难。我在一家金融公司工作,我们运行大约 98% 到 99%,计划停机时间的大约 50-80%。我们相处得很好。

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

      我们有同样的问题。优秀的开发人员、适当的开发实践、自动化测试、手动测试、开发工具(例如,当对象在公共上下文中使用时会引发警告的修饰专有数据的属性)、代码扫描器(例如,寻找使用具有专有数据的表的过程和代码指标而不引用它)、代码审查等。

      您会使用哪种备份策略?

      我能负担得起的最好的。如果可能的话,我会说每小时 24 小时,每天 3 周,每周无限期。

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

      Joel 喜欢说您的核心业务不应该外包。如果您的核心业务是存储文件,也许不是。如果您的核心业务是文件的附属业务,这似乎是合理的。

      你会使用硬盘加密吗?如果有,是哪一种?

      这只有在有人偷了您的硬盘时才有用,如果他们入侵了您的系统,则无济于事。您正在错误地查看加密。你不想为了加密而加密——你想要它真正有用的地方。 HTTPS 是一种很好的加密方式。也许(-也许-)逐个文档加密每个文档,并要求用户提供密码才能解密。

      为客户提供一种自己进行备份的方法是否也是一种不错的选择?这些客户不会以技术为导向。那么在这种情况下,下载包含 Microsoft Office 文件的 ZIP 存档中的信息可能是一种好方法?

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

      您将如何监控解决方案?

      向我的黑莓发送短信提醒,对使用情况进行健全性检查,有人 24/7 全天候待命,能够对系统进行故障排除。

      如果您觉得系统是安全的,作为技术人员。您如何让非技术人员相信它是安全可靠的?

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

      【讨论】:

        【解决方案3】:
        系统需要可通过 Internet 访问。在决定如何托管它时,我们应该考虑什么?

        我会考虑一些事情。首先,您的托管服务提供商需要提供从托管位置到 Internet 的多个独立网络路径。其次,您愿意为您的机器投资什么级别的物理安全?通常,至少在英国,您(大部分)按 U(高度单位)租用 co-lo 空间,这意味着在同一个机架(甚至可能是同一个机房​​)中工作的任何人都可以访问您的机器。如果您租用整个机架,则可以拥有自己的钥匙。

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

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

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

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

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

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

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

        “这取决于”。您在内部做的越多,您向其他服装支付的费用就越少。另一方面,如果你能找到好的外围服务提供商(数据中心设计,可能是基本机器构建,可能是服务监控,可能是安全监控,可能每周 X 天来更换备份磁带并将旧磁带带到保险箱地点)。在内部做这件事的一个好处是它可以成为你员工的动力。另一方面,如果你的一名或多名员工被公共汽车撞到,你在内部做的越多,你暴露的风险就越大。所以,对于你在内部做的任何事情,确保你至少有两个

        【讨论】:

          【解决方案4】:

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

          如果您想要 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?
          

          具有 DR 站点、日志传送(我知道 sql server 我知道有一个过程可以使多个 db 服务器保持同步)和每晚备份的集群解决方案。所有备份应运至异地并保存至少 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? 
          

          您有一套书面的政策和程序可以遵循。您有一个您使用的所有供应商的列表,其中包含从他们那里购买的商品以及它们的运行方式。您确保与您签订合同的所有供应商都享有盛誉并拥有可靠的业绩记录。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-08-27
            • 1970-01-01
            • 2012-05-08
            • 1970-01-01
            • 2014-12-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多