SYNwall:零配置物联网防火墙

  • A+
所属分类:安全工具

关于SYNwall

SYNwall是一款功能强大的零配置物联网防火墙,该项目是一个以Linux内核模块构建的项目,可以帮助广大研究人员实现一个透明的零配置/零维护的物联网防火墙。

通常情况下,物联网设备是不具备中央控制特性的,而且硬件配置不搞,环境条件也恶劣。广大研究人员并没有多少时间去专门维护物联网设备的安全,因此,我们可能无法及时修复物联网基础设施中的安全问题,并且很难去维持“类似防火墙”的访问控制。

SYNwall是思想是创建一个非集中式的单向一次性密码,以使网络能够访问设备,所有不包含OTP的流量都将被丢弃。我们不需要事先知道谁需要访问,我们只需要一个预共享密钥来部署。安全保护机制将对应用层完全透明,因为它是在网络协议级别(TCP和UDP)实现的。

工具安装

这个项目库中包含了Linux内核模块,并且已经在X86_64、ARM、MIPS以及AARCH64架构上测试了3.x、4.x和5.x版本。

该工具要求使用当前内核Header进行编译,这里可以使用对应的包管理器来进行安装。比如说,在Debian发行版系统上可以运行下列命令:

sudo apt-get install linux-headers-$(uname -r)

接下来,我们就可以运行编译命令了:

make

SYNwall配置

功能模块可以使用insmod或modprobe进行加载。

工具还提供了一些参数来帮助我们实现自定义行为:

1、用于一次性密码的预共享密钥-PSK

这个PSK必须是一个长度为32到1024的字节序列。它将是OTP的一部分,因此它的长度将影响OTP注入包的大小。如果没有此参数,模块将无法加载。

2、启用UDP-enable_udp: 0

针对UDP协议启用或禁用OTP。默认配置下是禁用的,设置为1即可启用。UDP上的OTP要求模块在两个通信设备上都处于活动状态,因为在将数据包转发到应用层之前,必须(由模块)删除OTP。UDP连接跟踪依赖于conntrack模块,因此必须插入它才能使用此功能(这取决于安装)。

3、精度参数-precision: 10

OTP使用了当前设备时间进行计算,由于不同设备上的日期时间可能不同,因此我们可以设置一个允许的时间偏移量,默认值为10。这里的精度需要使用2的幂来表示:

...

     9   ->   1 second

     10  ->   8 seconds

     ...

工具使用样例

下列命令将删除所有流向目标设备的通信流量:

sudo insmod SYNwall.ko psk=123456789012345678901234567890123 precision=10 portk=12,13,14,15,16 load_delay=5000 enable_udp=1

项目地址

SYNwall:https://github.com/SYNwall/SYNwall

本文始发于微信公众号(盾山实验室):SYNwall:零配置物联网防火墙

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: