从DMZ中的Web服务器访问内部生产数据库中的数据

aeh*_*lrs 32 security dmz

我正在开发一个需要从我们的内部生产数据库获取数据的外部网站(在DMZ中).

我提出的所有设计都被拒绝了,因为网络部门不允许从DMZ进入任何类型的连接(WCF,Oracle等).

来自网络方面的建议通常分为两类 -

1)将所需数据导出到DMZ中的服务器,并最终以某种方式导出修改/插入的记录,或

2)从内部进行轮询,不断询问DMZ中的服务是否有任何需要维修的请求.

我反对建议1,因为我不喜欢坐在DMZ中的数据库的想法.对于所做的事情的性质,选项2似乎是一个荒谬的额外复杂性.

这些是唯一合法的解决方案吗?有一个明显的解决方案我错过了吗?"DMZ中的无连接"法令是否实用?

编辑:我经常听到的一句话是"没有大公司允许网站连接内部以获取实时生产数据.这就是他们发送确认电子邮件的原因".它真的是这样的吗?

Ken*_*Ray 49

对不起,但你的网络部门正在破解或类似的事情 - 他们显然不明白DMZ的目的是什么.总而言之 - 有三个"区域" - 外部世界的大,坏,你的纯净和处女的内部世界,以及众所周知,值得信赖,安全的DMZ.

规则是:

  1. 来自外部的连接只能到达DMZ中的主机,以及特定端口(80,443等);
  2. 从外到内的连接绝对被阻挡;
  3. 从内部到DMZ或外部的连接都很好,花花公子;
  4. 只有DMZ中的主机才能与内部建立连接,并且只能在众所周知和允许的端口上建立连接.

第四点是他们没有掌握的 - "DMZ没有联系"的政策是错误的.

问他们"我们的电子邮件系统如何运作呢?" 我假设你有一个企业邮件服务器,也许是交换,个人有连接它的客户端.请他们解释您的公司电子邮件如何使用互联网电子邮件,并且符合他们的政策.

对不起,它并没有给你一个答案.

  • 显然@ sysadmin1138(在之前的"服务器故障"讨论中,发生在2010年3月)与Ken Ray对"第四点"有相反的理解.请参阅http://serverfault.com/questions/125881/should-a-webserver-in-the-dmz-be-allowed-to-access-mssql-in-the-lan其中sysadmin1138说明以下内容:"_适当的网络安全声明DMZ服务器不应该访问"可信"网络.可信网络可以进入DMZ,但不是相反.对于像你这样的数据库支持的网络服务器,这可能是一个问题,这就是为什么数据库服务器最终在DMZs._". (3认同)
  • 是的,昨天我试图说服那个顶级人物.原因很糟糕是因为如果有人通过数据库前面的三个服务器和两个防火墙进行攻击,那么没有什么能阻止他们进入prod db. (2认同)
  • @aehiilrs:不幸的是,这也是没有网站开始的原因。我的意思是,他们可能会入侵该网站和dmz并以您的本地局域网为名... (2认同)

小智 16

我是一家财富50强金融公司的安全架构师.我们进行了同样的对话.我不同意您的网络组.我理解他们的焦虑,我知道他们想要一个更好的解决方案,但大多数地方都没有选择更好的选择(由于他们的无知[即网络人员不是你]).

两个选项,如果它们很难设置:你可以使用像greensql这样的SQL代理解决方案(我不为它们工作,只知道它们)它们只是greensql dot com.

他们提到的大多数"大型组织"使用的方法是分层Web模型.您有前端Web服务器(由公众访问),中间层(发生实际进程的应用程序或服务层)和数据库层的位置.中间层是唯一可以与数据库层通信的东西.在我看来,这个模型是大多数大型组织的最佳选择.但话虽如此,大多数大型组织将遇到供应商提供的产品,该产品不支持中间层,他们开发时没有中间层,而且转换需要开发资源,他们没有必要开发中间层Web服务,或者直截了当地说,某些公司没有这条路可以走这条路.

它是一个灰色地带,在这方面没有正确的对错,所以如果他们以最终的方式发言,那么他们显然是错的.我赞赏他们的热情,作为一名安全专业人士,我了解他们的来源.但是,我们必须使业务安全运行.这就是我总是试着挑战自己的挑战和挑战.我如何能够提供我的客户(我的开发人员,我的管理员,我的dbas,业务用户)他们想要的东西(在合理范围内,如果我告诉别人,我总是尝试提供满足他们大部分需求的替代方案).

老实说,它应该是一个开放的对话.在这里,我认为你可以获得一些空间,让他们威胁模拟他们希望减轻的风险.请他们提供其他解决方案,使您的网络应用程序能够正常运行.如果他们说他们不能说话,那就把责任放在他们身上以提供解决方案.如果他们不能,那么你默认它工作.您为批准的端口打开从dmz到db的连接的站点.让他们知道DMZ是用于提供外部服务.如果没有内部数据,除了潜在的文件传输解决方案外,外部服务并不好.

只是我的两分钱,希望这个评论有所帮助.并试着让我的安全弟兄们轻松一点.在我们的羊群中,我们有一些不太经验的误导,坚持一些旧的做事方式.随着世界的发展,威胁不断演变,我们的缓解方法也在不断发展.


cdh*_*wie 2

这是你可以做的......这有点牵强,但它应该有效......

编写位于 DMZ 中服务器上的服务。它将监听三个端口:A、B 和 C(选择任何有意义的端口号)。我将其称为 DMZ 隧道应用程序。

编写另一个位于内部网络上任何位置的服务。它将连接到端口 B 上的 DMZ 隧道应用程序。建立此连接后,DMZ 隧道应用程序不再需要侦听端口 B。这是“控制连接”。

当某些东西连接到 DMZ 隧道应用程序的端口 A 时,它将通过控制连接发送请求以获取新的数据库/任何连接。内部隧道应用程序将通过连接到内部资源进行响应。建立此连接后,它将连接回端口 C 上的 DMZ 隧道应用程序。

在可能验证一些令牌后(这部分由您决定),DMZ 隧道应用程序将在端口 A 和 C 上收到的连接之间来回转发数据。您将有效地拥有一个由运行在 DMZ 中的两个服务创建的透明 TCP 代理。 DMZ 和内部网络上。

而且,最重要的是,完成此操作后,您可以向 IT 部门解释您做了什么,并观察他们的表情,因为他们意识到您没有违反他们的安全策略,但您仍然高效。我告诉你,他们会讨厌这样的。

  • 然后你可能想向上级说“看,这个应用程序需要访问这个数据源......没有办法解决这个问题。我们可以整天和 IT 玩安全游戏,但是你想让这个项目完成吗?”或不?” (7认同)
  • 是的,但后来他们说我们不能这样做,一切又回到了绘图板,预算就被打破了。当某人拥有绝对否决权时,你不能狡猾。 (2认同)
  • 然后你去找你的主管并解释你所面临的第 22 条军规。你被要求做某项工作,但 IT 部门阻止了你。把它留给其他人去弄清楚如何实现它......哎呀,你只是开发人员......你开发软件。 (2认同)
  • 如果这不令人沮丧,那么 IT 部门就无法做好他们的工作。;) (2认同)