当前位置:首页 > 探索

网络安全毕业设计

凌晨三点,网络实验室的安全灯还亮着。我盯着屏幕上跳动的毕业数据包,第八次尝试用SQL注入绕过防火墙。设计这个漏洞是网络我在某个校园二手交易平台发现的——它的登录接口居然把用户输入直接拼进了数据库查询语句。如果这次能成功,安全我的毕业毕业设计《基于机器学习的Web攻击检测系统》就能拿到真实攻击样本了。

网络安全方向的设计毕业设计,最怕的网络就是纸上谈兵。去年有个学长做了个“智能入侵检测系统”,安全答辩时演示效果完美,毕业评委问了一句“你的设计训练数据从哪来的”,他支支吾吾说是网络从Kaggle下载的公开数据集。结果被当场指出那些数据都是安全2017年的老样本,根本反映不出当前攻击手法的毕业演变。最后论文改了三个月才通过。

我的做法不一样。从开题那天起,我就把自己当成一个“白帽黑客”,专门去扫描校园网里那些疏于防护的测试系统。当然,我提前跟信息中心签了授权协议,只挑他们标记过的靶机下手。这个过程远比想象中枯燥——90%的时间都在跟404页面和超时请求较劲。但正是那些偶尔出现的异常响应,让我积累了几十条真实的攻击日志,涵盖XSS、CSRF、命令注入等常见手法。

系统设计上,我抛弃了传统的规则匹配方案。规则库需要人工维护,遇到新型攻击就抓瞎。我改用随机森林加LSTM的混合模型,让算法自己从流量特征里找规律。训练过程很痛苦,正样本(正常请求)倒是海量,但负样本(攻击流量)少得可怜。后来我想了个歪招——用GAN生成对抗样本,让模型在“伪造攻击”和“识别攻击”的博弈中自我进化。效果出乎意料地好,检测率从最初的67%提升到了94%,误报率控制在3%以内。

最刺激的是测试阶段。我故意把系统部署在学院官网前面当反向代理,结果第三天就逮到一个用dirsearch扫描目录的脚本小子。看着系统实时弹出红色警报,标出攻击源IP、攻击类型和威胁等级,那种成就感比写代码时爽多了。不过也有翻车的时候——有次我把一个正常的API批量请求误判成CC攻击,直接封了教务处老师的IP,害得他选课系统登不进去。

现在论文初稿已经写完,正在补充实验对比部分。回头看看,这个毕业设计最大的收获不是技术本身,而是理解了“安全”是个动态博弈的过程。你堵住一个漏洞,攻击者马上会找到新的突破口。就像我最后在致谢里写的:真正的安全,不是构建一座攻不破的堡垒,而是让防御者永远比攻击者多想一步。

分享到: