新闻  |   论坛  |   博客  |   在线研讨会
从免费的物联网防火墙hihttps谈机器学习之样本采集
hihttps | 2020-02-01 17:10:36    阅读:59   发布文章

hiihttps是首款免费的MQTT物联网防火墙,同时也是一款web应用防火墙,既支持传统的WAFOWASP特征工程检查(如SQL注入、XSS、恶意漏洞扫描、密码暴力破解、CCDDOS等),也支持机器采集样本无监督学习,自主对抗,重新定义网络安全。今天笔者就从物联网MQTT协议安全的角度,介绍机器学习之样本采集。

 

一、 究竟什么是MQTT攻击?

MQTT是物联网loT最广泛采用的协议,腾讯百度阿里云都支持,基础协议请百度搜索“物联网防火墙himqtt源码之MQTT协议分析”。在PUBLISH发布和主题订阅SUBSCRIBLE指令中,json是物联网最常用的通信格式,如:

 

{

"topic": "hihttps/read",

"payload1": {"user=123’ or 1=’1": 888},

"payload2": {"id=456”},

 "code": 4200

}

 

网络安全专家通常认为:MQTT协议攻击很多是有其特殊的特征,SQL注入如user=123' or 1='1XSS攻击如user=<script>alert(1);</script>等,这类攻击确实有非常典型的特征。上面payload1认为是一个攻击,那么payload2呢,肯定就无法判断了。

 

再进一步,如果物联网服务器上根本没有hihttps这个接口,那就是恶意行为,一定要检测出来并阻断。但传统的方法肯定不行了,那么机器学习将是唯一的办法。

二、 机器学习重新定义网络安全

和图形图像的机器学习相比,物联网安全采集样本的成本是最低的,因为只要把软件在服务器上运行即可采集,甚至读取日志文件,就可以拿到大量的样本,而成本几乎是0

但物联网领域黑客攻击样本太稀缺了,根本无法拿完并且日新月异,从这个角度也可以说无监督或者半监督学习,才是未来物联网安全的发展方向。下面举例:

 

如果从mqtt服务器上hihttps/read 的接口中"payload2": {"id=456”},,采集到的样本参数大于99.9%都是“?id=数字”这种形态,那么可以认为下面的载荷都视为攻击:

"payload2": {"id=456 or 1='1”}

"payload2": {"id=456 =<script>alert(1);</script>”}

"payload2": {"id=456&t=123”}

"payload2": {"id=%&”}

后面两条,在传统的waf是不可能检测的,只有机器学习才能准确检测出攻击。所以机器学习的核心是:不是我服务器上的东西,都视为非法攻击,这样有可能阻止未知漏洞和未知攻击。这样,物联网安全的概念和传统的特征工程完全不一样了,机器学习重新定义了网络安全。

三、 样本采集原则

1、足够的随机化,在不同的IP地址之间随机采集。

2、足够多的样本,保证99.99%的正确率,至少需要采集数万份的样本。

3、足够的时间,至少在不同的时间段采集3-7天的样本。

4、尽量是正常流量,样本没有被黑客攻击污染。

5、完整的数据,样本包括全部的MQTT 请求头和body

 

所以从日志里面来读取样本数据是有限的,最好用WAF实际部署方式来采集。对于SSL加密的样本采集通常用反向代理方式采集,可以参考hihttps源码https://github.com/qq4108863

四、总结

1、现在对物联网设备攻击都基于逻辑漏洞进行APT攻击,就是高级持续威胁,传统的waf规则很难对付未知漏洞和未知攻击。

2、让机器像人一样学习,具有一定智能自动对抗APT攻击或许是唯一有效途径。但黑客技术本身就是人类最顶尖智力的较量,物联网安全仍然任重而道远。

3、幸好hihttps这类免费的物联网防火墙在机器学习、自主对抗中开了很好一个头,未来物联网安全很可能是特征工程+机器学习共同完成,笔者将在下一篇文章中介绍怎么从MQTT样本中提取特征,自动生成对抗规则,未来物联网安全必然是AI的天下。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客