常见网络攻击
Posted Paco_Pig
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见网络攻击相关的知识,希望对你有一定的参考价值。
DOS,DDOS攻击与防范
DOS 拒绝服务攻击
利用程序的漏洞、利用协议的漏洞对服务器进行攻击,导致服务器无法正常对外提供服务。
例如: 利用tcp三步握手设计缺陷syn洪水攻击
a -------syn=100---> b
a <---syn=1000,ack=101--- b
a ----syn=101,ack=1001--> b
DDOS 分布式拒绝服务攻击
使用大量傀儡机器对服务器进行攻击,超过服务器实际的处理能力或者甚至超过机房的带宽,导致服务器无法正常对外提供服务。
防御: 区域联防。
router <---XX---
电信router <----机房
router <--------
CDN网络(内容分发网络= 智能DNS+squid)
SQL注入
入侵服务器的常见手段。
利用程序的过滤字符不严格,导致黑客可以提交恶意请求,查询到数据库不应该看到的数据。
防范:
加强程序员相关方面安全意识,尽量避免写出 SQL注入漏洞的代码。
安装第三方的模块,安全软件进行防护:
mod_security模块
针对php进行配置,但有些时候配置之后可能会影响到正常功能的发挥。
# vim /etc/php.ini
...
magic_quotes_runtime = On
magic_quotes_gpc = On <---对接受的特殊符号,特别是单引号进行转义或者过滤
php语法:
变量定义
$a=123;
$b="uplooking";
echo $a;
echo $b;
php的字符串连接符号 “.”
$c="wel to ".$b." !";
html语言的表格
ARP欺骗与防范
ARP协议是用在交换网络中,通过IP地址获取对应MAC地址。
在物理上,他们是局域网,同属于一个交换网络
A <-------1 switch 2------> B
3
|
C
要让以上机器可以相互通讯,逻辑上,他们配置的IP必须是同一个网段。
A 10.1.1.1
B 10.1.1.2
C 192.168.1.3
只有A与B可以通信。
交换机会连接它接口的所有设备的MAC地址都记录下来,通过MAC地址决定数据帧从哪个接口发送出去
MAC地址表:
接口 MAC地址
1 A
2 B
3 C
A机器和B机器通讯:
A、B之间之前是没有任何的通信。
A -----> B
# ping 10.1.1.2
1、在交换网络中,发送一个ARP广播。
谁拿了10.1.1.2这个IP,把你的MAC地址告诉我,我的IP是10.1.1.1,我的MAC是A。
sip: 10.1.1.1
dip: 10.1.1.2
smac: A
dmac: FF:FF:FF:FF:FF:FF <---广播地址
2、B机器会对广播进行回应,使用单播回应
我是B机器,我MAC地址是B。
sip:10.1.1.2
dip:10.1.1.1
smac:B
dmac:A <--- 单播
ARP欺骗:
在物理上,他们是局域网,同属于一个交换网络
A <-------1 switch 2------> B
3
|
C
要让以上机器可以相互通讯,逻辑上,他们配置的IP必须是同一个网段。
A 10.1.1.1
B 10.1.1.2
C 10.1.1.3
C机器是中了病毒或者是黑客控制的电脑,在局域网进行ARP欺骗。
第一欺骗: C机器不断向A机器发ARP数据包:
我的IP是10.1.1.2,我的MAC地址是C
A机器的ARP缓存里就保存了以下的对应关系:
10.1.1.2 <---> MAC地址:C
结果: A机器要与10.1.1.2通讯,数据包会:
sip: 10.1.1.1
dip: 10.1.1.2
smac: A
dmac: C <--- 原本拿了10.1.1.2这个IP是B,但是又被被ARP欺骗了
应用场合:
假冒网关。可以实现骗取机器所有发送给网关的数据包。
解决: 被欺骗的机器只要静态绑定网关的MAC地址
# arp -s 10.1.1.2 AA:BB:??
第二欺骗:C机器不断向网关发送ARP欺骗包:
我IP是10.1.1.1 ,我的MAC是C。结果:
网关的ARP缓存里认为:
10.1.1.1 <----> C
网关把所有发送给10.1.1.1的数据包都发送给了C机器。
应用场合: 用在机房。
解决: 在路由上静态绑定网络中受害机器的MAC
arp防火墙。
web服务安全
xxx.php --> httpd ---> libphp.so ---编译页面中<?php ?>里的代码
通过对apache进行设定,可以降低webshell后门带来的损害:
1、通过对php模块传递参数,锁定网站所在的根目录
<VirtualHost *:8082>
DocumentRoot /share/12
ServerName 10.1.1.21
ErrorLog logs/10.1.1.21-error_log
CustomLog logs/10.1.1.21-access_log common
<Directory /share/12>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
<IfModule mod_php5.c>
php_admin_value open_basedir "/share/12:/var/lib/php/session:/tmp"
</IfModule>
</VirtualHost>
2、不允许php执行系统的命令
# vim /etc/php.ini
disable_functions = exec,shell_exec,system,passthru,popen
3、保证线上的服务器没有编译工具
如果不方便卸载,就把权限修改成700或者750,不允许普通帐号编译软件。
# chmod 750/usr/bin/gcc
=======================================================================
1、做好基本安全设定:
回顾之前的文档
2、留意一些系统BUG的信息。甚至可以加入一些黑客QQ群,社区,进行讨论。
3、做好服务器上线、下线、运维的流程。
4、了解你所维护机器以及上面运行的应用。
web服务器,你必须上面运行应用程序,例如discuz论坛,应该了解discuz源代码,运行所需要的条件,以及论坛行为模式。
做好日志的记录,行为模式分析。
5、设定正确的权限。
以上是关于常见网络攻击的主要内容,如果未能解决你的问题,请参考以下文章