安全威胁
一,IP spoofing(IP欺骗)
IP欺骗,简单来说就是向目标主机发送源地址为非本机IP地址的数据包。伪造TCP连接,隐藏攻击主机地址。
第一种IP spoofing:攻击者伪造的IP地址不可达或者根本不存在。比如,进行拒绝服务攻击,会话劫持
第二种IP spoofing:攻击者通过在自己发出的IP包中填入被目标主机所信任的主机的IP从而和目标主机之间建立了一条TCP连接。事实上,它是把目标主机和被信任主机之间的双向TCP连接分解成了两个单向的TCP连接),攻击者就可以获得对目标主机的访问权,并可以进一步进行攻击。
![](https://images0.cnblogs.com/blog2015/703944/201506/291411196181572.png)
攻击者的IP是伪造的,那么如何与目标主机建立连接呢?——利用TCP三次握手协议中ISN的规律。
TCP三次握手协议:
A->B:SYN,ISN a B->A:SYN,ISN b,ACK(ISN a+1) A->B:ACK(ISN b+1)
ISN值每秒增加128000,如果有连接出现,每次连接将把计数器的数值增加64000,这使得用于表示ISN的32位计数器在没有连接的情况下,每9.32h复位一次。这样,将有利于最大限度地减少旧有连接的信息干扰当前连接的机会。
非常重要的一点就是对ISN的选择算法。事实上,由于ISN的选择不是随机的,而是有规律可循的,这就为黑客欺骗目标系统创造了条件。
步骤:
1,确定目标主机,找到目标主机所采用的信任模式
2,找到一个被目标主机信任的主机
3,使得被信任的主机丧失工作能力,通常使用TCP SYN湮没的方法。
4,序列号的猜测:一般黑客先和目标主机建立一个正常的连接(比如说SMTP等),利用这一正常连接进行数据采样,得到目标主机的ISN变化规律。还有一个重要的数据就是目标主机和被信任主机之间的往返时间(RTT),利用这些数据猜测出目标主机在响应攻击者TCP请求时所给出的ISN,并在响应数据包的 ACK中填入适当的值以欺骗目标主机。
二,DoS攻击
DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击。
传统上,攻击者所面临的主要问题是网络带宽。虽然类似“the ping of death”的攻击类型只需要较少量的包就可以摧毁一个没有打过补丁的UNIX系统,但大多数的DoS攻击还是需要相当大的带宽的。为了克服这个缺点,DoS攻击者开发了分布式的攻击。攻击者简单利用工具集合许多的网络带宽来同时对同一个目标发动大量的攻击请求,这就是 DDoS(Distributed Denial of Service)攻击。
SYN洪水攻击
SYN洪水攻击属于DoS攻击的一种,它利用TCP协议缺陷(半连接:收到SYN包而还未收到ACK包时的连接状态称为半连接。半连接队列:在三次握手协议中,服务器维护一个半连接队列,该队列为每个客户端的SYN包(SYN=i )开设一个条目,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态),通过发送大量的半连接请求,耗费CPU和内存资源。 SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。
配合IP欺骗,SYN攻击能达到很好的效果客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN 请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
三, privilege escalation attack
A privilege escalation attack is a type of network intrusion that takes advantage of programming errors or design flaws to grant the attacker elevated access to the network and its associated data and applications.
Not every system hack will initially provide an unauthorized user with full access to the targeted system. In those circumstances privilege escalation is required. There are two kinds of privilege escalation: vertical and horizontal.
Vertical privilege escalation requires the attacker to grant himself higher privileges. This is typically achieved by performing kernel-level operations that allow the attacker to run unauthorized code.
Horizontal privilege escalation requires the attacker to use the same level of privileges he already has been granted, but assume the identity of another user with similar privileges. For example, someone gaining access to another person's online banking account would constitute horizontal privilege escalation.
四,SQL injection
简称注入攻击。是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏。
某个网站的登录验证的SQL查询代码为
strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"
恶意填入
userName = "1' OR '1'='1";
与
passWord = "1' OR '1'='1";
时,将导致原本的SQL字符串被填为
strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');"
也就是实际上运行的SQL命令会变成下面这样的
strSQL = "SELECT * FROM users;"
五,Cross-site scripting (XSS)
跨站脚本攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。