移动安全 安全管理 应用案例 网络威胁 系统安全应用安全 数据安全 云安全
当前位置: 主页 > 信息安全 > 应用安全 >

自己动手进行安全审计

时间:2011-05-05 20:25来源: 点击:
在你的组织中保证服务器、PC和笔记本电脑的安全是一件很重要的工作,一旦安全环境遭受破坏,存储在这些设备上的重要数据就可能被破坏或被修改掉,可能会使客户丧失信心。
Tags应用(124)安全(476)  

  在你的组织中保证、PC和笔记本电脑的安全是一件很重要的工作,一旦安全环境遭受破坏,在这些设备上的重要数据就可能被破坏或被修改掉,可能会使客户丧失信心,进而丢掉销售订单。试问现在你所管理的网络真的安全吗?你有信心做肯定回答吗?如果你还不能确定回答,那何不来一次安全审计,用事实来说话吧。

  做一次完全的安全审计对于一个企业而言,往往感觉力不从心,或许是安全公司开价过高,或许担心最终的安全审计报告水份过多,本文想从几个方面利用开源软件来做一次比较彻底的安全审计,不能保证每一处都审计到,至少比问起问题时拍脑袋强。

  现有保护措施

  在开始审计前,还是先弄清楚自己网络环境的安全保护措施,归纳起来,一般的中小型企业都会有:

  (1)一个,将企业内部网络与进行隔离。

  (2)一套防御系统()/入侵监测系统(),发现攻击行为时自动报警。

  (3)一套恶意软件扫描程序,扫描网络中的恶意软件。

  (4)对网络和计算机的访问使用密码进行验证,预防无密码直接访问。

  (5)一套杀毒软件,或单机版防软件,保证查杀流行病毒。

  说不定你的网络中也许还没有这么多的安全保护措施,那更应该做一下安全审计了。即使配有这些保护措施,也可能存在安全隐患,如:

  (1)防火墙本身发现了漏洞,而你却未及时打上补丁。

  (2)IPS/IDS配置不当,没有发挥作用或引起负面影响。

  (3)保护网络和计算机资源的密码很弱智,如123456.

  (4)杀毒软件很久都没有升级了,对最新的病毒无法感知。

  (5)你的IT架构中可能存在你还没有发现的其它漏洞。

  渗透测试

  首先从渗透测试说起吧,它可以发现现有的安全保护措施是否真的能够保护整个网络,实际上渗透测试就是把自己当作,通过一些黑客攻击手段向网络发起模拟攻击测试。

  渗透测试通常包括几个步骤:

  (1)信息收集

  使用和其它资源发现公司尽可能多的信息,如公司名称,员工姓名等。

  (2)端口扫描

  使用自动的端口扫描程序找出网络中活动的计算机及运行的服务,最好是发现有漏洞可利用的服务。

  (3)侦查

  从目标服务器上探测各种信息,如运行的程序,后台服务。

  (4)网络嗅探

  发现在网络上传输的用户名和密码。

  (5)密码攻击

  破解密码,或者猜测密码。

  由于保护网络和攻击网络是两个不同的领域,在进行渗透测试时一定要转换到黑客的思维角度。最好的渗透测试是聘请安全专家进行,但这通常需要付费。当然,出于成本考虑,可以选择渗透测试软件,它在网络索漏洞,在某些时候还可以自动发起模拟攻击。使用软件进行渗透测试的好处时,你可以每个月甚至每周进行一次测试。

  说了这么多,那如何执行渗透测试呢?首先需要准备一台笔记本电脑,可以连接到网络,也可以连接到有线网络。然后就是测试软件了,本文讲述的软件大部分都是开源的,都可以在Linux系统中运行,最简单的方法就是下载一个LiveCD,本文使用的就是一个安全Linux发行版BackTrack,可以去www.remote-exploit.org下载。创建LiveCD的步骤就不叙述了。这个发行版包含了许多渗透测试工具,下面就举几个例子:

  使用db_autopwn进行渗透测试

  db_autopwn是一个自动渗透测试工具,它可以测试网络中的Windows、Linux和Unix计算机漏洞,实际上它是Metaspoit Framework软件的一部分。

  使用db_autopwn前首先要扫描网络中的计算机,扫描就可以使用大名鼎鼎的Nmap了,使用扫描获得的信息,db_autopwn会使用Metaspoit攻击库特征匹配已知的漏洞,并自动使用对应的攻击程序发起攻击,如果成功就会显示“pwn”,这个时候就获得一个系统shell了。

  db_autopwn这个工具好处多多,在黑客界,它是广为使用的工具了,而且它是免费的,发现了漏洞后,你就可以对症下药,及时打好补丁,然后再进行测试。但在使用时也要注意,一是如果服务没有运行在默认的端口上,那它是不能发现漏洞的,二是可能会引起意外,如将服务器整崩溃。

  下面来看一下具体的执行步骤:

  # cd /pentest/exploits/framework3 (进入Metasploit Framework文件夹)

  # ./msfconsole (启动Metasploit)

  # load db_sqlite3

  #db_create Nmapresults (创建存储扫描结果)

  # db_Nmap [target] (扫描目标主机,使用真实的目标主机ip地址替换这里的[target])

  # db_autopwn -t -p -e (尝试攻击默认端口上的服务)

  # sessions –l (查看有漏洞的计算机)

  # sessions –i 1 (控制有漏洞的计算机,这里的1表示只控制一台)

  然后就会返回一个命令行界面,如:

  [*] Starting interaction with 1……

   Windows XP [Version 5.1.2600]

  (C) Copyright 1985-2001 Microsoft Corp.

  C:\WINDOWS\system32>

  使用Nmap扫描网络

  db_autopwn通常是那些没什么技术的人使用,我们一般称其为“脚本小子”,而真正的高手在尝试了一种方法外,还会尝试其它方法。

  攻击者常常是先扫描目标网络,看哪些计算机连接到网络上的,打开了什么端口,通常他们使用的工具就是Nmap,实际上前面讲述db_autopwn时也使用到过,Nmap本身是个命令行工具,但在BackTrack3中已经集成了一个图形化Nmap工具,即Zenmap.

  在BackTrack3任务栏中的输入框中输入zenamp启动Zenamp,然后在目标地址处输入目标系统的IP地址或IP子网范围,如192.168.1.*,然后再选择一个预置扫描选项,保留默认的强度扫描也可,最后点击扫描按钮开始扫描,过几分钟就有结果了。

  在界面的左侧列表中显示的是接入到网络中的主机,并以不同图标表示不同类型,右侧列表中显示了所选主机开放的端口及对应的服务,如果你看到3389端口开放,那多半是一台Windows操作系统,开放了终端服务,针对这些开放的端口都有成套的攻击程序。

  使用Wireshark嗅探网络

  Nmap可以给你扫描出一个清晰的主机列表和开放的端口,但它不能提供在网络上传输的数据包内容和敏感信息,这个时候就需要请出同样是大名鼎鼎的Wireshark了,以前它的名字是Ethereal,它是一个开源的网络协议分析器,说的通俗点就是网络嗅探器。

  在使用Wireshark开始嗅探之前,先要选好测试机位于网络的位置,因为只会将数据发送到目标主机连接的端口上,如果位置没有找好,那可能嗅探半天也没什么收获。因此开始之前,先熟悉并分析一下你的网络情况和硬件配置情况,注意有的Hub的工作机制也和交换机一样了,所以不要认为随便接入一台Hub连上就可以开始嗅探了。

  为了使测试变得顺利可行,你最好在网络部署一台具有监视端口的交换机,因为监视端口会捕获到所有通过交换机的数据包。黑客都喜欢使用Wireshark,因为它可以嗅探到用户名和明文密码,很多人都喜欢将密码设置为和用户名一致,或者在登陆多个系统时使用同一个用户名,这样就给了黑客以可乘之机。Wireshark可以嗅探大部分网络应用,包括MSN通讯内容。

------分隔线----------------------------

推荐内容