本文目录一览:
- 1、如何对网站进行渗透测试和漏洞扫描?
- 2、如何对网站进行渗透测试和漏洞扫描
- 3、简述入侵检测常用的四种 ***
- 4、网站安全防护措施有哪些
- 5、基于 *** 的入侵检测数据集研究
- 6、网站入侵检测需要用到什么工具
如何对网站进行渗透测试和漏洞扫描?
漏洞扫描
是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。
在 *** 设备中发现已经存在的漏洞,比如防火墙,路由器,交换机服务器等各种应用等等,该过程是自动化的,主要针对的是 *** 或应用层上潜在的及已知漏洞。漏洞的扫描过程中是不涉及到漏洞的利用的。
渗透测试
渗透测试服务(黑盒测试)是指在客户授权许可的情况下,利用各种主流的攻击技术对 *** 做模拟攻击测试,以发现系统中的安全漏洞和风险点,提前发现系统潜在的各种高危漏洞和安全威胁。
渗透测试员不仅要针对应用层或 *** 层等进行测试,还需要出具完整的渗透测试报告。一般的报告都会主要包括以下内容:渗透测试过程中发现可被利用的漏洞,出现的原因,解决 *** 等详细文字化的描述。
如何对网站进行渗透测试和漏洞扫描
零、前言
渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们提供的所有渗透测试 *** 均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethical hacking),因此我们这里的所有读者应当都是Ethical Hackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员 ;)
这里,我还想对大家说一些话:渗透测试重在实践,您需要一颗永不言败的心和一个有着活跃思维的大脑。不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,即使您将它打印出来沾点辣椒酱吃了也不行,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢保证:互联网的安全不为因为这样而更安全。祝您好运。。。
一、简介
什么叫渗透测试?
渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
进行渗透测试的目的?
了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。为什么说叫直观呢?就像Mitnick书里面提到的那样,安全管理(在这里我们改一下,改成安全评估工作)需要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行破坏,他就算是很成功的了。
渗透测试是否等同于风险评估?
不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。
已经进行了安全审查,还需要渗透测试吗?
如果我对您说:嘿,中国的现有太空理论技术通过计算机演算已经能够证明中国完全有能力实现宇航员太空漫步了,没必要再发射神8了。您能接受吗?
渗透测试是否就是黑盒测试?
否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。
渗透测试涉及哪些内容?
技术层面主要包括 *** 设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。
渗透测试有哪些不足之处?
主要是投入高,风险高。而且必须是专业的Ethical Hackers才能相信输出的最终结果。
你说的那么好,为什么渗透测试工作在中国开展的不是很火热呢?
我只能说:会的,一定会的。渗透测试的关键在于没法证明你的测试结果就是完善的。用户不知道花了钱证明了系统有问题以后,自己的安全等级到了一个什么程序。但是很显然,用户是相信一个专业且经验丰富的安全团队的,这个在中国问题比较严重。在我接触了一些大型的安全公司进行的一些渗透测试过程来看,测试人员的水平是对不住开的那些价格的,而且从测试过程到结果报表上来看也是不负责的。我估计在三年以后,这种情况会有所改观,到时一方面安全人员的技术力量有很大程度的改观,另一方面各企业对渗透测试会有一个比较深刻的理解,也会将其做为一种IT审计的方式加入到开发流程中去。渗透测试的专业化、商业化会越来越成熟。
二、制定实施方案
实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:
目标系统介绍、重点保护对象及特性。
是否允许数据破坏?
是否允许阻断业务正常运行?
测试之前是否应当知会相关部门接口人?
接入方式?外网和内网?
测试是发现问题就算成功,还是尽可能的发现多的问题?
渗透过程是否需要考虑社会工程?
。。。
在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含如下内容:
实施方案部分:
...
书面委托授权部分:
...
三、具体操作过程
1、信息收集过程
*** 信息收集:
在这一部还不会直接对被测目标进行扫描,应当先从 *** 上搜索一些相关信息,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址等)。
1.使用whois查询目标域名的DNS服务器
2.nslookup
set type=all
domain
server ns server
set q=all
ls -d domain
涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft,seologs 除此之外,我想特别提醒一下使用Googlebot/2.1绕过一些文件的获取限制。
Google hacking 中常用的一些语法描述
1.搜索指定站点关键字site。你可以搜索具体的站点如site:。使用site:nosec.org可以搜索该域名下的所有子域名的页面。甚至可以使用site:org.cn来搜索中国 *** 部门的网站。
2.搜索在URL网址中的关键字inurl。比如你想搜索带参数的站点,你可以尝试用inurl:asp?id=
3.搜索在网页标题中的关键字intitle。如果你想搜索一些登陆后台,你可以尝试使用intitle:"admin login"
目标系统信息收集:
通过上面一步,我们应当可以简单的描绘出目标系统的 *** 结构,如公司 *** 所在区域,子公司IP地址分布,VPN接入地址等。这里特别要注意一些比较偏门的HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。
从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的 *** 的是目标所有IP网段扫描。
端口/服务信息收集:
这一部分已经可以开始直接的扫描操作,涉及的工具包括:nmap,thc-amap
1.我最常使用的参数
nmap -sS -p1-10000 -n -P0 -oX filename.xml --open -T5 ip address
应用信息收集:httprint,SIPSCAN, *** ap
这里有必要将SNMP拿出来单独说一下,因为目前许多运营商、大型企业内部 *** 的维护台通过SNMP进行数据传输,大部分情况是使用了默认口令的,撑死改了private口令。这样,攻击者可以通过它收集到很多有效信息。snmp-gui,HiliSoft MIB Browser,mibsearch,net-snmp都是一些很好的资源。
2、漏洞扫描
这一步主要针对具体系统目标进行。如通过之一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:
针对系统层面的工具有:ISS, Nessus, SSS, Retina, 天镜, 极光
针对WEB应用层面的工具有:AppScan, Acunetix Web Vulnerability Scanner, WebInspect, Nstalker
针对数据库的工具有:ShadowDatabaseScanner, NGSSQuirreL
针对VOIP方面的工具有:PROTOS c07 sip(在测试中直接用这个工具轰等于找死)以及c07 h225, Sivus, sipsak等。
事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。
3、漏洞利用
有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rm, securityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称 exploit”、“应用名称 vulnerability”等关键字。
当然,大部分情况下你都可以不这么麻烦, *** 中有一些工具可供我们使用,最著名的当属metasploit了,它是一个开源免费的漏洞利用攻击平台。其他的多说无益,您就看它从榜上无名到冲进前五(top 100)这一点来说,也能大概了解到它的威力了。除此之外,如果您(您们公司)有足够的moeny用于购买商用软件的话,CORE IMPACT是相当值得考虑的,虽然说价格很高,但是它却是被业界公认在渗透测试方面的泰山北斗,基本上测试全自动。如果您觉得还是接受不了,那么您可以去购买CANVAS,据说有不少0DAY,不过它跟metasploit一样,是需要手动进行测试的。最后还有一个需要提及一下的Exploitation_Framework,它相当于一个漏洞利用代码管理工具,方便进行不同语言,不同平台的利用代码收集,把它也放在这里是因为它本身也维护了一个exploit库,大家参考着也能使用。
上面提到的是针对系统进行的,在针对WEB方面,注入工具有NBSI, OWASP SQLiX, SQL Power Injector, sqlDumper, sqlninja, sqlmap, Sqlbftools, priamos, ISR-sqlget***等等。
在针对数据库方面的工具有:
数据库 工具列表 Oracle(1521端口): 目前主要存在以下方面的安全问题:
1、TNS监听程序攻击(sid信息泄露,停止服务等)
2、默认账号(default password list)
3、SQL INJECTION(这个与传统的意思还不太一样)
4、缓冲区溢出,现在比较少了。 thc-orakel, tnscmd, oscanner, Getsids, TNSLSNR, lsnrcheck, OAT, Checkpwd, orabf MS Sql Server(1433、1434端口) Mysql(3306端口) DB2(523、50000、50001、50002、50003端口) db2utils Informix(1526、1528端口)
在针对Web服务器方面的工具有:
WEB服务器 工具列表 IIS IISPUTSCANNER Tomcat 想起/admin和/manager管理目录了吗?另外,目录列表也是Tomcat服务器中最常见的问题。比如5.*版本中的;index.jsp
"../manager/html
;cookievalue=%5C%22FOO%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2F%3B
;cookievalue=%5C%22A%3D%27%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2Fservlets-examples%2Fservlet+%3B JBOSS jboss的漏洞很少,老版本中8083端口有%符号的漏洞:
GET %. HTTP/1.0可以获取物理路径信息,
GET %server.policy HTTP/1.0可以获取安全策略配置文档。
你也可以直接访问GET %org/xxx/lib.class来获取编译好的java程序,再使用一些反编译工具还原源代码。 Apache Resin
;servletpath=file=WEB-INF/web.xml
;servletpath=file=WEB-INF/classes/com/webapp/app/target.class
[path]/[device].[extension]
.."web-inf
[path]/%20.xtp WebLogic
Web安全测试主要围绕几块进行:
Information Gathering:也就是一般的信息泄漏,包括异常情况下的路径泄漏、文件归档查找等
Business logic testing:业务逻辑处理攻击,很多情况下用于进行业务绕过或者欺骗等等
Authentication Testing:有无验证码、有无次数限制等,总之就是看能不能暴力破解或者说容不容易通过认证,比较直接的就是“默认口令”或者弱口令了
Session Management Testing:会话管理攻击在COOKIE携带认证信息时最有效
Data Validation Testing:数据验证更好理解了,就是SQL Injection和Cross Site Script等等
目前网上能够找到许多能够用于进行Web测试的工具,根据不同的功能分主要有:
枚举(Enumeration): DirBuster, http-dir-enum, wget
基于 *** 测试类工具:paros, webscarab, Burp Suite
针对WebService测试的部分有一些尚不是很成熟的工具,如:w *** ang,wschess,w *** ap,wsdigger,wsfuzzer
这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具甚至是0DAY代码,最常见的是SQL注入工具,现网开发的注入工具(如NBSI等)目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统使用的一些相对比较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。
在针对无线环境的攻击有:WifiZoo
4、权限提升
在前面的一些工作中,你或许已经得到了一些控制权限,但是对于进一步攻击来说却还是不够。例如:你可能很容易的能够获取Oracle数据库的访问权限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一个基本账号权限,但是当你想进行进一步的渗透测试的时候问题就来了。你发现你没有足够的权限打开一些密码存储文件、你没有办法安装一个SNIFFER、你甚至没有权限执行一些很基本的命令。这时候你自然而然的就会想到权限提升这个途径了。
目前一些企业对于补丁管理是存在很大一部分问题的,他们可能压根就没有想过对一些服务器或者应用进行补丁更新,或者是延时更新。这时候就是渗透测试人员的好机会了。经验之谈:有一般权限的Oracle账号或者AIX账号基本上等于root,因为这就是现实生活。
5、密码破解
有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完全没办法进入。最简单的说,一个缺少密码完全策略的论证系统就等于你安装了一个不能关闭的防盗门。很多情况下,一些安全技术研究人员对此不屑一顾,但是无数次的安全事故结果证明,往往破坏力更大的攻击起源于最小的弱点,例如弱口令、目录列表、SQL注入绕过论证等等。所以说,对于一些专门的安全技术研究人员来说,这一块意义不大,但是对于一个ethical hacker来说,这一步骤是有必要而且绝大部分情况下是必须的。;)
目前比较好的 *** 密码暴力破解工具有:thc-hydra,brutus
hydra.exe -L users.txt -P passwords.txt -o test.txt -s 2121 ftp
目前 *** 中有一种资源被利用的很广泛,那就是rainbow table技术,说白了也就是一个HASH对应表,有一些网站提供了该种服务,对外宣称存储空间大于多少G,像rainbowcrack更是对外宣称其数据量已经大于1.3T。
针对此种方式对外提供在线服务的有:
网址 描述 rainbowcrack 里面对应了多种加密算法的HASH。 数据量全球之一,如果本站无法破解,那么你只能去拜春哥...
当然,有些单机破解软件还是必不可少的:Ophcrack,rainbowcrack(国人开发,赞一个),cain,L0phtCrack(破解Windows密码),John the Ripper(破解UNIX/LINUX)密码,当然,还少不了一个FindPass...
针对 *** 设备的一些默认帐号,你可以查询和
在渗透测试过程中,一旦有机会接触一些OFFICE文档,且被加了密的话,那么,rixler是您马上要去的地方,他们提供的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果说明,谢谢)。看来微软有理由来个补丁什么的了。对于企业来说,您可以考虑使用铁卷或者RMS了。
6、日志清除
It is not necessary actually.
7、进一步渗透
攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。
除此之外,你可以直接回到第二步漏洞扫描来进行。
四、生成报告
报告中应当包含:
薄弱点列表清单(按照严重等级排序)
薄弱点详细描述(利用 *** )
解决 *** 建议
参与人员/测试时间/内网/外网
五、测试过程中的风险及规避
在测试过程中无可避免的可能会发生很多可预见和不可预见的风险,测试方必须提供规避措施以免对系统造成重大的影响。以下一些可供参考:
1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。
2. 测试验证时间放在业务量最小的时间进行。
3. 测试执行前确保相关数据进行备份。
4. 所有测试在执行前和维护人员进行沟通确认。
5. 在测试过程中出现异常情况时立即停止测试并及时恢复系统。
6. 对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。
简述入侵检测常用的四种 ***
入侵检测系统所采用的技术可分为特征检测与异常检测两种。
1、特征检测
特征检测(Signature-based detection) 又称Misuse detection ,这一检测假设入侵者活动可以用一种模式来表示,系统的目标是检测主体活动是否符合这些模式。
它可以将已有的入侵 *** 检查出来,但对新的入侵 *** 无能为力。其难点在于如何设计模式既能够表达“入侵”现象又不会将正常的活动包含进来。
2、异常检测
异常检测(Anomaly detection) 的假设是入侵者活动异常于正常主体的活动。根据这一理念建立主体正常活动的“活动简档”,将当前主体的活动状况与“活动简档”相比较,当违反其统计规律时,认为该活动可能是“入侵”行为。
异常检测的难题在于如何建立“活动简档”以及如何设计统计算法,从而不把正常的操作作为“入侵”或忽略真正的“入侵”行为。
扩展资料
入侵分类:
1、基于主机
一般主要使用操作系统的审计、跟踪日志作为数据源,某些也会主动与主机系统进行交互以获得不存在于系统日志中的信息以检测入侵。
这种类型的检测系统不需要额外的硬件.对 *** 流量不敏感,效率高,能准确定位入侵并及时进行反应,但是占用主机资源,依赖于主机的可靠性,所能检测的攻击类型受限。不能检测 *** 攻击。
2、基于 ***
通过被动地监听 *** 上传输的原始流量,对获取的 *** 数据进行处理,从中提取有用的信息,再通过与已知攻击特征相匹配或与正常 *** 行为原型相比较来识别攻击事件。
此类检测系统不依赖操作系统作为检测资源,可应用于不同的操作系统平台;配置简单,不需要任何特殊的审计和登录机制;可检测协议攻击、特定环境的攻击等多种攻击。
但它只能监视经过本网段的活动,无法得到主机系统的实时状态,精确度较差。大部分入侵检测工具都是基于 *** 的入侵检测系统。
3、分布式
这种入侵检测系统一般为分布式结构,由多个部件组成,在关键主机上采用主机入侵检测,在 *** 关键节点上采用 *** 入侵检测,同时分析来自主机系统的审计日志和来自 *** 的数据流,判断被保护系统是否受到攻击。
参考资料来源:百度百科-入侵检测
网站安全防护措施有哪些
1、防火墙
安装必要的防火墙,阻止各种扫描工具的试探和信息收集,甚至可以根据一些安全报告来阻止来自某些特定IP地址范围的机器连接,给服务器增加一个防护层,同时需要对防火墙内的 *** 环境进行调整,消除内部 *** 的安全隐患。
2、漏洞扫描
使用商用或免费的漏洞扫描和风险评估工具定期对服务器进行扫描,来发现潜在的安全问题,并确保由于升级或修改配置等正常的维护工作不会带来安全问题。
3、安全配置
关闭不必要的服务,更好是只提供所需服务,安装操作系统的最新补丁,将服务升级到最新版本并安装所有补丁,对根据服务提供者的安全建议进行配置等,这些措施将极大提供服务器本身的安全。
4、优化代码
优化网站代码,避免sql注入等攻击手段。检查网站漏洞,查找代码中可能出现的危险,经常对代码进行测试维护。
5、入侵检测系统
利用入侵检测系统的实时监控能力,发现正在进行的攻击行为及攻击前的试探行为,记录黑客的来源及攻击步骤和 *** 。
相关说明
*** 安全性问题关系到未来 *** 应用的深入发展,它涉及安全策略、移动代码、指令保护、密码学、操作系统、软件工程和 *** 安全管理等内容。一般专用的内部网与公用的互联网的隔离主要使用“防火墙”技术。
与“防火墙”配合使用的安全技术还有数据加密技术。数据加密技术是为提高信息系统及数据的安全性和保密性,防止秘密数据被外部破坏所采用的主要技术手段之一。随着信息技术的发展, *** 安全与信息保密日益引起人们的关注。
各国除了从法律上、管理上加强数据的安全保护外,从技术上分别在软件和硬件两方面采取措施,推动着数据加密技术和物理防范技术的不断发展。按作用不同,数据加密技术主要分为数据传输、数据存储、数据完整性的鉴别以及密钥管理技术4种。
以上内容参考:百度百科- *** 安全
基于 *** 的入侵检测数据集研究
摘要:标记数据集是训练和评估基于异常的 *** 入侵检测系统所必需的。本文对基于 *** 的入侵检测数据集进行了重点的文献综述,并对基于包和流的底层 *** 数据进行了详细的描述。本文确定了15种不同的属性来评估单个数据集对特定评估场景的适用性。这些属性涵盖了广泛的标准,并被分为五类,例如用于提供结构化搜索的数据量或记录环境。在此基础上,对现有数据集进行了全面的综述。本综述还强调了每个数据集的特性。此外,本工作还简要介绍了基于 *** 的数据的其他来源,如流量生成器和数据存储库。最后,我们讨论了我们的观察结果,并为使用和创建基于 *** 的数据集提供了一些建议。
一、引言
信息技术安全是一个重要的问题,入侵和内部威胁检测的研究已经投入了大量的精力。在处理与安全相关的数据[1]-[4]、检测僵尸 *** [5]-[8]、端口扫描[9]-[12]、蛮力攻击[13]-[16]等方面已经发表了许多贡献。所有这些工作的共同点是,它们都需要具有代表性的基于 *** 的数据集。此外,基准数据集是评价和比较不同 *** 入侵检测系统(NIDS)质量的良好基础。给定一个带标签的数据集,其中每个数据点都被分配给类normal或attack,可以使用检测到的攻击数量或虚警数量作为评估标准。
不幸的是,没有太多具有代表性的数据集。Sommer和Paxson[17](2010)认为,缺乏具有代表性的公共可用数据集是基于异常的入侵检测面临的更大挑战之一。Malowidzki等人(2015)和Haider等人(2017)也发表了类似的声明。然而,社区正在解决这个问题,因为在过去几年中已经发布了几个入侵检测数据集。其中,澳大利亚 *** 安全中心发布了UNSW-NB15[20]数据集,科堡大学发布了CIDDS-001[21]数据集,新布伦瑞克大学发布了CICIDS 2017[22]数据集。未来还会有更多数据集发布。然而,现有数据集没有全面的索引,很难跟踪最新的发展。
本文对现有的基于 *** 的入侵检测数据集进行了文献综述。首先,对底层数据进行更详细的研究。基于 *** 的数据以基于包或基于流的格式出现。基于流的数据只包含关于 *** 连接的元信息,而基于包的数据也包含有效负载。然后,对文献中常用的评价 *** 数据集质量的不同数据集属性进行了分析和分组。本调查的主要贡献是对基于 *** 的数据集进行了详尽的文献综述,并分析了哪些数据集满足哪些数据集属性。本文重点研究了数据集内的攻击场景,并强调了数据集之间的关系。此外,除了典型的数据集之外,我们还简要介绍了流量生成器和数据存储库作为 *** 流量的进一步来源,并提供了一些观察和建议。作为主要的好处,本调查建立了一组数据集属性,作为比较可用数据集和确定合适数据集的基础,给出了特定的评估场景。此外,我们创建了一个网站1,其中引用了所有提到的数据集和数据存储库,我们打算更新这个网站。
本文的其余部分组织如下。下一节将讨论相关工作。第三部分详细分析了基于包和流的 *** 数据。第四部分讨论了文献中常用来评价入侵检测数据集质量的典型数据集属性。第五节概述了现有的数据集,并根据第四节确定的属性检查每个数据集。第六节简要介绍了基于 *** 的数据的进一步来源。在本文件以摘要结束之前,第七节讨论了意见和建议。
二、相关工作
本节回顾基于 *** 的入侵检测数据集的相关工作。需要注意的是,本文没有考虑基于主机的入侵检测数据集,比如ADFA[23]。读者可以在Glass-Vanderlan等人的[24]中找到关于基于主机的入侵检测数据的详细信息。
Malowidzki等人[18]将缺失的数据集作为入侵检测的一个重要问题进行了讨论,对好的数据集提出了要求,并列出了可用的数据集。Koch等人的[25]提供了入侵检测数据集的另一个概述,分析了13个数据源,并根据8个数据集属性对它们进行了评估。Nehinbe[26]为IDS和入侵防御系统(IPS)提供了关键的数据集评估。作者研究了来自不同来源的七个数据集(如DARPA数据集和DEFCON数据集),强调了它们的局限性,并提出了创建更真实数据集的 *** 。由于在过去的四年中发布了许多数据集,我们延续了2011年到2015年[18],[25],[26]的工作,但提供了比我们的前辈更最新和更详细的概述。
虽然许多数据集论文(如CIDDS-002[27]、ISCX[28]或UGR ' 16[29])只对一些入侵检测数据集做了一个简要的概述,但Sharafaldin等人对[30]提供了更详尽的综述。他们的主要贡献是一个生成入侵检测数据集的新框架。Sharafaldin等人还分析了11个可用的入侵检测数据集,并根据11个数据集属性对其进行了评估。与早期的数据集论文相比,我们的工作重点是对现有的基于 *** 的数据集提供一个中立的概述,而不是提供一个额外的数据集。
最近的其他论文也涉及到基于 *** 的数据集,但主要关注的焦点有所不同。Bhuyan等人对 *** 异常检测进行了全面的综述。作者描述了现有的9个数据集,并分析了现有异常检测 *** 所使用的数据集。类似地,Nisioti等人的[32]关注于用于入侵检测的无监督 *** ,并简要参考了现有的12个基于 *** 的数据集。Yavanoglu和Aydos[33]分析比较了最常用的入侵检测数据集。然而,他们的审查只包含七个数据集,包括其他数据集,如HTTP CSIC 2010[34]。总而言之,这些作品往往有不同的研究目标,而且只是接触对于基于 *** 的数据集,则略有不同。
三、数据
通常, *** 流量以基于包或基于流的格式捕获。在包级捕获 *** 流量通常是通过镜像 *** 设备上的端口来完成的。基于包的数据包含完整的有效载荷信息。基于流的数据更加聚合,通常只包含来自 *** 连接的元数据。Wheelus等人通过一个说明性的比较强调了这一区别:“捕获包检查和NetFlow之间的一个很好的区别示例是徒步穿越森林,而不是乘坐热气球飞越森林”[35]。在这项工作中,引入了第三类(其他数据)。另一个类别没有标准格式,并且因每个数据集而异。
A基于分组的数据
基于包的数据通常以pcap格式捕获,并包含有效负载。可用的元数据取决于使用的 *** 和传输协议。有许多不同的协议,其中最重要的是TCP、UDP、ICMP和IP。图1显示出了不同的报头。TCP是一种可靠的传输协议,它包含诸如序列号、确认号、TCP标志或校验和值之类的元数据。UDP是一种无连接的传输协议,它的头比TCP小,TCP只包含四个字段,即源端口、目标端口、长度和校验和。与TCP和UDP相比,ICMP是一个包含状态消息的支持协议,因此更小。通常,在报头旁边还有一个可用的IP报头传输协议的。IP报头提供源和目标IP地址等信息,如图1所示。
b .流为基础数据
基于流的 *** 数据是一种更简洁的格式,主要包含关于 *** 连接的元信息。基于流的数据将所有在时间窗口内共享某些属性的包聚合到一个流中,通常不包含任何有效负载。默认的五元组定义,即,源IP地址、源端口、目标IP地址、目标端口和传输协议[37],是一种广泛使用的基于流的数据属性匹配标准。流可以以单向或双向格式出现。单向格式将主机A到主机B之间共享上述属性的所有包聚合到一个流中。从主机B到主机A的所有数据包聚合为另一个单向流。相反,一个双向流总结了主机a和主机B之间的所有数据包,不管它们的方向如何。
典型的基于流的格式有NetFlow[38]、IPFIX[37]、sFlow[39]和OpenFlow[40]。表I概述了基于流的 *** 流量中的典型属性。根据特定的流格式和流导出器,可以提取额外的属性,如每秒字节数、每个包的字节数、之一个包的TCP标志,甚至有效负载的计算熵。
此外,可以使用nfdump2或YAF3之类的工具将基于包的数据转换为基于流的数据(但不是相反)。读者如果对流导出器之间的差异感兴趣,可以在[41]中找到更多细节,并分析不同的流导出器如何影响僵尸 *** 分类。
c .其他数据
这个类别包括所有既不是纯基于包也不是基于流的数据集。这类的一个例子可能是基于流的数据集,这些数据集已经用来自基于包的数据或基于主机的日志文件的附加信息进行了丰富。KDD CUP 1999[42]数据集就是这一类别的一个著名代表。每个数据点都有基于 *** 的属性,比如传输的源字节数或TCP标志的数量,但是也有基于主机的属性,比如失败登录的数量。因此,这个类别的每个数据集都有自己的一组属性。由于每个数据集都必须单独分析,所以我们不对可用属性做任何一般性的说明。
四、数据集属性
为了能够比较不同的入侵检测数据集,并帮助研究人员为其特定的评估场景找到合适的数据集,有必要将公共属性定义为评估基础。因此,我们研究了文献中用于评估入侵检测数据集的典型数据集属性。一般概念FAIR[43]定义了学术数据应该遵循的四个原则实现,即可查找性、可访问性、互操作性和可重用性。在与这个一般概念相一致的同时,本工作使用更详细的数据集属性来提供基于 *** 的入侵检测数据集的重点比较。通常,不同的数据集强调不同的数据集属性。例如,UGR ' 16数据集[29]强调较长的记录时间来捕捉周期效应,而ISCX数据集[28]强调精确的标记。由于我们的目标是研究基于 *** 的入侵检测数据集的更一般的属性,所以我们试图统一和概括文献中使用的属性,而不是采用所有的属性。例如,一些 *** 评估特定类型攻击的存在,比如DoS(拒绝服务)或浏览器注入。某些攻击类型的存在可能是评估这些特定攻击类型的检测 *** 的相关属性,但是对于其他 *** 没有意义。因此,我们使用一般的属性攻击来描述恶意 *** 流量的存在(见表三)。第五节提供了关于数据集中不同攻击类型的更多细节,并讨论了其他特定的属性。
我们不像Haider et al.[19]或Sharafaldin et al.[30]那样开发评估评分,因为我们不想判断不同数据集属性的重要性。我们认为,某些属性的重要性取决于具体的评估场景,不应该在调查中普遍判断。相反,应该让读者能够找到适合他们需要的数据集。因此,我们将下面讨论的数据集属性分为五类,以支持系统搜索。图2总结了所有数据集属性及其值范围。
A.一般资料
以下四个属性反映了关于数据集的一般信息,即创建年份、可用性、正常 *** 流量和恶意 *** 流量的存在。
1)创建年份:由于 *** 流量受概念漂移影响,每天都会出现新的攻击场景,因此入侵检测数据集的年龄起着重要作用。此属性描述创建年份。与数据集发布的年份相比,捕获数据集的底层 *** 流量的年份与数据集的最新程度更相关。
2)公共可用性:入侵检测数据集应公开可用,作为比较不同入侵检测 *** 的依据。此外,数据集的质量只能由第三方检查,如果它们是公开可用的。表III包含此属性的三个不同特征:yes, o.r. (on request)和no。On request是指在向作者或负责人发送消息后授予访问权限。
3)正常用户行为:此属性指示数据集中正常用户行为的可用性,并接受yes或no值。值yes表示数据集中存在正常的用户行为,但它不声明是否存在攻击。一般来说,入侵检测系统的质量主要取决于其攻击检测率和误报率。此外,正常用户行为的存在对于评估IDS是必不可少的。然而,缺少正常的用户行为并不会使数据集不可用,而是表明它必须与其他数据集或真实世界的 *** 流量合并。这样的合并步骤通常称为覆盖或盐化[44]、[45]。
4)攻击流量:IDS数据集应包含各种攻击场景。此属性指示数据集中是否存在恶意 *** 通信,如果数据集中至少包含一次攻击,则该属性的值为yes。表四提供了关于特定攻击类型的附加信息。
B.数据的性质
此类别的属性描述数据集的格式和元信息的存在。
1)元数据:第三方很难对基于包和基于流的 *** 流量进行内容相关的解释。因此,数据集应该与元数据一起提供关于 *** 结构、IP地址、攻击场景等的附加信息。此属性指示附加元数据的存在。
2)格式: *** 入侵检测数据集以不同的格式出现。我们大致将它们分为三种格式(参见第三节)。(1)基于分组的 *** 流量(例如pcap)包含带负载的 *** 流量。(2)基于流的 *** 流量(如NetFlow)只包含关于 *** 连接的元信息。(3)其他类型的数据集可能包含基于流的跟踪,带有来自基于包的数据甚至来自基于主机的日志文件的附加属性。
3)匿名性:由于隐私原因,入侵检测数据集往往不会公开,或者只能以匿名的形式提供。此属性指示数据是否匿名以及哪些属性受到影响。表III中的none值表示没有执行匿名化。值yes (IPs)表示IP地址要么被匿名化,要么从数据集中删除。同样,值yes (payload)表示有效负载信息被匿名化,要么从基于分组的 *** 流量中删除。
C.数据量
此类别中的属性根据容量和持续时间描述数据集。
1) Count:属性Count将数据集的大小描述为包含的包/流/点的数量或物理大小(GB)。
2)持续时间:数据集应涵盖较长时间内的 *** 流量,以捕捉周期性影响(如白天与夜晚或工作日与周末)[29]。属性持续时间提供每个数据集的记录时间。
D.记录环境
此类别中的属性描述捕获数据集的 *** 环境和条件。
1)流量类型:描述 *** 流量的三种可能来源:真实的、模拟的或合成的。Real是指在有效的 *** 环境中捕获真实的 *** 流量。仿真的意思是在测试床或仿真 *** 环境中捕获真实的 *** 流量。综合意味着 *** 流量是综合创建的(例如,通过一个流量生成器),而不是由一个真实的(或虚拟的) *** 设备捕获的。
2) *** 类型:中小企业的 *** 环境与互联网服务提供商(ISP)有着本质的区别。因此,不同的环境需要不同的安全系统,评估数据集应该适应特定的环境。此属性描述创建相应数据集的基础 *** 环境。
3)完整 *** :该属性采用Sharafaldin等人的[30],表示数据集是否包含来自具有多个主机、路由器等 *** 环境的完整 *** 流量。如果数据集只包含来自单个主机(例如蜜罐)的 *** 流量,或者只包含来自 *** 流量的一些协议(例如独占SSH流量),则将值设置为no。
E.评价
以下特性与使用基于 *** 的数据集评估入侵检测 *** 有关。更精确地说,这些属性表示预定义子集的可用性、数据集的平衡和标签的存在。
1)预定义的分割:有时,即使在相同的数据集上对不同的IDS进行评估,也很难对它们的质量进行比较。在这种情况下,必须明确是否使用相同的子集进行训练和评估。如果数据集附带用于训练和评估的预定义子集,则此属性提供信息。
2)均衡:基于异常的入侵检测通常采用机器学习和数据挖掘 *** 。在这些 *** 的训练阶段(例如,决策树分类器),数据集应该与其类标签相平衡。因此,数据集应该包含来自每个类(normal和attack)的相同数量的数据点。然而,真实世界的 *** 流量是不平衡的,它包含了比攻击流量更多的正常用户行为。此属性指示数据集是否与其类标签相平衡。在使用数据挖掘算法之前,应该通过适当的预处理来平衡不平衡的数据集。他和Garcia[46]提供了从不平衡数据中学习的良好概述。
3)带标签:带标签的数据集是训练监督 *** 、评估监督和非监督入侵检测 *** 所必需的。此属性表示是否标记了数据集。如果至少有两个类normal和attack,则将此属性设置为yes。此属性中可能的值为:yes, yes with BG。(yes with background)、yes (IDS)、indirect和no。是的,有背景意味着有第三类背景。属于类背景的包、流或数据点可以是正常的,也可以是攻击。Yes (IDS)是指使用某种入侵检测系统来创建数据集的标签。数据集的一些标签可能是错误的,因为IDS可能不完美。间接意味着数据集没有显式标签,但是可以通过其他日志文件自己创建标签。
五、数据集
我们认为,在搜索足够的基于 *** 的数据集时,标记的数据集属性和格式是最决定性的属性。入侵检测 *** (监督的或非监督的)决定是否需要标签以及需要哪种类型的数据(包、流或其他)。因此,表II提供了关于这两个属性的所有研究的基于 *** 的数据集的分类。表三给出了关于第四节数据集属性的基于 *** 的入侵检测数据集的更详细概述。在搜索基于 *** 的数据集时,特定攻击场景的存在是一个重要方面。因此,表III显示了攻击流量的存在,而表IV提供了数据集中特定攻击的详细信息。关于数据集的论文描述了不同抽象级别的攻击。例如,Vasudevan等人在他们的数据集中(SSENET- 2011)将攻击流量描述为:“Nmap、Nessus、Angry IP scanner、Port scanner、Metaploit、Backtrack OS、LOIC等是参与者用来发起攻击的一些攻击工具。”相比之下,Ring等人在他们的CIDDS-002数据集[27]中指定了执行端口扫描的数量和不同类型。因此,攻击描述的抽象级别可能在表四中有所不同。对所有攻击类型的详细描述超出了本文的范围。相反,我们推荐感兴趣的读者阅读Anwar等人的开放存取论文“从入侵检测到入侵响应系统:基础、需求和未来方向”。此外,一些数据集是其他数据集的修改或组合。图3显示了几个已知数据集之间的相互关系。
基于 *** 的数据集,按字母顺序排列
AWID [49]。AWID是一个公共可用的数据集4,主要针对802.11 *** 。它的创建者使用了一个小型 *** 环境(11个客户机),并以基于包的格式捕获了WLAN流量。在一个小时内,捕获了3700万个数据包。从每个数据包中提取156个属性。恶意 *** 流量是通过对802.11 *** 执行16次特定攻击而产生的。AWID被标记为一个训练子集和一个测试子集。
Booters[50]。Booters是罪犯提供的分布式拒绝服务(DDoS)攻击。Santanna et. al[50]发布了一个数据集,其中包括九种不同的启动程序攻击的跟踪,这些攻击针对 *** 环境中的一个空路由IP地址执行。结果数据集以基于分组的格式记录,包含超过250GB的 *** 流量。单独的包没有标记,但是不同的Booters攻击被分成不同的文件。数据集是公开可用的,但是出于隐私原因,booters的名称是匿名的。
僵尸 *** [5]。僵尸 *** 数据集是现有数据集的组合,可以公开使用。僵尸 *** 的创建者使用了[44]的叠加 *** 来组合ISOT[57]、ISCX 2012[28]和CTU-13[3]数据集的(部分)。结果数据集包含各种僵尸 *** 和正常用户行为。僵尸 *** 数据集被划分为5.3 GB训练子集和8.5 GB测试子集,都是基于包的格式。
CIC DoS[51]。CIC DoS是加拿大 *** 安全研究所的一组数据,可以公开使用。作者的意图是创建一个带有应用层DoS攻击的入侵检测数据集。因此,作者在应用层上执行了8种不同的DoS攻击。将生成的跟踪结果与ISCX 2012[28]数据集的无攻击流量相结合生成正常的用户行为。生成的数据集是基于分组的格式,包含24小时的 *** 流量。
CICIDS 2017 [22]。CICIDS 2017是在模拟环境中历时5天创建的,包含基于分组和双向流格式的 *** 流量。对于每个流,作者提取了80多个属性,并提供了关于IP地址和攻击的附加元数据。正常的用户行为是通过脚本执行的。数据集包含了多种攻击类型,比如SSH蛮力、heartbleed、僵尸 *** 、DoS、DDoS、web和渗透攻击。CICIDS 2017是公开可用的。
cidds - 001 [21]。CIDDS-001数据集是在2017年模拟的小型商业环境中捕获的,包含为期四周的基于单向流的 *** 流量,并附带详细的技术报告和附加信息。该数据集的特点是包含了一个在互联网上受到攻击的外部服务器。与蜜罐不同,来自模拟环境的客户机也经常使用此服务器。正常和恶意的用户行为是通过在GitHub9上公开可用的python脚本执行的。这些脚本允许不断生成新的数据集,并可用于其他研究。CIDDS-001数据集是公开可用的,包含SSH蛮力、DoS和端口扫描攻击,以及从野外捕获的一些攻击。
cidds - 002 [27]。CIDDS-002是基于CIDDS-001脚本创建的端口扫描数据集。该数据集包含两个星期的基于单向流的 *** 流量,位于模拟的小型业务环境中。CIDDS-002包含正常的用户行为以及广泛的不同端口扫描攻击。技术报告提供了关于外部IP地址匿名化的数据集的附加元信息。数据集是公开可用的。
网站入侵检测需要用到什么工具
你先弄明白web工作的原理是什么,然后在想着入侵检测吧,只用工具,不明白原理是没用的,最简单的莫非于注入之类的了,百度 啊D,明小子,穿山甲之类的,针对asp足够了,当然了,入侵不仅仅有注入,编辑器漏洞,暴库,敏感目录,弱口令等等,千万别忘记了上传漏洞,当然了,PHP的更好玩了,反正这个是个经验活,不是学两天就能学会的,自己慢慢的总结,你先下载啊D之类的,自己玩玩 找找感觉吧