如何在不向另一个网络添加双向链接的情况下从专用网络发布数据

信息安全 网络 防火墙 攻击预防 访问控制 攻击向量
2021-08-26 10:21:41

我只是想知道如何构建一个私有网络,在该网络中物理上不可能从外部获得访问权限,但仍然可以选择将数据发布到某个远程服务器。举个例子:假设我有一个控制某种关键基础设施的设备网络,我不希望任何人能够访问它,除了现场人员。但是,我仍然会链接以将诊断信息发送到可以从 Internet 访问的远程服务器,而不会出现明显延迟。

关于攻击者的假设:

  • 可以闯入任何连接到互联网的系统
  • 没有对专用网络的物理访问权限

所以我们不能只在公共网络和私有网络之间放置一个充当防火墙的服务器,因为每个软件都有缺陷,一旦防火墙被破坏,攻击者就会获得对私有网络的访问权限(除非我们有一个规则嵌入在硬件中或由于其他原因无法在没有物理访问的情况下修改的防火墙。有这样的设备吗?)

可以解决这个问题的是一个物理上只允许单向通信的设备(在我们的例子中是从私有网络到公共网络)。我不知道是否有这样的设备,但我想出了一些想法:

  • 使用任何类型的只写媒体,如 CD-ROM。问题:高延迟并且需要专门的硬件在机器之间自动移动 CD。
  • 纸质打印机/扫描仪设置:在您的专用网络中安装一台打印机,该打印机直接馈入连接到公共网络的扫描仪。延迟减少到只有几秒钟,但由于 OCR 容易出错。
  • 光纤通信:在接收器一侧,物理移除光发射器(或移除另一侧的接收器),因此只能进行单向通信。不过可能不适用于以太网(是否有任何网络协议可以正确处理单向通信?)

在我因为错过了明显的解决方案而继续自欺欺人之前,我很想听听您对此的评论:)

4个回答

您可以使用串行端口。默认情况下有两条数据线,每个方向一条,外加一条地线(这里不相关)。通过断开适当的线路,您可以阻止特定方向的通信。

它真的很容易使用,在最基本的层面上,我认为你可以运行类似的东西echo hello >> /dev/ttyS0cat /dev/ttyS0在另一端接收它。没有复杂的网络堆栈可以解决(这将阻止单向通信,因为它将缺少响应视为丢包)并且大多数语言都有易于使用的库来通过串行端口进行通信。

这是 Python 中关于如何通过串行发送一些 JSON 的示例:

import serial, json
s = serial.Serial('/dev/ttyUSB0')
data = json.dumps({"status": "OK", "uptime": 60}).encode("utf-8") # make UTF-8 encoded JSON
s.write(data + "\n") # send the JSON over serial with a newline at the end

我喜欢发布问题后搜索性能的提升;D

维基百科的救援:

  • Sneakernet是一个非正式术语,描述了通过将媒体 (...) 从一台计算机物理移动到另一台计算机来传输电子信息;而不是通过计算机网络传输信息。”
  • 单向网络(也称为单向安全网关或数据二极管)是一种网络设备或设备,允许数据仅在一个方向上传输,用于保证信息安全。”
  • 气隙、气墙或气隙是在一台或多台计算机上采用的网络安全措施,以确保安全的计算机网络与不安全的网络物理隔离”
  • 另请参阅:气隙恶意软件

并且实际上有公司出售被黑客入侵的光纤网络链接他们必须开发自己的网络协议,尽管到目前为止我还没有找到任何规范......

以太网

通过切割几根电线,可以很容易地使普通的 100mbit 以太网在物理上单向。标准的网络协议需要双向通信,并且确保在单向网络中传递是不可能的(因为如果消息被接收或丢失,发送者无法得到任何确认),但您绝对可以自己编写一个小型自定义网络堆栈 - 一个应用程序一方面将数据(可能复制每条消息并包括允许错误恢复的校验和)作为原始以太网帧发送;另一端的应用程序从它们组装数据流。有相对高级的库可用于处理此类数据,例如http://www.secdev.org/projects/scapy/

这不是开箱即用的东西,但也不是那么难,可能在大学家庭作业项目的范围内。

几个想法:

  • 像电动小鬼这样的东西呢?

https://electricimp.com/aboutus/faq/

它似乎使用一个小的光电二极管进行通信。

  • 或者这个使用扬声器发出的超声波的 Javascript 库怎么样。只在接收机器上放一个麦克风但没有扬声器?

https://github.com/borismus/sonicnet.js

  • 这是单向通信的非通道方式的现场实施:

https://youtu.be/w6lRq5spQmc

显然,谷歌 chromecast 使用了其中的一些。所以这可能是一个富有成效的代码栈来浏览。虽然不适用于安全应用程序,但仍然可能相关。

  • 查看雅马哈 Infosound 平台背后的技术。这似乎也是通过嘈杂的通道进行的单向通信:

https://play.google.com/store/apps/details?id=com.yamaha.android.infosoundbrowser&hl=en

当然,最后这一切都取决于您需要的带宽是多少?