60、70年代, “黑客”一词仍极富褒义,从事黑客活动意味着对计算机网络的最大潜力进行智力上的自由探索,所谓的“黑客”文化也随之产生了。然后并非所有的人都能恪守“黑客”文化的信条专注于技术的探索,恶意的计算机网络破坏者、信息系统的窃密者随后层出不穷。
一、关于黑客
白帽子:创新者、设计新系统、打破常规、精研技术、勇于创新没有最好,只有更好。代表人物:MS ——Bill Gates、GNU ——R.Stallman、Linux ——Linus。
灰帽子:破解者、破解已有系统发现问题/漏洞、突破极限/禁制、展现自我,计算机为人民服务。代表人物:漏洞发现-——Flashsky、软件破解—— 0 Day、工具提供—— Glacier
黑帽子:破坏者、随意使用资源、恶意破坏,散播蠕虫病毒,商业间谍。人不为己,天诛地灭。代表人物:入侵者——K.米特尼、CIH 陈盈豪、攻击Yahoo者——匿名。
脚本小子( script kiddie )指那些完全没有或仅有一一点点黑客技巧而只是按照指示或运行某种骇客程序来达到破解目的人。脚本小子是利用他人所编辑的程序来发起网络攻击的网络闹事者。他们通常不懂得攻击对象的设计和攻击程序的原理,不能自己调试系统发现漏洞。他们冒充黑客,而实际的计算机知识远远不如黑帽黑客。
二、网络攻击的分类
一:被动攻击
被动攻击是对信息的保密性进行攻击,窃取信息的来源以及数据,对信息加以查看。主要的攻击方式有窃听,嗅探等。对被动攻击采取的防范措施应该是阻止而不是检测。比如进行数据加密。
二:主动攻击
主动攻击是指攻击信息来源的真实性,数据传输的完整性以及系统服务的可用性。对截取的信息进行修改,添加或删除等操作。主要的攻击方式有欺骗,重放,假冒,拒绝服务和消息篡改等方式,对主动攻击采取的防范措施为数据检测,防火墙等。
三:内部人员攻击
内部人员攻击指有的人授权在信息安全处理系统物理范围内或有直接访问内部安全信息处理系统的权限,可进行攻击
四:物理临近攻击
指未授权者在物理上临近网络,系统或设备,目的为修改,收集信息或拒绝为用户服务
五:分布攻击
指在硬件或软件在开发出来以后和被安装之前,或当其从一个地方转移到另一个地方之前,可进行攻击(修改软硬件)
三、攻击原理
(1)攻击网络宽带资源
(2)攻击系统资源
![攻击系统资源](https://i-blog.csdnimg.cn/blog_migrate/d20412179766f081f8fcd9ef066036fe.jpeg)
(3)攻击应用资源
![攻击应用资源](https://i-blog.csdnimg.cn/blog_migrate/98b0e37b8e03837a6cda34540ab2e715.jpeg)
(4)攻击防护原理
从 tcp/udp 协议栈原理介绍网络攻击防护原理:
四、几类常见的攻击
(1)CSRF攻击与防御
CSRF全名是Cross Site Request Forgery,翻译过来,即跨站请求伪造。
①验证码:http是无状态的,即不会区分哪个用户、哪个请求,不会记录请求状态。所以才会有session、cookie用以区分用户和校验身份。这一步通过了,请求 就认为是合法的了。所以说我们只要拿到了这个身份凭证(session、cookie)。
②Refer Check(添加Referer识别):如果一个请求来自域www.a.com,那么服务器验证客户端的请求来源时,HTTP请求头的Referer字段值就是www.a.com。这一步需要服务端来实现。问题在于,服务器不是什么时候都能取到Referer,甚至一些情况下是不发送Referer的。
③Anti CSRF Token(添加token验证):CSRF 的本质是所有被伪造攻击的请求的参数都是可被猜测到的。那我们在请求参数里加上随机生成的token,攻击成本将瞬间扩大。token必须满足不可预测,假如我们随机产生的token是一个8位数字,那攻击者暴力破解是分分钟的事。token必须同时满足保密性和随机性。
(2)sql注入攻击与预防
Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。当我们访问动态网页时, Web 服务器会向数据访问层发起 Sql 查询请求,如果权限验证通过就会执行 Sql 语句。这种网站内部直接发送的Sql请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 Sql 语句,如果用户输入的数据被构造成恶意 Sql 代码,Web 应用又未对动态构造的 Sql 语句使用的参数进行审查,则会带来意想不到的危险。
Sql 注入带来的威胁主要有如下几种方式:
1. 猜测数据库名,备份数据库;
2. 猜解字段名称;
3. 遍历系统的目录结构,分析结构并发现WEB虚拟目录,植入木马;
4. 查询当前用户的数据库权限;
5. 设置新的数据库帐户提权得到数据库管理员账户权限;
6. 利用存储过程获取操作系统管理员账户;
7. 客户端脚本攻击:通过正常的输入提交方式将恶意脚本提交到数据库中,当其他用户浏览此内容时就会受到恶意脚本的攻击;
8. 客户端脚本攻击:通过SQL注入方式将恶意脚本提交到数据库中,直接使用SQL语法UPDATE数据库,并将注入SQL经过“HEX编码”,然后通过exec执行“动态”SQL的特性运行脚本。
防御sql注入攻击
1.永远不要信任客户端提交的数据,一定要对客户端提交的数据进行校验,校验可以考虑数据类型,字符长度或者正则表达式等方式。
2.对客户端提交的数据进行转义,例如将" ' "转义为" ' "。
3.采用预编译绑定变量的SQL语句而不是直接拼接SQL语句。
4.避免在生产环境中,直接输出错误信息,因为这些错误信息有可能被攻击者利用。
5.严格执行数据库账号权限管理。
6.对用户敏感信息特别是密码做严格加密处理。
(3)XSS攻击与防御
XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),为不跟层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。跨站脚本攻击也就是在网站里嵌入恶意脚本程序,当用户打开网站时,窃取Cookie,盗取信息。通过URI参数传递和表单提交参数的方式进行攻击。
防御方式有以下两种:
1.继承HttpServletRequestWrapper,然后重写(@Override)getParameter()、getHeader()等等方法。
2.文件上传不走HttpServletRequestWrapper,需要继承CommonsMultipartResolver,重写方法。
(4)DDos攻击与防御
DDos(Distributed Denial of Service),即分布式拒绝服务攻击,DDos攻击是基于Dos发展来的。什么是Dos呢?首先简单介绍一下Dos,Dos就是利用信任的客户端向服务端频繁发送请求,从而达到服务器处理不过来,请求超时。所以Dos其实就是一对一的,在邮件设施还不太好的情况是有效的,对于性能极佳的服务器压根不管用了,所以就有了DDos,分布式拒绝服务攻击。
DDos攻击过程是分布式的,首先黑客可能会通过程序控制大量的计算机,然后通过这个计算机群在同一个时间,发送大量的请求到目标服务器,从而达到服务器处理不过来,请求超时的情况。
DDos的防御主要有以下方面:
1.设置高性能设备
2.带宽得保证
3.不要忘记升级
4.异常流量的清洗
5.考虑把网站做成静态页面
6.分布式集群防御