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

5 security backup

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

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

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

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

随意给你任何建议!我仍然提出一些问题和想法让我们前进:

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

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

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

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

我也有兴趣了解其余问题的答案。