医院的HIS系统突然无法访问,护士站打不开病人档案,挂号窗口排起长队。运维老张一查防火墙日志,发现外部攻击者正疯狂扫描内网3389端口。这种场景在医疗行业太常见了——业务系统不能停,但安全风险又迫在眉睫。
为什么攻防演练总盯着医疗端口
三甲医院平均开放着17个对外服务端口,影像科PACS系统常暴露8080,检验科设备管理后台开着8443。这些本该隔离的端口,因为要对接第三方设备或远程维护,硬是做了映射。红队队员拿到公网IP扫一圈,基本就能画出内网拓扑。
动态端口映射的生存技巧
某次攻防演练前夜,我们给肿瘤放疗系统的数据库做了特殊处理。真实SQL Server监听21433端口,但对外只开放一个伪装成HTTP服务的跳板:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 21433
iptables -I INPUT -p tcp --dport 80 -m string --string "X-Auth-Key: cancer_center_2024" --algo bm -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j DROP
这样普通扫描看到的是个假网站,只有携带特定请求头的放疗计划传输软件才能穿透。第二天蓝队报告"发现可疑Web服务但无法利用",其实数据一直在加密传输。
CT室设备的映射陷阱
西门子CT机要求固定使用104端口做DICOM传输,厂家工程师说"不开放就罢工"。我们用反向代理拆解了这个需求:公网Nginx监听443,验证客户端证书后,才通过SSH隧道把流量转给内网真正的104端口。既满足了设备需求,又避免了端口直接暴露。
应急响应时的快速封堵
去年某次演练中,攻击方突破边界后直奔药房温控系统的502端口(Modbus协议)。我们立即执行预设脚本:
#!/bin/bash
# 关闭所有非必要映射
for rule in $(iptables -t nat -L PREROUTING --line-numbers | grep tcp | awk '{print $1}' | sort -nr)
do
iptables -t nat -D PREROUTING $rule
done
# 只保留急诊科三个关键端口
iptables -t nat -A PREROUTING -p tcp --dport 443 -d 1.1.1.1 -j DNAT --to-destination 192.168.10.5:8443
三分钟内完成网络瘦身,攻击路径全部失效。这种预案平时就得写好,真出事时没人给你时间现查文档。
现在每次新设备入网,我们都让厂商签《端口使用承诺书》:能改端口的必须改,不能改的得配双因素认证。上个月飞利浦超声仪想用默认80端口,最后妥协改成了8081,密码也从admin改成带日期动态口令。安全和便利的平衡,往往就在这些细节里。