项目成员:郭昊睿、李凯强、吴柏豪、李晨、周鑫宇
指导老师:张锋巍 教授
虚拟专用网络(VPN)可以通过远程服务器将用户的流量转发,保证了良好的隐秘性和安全性,但同时这种技术也被利用进行恶意活动如发布反动信息和泄露商业机密。因此,互联网服务提供商无法监控用户的实际行为。因此,VPN可能会造成潜在的威胁。在某些场景下,恶意流量识别是必要的。目前常规的识别方法有机器学习、基于签名的流量识别方法等。机器学习准确率高,但同时也存在不小的误报率。因此为了降低误报率,我们的项目在使用机器学习的基础上添加了指纹、流和主机行为以及主动探测作为降低误报率的方法。
我们的项目包括五个部分:数据库和四种方法。我们最终测试了白流量和四钟VPN: Psiphon,Wujie,Lantern 和Shadowsocks。
在数据库构建中,我们的网络流量分为两部分:我们自己收集的VPN流量和SANGFOR公司提供的白流量。我们使用四种方法来检测VPN。第一个是机器学习方法:我们使用GBDT算法来识别不同的VPN流。第二种方法是网站指纹:它可用于识别不同的网站,针对访问不同网站可确定是否已使用代理,例如google.com。第三种方法是流上下文和主机行为:这种方法表明白流量和VPN数据之间存在巨大差异。第四种方法是探针检测:它会主动探测可疑服务器,并尝试通过已知的代理协议进行通信。如果服务器以某种方式表明它是代理服务器,则审查者可以阻断它。
我们的项目发现机器学习算法在实验室环境中表现出色,但由于现实世界中有许多不同的网络应用场景。因此,验证机器学习算法必须获得大量数据支持,但由于我们实验数据抓取条件的不完善,无法提供大量数据支持。最终,使用机器学习算法结合其他方法进行降误报率,我们得到准确率为97.4%和0.24%的误报率的模型。