您的位置 首页 趣闻

Web服务器的安全和攻击防范(一)

,Web服务器的安全和攻击防范(一)

分析一下最近几个月信用卡号码被盗和网站被黑所显示的种种安全问题,可以很清楚地看出,许多Web应用都是凑合着运行,很少有人关注其安全问题或作出安全规划。那么,造成服务器缺乏安全保障的常见原因有哪些?如何防范这些不安全因素?作为客户或者最终用户,如何才能信任某个服务器符合了基本的安全需求?   
对于以往安全事故的分析表明,大多数安全问题都属于下面三种类型之一:
服务器向公众提供了不应该提供的服务。
服务器把本应私有的数据放到了可公开访问的区域。
服务器信赖了来自不可信赖数据源的数据。   
提供不应该提供的服务

显然,许多服务器管理员从来没有从另一个角度来看看他们的服务器,例如使用端口扫描程序。如果他们曾经这样做了,就不会在自己的系统上运行那么多的服务,而这些服务原本无需在正式提供Web服务的机器上运行,或者这些服务原本无需面向公众开放。

与这种错误经常相伴的是,为了进行维护而运行某些不安全的、可用于窃取信息的协议。例如,有些Web服务器常常为了收集订单而提供POP3服务,或者为了上载新的页面内容而提供FTP服务甚至数据库服务。在某些地方这些协议可能提供安全认证(比如APOP)甚至安全传输(比如POP或者FTP的SSL版本),但更多的时候,人们使用的是这些协议的非安全版本。有些协议,比如msql数据库服务,则几乎没有提供任何验证机制。

从公司外面访问自己的网络,完整地检测、模拟攻击自己的网站看看会发生些什么,这对于Web管理者来说是一个很好的建议。有些服务在机器安装之后的默认配置中已经启动,或者由于安装以及初始设置的需要而启动了某些服务,这些服务可能还没有正确地关闭。例如,有些系统提供的Web服务器会在非标准的端口上提供编程示范以及系统手册,它们往往包含错误的程序代码并成为安全隐患所在。正式运行的、可从Internet访问的Web服务器不应该运行这些服务,请务必关闭这些服务。

另外一种攻击者经常利用的资源是SNMP协议(简单网络管理协议,Simple Network Management Protocol)。它可能为攻击者提供有关系统和网络布局的极其详细和宝贵的信息。由于SNMP是一种UDP服务,比较简单的安全检查不会发现它。当然,需要保护的不仅仅是Web服务器,在防火墙外面的所有其他机器更必须遵从同样的安全标准。

nmap可以从http://www.insecure.org/nmap/获得。
# nmap -sS -T Agressive -p?1-10000 www.example.server| grep open?
port state protocol service
21 open tcp ftp
22 open tcp ssh
25 open tcp smtp
80 open tcp http
111 open tcp sunrpc
119 open tcp nntp
3306 open tcp myspl
4333 open tcp mspl
www.example.server作为WWW和FTP服务器使用。此外,该服务器还提供了ssh、smtp、sunrpc、nntp、mysql和msql服务。   
在这些服务中,ssh是一种带有完善加密和认证机制的协议,如果服务器上运行的ssh是最新版本,那么使用它应该是安全的。   
http、ftp、smtp和nntp是www.example.server服务器实际提供的服务,这些服务是必须运行的。只要FTP只用于匿名服务,网络上也不会因此出现以明文形式传送的密码。所有其他文件传输都应该用scp工具和ssh协议完成。   
sunrpc、mysql和msql服务没有必要从防火墙外面的机器访问,而且也没有必要被所有的IP地址访问。这些端口应该用防火墙或者包过滤器阻隔。

对于所有向公众开放的服务,你应该密切关注其程序的最新版本和安全信息,应该做好一旦发现与这些程序有关的安全问题就立即升级软件的准备。例如,某些版本的ssh会出现问题,在一些特殊的情形下服务器可能被骗并以非加密方式运行。对于有些FTP服务器、早期的sendmail以及某些版本的INN,已知的安全问题包括缓存溢出等。
有些时候端口扫描程序找到了一个打开的端口,但我们却不知道哪一个程序在操作这个端口,此时就要使用lsof之类的工具了。执行命令“lsof -P -n -i”即可显示出所有本地打开的端口以及操作这些端口的程序。

# lsof -P -n -i
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
xfstt 46 root 4u IPv4 30 TCP *:7100 (LISTEN)?
httpd 199 root 19u IPv4 99 TCP 192.168.1.12:80 (LISTEN)
…??????
smbd 11741 root 5u IPv4 28694 UDP 127.0.0.1:1180?
smbd 11741 root 6u IPv4 28689?

TCP 192.168.1.3:139-< 192.168.1.2:1044 (ESTABLISHED)

增加额外的参数就可以扫描指定的协议和端口:
# lsof -P -n -i tcp:139
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
smbd 276 root 5u IPv4 175 TCP *:139 (LISTEN)
smbd 11741 root 6u IPv4 28689?

TCP 192.168.1.3:139-< 192.168.1.2:1044 (ESTABLISHED)
运行nmap搜索整个网络可以列出域之内所有已知服务器。另外,你还可以查看DNS,看看服务器管理员为这个域所设置的内容。   
再使用前面的example.server域:
# nslookup
< set type=ns
< www.example.server.
Server: ns.provider.net
Address: 10.4.3.1

example.server
origin = ns.example.server
mail addr = postmaster.ns.example.server
serial = 2000032201
refresh = 10800 (3H)
retry = 3600 (1H)
expire = 604800 (1W)
minimum ttl = 86400 (1D)

< server ns.example.server
Default Server: ns.example.server
Address: 192.168.129.37

< ls example.server.
[ns.example.server]
$ORIGIN example.server.
@?1D IN A 192.168.240.131
wwwtest 1D IN A 192.168.240.135
news 1D IN A 192.168.240.136
localhost 1D IN A 127.0.0.1
listserv 1D IN A 192.168.240.136
…??
igate 1D IN A 192.168.129.34

命令“set type=ns”(名称服务器)告诉nslookup只查找域的名称服务器信息,因此本例查询“www.example.server”将返回该主机的所有名称服务器。这里的查找结果只有一个服务器“ns.example.server”。   

接下来我们用命令“server ns.example.server”把所有以后的查询直接定向到该服务器。然后,我们用“ls example.server”命令查询该服务器要求列出“example.server”区域的完整清单,结果就看到了example.server管理员所设定的所有主机名字和IP地址列表。   

如果一个域有多个名称服务器,尝试查询所有的名称服务器往往是值得的,这是因为虽然主名称服务器往往有安全保护,其他名称服务器却往往没有,很容易从这些服务器得到域主机和IP地址信息。   

注重安全的网络管理员总是在另外的机器上运行内部DNS服务,而不是在直接接入Internet的机器上运行。没有必要告诉整个世界自己的办公室内运行着哪些机器、这些机器怎样命名。把直接服务于Web网站的机器名字和地址发布出去已经完全足够了。   

使用gnome程序Cheops(http://www.marko.net/cheops)可以生成一个网络示意图,清楚地显示出机器类型和连接。另外这个程序也可以进行端口扫描,但功能不如nmap灵活和强大。

使用网络监测器Ethereal(http://ethereal.zing.org/)可以分析网络传输。Ethereal能够跟踪TCP流,对于获知由telnet、ftp、pop3等协议传输的明文密码很有用。   

使用rpcinfo和showmount(对于Linux的某些版本,还可以使用kshowmount),你可以查询自己机器的sunrpc提供了哪些服务。如果NFS正在运行,就有可能从服务器获得已导出文件系统的清单。

# rpcinfo -p www.example.server
PROGRAM USERS PROTO PORT
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: dawei

【声明】:135手机网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

OPPO Find N展开一刻,两大创新技术打破折痕路上意难平

荣耀发布了荣耀60系列的新品,特别是荣耀60 Pro的5000万像素超感知AI前置镜头和1亿像素超清后置主摄,是生活和游玩记录的好帮手。多镜录像功能在荣耀50系列上就已开始引入,在荣耀60系列上还新增了AI手势识别,Vlog隔空换镜这一创新功能,对拍摄Vlog来说相当

敢为天下后,OPPO Find N折叠屏的底气何在?

聊起OPPO,给我的第一印象就是本分,而在刚刚发布的OPPO Find N折叠屏手机上,我看到的是OPPO敢为天下后的底气。 当大家还沉浸在前一天发布的马里亚纳MariSilicon X影像NPU芯片时,OPPO又在12月15日推出了旗下首款折叠屏手机产品OPPO Find N。这是一款传闻已

苹果iPhone性能为何逆天强?A系列芯片知道一下

苹果如期发布了iPhone 13系列,他们身上有着不少让竞争对手难以企及的闪光点:比如iPhone 13 Pro Max凭着比很多安卓旗舰还要小的电池容量,却实现了鹤立鸡群般的续航成绩,此前能做到这种表现的,也只有一部分大电池且性能较低的中端机型;而且iPhone 13系列

像素并非越高越好,为何5000万像素手机镜头倍受青欢迎

500万、800万、1200万像素,智能手机摄像头像素在早年发展的步伐相对还是比较缓慢,近来2000万、4800万、6400万、1.08亿像素接踵而来,手机摄像头的像素规格呈现出十分迅猛的迭代更新速度。然而在2019年首推量产1.08亿像素的智能手机后,至今手机上单颗传感

想拍更远?汇总今年搭载潜望式长焦摄像头的手机

部分手机摄影发烧友已不再满足普通的2x长焦摄像头,他们需要拍的更远,画质也不能妥协,于是能拍更远的潜望式长焦摄像头就应运而生了。不过当镜头焦距上去了,后置镜头模组的厚度就难以控制,如果强行塞下更长焦段的镜头,模组厚度将达到1~2cm,这样的手机估

返回顶部