聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
早在2015年,Metasploit 的创始人 HD Moore 就发布文章称超过5800台加油站自动油箱测量仪 (ATGs) 可公开访问。除了监控泄露外,这些系统还可用于测量液位、箱内温度,以及当储罐量太高或非常低的时候向运营人员发出警报。ATGs几乎用于美国的所有加油站以及全球数万个系统中。最常见的制造商是 Veeder-Root,它是燃油加油机、支付系统和空地展销供应商。对于这些燃油系统的远程监控而言,运营人员常常会将ATG序列接口配置为面向互联网的TCP端口(通常设置为TCP10001)。
访问这些系统的流程非常简单:远程登录该端口并发布所记录的TLS-350或TLS-250命令执行操作如设置警报阈值、编辑传感器配置、运行储罐测试等。虽然Nmap 和 Metasploit等工具包括枚举这些设备的脚本,但其功能一般仅限于邮箱库存报告和系统状况报告。这些脚本对于侦察而言起到很好的作用,但假设攻击者通过更改访问设置和刺激错误条件完全阻止油缸的使用,触发手动关闭怎么办?这种放大的分布式攻击会导致国家瘫痪吗?带着这些问题,作者决定探究2015年以来这些设备的攻击面发生了怎样的改变。
第一步是应用Shodan引擎。在搜索TCP开放端口10001的系统时,作者快速将误报限定到响应Shodan爬虫具有“油箱库存报告”的设备上。2022年8月,共有11000个ATGs,如下图展示的是2017年至2022年间可公开访问的ATGs。
共有11000个ATGs以不安全的方式连接在互联网上,作者发现其中近三分之二的设备位于美国。
Shodan 还以图表形式展示了这些系统的地理位置。如果恶意人员可以同时向这些ATGs发布一个命令,会造成什么后果?
恶意人员要大规模利用这些设备,需要全面了解可轻松访问的联网ATGs。开展全网扫描后,作者发现超过8.5万台设备正在使用TCP端口10001。
root@RoseSecurity# cat ATG_SCAN_COMPLETE.txt | wc -l85104
要枚举使用TCP端口10001作为潜在ATG,作者构造了一个Python脚本,读取IP地址输出文件,之后向TCP端口10001开放的所有IPv4地址发送“获取油箱库存报告”请求(I20100)。判断好ATGs的设备后,这些IP地址被输出到一个名为 “ATG_DEVICES.txt”的新文件中。
使用该脚本运行文件内容后,发现超过1.1万台公开可访问的ATGs仍在野存在,但虽然“获取油箱库存报告”请求(I20100)可能看似无害,但如果攻击者将其它600个功能代码中的一个同时发送给每个面向互联网的ATG会发生什么?
那么,可以关闭7000多个加油站的恶意人员可以轻松导致美国瘫痪吗?答案很明显是肯定的。那么网络防护人员和运营人员应如何缓解此类风险?首先,需要设置密码保护每个序列端口或者应用源IP地址过滤器,但运营人员应当考虑使用VPN网关或其它专门的硬件接口,连接ATGs和监控服务。虽然这些都是可行的解决方案,但缓解的第一步应该是意识提升。关键系统的攻击面在7年多的时间里增长近120%是令人无法接受的。HG Moore在2015年就曾尝试发出警报。现在是时候实施防御了。
https://medium.com/@RoseSecurity/a-theoretically-devastating-cyber-attack-on-americas-gas-stations-ff1d9bbaf1
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~
原文始发于微信公众号(代码卫士):脚本小子如何可通过25行Python代码破坏美国加油站
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论