Giter Site home page Giter Site logo

liuliu2307 / ai_security_library Goto Github PK

View Code? Open in Web Editor NEW

This project forked from anchorety/ai_security_library

0.0 1.0 0.0 14.11 MB

Ai与Web安全相关资料的总结库,包括认为写的比较好的一些博客、项目、数据等

Python 100.00%

ai_security_library's Introduction

AI_And_Web_Security_Library

  Ai与Web安全相关资料的总结库,并附上自身对各个资料内容的总结与看法,不定期更新。

近期更新

2020.7.1

  WAF建设运营及AI应用实践

2020.7.2

  门神WAF众测总结

2020.7.15

  基于PU-Learning的恶意URL检测

2020.7.16

  在网络安全领域应用机器学习的困难和对策 待更新

2020.7.17

  机器学习与威胁情报的融合:一种基于AI检测恶意域名的方法   AI in WAF | 腾讯云网站管家 WAF AI 引擎实践

资料

  1. [华为AI安全白皮书]https://github.com/AnchoretY/AI_And_Web_Security_Library/blob/master/book/ai-security-white-paper-cn.pdf

Webshell

项目

  1.   全称《基于深度学习与集成学习的可配置webshell检测系统》,是08年大学生信息安全竞赛的一个Webshell检测系统,主要是是针对Webshell文件进行检测,采用的方式基本上是比较传统的静态检测(正则+机器学习)+动态检测技术(深度学习)的进行检测,然后使用加权的方式对模型进行组合,是一个比较基础的实现。

  长亭科技在线的Webshell文件检测项目,可以本地检测也可以线上检测。

数据集

   各种webshell文件数据,根据webshell文件类型进行分类,量很大。

  1.   一个比较大的的webshell文件收集项目。

Blog

  1.   该文章主要对采用机器学习方式进行Webshell检测特征选取做出了一系列的总结,包括了基于日志、基于统计学分析、基于文件的文本属性三个角度的特征提取过程,还是比较有借鉴意义的一篇文章,作者还提供了实现的github项目,在实际使用过程中可根据实际情况进行特征的选取。其中比较有借鉴意义的特征包括:

    • parameter的熵值
    • url访问频率
    • parameter的key出现的频率
    • parameter的key关联的页面数
    • 采用fuzz hashing与已知黑名单进行相似度匹配
  2.   对PHP Webshell使用opcode作为特征朴素贝叶斯算法进行检测,非常详细的讲解。

XSS

项目

数据集

  纯xss payload总结,不带任何其他信息

  一个xss payload网络数据库,数据量比较大而且除payload外,还包含了每条payload的相关信息,例如注入名称、描述等,并支持以csv、txt、json等多种形式进行导出。

检测规则

DGA域名检测

Paper&Blog

  1. Hyrum S. Anderson, Jonathan Woodbridge, Bobby Filar. "DeepDGA: Adversarially-Tuned Domain Generation and Detection" [pdf],6 Oct 2016 (生成对抗网络,DGA检测)
  2. Jonathan Woodbridge, Hyrum S. Anderson, Anjum Ahuja, Daniel Grant. "Predicting Domain Generation Algorithms with Long Short-Term Memory Networks" [pdf],2 Nov 2016 (LSTM,DGA检测)

入侵检测

项目

  使用某银行应用中的数据集进行HTTP Web攻击检测模型项目。该项目检测对象为HTTP流量,具有的一个比较特别的点是在训练阶段不使用攻击样本,而只使用正常样本,是一种类似异常检测思路,而不是大部分人使用的分类的方式。

  基于HMM的Web异常参数检测项目

数据集

  1.   KDD大赛的一个竞赛项目,主要目的是使用机器学习得手段建立一个入侵检测器。其中的入侵行为主要包括:DDOS、密码暴力破解、缓冲区溢出、扫描等多种攻击行为。数据格式为一些基本的统计信息

  一个总结各种与安全数据相关的数据集的网站。数据格式也非常多样

Blog

  1.   该博客一个比较全面的HTTP流量日志分析系统,是一个比较详细的系统设计,检测部分包括了规则匹配、统计特征检测、机器学习检测三种方法,机器学习部分采用了tf-idf+ngram等方式进行向量化然后使用SVM进行检测。是一种非常基础非常简单的安全和AI结合的实践。

  2.   楚安大佬在AI安全领域的一篇非常经典的博客。

  3.   兜哥写的一篇关于HMM用于Web参数异常检测的一篇论述性的文章,并附带了一些基本实现。HMM应用于Web参数异常检测核心**为使用大量白样本构建HMM模型,使模型能够正确识别正常参数的形式,然后对于新的请求参数使用该HMM模型进行判别,根据得出的概率值判断是否为异常参数。在实际使用中存在的问题也比较明显,HMM模型要每个URL都要训练一个HMM模型,因此检测的成本巨大,只能用于小站点的防护。

  4.   该博客为写成在将机器学习应用到携程的恶意攻击检测系统中的企业实践,整个文章论述了将机器学习应用到入侵检测系统中的整体思路以及遇到的各种问题及解决方法。里面一些比较精彩的点:

    • 该文章将机器学习模型主要用来做效率优化,构建低误报的模型来进行数据的过滤,然后再使用正则进行确定是否为攻击。

    • 整个系统先使用白名单机制来过滤掉97%的流量。在param的value部分不包含符号、控制符以及白名单IP的流量都可直接视为白数据

    • 机器学习和正则都判为黑的发送到自动化验证系统验证能否攻击成功

  5.   阿里cdxy大神关于阿里巴巴在将数据分析技术应用到企业安全中的一些思路的分享ppt,配套讲解视频。里面有一些做法还是比较特别的。

    • 多层日志进行协同进行是否成功入侵判别
    • 多层日志协同进行自动化事件完整过程建模,快速追踪(入侵链路可视化)。
    • 随着数据的积累,安全数据分析将基于图结构的高级知识表达方式发展
  6. 360云影实验室

  本文较为透彻的讲解了腾讯在进行WAF建设的思路、部署位置等,并且讲述了AI在整个WAF系统中所起的作用。其中比较记忆深刻的点:1.在流量到来时,应当使用多种方式来对流量进行初筛,流量中正常流量与恶意流量的比例为10000:1,应当先过滤掉绝对正常的流量。提到的方法为:先过滤掉公司自己的出口IP,再过敏感攻击特征关键字进行字符串匹配,筛选出疑似流量。 2.对于xss这类语法较为明显的攻击,采用antlr4作为词法分析器和文法分析器进行分析,判断是否符合语法。 3.对于判断符合js语法的请求进一步使用hmm来进行打分,判断是否为xss攻击

  1.   腾讯门神WAF进一步完善的一个众测策略,比较有借鉴意义的一个WAF完善方式。文章中比较详细的分析了整个众测过程中成功绕过门神WAF的各种攻击,对这些攻击按照攻击所针对防御策略预处理阶段、词法分析阶段、语法分析等不同阶段进行分析,但是并为直接给出完善措施,需要自己去思考。

  2.   蚂蚁金服在研究只有少量已经标注的正样本和大量无标注样本时,使用PU-Learning(Positive Unlabled Learning)进行恶意URL检测的原理、效果介绍。核心就是其中PU-Learning的具体做法,使用two-stage strategy(两个阶段,先进行训练模型,然后根据已有数据找阈值将数据进行标注)和cost-sensitive strategy(正例与负例误分类采用不同惩罚系数的损失函数),声称已经通过这个模型发现了新的攻击模式,值得尝试一下的策略。

Paper

  1. Davide, Ariu, and, et al. "HMMPayl: An intrusion detection system based on Hidden Markov Models[J]" pdf.(HMM用于Web参数检测)

渗透测试

项目

  1.   一款基于机器学习得自动化渗透测试工具,该工具可以根据响应包中的cookie、Etag、特定HTML标签等方面训练一个机器学习模型识别出服务器端软件,然后调用Metasploit进行渗透测试。这里还有一篇详细的使用介绍

  2. 使用深度强化学习进行自动化渗透测试工具。

Paper

UEBA

  1. ​ 比较详细的描述唯品会安全团队UEBA建设的架构以及实现的一些关键点,系列包含了9篇文章,是很具有借鉴意义的系列文章。其中比较好的一些思路有:

    • 域名的白名单可以根据访问用户的数量动态建立,访问的用户数量很大域名加入白名单。
    • 图算法的应用

加密流量检测

Blog

  1. 观成科技

  2. 观成科技

  3. 思科在加密流量检测中的检测方案

  4. 基于机器学习的恶意软件加密流量检测研究分享

    斗象科技

DNS隐蔽信道

Blog

  阿里云的在进行DNS隐蔽信道时写的一篇记录文章,文章中首先比较系统的讲述了IP直连型DNS隐蔽信道、域名型因隐蔽信道两种常见的隐蔽信道,然后使用Powershell+dnscat2实现DNS隐蔽隧道反弹Shell进行实际的隐蔽信道木马搭建,获取通信过程的隐蔽信道流量进行分析,最后非常全面的讲述了进行DNS隐蔽信道检测可以采用的特征,其中的ZIf定律、FQDN数等都是非常新颖的特征,是一篇做DNS隐蔽信道检测难得的好文。

  在该文章中还提到了在DNS隐蔽信道检测的实际应用中的一个比较核心的问题:如何区分DNS隐蔽信道和DNS Flood攻击

  1. ZIf定律

  根据Zif定律,在自然语言的语料库里,词频往往会集中于某些小子集中,并且高频词到低频次的频率逐渐下降。而在DNS Tunneling中由于域名做了编码,不符合Zipf定律,整个分布趋于平稳。因此可以通过通过检测排序后的词频平均斜率来检测input string是否符合zipf law规律。

  1. FQDN

  域名有全称和简称的区别。全称的域名,直译为"完全的合格的域名"(FQDN,Fully Qualified Domain Name),表现为由"·"隔开的点分式层次结构,叫名称空间, 它指定了一台主机和它所属域的隶属关系,而简称通常就是这台主机的计算机名,在域名的最左边。FQDN(完全合格的域名),是域加计算机名的总称。比如: www.microsoft.com 这个FQDN 中,www 是主机名,microsoft.com 是域。 www+microsoft.com 组合在一块就成了一个完整的域名(FQDN)。可以通过分析一定时间窗口内所产生的FQDN数,通常DNS Tunneling的FQDN数在一定时间窗口内会远高于正常的DNS流量

恶意域名检测

Blog

  改文章基于购买的微步的威胁情报中包含的恶意域名作为恶意黑样本构建的恶意域名检测模型,其中采用的一些对比较经典的特征,最终模型误报率和漏报率均在3%左右,整体效果还是一般。有构建这方面模型的道友可以将其作为base在其上进行进一步的完善。其中包含的主要特征包括:Alexa排名、搜狗rank、搜狗与百度的收录数量、必应收录数量、网站首页完整度、是否是主流域名后缀、地理位置、地理位置

其实对于在微步购买的威胁情报中所包含的恶意域名,文章作者已经认识到其标记并不准确,其中也存在包含了alex排名前1000的域名等问题,但是作者并没有在构建训练集时将这些有问题的数据进行剔除,在进行相关任务时应该注意样本集的清洗。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.