计算机信息安全

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

计算机信息安全

高职高专现代信息技术系列教材计算机信息安全李成大张京龚茗茗编人民邮电出版社\n图书在版编目(CIP)数据计算机信息安全/李成大,张京,龚茗茗编.—北京:人民邮电出版社,2004.5(高职高专现代信息技术系列教材)ISBN7-115-12064-1I.计…II.①李…②张…③龚…III.电子计算机—安全技术—高等学校:技术学校—教材IV.TP309中国版本图书馆CIP数据核字(2004)第024606号内容提要本书在回顾信息安全发展的基础上,总结了信息安全的特征,全面介绍信息安全的概念、原理和知识体系,主要包括实体安全与防护、计算机软件安全技术、备份技术、密码技术、认证与数字签名、网络安全技术、防火墙及入侵检测技术、操作系统与网站安全、E-mail安全与网络加密、数据库系统安全、计算机病毒及防治以及实训等方面的内容。本书讲述力求深入浅出,通俗易懂,注重科学性与实用性,并配有精选实例、习题和实训,便于教学和自学。本书可作为高职高专计算机类、信息技术类等专业的教材,也可供从事信息处理、通信保密、军事指挥等专业工程技术人员和管理人员阅读,同时也可作为网络管理员和个人因特网用户的参考书。高职高专现代信息技术系列教材计算机信息安全©编李成大张京龚茗茗责任编辑©人民邮电出版社出版发行北京市崇文区夕照寺街14号邮编100061电子函件315@ptpress.com.cn网址http://www.ptpress.com.cn读者热线:010-67194092北京汉魂图文设计有限公司制作北京顺义振华印刷厂印刷新华书店总店北京发行所经销©开本:787×10921/16印张:17.25字数:413千字2004年3月第1版印数:1–000册2004年3月北京第1次印刷ISBN7-115-12064-9/TP·3821定价:.00元本书如有印装质量问题,请与本社联系电话:(010)67129223\n编者的话信息已成为社会发展的重要战略资源、决策资源,信息化水平已成为衡量一个国家现代化程度和综合国力的重要指标。抢占信息资源已经成为国际竞争的重要内容。在信息化社会中,计算机和通信网络已经广泛应用于各个领域。以此为基础建立的各种信息系统,给人们的生活、工作带来了巨大变化。然而,人们在享受网络信息所带来的利益的同时,也面临着信息安全的严峻考验,信息安全的重要性有目共睹。以Internet为代表的全球性信息化浪潮日益高涨,信息网络技术的应用正日益普及和广泛,应用层次正在深入,应用领域从传统的、小型业务系统逐渐向大型、关键业务系统扩展。伴随网络的普及,安全日益成为影响信息系统性能的重要问题,而Internet所具有的开放性、国际性和自由性在增加应用自由度的同时,对安全提出了更高的要求。本书着重从实用角度讲解计算机信息安全的基本概念、基本原理和技术方法,同时也注意了该书的系统型和先进性。全书共14章。第1章介绍计算机信息安全的定义、特征、含义和分类,着重讲述了计算机信息系统面临的威胁及安全对策。第2章讲述实体安全与防护技术,包括影响实体安全的主要因素,实体安全的内容,计算机机房场地环境的安全防护,实体访问控制的基本任务,记录媒体的保护与管理,计算机电磁泄漏及防护。第3章主要介绍软件防拷贝技术,防静态和动态分析技术,软件保护及工具。第4章讲述有关备份的基础知识,包括备份的内容、层次、方式以及意义等,介绍一些常用的软硬件备份及网络备份方法。第5章讨论加密系统的基本组成及常用加密算法,包括DES加密算法、IDEA加密算法以及RSA公开密钥密码算法。第6章阐述信息认证技术,报文摘要,数字签名,数字证书,最后还介绍了公钥基础设施PKI。第7章详细讲述网络存在的威胁、网络安全技术分类、黑客的历史与现状,网络攻击的分类及一般步骤,扫描、监听与嗅探,口令破解、后门和特洛伊木马,最后介绍几种常见的入侵攻击方法。第8章描述防火墙基本理论和实践背景,逐节阐述防火墙的含义、功能和局限性,介绍防火墙的分类、常见体系结构、主要技术形式及实现方式,设置防火墙的要素,防火墙安全技术分析,防火墙的设计准则,防火墙功能指标,防火墙的选择,在本章的最后展示了当今主要流行的几种防火墙产品。第9章讲述入侵检测系统的发展历史、作用、功能、分类,入侵检测原理及系统通用模型,讨论入侵检测系统的局限及面临的挑战,介绍入侵检测系统的发展趋势及产品。第10章主要介绍Windows2000操作系统安全特性、功能、工具及防范对策,Linux系统安全及网络安全,IISWeb服务器安全和ApacheWeb服务器安全。第11章讲述E-mail工作原理、安全漏洞及保护E-mail的方法,并介绍了邮件加密软件PGP,最后讨论了网络加密与密钥管理。第12章阐述数据库系统安全的含义、特性,基本安全架构,数据库加密,数据库的故障类型,数据库的备份与恢复。第13章介绍计算机病毒的定义、分类、特点、破坏行为、入侵途径、作用机制,重点讲述网络计算机病毒的特点、检测、防止及感染病毒后的修复,并对反病毒软件的原理及常用产品进行了介绍。第14章主要是有关信息安全的实训问题。其中囊括了与本书内容相关的实训,针对软件安全、备份软件、–1–\n计算机信息安全密码技术、安全漏洞扫描、监听与嗅探,防火墙、网络入侵检测系统、Windows2000的权限配置与安全审核、IISWeb服务器安全、E-mail安全等知识和安全性安排了十几个实训。本书内容新颖翔实、覆盖面广、实例丰富,语言文字通俗易懂;各章重点、难点突出,原理、技术和方法的阐述融于丰富的实例之中;各章均配有习题和实训,便于教学和自学。本书可作为高职高专“信息安全”课程的教材或教学参考书,也可供从事信息安全的工程技术人员和管理人员阅读参考。本书的第1、3、6、7、8、9、14章由李成大副教授编写,第2章和第10、11、12章由张京副教授编写,第4、5、13章由龚茗茗老师编写,李成大老师负责统稿全书。由于编者水平有限,时间仓促,书中错误之处在所难免,恳请读者批评指正。编者2004年3月–2–\n目录第1章绪论··································································································································11.1计算机信息安全概述·········································································································11.1.1计算机信息安全的定义······························································································11.1.2计算机信息安全的特征······························································································21.1.3计算机信息安全的含义······························································································21.2计算机信息系统面临的威胁······························································································31.2.1恶意攻击······················································································································31.2.2安全缺陷······················································································································51.3信息安全分类及关键技术··································································································81.3.1信息安全分类··············································································································81.3.2信息安全的关键技术··································································································91.4系统安全级别·····················································································································91.5计算机信息系统的安全对策····························································································111.5.1信息安全对策的一般原则·························································································111.5.2计算机信息安全的三个层次·····················································································12习题···········································································································································14第2章实体安全与防护技术····································································································152.1实体安全技术概述···········································································································152.1.1影响实体安全的主要因素·························································································152.1.2实体安全的内容········································································································152.2计算机机房场地环境的安全防护····················································································172.3实体的访问控制···············································································································192.3.1访问控制的基本任务································································································192.3.2实体访问控制············································································································202.4记录媒体的保护与管理····································································································202.4.1记录媒体的分类········································································································202.4.2记录媒体的防护要求································································································212.5计算机电磁泄漏及防护····································································································212.5.1计算机及其系统的电磁泄密渠道·············································································212.5.2防护手段····················································································································22习题···········································································································································23–1–\n计算机信息安全第3章计算机软件安全技术····································································································243.1计算机软件安全概述·······································································································243.1.1计算机软件安全涉及的范围·····················································································243.1.2计算机软件安全技术措施·························································································253.1.3软件的本质和特征····································································································253.2软件防拷贝技术···············································································································263.2.1软盘加密····················································································································263.2.2“软件锁”加密········································································································273.2.3授权文件加密技术····································································································273.3防静态分析技术···············································································································283.3.1常用静态分析工具····································································································283.3.2防静态分析方法········································································································303.4防动态跟踪技术···············································································································313.4.1常用动态分析工具····································································································313.4.2防动态跟踪方法········································································································323.5软件保护及工具···············································································································343.5.1软件保护建议············································································································343.5.2常用加壳工具············································································································35习题···········································································································································36第4章备份技术························································································································374.1备份技术概述···················································································································374.2备份技术与备份方法·······································································································394.2.1硬件备份技术············································································································394.2.2软件备份技术············································································································414.2.3利用网络备份············································································································414.2.4备份软件····················································································································42习题···········································································································································46第5章密码技术························································································································475.1密码技术概述···················································································································475.2加密方法···························································································································495.2.1加密系统的组成········································································································495.2.2四种传统加密方法····································································································495.3常用信息加密技术介绍····································································································505.4常用加密算法···················································································································515.4.1DES算法···················································································································515.4.2IDEA算法·················································································································53–2–\n目录5.4.3RSA公开密钥密码算法····························································································56习题···········································································································································57第6章认证与数字签名············································································································586.1信息认证技术···················································································································586.1.1信息认证技术简介····································································································586.1.2报文摘要····················································································································596.2数字签名···························································································································606.2.1数字签名基本概念····································································································616.2.2数字签名算法············································································································626.3数字证书···························································································································636.3.1什么是数字证书········································································································636.3.2为什么要用数字证书································································································646.3.3证书与证书授权中心································································································656.3.4数字证书的工作流程································································································666.3.5数字证书的应用········································································································676.4公钥基础设施(PKI)·····································································································676.4.1PKI基础····················································································································686.4.2PKI密码算法及应用·································································································686.4.3密钥对的用法············································································································706.4.4PKI的基本组成·········································································································706.4.5PKI的应用前景·········································································································71习题···········································································································································71第7章网络安全技术················································································································727.1网络安全概述···················································································································727.1.1网络存在的威胁········································································································727.1.2网络安全技术简介····································································································737.2黑客···································································································································757.2.1黑客与入侵者············································································································757.2.2黑客的历史与现状····································································································757.3网络攻击···························································································································777.3.1攻击分类····················································································································777.3.2攻击的步骤················································································································787.4扫描···································································································································797.4.1端口扫描····················································································································807.4.2系统扫描····················································································································827.4.3漏洞扫描····················································································································837.4.4扫描器实例················································································································84–3–\n计算机信息安全7.5监听与嗅探·······················································································································907.5.1本机监听····················································································································917.5.2网段监听····················································································································927.5.3嗅探器及其防范········································································································937.6口令安全···························································································································957.6.1口令破解····················································································································957.6.2设置安全的口令········································································································987.7隐藏···································································································································997.7.1通过跳板、代理实现隐藏·························································································997.7.2清除记录··················································································································1027.8入侵攻击·························································································································1027.8.1拒绝服务攻击··········································································································1037.8.2缓冲区溢出攻击······································································································1057.8.3欺骗攻击··················································································································1077.9后门和特洛伊木马·········································································································1107.9.1什么是后门和木马··································································································1107.9.2几个常见的木马······································································································1117.9.3怎样检测与清除木马······························································································114习题·········································································································································117第8章防火墙技术··················································································································1198.1防火墙技术概述·············································································································1198.1.1什么是防火墙··········································································································1198.1.2防火墙的功能··········································································································1208.1.3防火墙的局限性······································································································1218.2防火墙技术·····················································································································1228.2.1防火墙的分类··········································································································1228.2.2防火墙的主要技术形式及实现方式·······································································1258.2.3防火墙的常见体系结构··························································································1298.3防火墙配置和访问控制策略··························································································1338.3.1如何解决防火墙效率与安全之间的矛盾·······························································1338.3.2设置防火墙的要素··································································································1348.3.3防火墙安全技术分析······························································································1348.3.4防火墙的设计··········································································································1368.4防火墙的选择·················································································································1378.4.1防火墙功能指标······································································································1378.4.2防火墙的选择··········································································································1408.4.3主要防火墙产品······································································································1428.5防火墙的应用示例·········································································································144–4–\n目录8.5.1天网防火墙个人版简介··························································································1448.5.2天网防火墙的安装··································································································1458.5.3天网防火墙的设置··································································································146习题·········································································································································152第9章入侵检测技术··············································································································1539.1入侵检测技术概述·········································································································1539.1.1入侵检测系统的发展历史·······················································································1539.1.2入侵检测的作用和功能··························································································1549.1.3入侵检测系统分类··································································································1559.2入侵检测技术·················································································································1599.2.1入侵检测原理··········································································································1599.2.2入侵检测系统通用模型··························································································1619.3入侵检测系统的弱点和局限··························································································1629.3.1网络入侵检测系统的局限·······················································································1629.3.2主机入侵检测系统的局限·······················································································1659.3.3入侵检测系统面临的挑战·······················································································1659.4入侵检测系统的发展趋势······························································································1669.5入侵检测产品·················································································································1689.5.1入侵检测产品的评估······························································································1689.5.2入侵检测系统实例··································································································1699.6入侵检测系统实例·········································································································1759.6.1Snort简介················································································································1759.6.2Snort的安装············································································································1779.6.3Snort的运行············································································································1789.6.4Snort的规则············································································································180习题·········································································································································181第10章操作系统与网站安全································································································18210.1Windows2000系统的安全性·······················································································18210.1.1Windows2000操作系统安全性能简介································································18210.1.2Windows2000操作系统安全功能和工具····························································18310.1.3Windows2000的系统安全防范对策····································································18710.2Linux系统的安全性·····································································································19010.2.1Linux系统安全······································································································19010.2.2Linux网络安全······································································································19510.3Web站点的安全···········································································································19810.3.1IISWeb服务器安全·····························································································19810.3.2ApacheWeb服务器安全·······················································································204–5–\n计算机信息安全习题·········································································································································206第11章E-mail安全与网络加密·····························································································20711.1E-mail的安全···············································································································20711.1.1E-mail工作原理及安全漏洞·················································································20711.1.2保护E-mail············································································································20811.1.3邮件加密软件PGP································································································21011.2网络加密与密钥管理····································································································21211.2.1网络加密················································································································21211.2.2密钥管理················································································································214习题·········································································································································216第12章数据库系统安全········································································································21712.1数据库系统安全概述····································································································21712.1.1简介························································································································21712.1.2数据库系统安全特性····························································································21812.2数据库基本安全架构····································································································21912.2.1用户分类················································································································21912.2.2数据分类················································································································22012.2.3审计追踪与攻击检测····························································································22012.2.4数据库加密············································································································22112.3数据库的备份与恢复····································································································22212.3.1故障的类型············································································································22312.3.2数据库的备份········································································································22412.3.3数据库的恢复········································································································225习题·········································································································································228第13章计算机病毒及防治····································································································22913.1计算机病毒概述···········································································································22913.1.1计算机病毒的定义································································································22913.1.2计算机病毒的分类································································································23013.1.3计算机病毒的特点································································································23113.1.4计算机病毒的破坏行为和入侵途径·····································································23213.1.5计算机病毒的作用机制·························································································23413.2网络计算机病毒···········································································································23813.2.1网络计算机病毒的特点·························································································23813.2.2网络计算机病毒实例—电子邮件病毒·····························································24013.3反病毒技术···················································································································241–6–\n目录13.3.1计算机病毒的检测································································································24113.3.2计算机病毒的防治································································································24513.3.3计算机感染病毒后的修复·····················································································24713.4软件防病毒技术···········································································································24813.4.1反病毒软件············································································································24813.4.2常用反病毒软件产品····························································································249习题·········································································································································253第14章实际技能训练············································································································254实训1——软件加壳脱壳和动态跟踪····················································································2541.实训目的························································································································2542.实训环境························································································································2543.实训内容························································································································255实训2——备份软件···············································································································2551.实训目的························································································································2552.实训环境························································································································2553.实训内容························································································································255实训3——密码技术···············································································································2551.实训目的························································································································2552.实训环境························································································································2553.实训内容························································································································256实训4——安全漏洞扫描·······································································································2561.实训目的························································································································2562.实训环境························································································································2563.实训内容························································································································256实训5——监听与嗅探···········································································································2561.实训目的························································································································2562.实训环境························································································································2563.实训内容························································································································257实训6——防火墙···················································································································2571.实训目的························································································································2572.实训环境························································································································2573.实训内容························································································································257实训7——网络入侵检测系统································································································2581.实训目的························································································································2582.实训环境························································································································2583.实训内容························································································································258实训8——Windows2000的权限配置与安全审核·······························································2581.实训目的························································································································258–7–\n计算机信息安全2.实训环境························································································································2583.实训内容························································································································258实训9——IISWeb服务器安全······························································································2591.实训目的························································································································2592.实训环境························································································································2593.实训内容························································································································259实训10——E-mail安全·········································································································2601.实训目的························································································································2602.实训环境························································································································2603.实训内容························································································································260实训11——杀毒软件的使用··································································································2601.实训目的························································································································2602.实训环境························································································································2603.实训内容························································································································260附录·············································································································································262参考文献·····································································································································263–8–\n第1章绪论目前,计算机和通信网络已经广泛应用于社会的各个领域,以此为基础建立的各种信息系统,给人们的生活、工作带来了巨变。然而,人们在享受网络信息所带来的巨大利益的同时,也面临着信息安全的严峻考验。信息安全已成为世界性的现实问题,信息安全与国家安全、民族兴衰和战争胜负息息相关。本章将学习以下主要内容。1.计算机信息安全的定义、特征以及含义。2.计算机信息系统面临的威胁,包括恶意攻击及系统安全缺陷等。3.信息安全分类及关键技术,系统安全级别。4.计算机信息系统的安全对策。1.1计算机信息安全概述1.1.1计算机信息安全的定义人们对信息安全的认识,是一个由浅入深、由此及彼、由表及里的深化过程。20世纪60年代的通信保密(COMSEC)时代,人们认为信息安全就是通信保密,采用的保障措施就是加密和基于计算机规则的访问控制。到了20世纪80年代,人们的认识加深了,大家逐步意识到数字化信息除了有保密性的需要外,还有信息的完整性、信息和信息系统的可用性需求,因此明确提出了信息安全就是要保证信息的保密性、完整性和可用性,这就进入了信息安全(INFOSEC)时代。其后由于社会管理以及电子商务、电子政务等网上应用的开展,人们又逐步认识还要关注可控性和不可否认性(真实性)。1993年6月,美国政府同加拿大及欧共体共同起草通用安全评价准则(简称CC标准)并将其推进到国际标准(ISO15408),把所有的安全问题定义为信息系统或者安全产品的安全策略、安全功能、管理、开发、维护、检测、恢复和安全评测等概念的简称。信息安全的概念是与时俱进的,过去是通信保密(COMSEC)或信息安全(INFOSEC),而今天以至于今后是信息保障(IA-InformationAssurance)。信息安全主要涉及到信息存储的安全、信息传输的安全以及对网络传输信息内容的审计三方面。它研究计算机系统和通信网络内信息的保护方法。从广义来说,凡是涉及到信息的完整性、保密性、真实性、可用性和可控性的相关技术–1–\n计算机信息安全和理论都是信息安全所要研究的领域。下面给出信息安全的一般定义:计算机信息安全是指计算机信息系统的硬件、软件、网络及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,信息服务不中断。1.1.2计算机信息安全的特征计算机信息安全具有以下五方面的特征。1.保密性保密性是信息不被泄露给非授权的用户、实体或过程,或供其利用的特性,即防止信息泄漏给非授权个人或实体,信息只为授权用户使用的特性。2.完整性完整性是信息未经授权不能进行改变的特性,即信息在存储或传输过程中保持不被偶然或蓄意地删除、修改、伪造、乱序、重放、插入等破坏和丢失的特性。完整性是一种面向信息的安全性,它要求保持信息的原样,即信息的正确生成、正确存储和传输。完整性与保密性不同,保密性要求信息不被泄露给未授权的人,而完整性则要求信息不致受到各种原因的破坏。影响网络信息完整性的主要因素有设备故障、误码、人为攻击及计算机病毒等。3.真实性真实性也称作不可否认性。在信息系统的信息交互过程中,确信参与者的真实同一性,即所有参与者都不可能否认或抵赖曾经完成的操作和承诺。利用信息源证据可以防止发信方不真实地否认已发送信息,利用递交接收证据可以防止收信方事后否认已经接收到信息。4.可用性可用性是信息可被授权实体访问并按需求使用的特性,即信息服务在需要时,允许授权用户或实体使用的特性,或者是信息系统(包括网络)部分受损或需要降级使用时,仍能为授权用户提供有效服务的特性。5.可控性可控性是对信息的传播及内容具有控制能力的特性,即指授权机构可以随时控制信息的机密性。美国政府所提倡的“密钥托管”、“密钥恢复”等措施就是实现信息安全可控性的例子。概括地说,计算机信息安全核心是通过计算机、网络、密码技术和安全技术,保护在信息系统及公用网络中传输、交换和存储的信息的完整性、保密性、真实性、可用性和可控性等。1.1.3计算机信息安全的含义信息安全的具体含义和侧重点会随着观察者角度的变化而变化。–2–\n第1章绪论从用户(个人用户或者企业用户)的角度来说,他们最为关心的问题是如何保证他们的涉及个人隐私或商业利益的数据在传输、交换和存储过程中受到保密性、完整性和真实性的保护,避免其他人(特别是其竞争对手)利用窃听、冒充、篡改和抵赖等手段对其利益和隐私造成损害和侵犯,同时用户也希望他保存在某个网络信息系统中的数据不会受其他非授权用户的访问和破坏。从网络运行和管理者的角度来说,他们最为关心的问题是如何保护和控制其他人对本地网络信息的访问和读写等操作。比如,避免出现“陷门”、病毒、非法存取、拒绝服务和网络资源非法占用与非法控制等现象,制止和防御网络黑客的攻击。对安全保密部门和国家行政部门来说,他们最为关心的问题是如何对非法的、有害的或涉及国家机密的信息进行有效过滤和防堵,避免非法泄露。秘密敏感的信息被泄密后将会对社会的安定产生危害,对国家造成巨大的经济损失和政治损失。从社会教育和意识形态角度来说,人们最为关心的问题是如何杜绝和控制网络上不健康的内容。有害的黄色内容会对社会的稳定和人类的发展造成不良影响。1.2计算机信息系统面临的威胁计算机网络的发展,使信息共享应用日益广泛与深入。但是信息在公共通信网络上存储、共享和传输,会被非法窃听、截取、篡改或毁坏而导致不可估量的损失。尤其是银行系统、商业系统、管理部门、政府或军事领域对公共通信网络中存储与传输的数据安全问题更为关注。事物总是辩证的。一方面,信息系统的网络化提供了资源的共享性和用户使用的方便性,通过分布式处理提高了系统效率和可靠性,并且还具有可扩充性。另一方面,这些特点增加了网络信息系统的不安全性。本书所讨论的计算机信息系统主要指网络信息系统。网络信息的安全所面临的威胁来自很多方面,并且随着时间的变化而变化。这些威胁可以宏观地分为人为威胁和自然威胁。自然威胁可能来自于各种自然灾害、恶劣的场地环境、电磁辐射和电磁干扰以及设备自然老化等。这些无目的的事件,有时会直接威胁计算机信息安全,影响信息的存储媒体。本书重点讨论人为威胁。此种威胁,通过攻击系统暴露的要害或弱点,使得网络信息的保密性、完整性、真实性、可控性和可用性等受到伤害,造成不可估量的经济和政治损失。人为威胁又分为两种:一种是以操作失误为代表的无意威胁(偶然事故),另一种是以计算机犯罪为代表的有意威胁(恶意攻击)。虽然人为的偶然事故没有明显的恶意企图和目的,但它会使信息受到严重破坏。最常见的偶然事故有:操作失误(未经允许使用、操作不当和误用存储媒体等)、意外损失(漏电、电焊火花干扰)、编程缺陷(经验不足、检查漏项)和意外丢失(被盗、被非法复制、丢失媒体)。1.2.1恶意攻击恶意攻击是人为的、有目的的破环,它可以分为主动攻击和被动攻击。主动攻击是指以各种方式有选择地破坏信息(如修改、删除、伪造、添加、重放、乱序、冒充和制造病毒等)。被动攻击是指在不干扰网络信息系统正常工作的情况下,进行侦收、截获、窃取、破译和业–3–\n计算机信息安全务流量分析及电磁泄露等。典型的恶意攻击有如下几种类型。1.窃听在广播式网络信息系统中,每个节点都能读取网上的数据。对广播网络的基带同轴电缆或双绞线进行搭线窃听是很容易的,安装通信监视器和读取网上的信息也很容易。网络体系结构允许监视器接收网上传输的所有数据帧而不考虑帧的传输目的地址,这种特性使得偷听网上的数据或非授权访问很容易且不易被发现。2.流量分析流量分析能通过对网上信息流的观察和分析推断出网上的数据信息,比如有无传输,传输的数量、方向和频率等。因为网络信息系统的所有节点都能访问全网,所以流量的分析易于完成。由于报头信息不能被加密,所以即使对数据进行了加密处理,也可以进行有效的流量分析。3.破坏完整性有意或无意地修改或破坏信息系统,或者在非授权和不能监测的方式下对数据进行修改。4.重发重发是重复一份报文或报文的一部分,以便产生一个被授权效果。当节点拷贝发到其他节点的报文并在其后重发它们时,如果不能监测重发,节点依据此报文的内容接收某些操作,例如报文的内容是关闭网络的命令,则将会出现严重的后果。5.假冒当一个实体假扮成另一个实体时,就发生了假冒。一个非授权节点,或一个不被信任的、有危险的授权节点都能冒充一个授权节点,而且不会有多大困难。很多网络适配器都允许网帧的源地址由节点自己来选取或改变,这使冒充变得较为容易。6.拒绝服务当一个授权实体不能获得对网络资源的访问或当紧急操作被推迟时,就发生了拒绝服务。拒绝服务可能由网络部件的物理损坏而引起,也可能由使用不正确的网络协议而引起(例如传输了错误的信号或在不适当的时候发出了信号),也可能由超载而引起。7.资源的非授权使用即与所定义的安全策略不一致的使用。因为常规技术不能限制节点收发信息,也不能限制节点侦听数据,所以一个合法节点能访问网络上的所有数据和资源。8.干扰干扰是由一个节点产生数据来扰乱提供给其他节点的服务。干扰也能由一个已经损坏的并还在继续传送报文的节点所引起,或由一个已经被故意改变成具有此效果的节点所引起。频繁的令人讨厌的电子邮件信息是最典型的干扰形式之一。–4–\n第1章绪论9.病毒目前,全世界已经发现了数万种计算机病毒。计算机病毒的数量已有了相当的规模,并且新的病毒还在不断出现。随着计算机技术的不断发展和人们对计算机系统和网络依赖程度的增加,计算机病毒已经构成了对计算机系统和网络的严重威胁。1.2.2安全缺陷假如网络信息系统本身没有任何安全缺陷,那么恶意攻击者即使有天大的本事也不能对网络信息安全构成威胁。但是现在所有的网络信息系统都不可避免地存在着安全缺陷。有些安全缺陷可以通过人为努力加以避免或者改进,但有些安全缺陷则是各种折衷所必须付出的代价。网络信息系统是计算机技术和通信技术的结合。计算机系统的安全缺陷和通信网络的安全缺陷构成了网络信息系统的潜在安全缺陷。1.2.2.1计算机硬件安全缺陷计算机硬件资源易受自然灾害和人为破坏,计算机硬件工作时的电磁辐射以及硬件的自然失效、外界电磁干扰等均会影响计算机的正常工作。计算机及其外围设备在进行信息处理时会产生电磁泄漏,即电磁辐射。在计算机中,以视频显示器的辐射发射最为严重。由于计算机网络传输媒介的多样性和网内设备分布的广泛性,使得电磁辐射造成信息泄漏的问题变得十分严重。有些先进设备能在一公里以外收集计算机站的电磁辐射信息,并且能区分不同计算机终端的信息。因此,电磁辐射已对计算机信息的安全构成严重威胁。1.2.2.2计算机软件安全缺陷软件资源和数据信息易受计算机病毒的侵扰、非授权用户的复制、篡改和毁坏。由于软件程序的复杂性和编程的多样性,在信息系统的软件中很容易有意或无意地留下一些不易被发现的安全漏洞。软件漏洞显然会影响计算机信息的安全。下面介绍一些有代表性的软件安全漏洞。1.陷门陷门是一个程序模块的秘密未记入文档的入口。一般陷门是在程序开发时插入的一小段程序,是用于测试这个模块或是为了连接将来的更改和升级程序或者是为了将来发生故障后,为程序员提供方便等合法用途。通常在程序开发后期去掉这些陷门。但是由于各种有意或无意的原因,陷门也可能被保留下来。陷门一旦被原来的程序员利用,或者被他人发现,将会带来严重的安全后果。比如,可能利用陷门在程序中建立隐蔽通道,甚至植入一些隐蔽的病毒程序等。非法利用陷门可以使原来相互隔离的网络信息形成某种隐蔽的关联,进而可以非法访问网络,达到窃取、更改、伪造和破坏的目的,甚至有可能造成网络信息系统的大面积瘫痪。2.操作系统的安全漏洞操作系统是硬件和软件应用程序之间接口的程序模块,它是整个计算机信息系统的核心控制软件。系统的安全体现在整个操作系统之中。对一个设计上不够安全的操作系统,事后–5–\n计算机信息安全采用增加安全特性或打补丁的办法是很艰巨的任务,特别是对引进的国外设备,在没有详细技术资料的情况下,其工作更加复杂。操作系统的主要功能包括:进程控制和调度、信息处理、存储器管理、文件管理、输入/输出管理、资源管理及时间管理等。操作系统的安全是深层次的安全,其主要的安全功能包括:存储器保护(限定存储区和地址重定位,保护存储的信息)、文件保护(保护用户和系统文件,防止非授权用户访问)、访问控制以及用户认证(识别请求访问的用户权限和身份)。操作系统的安全漏洞主要有以下4个方面。(1)输入/输出(I/O)非法访问。(2)访问控制的混乱。(3)不完全的中介。(4)操作系统陷门。3.数据库的安全漏洞数据库是从操作系统的文件系统基础上派生出来的用于大量数据管理的系统。数据库的全部数据都记录在存储媒体上,并由数据库管理系统(DBMS)统一管理。DBMS为用户及应用程序提供一种访问数据的方法,并且对数据库进行组织和管理,对数据库进行维护和恢复。数据库系统的安全策略,部分由操作系统来完成,部分由强化DBMS自身安全措施来完成。数据库系统存放的数据往往比计算机系统本身的价值大得多,必须加以特别保护。从操作系统的角度看,DBMS是一种应用程序而数据库是一种数据文件。为了防止数据库中的数据受到物理破坏而不能恢复原来的系统,应当对数据库系统采取定期备份所有文件的方法来保护系统的完整性。DBMS是在操作系统的基础之上运行的应用程序,是为多个用户共享的应用软件。因此,不能允许它具有任何通向操作系统的可信途径。DBMS必须具有独立的用户身份鉴别机制,以便构成一种双重保护。有时还可以对使用数据库的时间甚至地点加以限制,并要求用户只能在指定时间、指定终端上对数据库系统进行指定的操作。有些数据库将原始数据以明文形式存储于数据库中,这是不够安全的。实际上,高明的入侵者可以从计算机系统的内存中导出所需的信息,或者采用某种方式打入系统,从系统的后备存储器上窃取数据或篡改数据。因此,必要时应该对存储数据进行加密保护。数据库的加密应该采用独特的加密和密钥管理方法,因为数据的生命周期一般较长,密钥的保存时间也相应较长。1.2.2.3通信网络安全缺陷通信链路易受自然灾害和人为破坏。采用主动攻击和被动攻击可以窃听通信链路的信息并非法进入计算机网络获取有关敏感性重要信息。下面介绍一些有代表性的网络安全漏洞。1.网络拓扑结构的安全缺陷拓扑逻辑是构成网络的结构方式,是连接在地理位置上分散的各个节点的几何逻辑方式。拓扑逻辑决定了网络的工作原理及网络信息的传输方法。一旦网络的拓扑逻辑被选定,必定要选择一种适合这种拓扑逻辑的工作方式与信息的传输方式。如果这种选择和配置不当,将为网络安全埋下隐患。事实上,网络的拓扑结构本身就有可能给网络的安全带来问题。–6–\n第1章绪论2.网络硬件的安全缺陷作为网络信息系统的躯体,网络硬件的安全隐患也是网络结构缺陷的重要方面。下面对常用网络硬件设备的安全隐患作简要介绍。(1)网桥的安全隐患网桥是独立于协议的互连设备。它工作在OSI参考模型的第二层,完成数据帧的转发,主要目的是在连接的网络间提供透明的通信。网桥的转发依据数据帧中的源地址和目的地址来判断一个数据帧是否应转发和转发到哪个端口。帧中的地址称为“MAC”地址或“硬件”地址,一般就是网卡所带的地址。网络上的设备看不到网桥的存在,设备之间的通信就如同在一个网络上。由于网桥是在数据帧上转发的,因而只能连接相同或相似的网络(如以太网之间、以太网与令牌环网之间的互连),只能转发相同或相似结构的数据帧。对于不同类型的网络(如以太网与X.25之间)或不同的数据帧结构,网桥就失去了作用。网桥的应用较为广泛,但网桥的互连存在着不少的问题。一是广播风暴,由于网桥不阻挡网络中的广播信息,当网络的规模较大时(几个网桥,多个以太网段),有可能引起网络风暴,导致整个网络全被广播信息填满,直至完全瘫痪。二是当与外部网络互连时,网桥会把内部网络和外部网络合二为一,成为一个网,双方都向对方完全开放自己的网络资源。其主要根源是网桥只是最大限度的把网络沟通,而不管传送的信息是什么。三是由于网桥基于“最佳效果”来传送数据信息包,可能会引起数据丢失,这为网络的安全埋下了很大隐患。(2)路由器的安全隐患路由器工作于OSI网络模型的第三层(网络层)。路由器的基本功能可概括为路由和交换。所谓路由,是指选择信息传送的最佳路径,以提高通信速度,减轻网络负荷,使网络系统发挥最大的效益;所谓交换,是指路由器能够连接不同结构、不同协议的多种网络,在这些网络之间传递信息。由于路由器要处理大量信息,且其功能任务繁重(路由选择、信息及协议转换、网络安全功能的实现、信息的加密和压缩处理、优先级控制以及信息统计等),因而它比网桥要慢,而且可能会影响到信息量。在路由选择过程中,路由器共有两种选择方式,即静态路由选择和动态路由选择,与之相应,路由表有静态路由表和动态路由表。动态路由表具有可修改性,可能会给网络安全带来危害。若一个路由器的路由表被恶意修改或遭受破坏,则可能会给网络的整体或局部带来灾难性的后果。此外,某些局域网可能会采用IP过滤技术,利用路由器的IP过滤对来自网络外部的非授权用户进行控制,但由于IP的冒用,往往不能达到维护网络安全之目的,而且此法可能会引起网络黑客对路由表的攻击。3.TCP/IP协议的安全漏洞通信网的运行机制基于通信协议。不同节点之间的信息交换按照事先约定的固定机制,通过协议数据单元来完成。对每个节点来说,所谓通信只是对接收到的一系列协议数据单元产生响应,而对从网上来到的信息真实性或从节点发给网中其他节点的真实性均无法提供保证。高速信息网在技术上以传统电信网为基础,通过改革传输协议发展而来,因此,各种传输协议之间的不一致性,也会大大影响信息的安全质量。TCP/IP协议是20世纪90年代以来发展最为迅速的网络协议。目前,TCP/IP协议在Internet上一统天下。正是由于它的广泛使用性,使得TCP/IP的任何安全漏洞都会产生巨大的影响。–7–\n计算机信息安全尽管TCP/IP技术在网络方面取得了巨大的成功,但也越来越暴露出它的不足之处。TCP/IP通信协议,在设计初期并没有考虑到安全性问题,而且用户和网络管理员没有足够的精力专注于网络安全控制,加上操作系统和应用程序越来越复杂,开发人员不可能测试出所有的安全漏洞,连接到网络上的计算机系统就可能受到外界的恶意攻击和窃取。在异种机型间资源共享的背后,是既令黑客心动,又让网络安全专家头痛的一个又一个的漏洞和缺陷:脆弱的认证机制、容易被窃听或监视、易受欺骗、有缺陷的LAN服务和相互信任的主机、复杂的设置和控制、基于主机的安全不易扩展以及IP地址的不保密性等。4.网络软件与网络服务的漏洞比较常见的网络软件与网络服务的漏洞如下。òFinger的漏洞ò匿名FTP的漏洞ò远程登录的漏洞ò电子邮件的漏洞5.口令设置的漏洞口令是网络信息系统中最常用的安全与保密措施之一。如果用户采用了适当的口令,那么他的信息系统安全性将得到大大加强。但是,实际上网络用户中谨慎设置口令的用户却很少,这对计算机内信息的安全保护带来了很大的隐患。网络信息系统的设计安全性再强,如果用户选择的口令不当,仍然存在被破坏的危险。1.3信息安全分类及关键技术1.3.1信息安全分类根据中国国家计算机安全规范,计算机的安全大致可分为如下三类。(1)实体安全:包括机房、线路和主机等的安全。(2)网络与信息安全:包括网络的畅通、准确以及网上信息的安全。(3)应用安全:包括程序开发运行、I/O、数据库等的安全。其中,网络与信息安全可分为如下四类。(1)基本安全类。(2)管理与记账类。(3)网络互连设备安全类。(4)连接控制类。基本安全类包括访问控制、授权、认证、加密以及内容安全。访问控制是一种隔离的基本机制,它把企业内部与外界以及企业内部的下同信息源隔离,但是采用隔离的方法不是最终的目的。网络用户利用网络技术特别是利用Internet技术的最终目的是在保证安全的前提下提供方便的信息访问,这就是对授权的需求。在授权的同–8–\n第1章绪论时,有必要而且是非常有必要对授权人的身份进行有效地识别与确认,这就是认证的需求。此外,为了保证信息不被篡改、窃听,必须对信息包括存储的信息和传输中的信息给予加密。同时,为了实施对进出企业网的流量进行控制,就需要解决内容安全的问题了。管理与记账类安全包括安全策略的管理、实时监控、报警以及企业范围内的集中管理与记账。网络互连设备包括路由器、通信服务器和交换机等;网络互连设备安全正是针对上述这些互连设备而言的,它包括路由安全管理、远程访问服务器安全管理、通信服务器安全管理以及交换机安全管理等。连接控制类包括负载均衡、可靠性以及流量管理等。1.3.2信息安全的关键技术从广义上讲,计算机信息安全技术主要有以下几个。(1)主机安全技术。(2)身份认证技术。(3)访问控制技术。(4)数据加密技术。(5)防火墙技术。(6)入侵检测技术。(7)安全审计技术。(8)安全管理技术。为了实现信息安全,应进行深入的研究,开发出自己的信息安全产品以适应我国信息化对信息安全的需要。1.4系统安全级别为实现对计算机系统安全性的定性评价,美国国防部国家计算机安全中心(NCSC)提出了计算机系统安全性标准,即可信任计算机标准评估准则(TrustedComputerStandardsEvaluationCriteria),也叫橘皮书(OrangeBook)。为使系统免受攻击,硬件、软件和存储的信息应实施不同的安全保护,对应不同的安全级别。安全级别对不同类型的物理安全、用户身份验证(authentication)、操作系统软件的可信任性和用户应用程序进行了安全描述,标准限制了可以连接到系统的系统类型。1.D1级:酌情安全保护D1级是最低的安全保护等级。拥有这个级别的操作系统就像一个门户大开的房子,任何人可以自由进出,是完全不可信的。对于硬件来说,没有任何保护措施,操作系统容易受到损害,没有系统访问限制和数据访问限制,任何人不需任何账户就可以进入系统,不受任何限制就可以访问他人的数据文件。属于这个级别的操作系统有:MS-DOS、MS-Windows98、Apple的MacintoshSystm7.x等操作系统。这些操作系统不区分用户,对于计算机硬盘上的信–9–\n计算机信息安全息可以任意访问,也没有任何控制。2.C1级:自选安全保护C级有两个安全子级别,C1和C2。C1级又称选择性安全保护系统,它描述了一种典型的用在UNIX系统上的安全级别。这种级别的系统对硬件有某种程度的保护,但硬件受到损害的可能性仍然存在。用户拥有注册账号和口令,系统通过账号和口令来识别用户是否合法,并决定用户对程序和信息拥有什么样的访问权。这种访问权是指对文件和目录的访问权。文件的拥有者和超级用户可以改动文件中的访问属性,从而对不同的用户给予不同的访问权,例如,让文件拥有者有读、写和执行的权力,给同组用户读和执行的权力,而给其他用户以读的权力。另外,许多日常的管理工作由根用户(root)来完成,如创建新的组和新的用户。根用户拥有很大的权力,所以它的口令一定要保存好,不要几个人共享。C1级保护的不足之处在于用户可以直接访问操作系统的根用户。C1级不能控制进入系统的用户的访问级别,所以用户可以将系统中的数据任意移走,他们可以控制系统配置,获取比系统管理员允许的更高权限,如改变和控制用户名。3.C2级:访问控制保护除了C1级包含的特征外,C2级还包含有访问控制环境。该环境具有进一步限制用户执行某些命令或访问某些文件的权限,而且还加入了身份验证级别。另外,系统对发生的事件加以审计,并写入日志当中,如什么时候开机,哪个用户在什么时候从哪儿登录等,这样通过查看日志,就可以发现入侵的痕迹,如多次登录失败,就可以大致推测出可能有人想强行闯入系统。审计可以记录下所有与安全相关的事件,审计还包括身份验证,这样就可以知道谁在执行这些命令。审计的缺点在于它需要额外的处理器时间和磁盘资源。授权分级使系统管理员能够给用户分组,授予他们访问某些程序的权限或访问分级目录。另一方面,用户权限可以以个人为单位授权用户对某一程序所在目录进行访问。如果其他程序和数据也在同一目录下,那么用户也将自动得到访问这些信息的权限。能够达到C2级的常见操作系统有UNIX系统、XENIX、Linux、Novell3.x或更高版本、WindowsNT、Windows2000和WindowsXP。4.B1级:标志安全保护B级中有3个子级别,B1级、B2级和B3级。B1级即标志安全保护,是支持多级安全(比如秘密和绝密)的第一个级别,这个级别说明一个处于强制性访问控制之下的对象,系统不允许文件的拥有者改变其许可权限。拥有B1级安全措施的计算机系统,随操作系统而定制。政府机构和防御系统承包商们是B1级计算机系统的主要拥有者。5.B2级:结构保护要求计算机系统中所有的对象都加标签,而且给设备(磁盘,磁带和终端)分配单个–10–\n第1章绪论或多个安全级别。这是提出较高安全级别的对象与另一个较低安全级别的对象通信的第一个级别。6.B3级:安全区域保护它使用安装硬件的方式来加强安全区域保护。例如,内存管理硬件用于保护安全区域免遭无授权访问或其他安全区域对象的修改。该级别要求用户通过一条可信任途径连接到系统上。7.A级:核实保护A级是当前的最高级别,包括了一个严格的设计、控制和验证过程。与前面提到的各级别一样,这一级别包含了较低级别的所有特性。设计必须是从数学角度上经过验证的,而且必须进行秘密通道和可信任分布的分析。这里,可信任分布的含义是,硬件和软件在物理传输过程中已经受到保护,以防止破坏安全系统。1.5计算机信息系统的安全对策计算机信息安全的实质就是安全立法、安全管理和安全技术的综合实施。这三个层次体现了安全策略的限制、监视和保障职能。我们要遵循安全对策的一般原则,采取具体的组织技术措施。1.5.1信息安全对策的一般原则1.综合平衡代价原则任何计算机系统的安全问题都要根据系统的实际情况,包括系统的任务、功能、各环节的工作状况、系统需求和消除风险的代价,进行定性和定量相结合的分析,找出薄弱环节,制定规范化的具体措施。这些措施往往是需求、风险和代价综合平衡、相互折衷的结果。2.整体综合分析与分级授权原则这要用系统工程的观点进行综合分析。任何计算机系统都包括人员、设备、软件、数据、网络和运行等环节,这些环节在系统安全中的地位、作用及影响只有从系统整体的角度去分析,才可能得出有效可行、合理恰当的结论。而且,不同方案、不同安全措施的代价、效果不同,采用多种措施时需要进行综合研究,必须对业务系统每种应用和资源规定明确的使用权限,通过物理管理和技术管理有效地阻止一切越权行为。3.方便用户原则计算机系统安全的许多措施要由人去完成,如果措施过于复杂导致完成安全保密操作规程的要求过高,反而降低了系统安全性。例如,密钥的使用如果位数过多加大记忆难度,则会带来许多问题。–11–\n计算机信息安全4.灵活适应性原则计算机系统的安全措施要留有余地,能比较容易地适应系统变化。因为种种原因,系统需求、系统面临的风险都在变化,安全保密措施一定要考虑到出现不安全情况时的应急措施、隔离措施、快速恢复措施,以限制事态的扩展。5.可评估性原则计算机安全措施应该能够预先评价,并有相应的安全保密评价规范和准则。1.5.2计算机信息安全的三个层次1.安全立法法律是规范人们一般社会行为的准则。它从形式上分有宪法、法律、法规、法令、条令、条例和实施办法、实施细则等多种形式。有关计算机系统的法律、法规和条例在内容上大体可以分成两类,即社会规范和技术规范。(1)社会规范社会规范是调整信息活动中人与人之间的行为准则。要结合专门的保护要求来定义合法的信息实践,并保护合法的信息实践活动,对于不正当的信息活动要受到民法和刑法的限制或惩处。它发布阻止任何违反规定要求的法令或禁令,明确系统人员和最终用户应该履行的权利和义务,包括宪法、保密法、数据保护法、计算机安全保护条例及计算机犯罪法等。以下是我国与信息安全相关的法律法规。ò《中华人民共和国计算机信息网络国际联网管理暂行规定》ò《中华人民共和国计算机信息网络国际联网管理暂行规定实施办法》ò《计算机信息网络国际联网保密管理规定》ò《商用密码管理条例》ò《中华人民共和国计算机信息系统安全保护条例》ò《关于对与国际联网的计算机信息系统进行备案工作的通知》ò《计算机信息网络国际联网安全保护管理办法》ò《计算机信息系统安全专用产品检测和销售许可证管理办法》ò《互联网信息服务管理办法》ò《中国互联网络域名注册实施细则》ò《计算机软件保护条例》ò《电子出版物管理规定》ò《中华人民共和国国家安全法》(2)技术规范技术规范是调整人和物、人和自然界之间的关系准则。其内容十分广泛,包括各种技术标准和规程,如计算机安全标准、网络安全标准、操作系统安全标准、数据和信息安全标准和电磁泄露安全极限标准等。这些法律和技术标准是保证计算机系统安全的依据和主要的社会保障。以下是我国与信息安全相关的标准规范。–12–\n第1章绪论ò计算机信息系统安全保护等级划分准则GB17859—1999ò信息技术设备的无线电干扰极限值和测量方法GB9254-88ò信息处理系统开放系统互连基本参考模型第2部分:安全体系结构GB/T9387.2-1995ò信息技术软件产品评价质量特性及其使用指南GB/T16260-1996ò信息技术设备(包括电气事务设备)的安全GB4943-1995ò计算机场地安全要求GB9361-88ò信息处理64位块加密算法操作方式GB/T15277-1994ò信息技术安全技术带消息恢复的数字签名方案GB15851-1995ò信息技术安全技术用块密码算法作密码校验函数的数据完整性机制GB15852-1995ò信息技术设备的安全GB4943-2001ò信息技术安全技术实体鉴别第1部分:概述GB/T15843.1-1999ò信息技术安全技术实体鉴别第2部分:采用对称加密算法的机制GB15843.2-1997ò信息技术安全技术实体鉴别第3部分:用非对称签名技术的机制GB/T15843.3-1998ò信息技术安全技术实体鉴别第4部分:采用密码校验函数的机制GB/T15843.4-1999ò信息技术安全技术信息技术安全性评估准则第1部分:简介和一般模型GB/T18336.1-2001ò信息技术安全技术信息技术安全性评估准则第2部分:安全功能要求GB/T18336.2-2001ò信息技术安全技术信息技术安全性评估准则第3部分:安全保证要求GB/T18336.3-2001ò计算机信息系统安全专用产品分类原则GA163-1997ò计算机信息系统安全等级保护通用技术要求GA/T390-2002ò计算机病毒防治产品评级准则GA243-20002.安全管理安全管理是安全对策的第二个层次,主要指一般的行政管理措施,即介于社会和技术措施之间的组织单位所属范围内的措施。所谓“三分技术,七分管理”的表现即在于此。建立信息安全管理体系(ISMS)要求我们全面的考虑各种因素,人为的、技术的、制度的和操作规范的,并且将这些因素综合进行考虑。建立信息安全管理体系,使得在建设信息安全系统时,通过对组织的业务过程进行分析,能够比较全面地识别各种影响业务连续性的风险,并通过管理系统自身(含技术系统)的运行状态自我评价和持续改进,达到一个保持的目标。通过信息安全管理系统明确组织的信息安全的范围,规定安全的权限和责任。信息的处理(包括提供、修改和使用)必须在相应的控制措施保护的环境下进行。–13–\n计算机信息安全与信息安全管理相关的标准如下。ò信息技术IT安全管理指南第1部分:IT安全的概念和模型ISO/IECTR13335-11996ò信息技术信息技术安全管理指南第2部分:管理和规划IT的安全ISO/IECTR13335-21997ò信息技术信息技术安全管理指南第3部分:IT安全管理技术ISO/IECTR13335-31998ò信息技术信息技术安全管理指南第4部分:基线方法ISO/IECTR13335-42000ò信息安全管理操作规则ISO/IEC177993.安全技术安全技术措施是计算机系统安全的重要保证,也是整个系统安全的物质技术基础。实施安全技术,不仅涉及计算机和外部、外围设备,即通信和网络系统实体,还涉及到数据安全、软件安全、网络安全、数据库安全、运行安全、防病毒技术、站点的安全以及系统结构、工艺和保密、压缩技术。安全技术措施的实施应贯彻落实在系统开发的各个阶段,从系统规划、系统分析、系统设计、系统实施、系统评价到系统的运行、维护及管理。计算机系统的安全技术措施是系统的有机组成部分,要和其他部分内容一样,以系统工程的思想、系统分析的方法,对系统的安全需求、威胁、风险和代价进行综合分析,从整体上进行综合最优考虑,采取相应的标准与对策,只有这样才能建立起一个有一定安全保障的计算机信息系统。习题1.简述计算机信息安全的定义、分类和特征。2.计算机信息系统面临的威胁有哪些?3.系统安全有哪几种级别?分别说出它们的名称和典型的系统示例。4.计算机信息安全的综合措施有哪几个层次?–14–\n第2章实体安全与防护技术计算机系统实体的安全是指为了保证计算机系统安全、可靠地运行,确保系统在对信息进行采集、传输、存储、处理、显示、分发和利用的过程中,不会受到人为或自然因素的危害而使信息丢失、泄露和破坏,对计算机系统设备、通信与网络设备、存储媒体设备和人员所采取的安全技术措施。实体安全包括环境安全,设备安全和媒体安全三个方面。本章将学习以下主要内容。1.影响实体安全的主要因素,实体安全的内容。2.计算机机房场地环境的安全防护。3.实体访问控制的基本任务,记录媒体的保护与管理。4.计算机电磁泄漏及防护。2.1实体安全技术概述2.1.1影响实体安全的主要因素实体安全是保护计算机设备、设施(含网络)以及其他媒体免遭地震、水灾、火灾、有害气体和其他环境事故(如电磁污染等)破坏的措施、过程。保证计算机信息系统的所有设备和机房及其他场地的实体安全,是整个计算机信息系统安全的前提。如果实体安全得不到保证,则整个计算机信息系统的安全也就不可能实现。影响计算机系统实体安全的主要因素如下。(1)各种自然灾害(如地震、火灾和洪水等)及设备故障(如硬盘损坏、设备使用寿命到期、外力破损和停电断电等)导致的安全问题。(2)电磁辐射。(3)由于人为的错误操作(如删除文件、格式化硬盘和线路拆除等)及各种计算机犯罪导致的安全问题。2.1.2实体安全的内容2.1.2.1环境安全提供对计算机信息系统所在环境的安全保护,主要包括受灾防护和区域防护。–15–\n计算机信息安全1.受灾防护提供受灾报警、受灾保护和受灾恢复等功能,目的是保护计算机信息系统免受水、火、有害气体、地震、雷击和静电的危害。安全功能可归纳为以下三个方面。(1)灾难发生前,对灾难的检测和报警。(2)灾难发生时,对正遭受破坏的计算机信息系统,采取紧急措施,进行现场实时保护。(3)灾难发生后,对已经遭受某种破坏的计算机信息系统进行灾后恢复。2.区域防护对特定区域提供某种形式的保护和隔离。安全功能可归纳为以下两个方面:(1)静止区域保护,如通过电子手段(如红外扫描等)或其他手段对特定区域(如机房等)进行某种形式的保护(如监测和控制等);(2)活动区域保护,对活动区域(如活动机房等)进行某种形式的保护。2.1.2.2设备安全对计算机信息系统设备的安全保护主要包括以下六个方面。1.设备防盗对计算机信息系统设备的防盗保护。安全功能可归纳为:使用一定的防盗手段(如移动报警器、数字探测报警和部件上锁)用于计算机信息系统设备和部件,以提高计算机信息系统设备和部件的安全性。2.设备防毁对计算机信息系统设备的防毁保护。所提供的安全功能可归纳为以下两个方面。(1)对抗自然力的破坏,使用一定的防毁措施(如接地保护等)保护计算机信息系统的设备和部件;(2)对抗人为的破坏,使用一定的防毁措施(如防砸外壳)保护计算机信息系统设备和部件。3.防止电磁信息泄漏防止计算机信息系统中的电磁信息泄漏,从而提高系统内敏感信息的安全性。所提供的安全功能可归纳为以下三个方面。(1)防止电磁信息的泄漏(如屏蔽室等防止电磁辐射引起的信息泄漏)。(2)干扰泄漏的电磁信息(如利用电磁干扰对泄漏的电磁信息进行置乱)。(3)吸收泄漏的电磁信息(如通过特殊材料/涂料等吸收泄漏的电磁信息)。4.防止线路截获防止对计算机信息系统通信线路的截获和外界对计算机信息系统的通信线路的干扰。安全功能可归纳为以下四个方面。–16–\n第2章实体安全与防护技术(1)预防线路截获,使线路截获设备无法正常工作。(2)探测线路截获,发现线路截获并报警。(3)定位线路截获,发现线路截获设备工作的位置。(4)对抗线路截获,阻止线路截获设备的有效使用。5.抗电磁干扰防止对计算机信息系统的电磁干扰,从而保护系统内部的信息。安全功能可归纳为以下两个方面。(1)对抗外界对系统的电磁干扰。(2)消除来自系统内部的电磁干扰。6.电源保护为计算机信息系统设备的可靠运行提供能源保障,例如不间断电源、纹波抑制器和电源调节软件等。安全功能可归纳为以下两个方面。(1)对工作电源的工作连续性的保护,如不间断电源。(2)对工作电源的工作稳定性的保护,如纹波抑制器。2.1.2.3媒体安全对媒体数据和媒体本身的安全保护。1.媒体的安全是对媒体的安全保管,目的是保护存储在媒体上的信息。安全功能可归纳为以下两个方面。(1)媒体的防盗。(2)媒体的防毁,如防霉和防砸等。2.媒体数据的安全是对媒体数据的保护。媒体数据的安全删除和媒体的安全销毁是为了防止被删除的或者被销毁的敏感数据被他人恢复。安全功能可归纳为以下三个方面。(1)媒体数据的防盗,如防止媒体数据被非法拷贝。(2)媒体数据的销毁,包括媒体的物理销毁(如媒体粉碎等)和媒体数据的彻底销毁(如消磁等),防止媒体数据删除或销毁后被他人恢复而泄露信息。(3)媒体数据的防毁,防止意外或故意的破坏使媒体数据的丢失。2.2计算机机房场地环境的安全防护计算机机房场地的安全要求如下。1.温度与湿度各种系列计算机的技术设备和信息记录介质对环境条件范围都有技术要求。违反规定就–17–\n计算机信息安全会使可靠性降低、寿命缩短。例如,温度过高会使元器件和集成电路产生的热量散发不出去从而加快材料的老化,并在内部引起暂时或永久的微观变化。一般情况下,机房的温度控制在10~25℃,相对湿度在40%~60%。2.清洁度与采光照明灰尘对触点的接触阻抗有影响,会使键盘输入不正常,还容易损害磁盘、磁带的磁记录表面。磁盘表面上的指纹污点或灰尘,将引起磁头损坏,丢失数据,并损坏磁盘。灰尘过多还会使打印机的打印头不能正常工作。在室内环境中,可通过除尘手段,达到空气洁净的目的。一般认为采用3万级洁净室即可,其粒度不超过0.5mm,每一升空间的尘粒数小于10000粒。只有足够的照度,才能保证操作的准确性和提高工作效率,减少视觉疲劳。机房内距离地板0.8m处的照度应保持200~500勒[克斯],室内净高度3m以上,淡色无粉尘墙壁,平均每平方米采用20W日光灯即可达到。一般要求光线均匀、稳定、光色好,光源不产生闪烁、阴影,墙壁、地板不反光,色调明快和谐。3.防静电、电磁干扰及噪声静电干扰是计算机操作人员和维修人员应该注意的一个问题。安装时,必须将计算机外壳及其他设备的金属外壳与建筑物的地线或自行铺设的地线保持良好的接触。机房的位置应远离强电磁场、超声波等辐射源,避免干扰计算机的正常运行。机房内无线电干扰场强度在频率为0.15~500MHz时应小于26dB,磁场干扰环境场强应小于800A/m。机房噪声控制主要是降低声源噪声。根据GB2887—89《计算机场地条件》有关规定,机房噪声标准应控制在64dB以下。4.防火、防水及防震据国外有关调查,在计算机机房事故中,有52%是由于火灾造成的,因此防火非常重要。机房内外严禁堆放易燃易爆的物品,并要配备足够数量的消防器材,同时需制定必要的防火措施。为了防止潮湿和预防洪水,计算机房设在二层楼以上为宜,机房要防止由于下雨或水管破损造成漏水现象。为确保硬盘、光盘及打印机等设备的正常工作,在确定机房位置时应考虑远离振动源,如冲压设备、剪切设备以及振动台等。另外,在选用工作台时也应考虑到防震。硬盘损坏常与工作台有关,工作台配有抽屉及工具柜,虽然方便用户,却增加了振动率。许多硬盘的损坏与开关抽屉或碰撞工作台引起的振动有关,因此必须选用稳定可靠的工作台。5.接地系统计算机系统,尤其是主机,还应妥善接地。接地可以降低由电源和计算机设备产生的噪音;在出现闪电或瞬间高压时,为故障电流提供回路可消除设备的所有高阻抗接地而避免火灾;发生电弧和电击时保障工作人员的人身安全,确保计算机系统设备的抗干扰能力和稳定运行。地线连接应注意如下两点。(1)交流地与直流地不能短接或混接,否则会造成严重干扰。–18–\n第2章实体安全与防护技术(2)安全地系统也需要与交流、直流地系统分开,单独与大地相接。6.供电系统为了保证计算机正常运行,供电系统的质量和供电的连续性至关重要。(1)对电源电压的要求如下。ò电源电压为交流电压220V±10%,电源频率为50Hz。电源电压及频率过高或过低将直接影响计算机的正常运行,因此必须具备一定的抗干扰能力。ò电压要相对稳定,因为电压波动将影响计算机的可靠运行。ò不能突然掉电。在计算机运行过程中,突然掉电有可能会造成文件丢失或损坏,划坏磁头,甚至会损伤磁盘驱动器。(2)为了防止电源故障而影响计算机系统的可靠性,通常采用以下措施。ò供电功率留有足够的余量。ò采用噪扰抑制器对电器噪扰进行衰减,提高抗干扰能力。ò用UPS不间断电源作为备用电源,防止突然掉电。ò电源插座专用,不要与其他电器共用电源插座。电源插座最好配有5A的保险,防止因电源短路而损坏计算机内部器件。ò若没有UPS不间断电源而突然掉电,应立即关闭电源,等电源稳定后方能开机。2.3实体的访问控制2.3.1访问控制的基本任务为了防止非法用户使用系统及合法用户对系统资源的非法使用,需要对计算机系统实体进行访问控制。例如,银行信息系统的自动提款机为合法用户提供现款,但它必须对提款用户的身份进行监督控制,以防止非法用户的欺诈行为。对实体系统的访问控制必须对访问者的身份实施一定的限制,这是保证系统安全所必须的。要解决上述问题,访问控制需采取以下两种措施。(1)识别与验证访问系统的用户。(2)决定用户对某一系统资源可进行何种访问(读、写、修改及运行等)。1.识别与验证所谓“识别”,就是要明确访问者是谁,即识别访问者的身份。必须对系统中的每个合法用户都有识别能力,要保证识别的有效性,必须保证任意两个不同的用户都不能具有相同的标识符。通过惟一标识符(ID),系统可以识别出访问系统的每一个用户。所谓“验证”,是指在访问者声明自己的身份(向系统输入它的标识符)后,系统必须对它所声明的身份进行验证,以防假冒,实际上就是证实用户的身份。验证过程总是需要用户出具能够证明他身份的特殊信息,这个信息是秘密的,任何其他用户都不能拥有它。识别与验证是涉及到系统和用户的一个全过程。只有识别与验证过程都正确后,系统才能允许用–19–\n计算机信息安全户访问系统资源。口令机制是一种简便的验证手段,但比较脆弱。生物技术,如利用指纹、视网膜技术等是一种比较有前途的方法。目前,最常用的验证手段仍是口令机制,它通过下述各种方法来加强其可靠性。(1)口令需加密后存放在系统数据库中,一般采用单向加密算法对口令进行加密。(2)要使输入口令的次数尽量减少,以防意外泄露。(3)当用户离开系统所属的组织时,要及时更换他的口令。(4)不要将口令存放在文件或程序中,以防其他用户读该文件或程序时发现口令。(5)用户要经常更换口令,使自己的口令不易被猜出来。2.决定用户访问权限对于一个已被系统识别与验证了的用户,还要对其访问操作实施一定的限制。可以把用户分为具有如下几种属性的用户类。(1)特殊的用户。这种用户是系统的管理员,具有最高级别的特权,可以对系统任何资源进行访问,并具有所有类型的访问、操作能力。(2)一般用户。即系统的一般用户,他们的访问操作要受到-定的限制,通常需要由系统管理员对这类用户分配不同的访问操作权限。(3)审计的用户。这类用户负责整个系统范围的安全机制与资源使用情况的审计。(4)作废的用户。这是一类被拒绝访问系统的用户,可能是非法用户。2.3.2实体访问控制对于一个系统来说,必须具有分辨访问系统实体资源的用户合法性的手段。第一,物理访问控制必须能够识别来访用户的身份,并对其合法性进行验证,主要通过特殊标识符、口令和指纹等实现。第二,对来访者必须限制其活动范围。第三,要在计算机中心设置高层安全防护圈,以防非法的暴力入侵。第四,计算中心设备所在的建筑物应具有抵御各种自然灾害或人为灾害的设施。第五,应设立完备的安全管理制度,培养工作人员良好的风纪,以防止各种偷窃与破坏活动的发生。2.4记录媒体的保护与管理2.4.1记录媒体的分类计算机系统的记录媒体有磁盘、磁带、半导体、光盘和打印纸等。这些媒体上存储了大量的信息和各种机密,引诱着各种犯罪分子进行盗窃、销毁、破坏或篡改。因此,计算机系统实体安全中的一项重要内容是记录媒体的保护与管理。对记录媒体的保护与管理的目的是保护存储在媒体上的信息。对媒体的安全保护,如防盗、防毁、防霉和防砸等,对数据记录的保护是为了记录的信息不被非法窃取、篡改、破坏或非法使用。为了对一些必须保护的记录提供足够的数据保护,而对一些不重要的记录不提供多余的保护,应该对所有记录进行评价并做出分类。计算机系统的记录按其重要性和机密程度,可–20–\n第2章实体安全与防护技术分为以下四类。1.一类记录:关键性记录这类记录对设备的功能来说是最重要的、不可替换的,是火灾或其他灾害后立即需要,但又不能再复制的那些记录。如关键性程序、主记录、设备分配图表及加密算法和密钥等密级很高的记录。2.二类记录:重要记录这类记录对设备的功能来说很重要,可以在不影响系统最主要功能的情况下进行复制,但比较困难和昂贵。如某些程序、存储及输入、输出数据等均属于此类。3.三类记录:有用记录这类记录的丢失可能引起极大的不便,但可以很快复制。已留有拷贝的程序就属于此类。4.四类记录:不重要记录这类记录在系统调试和维护中很少应用。各类记录应加以明显的分类标志,可以在封装上以鲜艳的颜色编码表示,也可以作磁记录标志。2.4.2记录媒体的防护要求全部一类记录都应该复制,其复制品应分散存放在安全地方。二类记录也应有类似的复制品和存放办法。记录媒体存放的库房或文件柜应具有以下条件。(1)存放一类、二类记录的保护设备(如金属文件柜)应具有防火、防高温、防水、防震以及防电磁场的性能;三类记录应存放在密闭的金属文件箱或柜中。这些保护设备应存在库房内。暗锁应隔一段时间就改变密码,密码应符合选取原则。此外,应记住密码,不要写在纸上,以防泄漏。当安全箱或柜打开时,锁应挂在其上,必要时还可悬挂“打开”标识,以引起注意。(2)存放机密材料的办公室应设专人值班,注意开、关门情况,并察看机密材料是否放入安全箱或柜内,办公室的门、窗是否关好。在工作人员吃饭或休息时,室内应有人看管。(3)记录媒体存放条件与计算机的正常工作条件相同。2.5计算机电磁泄漏及防护2.5.1计算机及其系统的电磁泄密渠道计算机及其系统的电磁泄密渠道有以下四种。ò显示器电磁辐射泄密。–21–\n计算机信息安全ò计算机主机电磁辐射泄密。ò打印机电磁辐射泄密。ò电源线传导辐射泄密。计算机主机及其附属电子设备如视频显示终端、打印机等在工作时不可避免地会产生电磁波辐射,这些辐射中携带有计算机正在进行处理的数据信息,尤其是显示器。由于显示的信息是给人阅读的,是不加任何保密措施的,所以其产生的辐射是最容易造成泄密的。使用专门的接收设备将这些电磁辐射接收下来,经过处理,就可恢复还原出原信息。国外计算机应用比较早,对计算机设备的辐射问题早有研究。在1967年的计算机年会上,美国科学家韦尔博士发表了阐述计算机系统脆弱性的论文,总结了计算机四个方面的脆弱性,即处理器的辐射,通信线路的辐射,转换设备的辐射及输出设备的辐射。这是最早发表的研究计算机辐射安全的论文,但当时没有引起人们的注意。1983年,瑞典的一位科学家发表了一本名叫《泄密的计算机》的小册子,其中再次提到计算机的辐射泄漏问题。1985年,荷兰学者艾克在第三届计算机通信安全防护大会上,公开发表了他的有关计算机视频显示单元电磁辐射的研究报告,同时在现场作了用一台黑白电视机接收计算机辐射泄漏信号的演示。他的报告在国际上引起强烈反响,从此人们开始认真对待这个问题。据有关报道,国外已研制出能在一公里之外接收还原计算机电磁辐射信息的设备,这种信息泄露的途径使敌对者能及时、准确、广泛、连续而且隐蔽地获取情报。计算机电磁辐射泄密问题已经引起了各个国家的高度重视,要防止这些信息在空中传播,必须采取防护和抑制电磁辐射泄密的专门技术措施,这方面的技术措施有干扰技术、屏蔽技术和Tempest(低辐射)技术。2.5.2防护手段1.配置视频信息保护机(干扰器)视频保护(干扰)技术又可分为白噪声干扰技术和相关干扰技术两种。白噪声干扰技术的原理是使用白噪声干扰器发出强于计算机电磁辐射信号的白噪声,将电磁辐射信号掩盖,起到阻碍和干扰接收的作用。这种方法有一定的作用,但由于要靠掩盖方式进行干扰,所以发射的功率必须够强,而太强的白噪声功率会造成空间的电磁波污染;另外白噪声干扰也容易被接收方使用较为简单的方法进行滤除或抑制解调接收。因此白噪声干扰技术在使用上有一定的局限性和弱点。相关干扰技术较之白噪声干扰技术是一种更为有效和可行的干扰技术。相关干扰技术的原理是使用相关干扰器发出能自动跟踪计算机电磁辐射信号的相关干扰信号,使电磁辐射信号被扰乱,起到乱数加密的效果,使接收方接收到电磁辐射信号也无法解调出信号所携带的真实信息。由于相关干扰不需靠掩盖电磁辐射信号来进行干扰,因此其发射功率无需很强,所以对环境的电磁污染也很小。相关干扰器使用简单,体积小巧,价格适宜,效果显著,最为适合应用在单独工作的个人计算机上。我国现在已能生产出这种相关干扰器。2.建造电磁屏幕室屏蔽技术的原理是,使用导电性能良好的金属网或金属板造成六个面的屏蔽室或屏蔽笼,将产生电磁辐射的计算机设备包围起来并且良好接地,抑制和阻挡电磁波在空中传播。–22–\n第2章实体安全与防护技术设计和安装良好的屏蔽室对电磁辐射的屏蔽效果比较好,能达到60~90dB以上。如美国研制的高性能的屏蔽室,其屏蔽效果对电场可达140dB,对微波场可达120dB,对磁场可达100dB。妨碍屏蔽技术普遍应用的问题是屏蔽室的设计安装施工要求相当高,造价非常昂贵,一般二三十平方米场地的屏蔽室的造价即需几十至上百万元。因此屏蔽技术较为适用于一些保密等级要求较高、较重要的大型计算机设备或多台小型计算机集中放置的场合,如国防军事计算中心、大型的军事指挥所以及情报机构的计算中心等。3.配置低辐射设备Tempest技术即低辐射技术。这种技术是在设计和生产计算机设备时,就已对可能产生电磁辐射的元器件、集成电路、连接线和显示器等采取了防辐射措施,把电磁辐射抑制到最低限度。生产和使用低辐射计算机设备是防止计算机电磁辐射泄密的较为根本的防护措施。“Tempest”是美国制定的一套保密标准,国外一些先进的工业国家对Tempest技术的应用非常重视,使用在重要场合的计算机设备对辐射的要求都极为严格。如美国军队在开赴海湾战争前线之前,就将所有的计算机更换成低辐射计算机。国外已能生产出系列化的Tempest产品,如Tempest个人计算机、工作站、连接器、打印机、绘图仪、通信终端和视频显示器等。Tempest产品造价非常高,一台Tempest设备要比具有同样性能的设备贵3~4倍。习题1.简述影响计算机系统实体安全的主要因素。2.实体安全的主要内容有哪些?3.实体访问控制的基本任务是什么?4.计算机系统的记录媒体是如何分类的?5.计算机及其系统的电磁泄漏应如何防护?–23–\n第3章计算机软件安全技术随着计算机应用的不断普及,计算机软件得到了迅猛的发展,在一套完整的计算机系统中已经占据了相当重要的地位。计算机用户在选择计算机时,不但要注意它的硬件性能,还必须了解其是否具有完善的软件支持,否则的话,运算速度再快的计算机也只是一堆“废铁”。目前,软件的开发规模越来越大,成本也越来越高,它是诸多软件编程人员集体智慧的结晶,其市场价值就应当受到人们的认可。但是,从另一方面讲,计算机软件又具有易被复制的特点,因此就有一些不法商人通过贩卖盗版软件牟取暴利,从而严重损害了软件开发者的权益。鉴于这种状况,软件开发者不得不在软件开发的同时,注意考虑如何对软件进行保护,从而防止他人复制和非法使用。另外,软件在使用过程中,也应防止非授权用户对软件的非法阅读和修改。本章将学习以下主要内容。1.计算机软件安全涉及的范围,安全技术措施。2.软件防拷贝技术,防静态和动态分析技术。3.软件保护及工具。3.1计算机软件安全概述3.1.1计算机软件安全涉及的范围1.软件本身的安全保密软件本身的安全保密指软件完整,即保证操作系统软件、数据库管理软件、网络软件、应用软件及相关资料的完整。包括软件开发规程、软件安全保密测试、软件的修复与复制、口令加密与限制技术以及防动态跟踪技术等。2.数据的安全保密数据的安全保密主要是靠计算机软件实现的,即系统拥有的和产生的数据信息完整、有效,使用合法,不被破坏或泄露。包括输入、输出、识别用户、存储控制、审计与追踪以及备份与恢复等。–24–\n第3章计算机软件安全技术3.系统运行的安全保密许多问题都涉及软件,如系统资源和信息使用。包括电源、环境(含空调)、人事、机房管理、出入控制、数据与介质管理体制和运行管理等。3.1.2计算机软件安全技术措施影响计算机软件安全的因素很多,认真分析这些因素之后会发现,要建立一个绝对安全保密的信息系统是不可能的。复杂的安全环境存在各种威胁,如非法破译他人信息、各类计算机犯罪、病毒入侵等,防不胜防。那么,如何确保计算机的安全保密呢?必须采取两个方面的措施:一是非技术性措施,如制定有关法律、法规,加强各方面的管理;二是技术性措施,如系统软件安全保密、通信网络安全保密、数据库管理系统安全保密、软件安全保密(如各种防拷贝加密技术、防静态分析以及防动态跟踪技术)等。3.1.3软件的本质和特征计算机系统分为硬件系统和软件系统两部分,即计算机硬件和软件。所谓计算机硬件是看得见、摸得着的物理实体,它们是软件安全的物质技术基础;而计算机软件则是支配计算机硬件进行工作的“灵魂”,如系统软件和应用软件等。本节着重分析计算机软件。从软件安全技术角度出发,软件具有两重性,即软件具有巨大的使用价值和潜在的破坏性能量。软件的本质和特征可作如下描述。(1)软件是用户使用计算机的工具。(2)软件是将特定装置转换成逻辑装置的手段。(3)软件是计算机系统的一种资源。(4)软件是信息传输和交流的工具。(5)软件是知识产品,奠定了知识产业的基础,已成力现代社会的一种商品形式。(6)软件是人类社会的财富,是现代社会进步和发展的一种标志。(7)软件是具有巨大威慑力量的武器,是将人类智慧转换成破坏性力量的放大器。(8)软件可以存储、进入多种媒体。(9)软件可以移植,包括在相同和不相同的机器上的软件移值。(10)软件可以非法入侵载体。(11)软件可以非法入侵计算机系统。(12)软件具有寄生性,可以潜伏在载体或计算机系统中,从而构成在合法操作或文件名义下的非授权。(13)软件具有再生性,在信息传输过程中或共享系统资源的环境下存在着非线性增长模式。(14)软件具有可激发性,是可接受一定(外部的或内部的)条件刺激的逻辑炸弹。(15)软件具有破坏性,一个人为设计的特定软件可以破坏指定的程序或数据文件,足以造成计算机系统的瘫痪。(16)软件具有攻击性,一个软件在运行过程中可以搜索并消灭对方的计算机程序,并取而代之。–25–\n计算机信息安全由以上分析可知,我们讨论的对象是广义软件,既包括合法软件也包括非法软件。软件不但是工具、手段、知识产品,同时也是一种武器,存在着潜在的、不安全因素及破坏性,因此建立、掌握相应的软件安全技术是十分必要的。对于软件的一般要求是适用范围广、可靠性高、安全保密性强、价格适当,而对于有特殊安全技术要求的软件则一般应具备防拷贝、防静态分析、防动态跟踪等技术性能。3.2软件防拷贝技术所谓防拷贝,指的是通过采取某种加密措施使得一般用户利用正常的拷贝命令甚至于各种拷贝软件都无法将软件进行完整的复制,或者是复制到的软件不能正常运行。防拷贝技术是软件加密的核心技术,因为防止软件非法扩散是软件加密的最终目的,而软件具有防拷贝措施,才能阻止软件的非法扩散。3.2.1软盘加密软盘加密曾是使用得最为广泛的一种加密方法。人们在运行程序时,要在程序提示下将加密盘(KEYDISK)插入软盘驱动器,待软件确认是正确的盘后才继续执行。加密盘是购买软件时获得的,它是一种作上了特殊记号的软盘,只有相应的软件才能识别这个标记。这个标记不能用一般的COPY或DISKCOPY命令复制下来,它起到了类似人的“指纹”的作用。这种加密方法中最重要的就是如何制造出这种标记,这种技术也称为反拷贝技术。那么,如何使软件具有防拷贝的功能呢?其方法是多种多样的,但是它们有一个共同的特点,即都是在软件所在的磁盘(这种盘叫做母盘)上利用专用技术制造一种特殊标记,使得通过正常的拷贝途径无法复制这种特殊标记,或者是拷贝到的特殊标记不完整。目前各种加密软件,大多数采用的防拷贝方法是,修改磁盘基数表的某些参数,使其格式化出来一些特殊的磁道,然后将被加密软件的一部分程序放在这些磁道中,使得一般用户利用DOS的COPY命令、DISKCOPY命令无法拷贝这些特殊磁道中的内容。这样拷贝到的磁盘程序只是原程序的一部分,所以拷贝的结果是不能正常运行的,从而达到防拷贝的目的。除了能够制造出反拷贝的标记,在程序中还必须有验证这个标记的代码。这段代码一旦被解密者发现,程序也就很容易被破解了。因此,必须采取—些编程技巧来阻止他人找到这段代码。这就是所谓的反跟踪技术,它与反拷贝技术有同等重要的地位。使用磁盘加密方法最大的优点就是提供了“防拷贝”的硬件介质——钥匙盘。因为使用钥匙盘输入密码,既隐蔽又方便了用户,而且加密者在磁盘中可以储存较多的信息,包括程序的代码或数据,这样,就可以使那些没有钥匙盘的用户破译程序的希望化为泡影。在使用过程中人们也发现了使用磁盘加密的一些缺陷,例如兼容性问题。由于反拷贝技术或多或少都采用了与标准操作不同的地方,因此很容易产生不兼容的情况,使得用户很难放心地买到能在自己机器上正常使用的软件。另外一个重要的问题则是寿命问题,它主要取决于钥匙盘的寿命。由于每次启动软件都要读取软盘,而且读取的位置往往又集中在某一磁道上,因此很容易将软盘磨损。同时,钥匙盘又防止了用户的备份工作,所以用户使用起来未免有些提–26–\n第3章计算机软件安全技术心吊胆。3.2.2“软件锁”加密“软件锁”(也称为“软件狗”)是一种插在计算机并行口或USB口上的软硬件结合的软件加密产品,为多数软件开发商所采用。“软件锁”一般都有几十或几百字节的非易失性存储空间可供读写,现在较新的“软件锁”内部还包含了单片机。它对计算机通过并行口发来的信息进行响应和处理。应用软件通过识别它的存在与否或利用它来进行一些数据变换而达到保护软件的目的。软件开发者可以通过接口函数和“软件锁”进行数据交换(即对“软件锁”进行读写),来检查“软件锁”是否插在并行口上;或者直接用“软件锁”附带的工具加密自己EXE文件(俗称“加壳”)。这样,如果没插“软件锁”或“软件锁”不对应,软件将不能正常执行。与磁盘加密相比,这种加密方法有以下几大优点。1.速度快,适宜多次查询这一点可以使得软件多次或定时地查询“软件锁”,而软盘加密通常都只在程序进入时查询一次。2.使用方便使用时没有明显动作使用户完全察觉不到它的存在,这给使用带来了方便。3.使用寿命长正常使用下不必担心“软件锁”像加密盘一样容易出错,而且用户可以随意备份其他系统软盘,免去对磁盘寿命的担心。4.兼容性较好由于“软件锁”与主机的通信遵从并行口的标准,因此一般没有兼容性上的问题。而磁盘加密通常要使用一些非标准或不稳定的东西,可靠性和兼容性经常出现问题。由于“软件锁”克服了磁盘加密的很多缺陷,才得到了越来越广泛的应用。但它本身也有一定的缺陷。由于每种软件都有各自的“软件锁”,因此,若要同时使用就必须在并行口上串接多个“软件锁”,这会使用户感觉使用起来很麻烦。而且,由于各种“软件锁”之间的电路各不相同,很有可能造成彼此不兼容的情况。3.2.3授权文件加密技术在Internet上发布出售软件,方便快速,越来越多的软件开发商正采用或准备采用这一技术。但怎样保护其软件不被非授权用户使用,不被盗版者解密,从而保护软件开发商的利益呢!授权文件加密方案是一种最佳的选择。用户在使用采用该技术加密的软件时,软件第一次运行时,会根据计算机硬件参数给出该软件的硬件特征的机器号文件;用户需要把这一文件用E-mail寄给软件提供商或开发商,软件开发商利用注册机(软件)产生该软件的授权文件寄给用户,用户把它拷贝到计算机上–27–\n计算机信息安全即可。它具有如下优点。(1)不同机器授权文件不同。用户获得一个授权文件只能在一台机器上注册使用软件。(2)即使更换计算机操作系统,只要不变更计算机,该授权文件仍能使用。(3)不需要任何硬件或软盘,使用方便可靠。(4)可让软件在不注册前的功能为演示软件,只能运行一段时间或部分功能,注册后就立即变为正式软件。(5)同时它也非常适合作为采用光盘(CD-ROM)等方式发授软件的加密方案。3.3防静态分析技术所谓静态分析即从反汇编出来的程序清单上分析。可从以下两方面入手。1.从软件使用说明和操作中分析软件欲破解一软件,首先应该先用用这软件,了解一下功能是否有限制,最好阅读一下软件的说明或手册,特别是自己所关心的关键部分的使用说明,这样也许能够找点线索。2.从提示信息入手进行分析目前,大多数软件在设计时,都采用了人机对话方式。所谓人机对话,即在软件运行过程中,需要由用户选择的地方,软件即显示相应的提示信息,并等待用户按键选择。而在执行完某一段程序之后,便显示一串提示信息,以反映该段程序运行后的状态,是正常运行,还是出现错误,或者提示用户进行下一步工作的帮助信息。基于以上两方面分析,再对静态反汇编出来的程序清单进行阅读,可了解软件的编程思路,以便顺利破解。3.3.1常用静态分析工具常用的静态分析工具是W32DASM、IDA和HIEW等。1.W32DASM可以对程序进行反汇编操作,而且对WinApi有良好的支持,反汇编出的代码可读性非常强,可以记录下程序静态代码。界面如图3.1所示。2.IDAPro运行IDAPro(如图3.2所示)时,最先注意到的是它的界面比W32DASM的更加专业,这里有比W32DASM更多的选项或更先进的地方。它的优点如下。(1)能够对W32DASM无法反汇编的最难的软件进行反汇编(如加壳程序)。(2)能够以.asm.sym甚至是.exe及其他文件形式保存。(3)压缩的静态汇编,可以节省大量的磁盘空间。–28–\n第3章计算机软件安全技术图3.1W32DASM图3.2IDAPro(4)可以重命名函数。(5)能够分析巨大的程序。(6)可以更好的反汇编和更深层分析。缺点是使用IDA更困难,速度慢。实际上IDA同W32DASM有很多相同的功能:可以快速到达指定的代码位置;可以看到跳到指定的位置的jmp的命令位置;可以看参考字符串;可以保存静态汇编等。–29–\n计算机信息安全3.HIEWHiew(如图3.3所示)是一款优秀的16进制编辑器,特别是它可以对应用程序进行反汇编,而且同时支持对可执行文件的16进制代码及汇编语言代码修改,使用起来非常方便。Hiew是传统的DOS界面,其操作多用功能组合键完成,可用F1功能键查看帮助信息。图3.3HIEW3.3.2防静态分析方法防静态分析就是对抗反编译程序,使其不能或很难对我们的软件进行反编译;即使反编译成功,也要使破解者无法读懂代码。对抗静态分析的方法如下。1.软件最终发行之前,将可执行程序进行加壳/压缩,使得解密者无法直接修改程序“壳”是一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。经过加壳的软件在跟踪时,已无法看到其真实的十六进制代码,因此可以起到保护软件的目的。有许多加壳/压缩程序为了阻止非法跟踪和阅读,对执行代码的大部分内容进行了加密变换,而只有很短的一段程序是明文。加密程序运行时,采用了逐块解密,逐块执行的方法,首先运行最初的一段明文程序,该程序在运行过程中,不仅要完成阻止跟踪的任务,而且还要负责对下一块密文进行解密。显然仅对该软件的密码部分进行反汇编,不对该软件动态跟踪分析,是根本不可能进行解密的。2.花指令的添加用花指令来对付静态反汇编是很有效的,这会使解密者无法一眼看到全部指令,杜绝了先把程序打印下来再慢慢分析的做法。一条指令的长度是不等长的,假使有一条指令为3字节长,从它的第二个字节开始反汇编,会看到一条面目全非的指令,“花指令”就是在指令流中插入很多“垃圾”,使静态反汇–30–\n第3章计算机软件安全技术编无法进行。3.干扰代码的添加在关键部位添加jmp、nop、cmp等指令以及一些没返回的循环等。插入这些大量无用的运算以误导解密者,防止静态反汇编,增加破解者动态汇编时的难度。4.到处设条件转移没有循环,只是跳转,作为有条件的路障,这样,没有简单的反向操作可以执行。3.4防动态跟踪技术对软件实施了防拷贝措施和防静态分析技术之后,软件既不能复制,也不能直接阅读程序。破译者往往希望通过跟踪工具对软件进行动态跟踪,找出其中的解密程序,找到解密算法和识别加密盘标志的程序,然后对这些程序进行修改,实施解密。为了阻止破译者的动态跟踪,加密软件必须采取必要的防动态跟踪措施,阻止破译者利用跟踪工具来弄清程序的执行过程和加密的思路以及解密算法,从而有效地保护加密软件的思想,提高加密强度。与防拷贝技术和防静态分析技术相比,防动态跟踪技术是一项更为复杂、更难的技术。它需要软件开发人员对跟踪工具的运行特性、系统的内部结构、汇编语言编程技巧有一个全面深入地了解,编出巧妙的程序,不仅使调试程序丧失其动态跟踪能力,而且使破译者面对防跟踪程序“望文”而生“疑义”,不能识破被加密程序中的“机关”,不知道一串串指令究竟在进行一些什么样的操作,能完成什么样的功能,从而达到防动态跟踪的目的。3.4.1常用动态分析工具主要的动态调试工具有SoftIce、TRW2000、OllyDbg、Smartcheck及天意等。下面介绍其中3种。1.SoftIceSoft-ICE是目前公认最好的跟踪调试工具。使用Soft-ICE可以很容易的跟踪一个软件或是监视软件产生的错误进行除错,它有DOS、WINDOW3.1、WIN95/98/NT/2000各个平台上的版本。这个本是用来对软件进行调试、跟踪、除错的工具,在破解者(Cracker)手中变成了最恐怖的破解工具。2.TRW2000Trw2000(如图3.4所示)是中国人自己编写的调试软件,完全兼容Soft-ICE各条指令,由于图3.4Trw2000–31–\n计算机信息安全现在许多软件能检测Soft-ICE存在,而对TRW2000的检测就差了许多,因此目前它成了很多Cracker的最爱。TRW2000专门针对软件破解进行了优化,在Windows下跟踪调试程序,跟踪功能更强;可以设置各种断点,并且断点种类更多;它可以像一些脱壳工具一样完成对加密外壳的去除,自动生成EXE文件,因此它的破解能力更强,在破解者手中对共享软件的发展威胁更大。其代码窗口如图3.5所示。图3.5Trw2000代码窗口3.Smartcheck这是专门针对VisualBasic程序的调试程序,由于VB程序执行时从本质上讲是解释执行,它们只是调用VBRUNxxx.DLL中的函数,因此VB的可执行文件是伪代码,程序都在VBXXX.DLL里面执行。若用Soft-ICE跟踪调试只能在VBDLL里面打转转,看不到有利用价值的东西,而且代码质量不高,结构还很复杂。当然只要了解其特点用Soft-ICE也可破解,但SmartCheck的出现,大大方便了破解者。SmartCheck是NuMega公司出口的一款出色的调试解释执行程序的工具,目前最新版是v6.03。它非常容易使用,你甚至于不需要懂得汇编语言都能轻易驾驭它。它可将VB程序执行的操作完全记录下来,使破解者轻而易举地破解大部分VB程序。3.4.2防动态跟踪方法1.检测调试寄存器(1)检测SoftIce等系统级调试器–32–\n第3章计算机软件安全技术检测softice的方法有很多,检测主要在驱动中实现。(2)监测用户级调试器用户级调试器具有以下几个特征。ò用户级调试器是采用MICROSOFT提供的DBGHELP.DLL库来实现对软件跟踪调试的。ò被调试的软件其父进程为调试器。由于破解者可以拦截软件对调试器的检测操作,所以将保护判断加在驱动程序中。因为驱动程序在访问系统资源时,受到的限制比普通应用程序少得多,这也给了破解者增加了破解的难度。2.CRC完整性校验增加对软件自身的完整性检查。这包括对磁盘文件和内存映像的检查,以防止破解者未经允许修改程序以达到破解的目的。DLL和EXE之间可以互相检查完整性。3.运行时库的重新编写破解者往往是在memcpy,strcpy等运行时库函数上设断点,通过分析其中的字符串来窥视程序的内部运行。对于edocguard,虽然不是密码的处理,但是内存解密的部分就是使用的memcpy,所以需要重新编写这些运行时库,这个可以从VC或其他编译器的运行时库中的代码改写获得。4.API函数的不规则调用在软件中对于API的调用不采用直接调用API的方法,因为这样破解者很容易了解到软件所调用的API,进而了解到软件的工作流程。可以采用由DLL的输出表来定位API的函数地址的方法。对于调试器来说,在对API设置断点时,是在API函数地址上添加一个INT3指令。所以在调用API时,把API的前几个代码指令复制到调用处,执行前几个代码指令,然后跳转到API函数中。这样,调试器对于API断点的监视是无效的。5.接口与字符串在DLL、COM中不使用有意义的函数接口。不采用一目了然的名字来命名函数和文件,如openfile()、setpermisson等。所有可能被破解者利用的字符串都不以明文形式直接存放在可执行文件中,采用加密的形式,在需要时进行解密。尽可能少地给用户提示信息以防解密者直接了解软件的流程。比如,当检测到破解企图之后,不要立即给用户提示信息,而是在系统的某个地方做一个记号,随机地过一段时间后使软件停止工作,或者装作正常工作但实际上却在所处理的数据中加入了一些垃圾。6.输入表输出表拦截的检测定时检测软件各个模块的输入输出表是否一致,输入表、输出表中的函数地址是否处于–33–\n计算机信息安全对应模块的内存区域中,防止破解者采用HOOKAPI的方法对软件进行破解操作。7.加壳采用两种以上的不同的工具来对程序进行加壳/压缩,并尽可能地利用这些工具提供的反跟踪特性。3.5软件保护及工具3.5.1软件保护建议本节将给出关于软件保护的一般性建议,这些都是无数人经验的总结。程序员在设计自己的保护方式时最好能够遵守这里给出的准则,这样会提高软件的保护强度。(1)软件最终发布之前一定要将可执行程序进行加壳/压缩,使得解密者无法直接修改程序。如果时间允许并且有相应的技术能力,最好是设计自己的加壳/压缩方法。如果采用现成的加壳工具,最好不要选择流行的工具,因为这些工具已被广泛深入地加以研究,有了通用的脱壳/解压办法。另外,最好采用两种以上的不同的工具来对程序进行加壳/压缩,并尽可能地利用这些工具提供的反跟踪特性。(2)除了加壳/压缩之外,还需要自己编程在软件中嵌入反跟踪的代码,以增加安全性。(3)不要采用一目了然的名字来命名函数和文件,如IsLicensedVersion()、key.dat等。所有与软件保护相关的字符串都不能以明文形式直接存放在可执行文件中,这些字符串最好是动态生成。(4)如果采用注册码的保护方式,最好是一机一码,即注册码与机器特征相关,这样一台机器上的注册码就无法在另外一台机器上使用,可以防止有人散播注册码,并且机器号的算法不要太迷信硬盘序列号,因用相关工具可以修改其值。(5)将注册码、安装时间记录在多个不同的地方。检查注册信息和时间的代码越分散越好。不要调用同一个函数或判断同一个全局标志,因为这样做的话只要修改了一个地方则全部都被破解了。在检查注册信息的时候插入大量无用的运算以误导解密者,并在检查出错误的注册信息之后加入延时。(6)不要依赖于GetLocalTime()、GetSystemTime()这样众所周知的函数来获取系统时间,可以通过读取关键的系统文件的修改时间来得到系统时间的信息。(7)如果有可能的话,可以采用联网检查注册码的方法,且数据在网上传输时要加密。(8)给软件保护加入一定的随机性,比如除了启动时检查注册码之外,还可以在软件运行的某个时刻随机地检查注册码。随机值还可以很好地防止那些模拟工具,如软件狗模拟程序。(9)如果试用版与正式版是分开的两个版本,且试用版的软件没有某项功能,则不要仅仅使相关的菜单变灰,而是彻底删除相关的代码,使得编译后的程序中根本没有相关的功能代码。(10)如果软件中包含驱动程序,则最好将保护判断加在驱动程序中。因为驱动程序在访问系统资源时受到的限制比普通应用程序少得多,这也给了软件设计者发挥的余地。–34–\n第3章计算机软件安全技术3.5.2常用加壳工具常用加壳工具的有UPX、Aspack、ASProtect、PECompact及幻影等,下面简单介绍2种。1.ASPackASPack(如图3.6所示)的功能不同于一般的压缩软件,它只能压缩EXE或DLL文件,不过,用它压缩过的文件不用解压缩,也不需要原文件,即可直接使用,这样可以节省大量的磁盘空间。ASPack具有以下几个特点。(1)压缩率高ASPack对EXE或DLL文件的压缩率普遍在20%~60%,也就是说,一个1M的文件,压缩以后只有200~600K大小。图3.6ASPack(2)出错率低与同类软件相比,ASPack的出错率是非常低的。(3)压缩速度较快ASPack的压缩速度在同类软件中也是最快的。(4)ASPack使用起来也很方便虽然ASPack是俄罗斯人编写的,但是它却是支持20种语言的多语言版本的程序,包括中文。把ASPack的最新版本ASPackv2.1安装好以后,双击ASPack运行软件,出现了程序界面后,首先选择“Options”标签页,在“Language”下拉框中选择“Chinesegb”,这时程序界面就会自动变成简体中文了。然后,在“打开文件”标签页中点击“打开”按钮,选择好你要压缩的文件,确定以后,ASPack会自动为你进行以“原文件名.BAK”为名备份原文件、压缩文件、显示压缩比等一系列工作,压缩完了以后,显示的就是文件的压缩比,以及原文件与目标文件的大小的对比,还会有一个“测试”按钮,选择它以后,ASPack会把压缩以后的文件运行(如果是EXE文件的话),如果发现文件运行起来没什么问题,就可以把备份的原文件删除,达到节省磁盘空间的目的。另外,ASPack还提供了鼠标右键菜单的功能,让压缩工作更加方便。2.幻影幻影是一个为Windows下的EXE、DLL、OCX等可运行文件加密的软件。它为程序加上一层坚硬的保护壳,对抗静态分析和动态跟踪。还可以为程序设置限制注册功能。即使你没有程序的源代码,你也可以用幻影在程序上加上运行次数限制、运行天数限制和运行有效日期限制。加密程序支持Windows98、WindowsMe、Windows2000、WindowsXP。运行界面如图3.7所示,设置界面如图3.8所示。–35–\n计算机信息安全图3.7幻影图3.8幻影的设置界面幻影具有以下特点。ò动态生成加密密码,对程序的代码、数据进行加密。ò程序解密在内存中进行,不会在硬盘中写入已解密程序。ò压缩程序数据、代码,减少占用空间。ò对抗所有的反编译工具。ò程序的完整性校验,防止修改。ò对抗所有已知的内存还原工具,如ProcDump、PEditor等。ò对抗所有已知的跟踪分析工具,如Winice、Trw2000及OllyDbg等。ò可为软件加上运行次数限制,运行天数限制,运行有效日期限制,需要注册才能解除限制。ò根据每台不同电脑算出不同注册码,注册码只能在本机有效。ò提供接口函数,可让程序查询注册状态。习题1.简述计算机软件安全涉及的范围。2.计算机软件安全技术措施有哪些?3.有哪几种软件防拷贝技术?4.防静态和动态分析技术是如何保护软件的?5.上机练习一:熟练使用ASPack对软件加壳。6.上机练习二:使用TRW2000对软件脱壳和动态跟踪。–36–\n第4章备份技术在信息社会人们已经深刻地认识到存储于计算机中的数据是最宝贵的财富。当计算机里重要资料出现问题时,给数据加上保险的方法就是备份。通过备份能有惊无险地把资料全部恢复过来。本章将学习以下内容。1.有关备份的基础知识,包括备份的内容、层次、方式及意义等。2.理解硬件、软件备份技术。了解一些常用的硬件备份方法。3.学会利用网络备份。4.常用的备份软件介绍。4.1备份技术概述随着计算机技术、网络技术、信息技术的发展,越来越多的企业和个人已经在使用计算机系统处理日常业务。一方面计算机带给用户极大的便利;另一方面,用户对计算机应用的不断深入和提高也意味着对计算机系统中数据的依赖性在大大加强。由于使用不当或不可预见的原因引起的操作系统瘫痪、数据丢失问题,给用户带来很大的烦恼。有鉴于此,作为一名计算机用户,掌握备份与恢复的真功夫便显得尤为重要。事实上,人们在日常生活中都不自觉地使用着备份。比如,存折密码记在脑子里怕忘,就会写下来记在纸上;门钥匙、抽屉钥匙总要有两把。其实备份的概念说起来很简单,就是保留一套后备系统。这套后备系统或者是与现有系统一模一样,或者是能够替代现有系统的功能。一旦原件丢失,备份就能取而代之。1.数据失效与备份随着网络的普及和信息量的爆炸性增长,数据量也呈几何级的增长,数据失效的问题日趋严重。导致数据失效的原因大致有以下几种:计算机软硬件故障、人为操作故障及自然灾害等。其中软件故障和人为原因是数据失效的主要原因。根据数据被破坏的方式,数据失效分为物理损坏和逻辑损坏两种,前者导致失效后的数据彻底无法使用,后者表面上看来有的数据仍然可用,但数据间的关系错误。往往逻辑损坏比物理损坏更为隐蔽,破坏性更大。要防止数据失效的发生,有多种途径,如提高员工操作水平、购买品质优良的设备等。–37–\n计算机信息安全但最根本的方法还是建立完善的备份制度。备份是系统文件和重要数据的一种安全策略,通过制作原始文件、数据的拷贝,就可以在原始数据丢失或遭到破坏的情况下,利用备份把原始数据恢复出来,保证系统能够正常工作。计算机系统中所有与用户相关的数据都需要备份,不仅要对数据库中的用户数据进行备份,还需备份数据库的系统数据及存储用户信息的一般文件。备份的目的就是资源恢复,最大限度地降低系统风险、保护系统最重要的数据资源。在系统发生灾难后,可以利用数据备份来恢复整个系统,不仅包含用户数据,而且包含系统参数和环境参数等。2.备份的层次备份可分为以下三个层次:硬件级、软件级、人工级。硬件级的备份是指用多余的硬件来保证系统的连续运行。比如硬盘双工,双机容错等方式,如果一个硬件损坏,后备硬件马上能够接替其工作。但这种方式无法防止逻辑上的错误,如人为误操作、病毒、数据错误等,无法真正保护数据。硬件备份的作用实际上是保证系统在出现故障时能够连续运行,更应称为硬件容错,而非硬件备份。软件级的备份是指将系统数据保存到其他介质上,当系统出错时可以将系统恢复到备份时的状态。由于这种备份是由软件来完成的,所以称为软件备份。当然,这种方法备份和恢复都要花费一定时间。但这种方法可以完全防止逻辑错误,因为备份介质和计算机系统是分开的,错误不会复写到介质上。这就意味着,只要保存足够长时间的历史数据,就一定能够恢复正确的数据。人工级的备份最为原始,也最简单和有效。如果用文字记录下我们的每一个操作,不愁恢复不了数据。但如果要用手工方式从头恢复所有数据,耗费的时间恐怕会令人难以忍受。事实证明,只有硬件备份和很好的管理软件相结合,才能为人们提供安全的数据保护。理想的备份系统是在软件备份的基础上增加硬件容错系统,使系统更加安全可靠。实际上,备份应包括文件/数据库备份和恢复、系统灾难恢复和备份任务管理。3.备份的方式备份有三种方式。(1)全备份(FullBackup):将系统中所有的数据信息全部备份。其优点是数据备份完整,缺点是备份系统的时间长,备份量大。(2)增量备份(IncrementalBackup):只备份上次备份后系统中变化过的数据信息。其优点是数据备份量少、时间短,缺点是恢复系统时间长。(3)差分备份(DifferentialBackup):只备份上次完全备份以后变化过的数据信息。其优点是备份数据量适中,恢复系统时间短。全备份所需时间最长,但恢复时间最短,操作最方便,当系统中数据量不大时,采用全备份最可靠;但是随着数据量的不断增大,我们将无法每天做全备份,而只能在周末进行全备份,其他时间我们采用所用时间更少的增量备份或采用介于两者之间的差分备份。各种备份的数据量不同:全备份>差分备份>增量备份。在备份时要根据它们的特点灵活使用。–38–\n第4章备份技术4.与备份有关的概念24×7系统:有些企业的特性决定了计算机系统必须一天24小时、一周7天运行。这样的计算机系统被称为24×7系统。备份窗口(BackupWindow):一个工作周期内留给备份系统进行备份的时间长度。如果备份窗口过小,则应努力提高备份速度。故障点(PointofFailure):计算机系统中所有可能影响日常操作和数据的部分都被称为故障点。备份计划应覆盖尽可能多的故障点。备份服务器(BackupServer):在备份系统中,备份服务器是指连接备份介质的备份机,一般备份软件也运行在备份服务器上。跨平台备份(Cross-PlatformBackup):备份不同操作系统中系统信息和数据的备份功能。跨平台备份有利于降低备份系统成本,进行统一管理。备份代理程序(BackupAgent):运行在异构平台上,与备份服务器通信从而实现跨平台备份的小程序。推(push)技术:在进行备份时,为了提高备份效率,将备份数据打包然后“推”给备份服务器的技术。在备份窗口较小的情况下可以使用推技术。并行流处理(ParallelStreaming):从备份服务器同时向多个备份介质同时备份的技术。在备份窗口较小的情况下可以使用并行流技术。备份介质轮换(MediaRotation):轮流使用备份介质的策略,好的轮换策略能够避免备份介质被过于频繁地使用,以提高备份介质的寿命。4.2备份技术与备份方法4.2.1硬件备份技术目前采用的备份措施在硬件一级有磁盘镜像、磁盘阵列及双机容错等。1.磁盘镜像(Mirroring)磁盘镜像技术在同一硬盘控制卡上安装两个完全相同的硬盘,操作中,一个设置为主盘(MasterDisk),另一个设置为镜像盘或者从盘(SlaverDisk)。当系统写入数据时,会分别存入两个硬盘中,两个硬盘中保存有完全相同的数据。一旦一个硬盘损坏,另一个硬盘会继续工作。并且两个盘都采用写后读校验。当一个硬盘发生故障,另一镜像盘可以继续工作,并发出警告,提醒管理员维修或更换硬盘。磁盘镜像具有很好的容错能力,可以防止单个硬盘的物理损坏,但无法防止逻辑损坏。2.磁盘双工磁盘镜像技术可以保证一个磁盘损坏后系统仍能正常工作。但如果服务器通道发生故障或电源系统故障,磁盘镜像就无能为力了。磁盘双工可以很好地解决这个问题,它将两个硬–39–\n计算机信息安全盘分别接在两个通道上,每个通道都有自己独立的控制器和电源系统,当一个磁盘或通道或电源系统发生故障时,系统会自动使用另一个通道的磁盘而不影响系统的正常工作。磁盘双工不仅对系统具有很强的数据保护能力,而且由于这两个硬盘上的数据完全一样,服务器还可以利用两个硬盘通道,并行执行查找功能,从而提高系统的响应速度。3.磁盘阵列(DiskArray)过去几年来,CPU的处理速度增加了几十多倍,内存(memory)的存取速度亦大幅增加,而数据储存装置——主要是磁盘(Harddisk)的存取速度只增加了三四倍,形成计算机系统的瓶颈,拉低了计算机系统的整体性能(throughput),若不能有效地提升磁盘的存取速度,CPU、内存及磁盘间的不平衡将使CPU及内存的改进形成浪费。如何增加磁盘的存取(access)速度,如何防止数据因磁盘的故障而失落及如何有效地利用磁盘空间,一直是计算机专业人员和用户不断研究的问题。目前改进磁盘存取速度的方式主要有两种。其一是磁盘高速缓存控制(DiskCacheController),它将从磁盘读取的数据存在高速缓存(CacheMemory)中以减少磁盘存取的次数,数据的读写都在高速缓存中进行,大幅增加存取的速度,如要读取的数据不在高速缓存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方式在单工环境(Single-taskingEnvironment)如DOS之下,对大量数据的存取有很好的性能(量小且频繁的存取则不然);但在多工(multi-tasking)环境之下,因为要不停地作数据交换(swapping)的动作,对数据库(database)的存取(因为每一记录都很小)就不能显示其性能,这种方式没有任何安全保障。其二是使用磁盘阵列技术。磁盘阵列是把多个物理磁盘驱动器连接在一起组织成一个大容量高速逻辑磁盘进行协同工作,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大大地提高了磁盘存贮容量及数据读写与传输速度,大幅减低数据的存取时间;同时磁盘系统特有的容错功能,能对损坏的数据进行自动恢复,以确保磁盘数据的安全,从而达到有效的管理磁盘,提高磁盘空间利用率。磁盘阵列所利用的不同的技术,称为RAIDlevel,RAID是RedundantArrayofInexpensiveDisk的缩写,意为廉价冗余磁盘阵列。而每一level代表一种技术,这个level并不代表技术的高低,不同的level针对不同的系统及应用,以解决数据安全的问题。目前业界公认的标准是RAID0~RAID5。至于要选择哪一种RAIDlevel的产品,纯视用户的操作环境(OperatingEnvironment)及应用(application)而定,与level的高低没有必然的关系。RAID0及RAID1适用于PC及PC相关的系统如小型的网络服务器(NetworkServer)及需要大磁盘容量与快速磁盘存取的工作站等,因为比较便宜,但因一般人对磁盘阵列不了解,没有看到磁盘阵列对他们价值,市场尚未打开;RAID2及RAID3适用于大型计算机及影像、CAD/CAM等处理;RAID5多用于OLTP,因有金融机构及大型数据处理中心的迫切需要,故使用较多而较有名气。RAID4和RAID5有共同之处,但有先天的限制,使用较少。4.双机容错双机容错目的在于保证数据永不丢失和系统永不停机,采用智能型磁盘阵列柜解决了数据永不丢失的问题,采用双机容错软件解决了系统永不停机的问题。基本架构共分两种模式。(1)双机互备援(DualActive)–40–\n第4章备份技术所谓双机互备援就是两台主机均为工作机,在正常情况下,两台工作机均为系统提供支持,并互相监视对方的运行情况。当一台主机出现异常,不能支持信息系统正常运营时,另一主机则主动接管异常机的工作,继续支持系统的运行,从而保证系统能够不间断地运行,而达到不停机的功能,但此时正常主机的负载会有所增加。必须尽快将异常机修复以缩短正常机负载持续时间,当异常机经过维修恢复正常后,系统管理员通过管理命令,可以将正常机所接管的工作切换回已修复的异常机。(2)双机热备份(HotStandby)所谓双机热备份又称为在线守候,就是一台主机为工作机(PrimaryServer),另一台主机为备份机(StandbyServer),在系统正常情况下,工作机为系统提供支持,备份机监视工作机的运行情况,当工作机出现异常,不能支持系统运行时,备份机主动接管工作机的工作,继续支持系统的运行,从而保证系统能够不间断地运行。当工作机经过维修恢复正常后,系统管理人员通过管理命令或经由SHELL程序以人工或自动的方式将备份机的工作切换回工作机;也可以启动监视程序监视备份的运行情况,这样,原来的备份机就成了工作机,原来的工作机就成了备份机。SFTIII、Standby、Cluster都属于双机容错的范畴。双机容错可以防止单台计算机的物理损坏,但无法防止逻辑损坏。4.2.2软件备份技术在任何系统中,软件的功能和作用都是核心所在,备份系统也不例外。磁带设备等硬件,提供了备份系统的基础,但硬件备份不能代替数据存储备份,若发生人为的错误,由此引起的数据丢失也就无法恢复了。实际上,具体的备份策略的制定、备份介质的管理以及一些扩展功能的实现,都是由备份软件来最终完成的。备份软件的功能和作用主要包括:磁带驱动器的管理、磁带库的管理、备份数据的管理等等。一个好的备份软件应具有以下特点。ò安装方便、界面友好、使用灵活。ò支持跨平台备份。ò支持文件打开状态备份。ò支持在网络中的远程集中备份。ò支持备份介质自动加载的自动备份。ò支持多种文件格式的备份。ò支持各种策略的备份方式。理想的备份系统应该是全方位、多层次的。首先,要使用硬件备份来防止硬件故障;如果由于软件故障或人为误操作造成了数据的逻辑损坏,则可利用软件方式和手工方式相结合的办法来恢复。事实证明,只有采取硬件备份和很好的管理软件相结合,才能为人们提供安全的数据保护。4.2.3利用网络备份互联网的迅速普及使得越来越多的人真正体会到信息社会所带来的方便快捷,在网络时代,人们开始想方设法将一些较大的文件备份到网络上,利用网络资源进行备份最快捷的方式莫过于E-mail。通过E-mail,只需要在能提供电子邮箱的网站上申请一个免费的电子邮箱,–41–\n计算机信息安全就可以将一些重要的文件或数据作为附件发送到邮箱中进行备份。如果经常把一些文件保存到电子信箱中,使用网络邮盘(NetMailDisk)是一个很好的选择。这是一个非常有创意的电子邮件客户端的辅助工具。它可以利用多个电子邮箱来构造个人的网络存储空间。使用一般的邮件客户端软件或WebMail系统(网页邮件系统)来完成这一功能,操作不仅会比较麻烦,而且还会受最大附件允许值的限制。而使用网络邮盘则可以很好地解决这些问题,能够轻松地存储文件到邮箱,不再受最大附件的限制。而且,网络邮盘还考虑到大多数网民可能有不止一个的电子信箱,因此网络邮盘允许你用多达16个电子信箱来构造自己的网络存储空间,甚至可以轻易地存取超过单个电子信箱容量大小的文件。其次,通过个人主页存储空间备份也是最好的备份选择之一。目前,很多网站都提供免费的个人主页空间。当用户建立了自己的个人主页之后,就可以使用FTP服务,或者其他的页面管理工具,将文件上传到服务器上,然后将文件放入相应的备份目录中,就完成了文件的备份工作,日后,当用户需要该文件是,就可以利用FTP工具从服务器上下载文件。利用网络资源进行备份,不需要更多的存储设备,用户只要简单地从网上将备份文件下载下来,就能解决问题,的确是一种既方便,又快捷的备份方法。随着Internet的不断发展,相信会有越来越多的人利用网络进行备份,也会有越来越多的备份方法涌现出来。4.2.4备份软件1.NortonGhostGhost以功能强大、使用方便著称,成为硬盘备份和恢复类软件中的最常用软件之一。Ghost软件是大名鼎鼎的赛门铁克公司(Symantec)的一个拳头软件,GHOST是“GeneralHardwareOrientedSoftwareTransfer”的英文缩写,意思是“面向通用型硬件传送软件”。Ghost基本上属于免费软件,很多主板厂商都随产品附送,用户只要从随机光盘中将有关文件拷贝到硬盘(注意不要将它拷贝到C盘,应该将之拷贝到D盘或E盘)或软盘中就可以了。它的文件不多且比较小,主文件Ghost.exe仅597KB,一张启动盘就可装下。要使用Ghost的功能,至少要将硬盘分为两个区以上,而且准备存储映像文件的分区最好比系统区稍大一些。Ghost工作的基本方法不同于其他的备份软件,它是将硬盘的一个分区或整个硬盘作为一个对象来操作,可以完整复制对象(包括对象的硬盘分区信息、操作系统的引导区信息等),并打包压缩成为一个映像文件(IMAGE),在需要的时候,又可以把该映像文件恢复到对应的分区或对应的硬盘中。它的功能包括两个硬盘之间的对拷、两个硬盘的分区对拷、两台计算机之间的硬盘对拷、制作硬盘的映像文件等,我们用得比较多的是分区备份功能,它能够将硬盘的一个分区压缩备份成映像文件,然后存储在另一个分区硬盘或大容量软盘中,万一原来的分区发生问题,就可以将所备件的映像文件拷回去,让分区恢复正常。基于此,我们就可以利用Ghost来备份系统和完全恢复系统。对于学校和网吧,使用Ghost软件进行硬盘对拷可迅速方便的实现系统的快速安装和恢复,而且维护起来也比较容易。下面介绍一下映像文件的制作过程。首先用启动盘启动机器到纯DOS模式下,并且不加载任何应用程序,执行Ghost.exe文件,在显示出Ghost主画面后,选择Local→Partition→ToImage,屏幕显示出硬盘选择画面和分区选择画面,请根据需要选择所需要备份的硬盘即源盘(假如只有一块硬盘按回车键即可)和分区名。接着屏幕显示出存储映像文件的画面,你可以–42–\n第4章备份技术选择相应的目标盘和文件名,默认扩展名为GHO,而且属性为隐含。然后在压缩映像文件的对话框中选择No(不压缩)、Fast(低压缩比,速度较快)、High(高压缩比,速度较慢)三者之一,这应该根据自己的机器配置来决定,在最后确认的对话框中选择“Yes”后,映像文件就开始生成了,此过程耗时大约10分钟。最好将这个映像文件的属性设定为只读,一方面可以防止意外删除、感染病毒;另一方面可以避免在对D盘进行碎片整理时,频繁移动映像文件的位置,节约整理磁盘的时间。制作了上述的映像文件,就可以放心大胆地试用各种各样的软件,修改Windows98的各种参数。万一Windows98死机了,也能迅速把它恢复成原始状态。方法是,进入Ghost主界面,选择Local→Partition→FromImage,在出现的画面中选择源盘(即存储映像文件的分区如D:、E:等)和映像文件,在接下来的对话框中选择目标盘,此处一定要注意选择正确,因为一旦错误,所有的资料将被全部覆盖。最后选“Yes”,恢复工作就开始了。一般恢复时间与备份时间相当,恢复工作结束后,软件会提醒用户重启动,此时就完成了。使用Ghost时应注意,无论是备份还是恢复分区,都应尽量在纯DOS环境下进行,一般不要从Windows或假DOS下进行相应的操作。2.SMARTBACKUP(智能备份)该软件所支持的数据备份类型十分广泛,具体来说包括安装系统软件和应用软件形成的文件;计算机自动生成或用户添加形成的个人信息及计算机使用者个人积累和编辑的文件。“智能备份”除了具有常规的备份/恢复数据文件的功能之外,还引入了计划任务的概念,使程序可以在预定的时间提醒使用者备份文件。开启“智能备份”软件,界面干净利落,功能一目了然,包括数据备份、数据恢复及系统设置,如图4.1所示。图4.1智能备份在数据备份方面,智能备份支持OE的备份,同时提供Office2000设置、QQ备份、系统文档等8种备份功能。“智能备份”也提供了对驱动程序的备份,非常实用。下面通过备份OE数据来了解一下“智能备份”的使用方法。在主界面单击“数据备份”进入备份任务和计划管理对话框;单击“添加”,选择添加任务类型,选择“OutlookExpress–43–\n计算机信息安全备份”,然后单击“确定”;在“添加新任务”对话框中,单击“下一步”进入“智能备份”对话框,选择OE标识,单击“确定”;在“选择备份文件”对话框中针对数据的备份可以做更多的选择。不同的任务类型会有不同的选择内容,继续单击“下一步”;在“设置任务属性”对话框,为备份任务设置一个名字,单击“完成”。经过上面的操作,一个任务就添加到窗口里了。现在可以继续添加其他备份任务,或者编辑和删除已经添加的任务(如图4.2所示)。图4.2添加任务添加了任务并不意味着数据已经备份,所以还要去“执行任务”。选择窗口的任务,单击“执行任务”,在备份对话框,选择此任务中需要备份的文件(如图4.3所示),单击“下一步”,在弹出的对话框里做最后的确认。假如没有什么问题,单击“立即备份”,如果需要密码保护,选取“需要密码保护”项。完成备份后,显示“完成数据备份”对话框。如果想查看备份后的文件,打开D盘(或者是其他盘)下的Backup文件夹。图4.3选择备份文件–44–\n第4章备份技术当设置了备份任务后,可以自己制定备份的频率。“智能备份”工具会按照制定的时间表自动备份的。在“备份任务和计划管理”对话框中选一个备份任务,单击“计划”(如图4.4所示);在“计划任务”对话框中取消“禁止执行计划”项,同时设置备份的时间(如图4.5所示)。以后就不用担心太忙而顾不得备份重要数据了。其他的数据备份操作基本上一样的,所以使用起来绝对没有“盲区”。计划图4.4备份任务和计划管理图4.5设置计划任务前面我们备份了OE数据,现在想恢复该怎么样操作呢?在主界面单击“数据恢复”;在“恢复管理”对话框(如图4.6所示)显示了备份的OE任务信息,选中OE任务,单击“立即恢复”;如果设置了密码,请先输入正确的密码,单击“确定”;在出现的下一个面板中选择OE中需要恢复的文件,单击“下一步”。–45–\n计算机信息安全图4.6恢复管理习题1.名词解释:数据失效、备份、24×7系统、跨平台备份、推(Push)技术、备份介质轮换。2.简述备份的内容、层次、方式及意义。3.试比较硬件备份技术和软件备份技术的优缺点。4.试比较磁盘镜像和磁盘双工两种硬件备份技术的区别。5.简述磁盘阵列的原理。6.简述双机容错的两种模式。7.简述两种利用网络资源备份的方式。8.上机练习一:熟练使用Ghost软件。9.上机练习二:熟练使用智能备份软件。–46–\n第5章密码技术计算机系统及其网络互联的爆炸性增长使得计算机用户增加了对系统存储信息和交流信息的依赖性。确保数据和资源免遭破坏是网络安全的重要前提,密码技术是保护信息安全的重要手段之一。本章将学习到以下内容。1.加密系统的基本组成及传统的加密方法。2.DES加密算法。3.IDEA加密算法。4.RSA公开密钥密码算法。5.三种常用的信息加密技术。5.1密码技术概述随着计算机的出现,计算机中保存的信息的安全问题显得越来越重要。密码技术是对计算机中的信息进行保护的最实用和最可靠的方法。密码技术对一般人来说是比较陌生的。长期以来,它只在如军事、外交、情报等很小的范围内使用。研究计算机信息加密、解密及其变换的科学称之为计算机密码学,它是数学和计算机的交叉学科,也是一门新兴的学科。随着计算机网络和计算机通信技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展,它已成为计算机安全主要的研究方向,也是计算机安全课程教学中的主要内容。密码是实现秘密通信的主要手段,是隐蔽语言、文字、图像的特种符号。凡是特种符号按照通信双方约定的方法把信息的原形隐蔽起来,不为第三者所识别的通信方式称为密码通信。在计算机中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或截获,窃取者也不能了解信息的内容,从而保证信息的安全。数据加密的一般模型如图5.1所示。在图5.1中,我们把未进行加密的数据称为明文数据或明文,用M表示;把经过加密算法加密的数据成为密文数据,用C表示;加密算法用E表示;解密算法用D表示。M经过E加密后得到C,用公式表示为C=E(M)。经网络传输,接收端收到C后,由D解出M,用公式表示为M=D(C)。图5.1所示的加解密方法必须保证算法的保密性。如果算法的保密性是基于保持算法的–47–\n计算机信息安全秘密,这种算法称为受限制的算法。受限制的算法具有历史意义,但按现在的标准,它们的保密性已远远不够。大的或经常变换的用户组织不能使用它们,因为每有一个用户离开这个组织,其他的用户就必须改换另外不同的算法。如果有人无意暴露了这个秘密,所有人都必须改变他们的算法。更糟的是,每个用户或组织都必须有他们自己的惟一算法。这样的组织不可能采用流行的硬件或软件产品,但窃听者却可以买到这些流行产品并学习算法。于是用户不得不自己编写算法并予以实现。如果这个组织中没有好的密码学家,那么他们就无法知道他们是否拥有安全的算法。尽管有以上缺陷,受限制的算法对低密级的应用来说还是很流行的,用户或者没有认识到或者不在乎他们系统中内在的问题。发送端接收端明文数据M密文数据C明文数据M加密算法E解密算法D图5.1数据加密一般模型现代密码学用密钥解决了这个问题,密钥用K表示。K可以是很多数值里的任意值,其可能值的范围叫做密钥空间。加密和解密运算都使用这个密钥(即运算都依赖于密钥,并用K作为下标表示),这样,加/解密函数现在变成:EK(M)=CDK(C)=M发送端接收端明文数据M密文数据C明文数据M加密算法E解密算法D密钥K密钥K图5.2使用一个密钥的加/解密有些算法使用不同的加密密钥和解密密钥(见图5.3),也就是说加密密钥K1与相应的解密密钥K2不同,在这种情况下:EK1(M)=CDK2(C)=M发送端接收端明文数据M密文数据C明文数据M加密算法E解密算法D加密密钥K1解密密钥K2图5.3使用两个密钥的加/解密前面我们提到过,数据加密的目的是使得入侵者在无论获得多少密文数据的条件下,都无法惟一确定出对应的明文数据。如果一个加密算法或解密机制能够满足这一条件,则我们–48–\n第5章密码技术称该算法或机制是无条件安全的。这是衡量一个算法好坏的主要依据。数据加密算法的其他衡量标准有数据的加密速度,传输过程中的抗噪声能力,以及加密对象的范围大小和密文数据的增加率等。加密速度指相应的加密算法对单位比特明文数据的加密时间,也就是加密算法E和解密算法D以及相应密钥在单位时间内处理的数据长度。抗噪声能力指密文数据经过各种不同的传输网络后,解密算法和相应的解密密钥能否准确地恢复原来的明文数据。加密对象的范围大小指相应的加密算法是否可对声音、图像、动画等多媒体信息表示的明文数据进行加密。密文数据的增加率指明文数据经过加密之后所增加的长度与明文数据之比。至今为止,比较著名的加密算法有美国的DES(DataEncryptionStandard)算法、RSA(Rivest,Shamir,Adleman三个开发人员的头一个字母组成)非对称公开密钥算法,以及瑞典开发的IDEA(InternationalDataEncryptionAlgorithm)加密算法等。近年来,由于计算机处理速度的急剧增加,有些算法在很短的时间内就被人破译(最短一次为3天即破译了DES算法)。因此,开发和建立能适应于Internet和电子商务等的密码算法就成了网络安全的重要课题之一。当前,美国正在寻求密钥长度为256位的密码系统。5.2加密方法5.2.1加密系统的组成任何加密系统,不管形式多么复杂,至少包括以下4个组成部分。(1)加密的报文,也称明文。(2)加密后的报文,也称密文。(3)加密、解密装置或算法。(4)用于加密和解密的钥匙,它可以是数字、词汇或语句。加密是在不安全的环境中实现信息安全传输的重要方法。例如:当你要发送一份文件给别人时,先用密钥将其加密成密文,当对方收到带有密文的信息后,也要用密钥将密文恢复成明文。即使在发送的过程中有人窃取了,得到的也是一些无法理解的密文信息。5.2.2四种传统加密方法传统的加密方法有4种:代码加密、替换加密、变位加密以及一次性密码簿加密。1.代码加密发送秘密消息的最简单方法,就是使用通信双方预先设定的一组代码,它简单而有效,得到了广泛的应用。例如:密文:老鼠已经出洞了明文:匪徒已出现在目标区–49–\n计算机信息安全2.替换加密明文中的每个字母或每组字母被替换成另一个或一组字母,例如下面明文中的一组字母与密文中的字母分别对应(相差4个字母)它们之间的对应关系就构成了一个替换加密器:明文字母:ABCDEFG⋯⋯密文字母:EFGHIJK⋯⋯若明文是BOOK,则与之对应的密文为FSSG。3.变位加密变位加密不隐藏原明文的字符,但却将字符重新排列。例如,先选择一个密钥,按密钥中数字与明文文字的对应关系将明文重新排序写下来,就成了密文:密钥:3145260明文:特使已安全到达0123456密文:达使全特已安到4.一次性密码簿加密如果要既保持代码加密的可靠性,又保持替换加密器的灵活性,可采用一次性密码簿进行加密。密码簿的每一页都是不同的代码表,可以用一页上的代码来加密一些词,用后毁掉;再用另一页的代码加密另一些词,直到全部的明文都被加密。破译密文的惟一方法就是获得一份相同的密码簿。5.3常用信息加密技术介绍目前经常用到的信息加密技术有对称密钥技术、不对称密钥技术和HASH技术3类,下面简单介绍。1.对称密钥所谓对称密钥就是加密和解密用的密钥是相同的。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。对称密钥是最古老的,一般说的“密电码”采用的就是对称密钥。由于对称密钥运算量小、速度快、安全强度高,因而目前仍广泛被采用。比较著名的常规密码算法有:美国的DES及其各种变形,比如TripleDES、GDES、NewDES和DES的前身Lucifer;欧洲的IDEA;日本的FEALN、LOKI91、Skipjack、RC4、RC5以及以代换密码和转轮密码为代表的古典密码等。对称加密系统最著名的是美国数据加密标准DES、AES(高级加密标准)和欧洲数据加密标准IDEA。1977年美国国家标准局正式公布实施了美国的数据加密标准DES,公开它的加密算法,–50–\n第5章密码技术并批准用于非机密单位和商业上的保密通信。随后DES成为全世界使用最广泛的加密标准。加密与解密的密钥和流程是完全相同的,区别仅仅是加密与解密使用的子密钥序列的施加顺序刚好相反。但是,经过20多年的使用,已经发现DES很多不足之处,对DES的破解方法也日趋有效。先进加密标准(AES)将会替代DES成为新一代加密标准。总之,对称密钥密码系统具有加解密速度快,安全强度高等优点,在军事,外交以及商业应用中使用越来越普遍。对称密码的优点是有很强的保密强度,且经受住时间的检验和攻击,但其密钥必须通过安全的途径传送。因此,其密钥管理成为系统安全的重要因素。2.不对称密钥所谓不对称密钥,指的是加密用的密钥和解密用的密钥不同,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。不对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。比较著名的公钥密码算法有:RSA、背包密码、McEliece密码、DiffeHellman、Rabin、Ong-Fiat-Shamir、零知识证明的算法、椭圆曲线以及EIGamal算法等等。最有影响的公钥密码算法是RSA,它能抵抗到目前为止已知的所有密码攻击。公钥密码的优点是可以适应网络的开放性要求,且密钥管理问题也较为简单,尤其可方便的实现数字签名和验证。但其算法复杂,加密数据的速率较低。尽管如此,随着现代电子技术和密码技术的发展,公钥密码算法将是一种很有前途的网络安全加密体制。当然在实际应用中人们通常将常规密码和公钥密码结合在一起使用,比如:利用DES或者IDEA来加密信息,而采用RSA来传递会话密钥。如果按照每次加密所处理的比特来分类,可以将加密算法分为序列密码和分组密码。前者每次只加密一个比特而后者则先将信息序列分组,每次处理一个组。3.Hash技术Hash技术也称为杂凑技术或散列技术,这是一个简单的不可逆过程。它原来是用于计算机中作索引的,但Hash算法在保证文件的完整性和不可改性上也有很好的用途。一般用法是在明文后加一段由明文Hash而成的密文,由于Hash过程需要一个密钥,虽然明文修改很容易,但要修改Hash后的密文就不那么容易了,由此来保证文件的完整性和不可改性。杂凑函数的简洁性和数字签名的效率相联系,杂凑值是固定的而且是很小的,相比之下数字签名的文件就要大得多。好的办法是用杂凑函数对数字签名文件进行处理,然后使用这个杂凑数来代替数字签名,很显然这将简洁得多。5.4常用加密算法5.4.1DES算法DES算法由IBM公司研制,并于1977年定为美国联邦信息加密标准。–51–\n计算机信息安全DES使用64位长的密钥,并用加密算法对以64位长度为单位的二进制数据加密,从而产生64位长度的密文数据。DES算法的工作原理是公开算法,包括加密和解密算法。然而,DES算法对密钥进行保密。只有掌握了和发送方相同密钥的人才能解读由DES算法加密的密文数据。因此,破译DES算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜56索的话,其运算次数为2。采用DES算法的数据加密模型如图5.4所示。发送端接收端明文数据M密文数据C明文数据M64加密算法64解密算法密钥与发送端同一密钥图5.4DES算法的数据加密模型DES算法的加密过程如图5.5所示。DES算法的输入是明文数据M,经初始置换后输出为M0。然后DES把M0按32位长度分为左半部分L0和右半部分R0。对数据L0和MR0,DES按照迭代公式:Li=Ri−1以及Ri=Li−1初始置换⊕f(Ri−1,Ki)(i=1,⋯,16)进行16次迭代M0运算。即在每次迭代运算中,右半部分的第i−1次数据变为左半部分的第i次数据,L0R0而左半部分第i−1次数据在和函数f(Ri−1,Ki)K1进行异或运算之后变为右半部分第i次数+f据。在最后一次迭代运算后,得到的结果R16和L16直接输入初始置换的反变换过程,并输出加密后的密文数据C。L1=R0R1=L0⊕f(R0,K1)在图5.5中,函数f(Ri−1,Ki)有两个参数Ri−1和Ki。显然Ri−1是第i−1次迭代结果的右边的32位,而Ki则是一个48位密K16钥。f(Ri−1,Ki)先将32位的Ri−1变换扩展+f成48位,记作E(Ri−1)。然后E(Ri−1)与Ki进行异或运算,得到的结果为一个新的48位比特数。这个新的48位数可被顺序地划L16=R15R16=L15⊕f(R15,K16)分为8组6位比特长地B1,B2,⋯,B8,即E(Ri−1)⊕Ki=B1B2⋯B8。紧接着,数组B1B2⋯B8经过一个S变换函数变换回长度为4个比特组地数组,初始变化的反变换即Bj→Sj(Bj),(j=1,2,⋯,8)。把Sj(Bj)顺序排列好,即得到32为函数f(Ri−1,Ki)。C综上所述,DES算法实际上由初始变图5.5DES加密算法–52–\n第5章密码技术换、左右部分地迭代以及密钥的异或运算等几部分组成。DES算法具有极高安全性,到目前为止,除了用穷举搜索法可以对DES算法进行攻击外,还没有发现其他更有效的办法。而56位长的密钥的穷举空间为256,这意味着如果一台计算机的速度是每一秒种检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。当然,随着科学技术的发展,当出现超高速计算机后,我们可考虑把DES密钥的长度再增长一些,以此来达到更高的保密程度。由上述DES算法介绍我们可以看到:DES算法中只用到64位密钥中的其中56位,而第8,16,24,⋯,64位8个位并未参与DES运算,这一点,向我们提出了一个应用上的要求,即DES的安全性是基于除了8,16,24,⋯,64位外的其余56位的组合变化256才得以保证的。因此,在实际应用中,我们应避开使用第8,16,24,⋯,64位作为有效数据位,而使用其他的56位作为有效数据位,才能保证DES算法安全可靠地发挥作用。如果不了解这一点,把密钥Key的8,16,24,⋯,64位作为有效数据使用,将不能保证DES加密数据的安全性,对运用DES来达到保密作用的系统产生数据被破译的危险,这正是DES算法在应用上的误区,留下了被人攻击、被人破译的极大隐患。5.4.2IDEA算法1.IDEA算法的相关背景1990年XueJiaLai和Massey开发出IDEA加密算法雏形,称其为PES,即“建议的加密标准”。第二年,根据有关专家对这一密码算法的分析结果,设计者对该算法进行了强化并称之为IPES,即“改进的建议加密标准”。该算法于1992年更名为IDEA(InternationalDataEncryptionAlgorithm,国际加密标准)。IDEA算法的密钥长度为128位,针对64位的数据进行加密或解密操作。设计者尽可能使该算法不受差分密码分析的影响,XueJiaLai已证明IDEA算法在其8轮迭代的第4圈之后便不受差分密码分析的影响了。如果使用穷举法进行攻击,那么获取密钥就需要进行128382=3.4×10次运算。假定用10亿个每秒能测试10亿个密钥的专用芯片来并行处理这样的13运算,需3.4×10年。目前,尚无一篇公开发表的试图对IDEA进行密码分析的文章。因此,目前而言IDEA是非常安全的。2.IDEA算法概述IDEA是一个迭代分组密码,分组长度为64比特,密钥长度为128比特。IDEA密码中使用了以下三种不同的运算:逐位异或运算;16模2加运算;1616模2+1乘运算,0与2对应。IDEA算法是由8轮迭代和随后的一个输出变换组成。它将64比特的数据分成4个子块,每个16比特,令这四个子块作为迭代第一轮的输出,全部共8轮迭代。每轮迭代都是4个子1616块彼此间以及16比特的子密钥进行异或,模2加运算,模2+1乘运算。除最后一轮外把每轮迭代输出的四个子块的第二和第三子块互换。该算法所需要的“混淆”可通过连续使用–53–\n计算机信息安全三个“不相容”的群运算于两个16比特子块来获得,并且该算法所选择使用的MA-(乘加)结构可提供必要的“扩散”。3.IDEA算法的具体描述(1)密钥生成用户输入128位长密钥Key=k1k2k3⋯k127k128IDEA总共进行8轮迭代操作,每轮需要6个子密钥,另外还需要4个额外子密钥,所以总共需要52个子密钥,这个52个子密钥都是从用户输入的128位密钥中扩展出来的。首先把输入的Key分成8个16位的子密钥,1~6号子密钥供第一轮加密使用,7~8号子密钥供第二轮使用,然后把这个128位密钥循环左移25位,把新生成的Key再分成8个16位的子密钥,1~4号子密钥供第二轮加密使用(前面已经提供了两个)5~8号子密钥供第三轮加密使用,到此我们已经得到了16个子密钥,如此继续,当循环左移了5次之后已经生成了48个子密钥,还有四个额外的子密钥需要生成,再次把Key循环左移25位,选取划分出来的8个16位子密钥的前4个作为那4个额外的加密密钥,供加密使用的52个子密钥生成完毕。K[0]K[1]K[2]K[3]K[4]K[5]⋯K[48]K[49]K[50]K[51]第一轮⋯额外密钥(2)加密明文64位数据分组被分成4个16位子分组:D0,D1,D2,D3。这4个子分组成为算法的第一轮的输入,总共有8轮。在第i轮中,假定输入的为:明文(4组):D0,D1,D2,D3密钥(6组):K1,K2,K3,K4,K5,K6执行的顺序如下:–54–\n第5章密码技术16D0和第一个子密钥(K1)模2+1乘。16D1和第二个子密钥(K2)模2加。16D2和第三个子密钥(K3)模2加。16D4和第四个子密钥(K4)模2+1乘。第(1)步和第(3)步的结果相异或。将第(2)步和第(4)步的结果相异或。16将第(5)步的结果与第五个子密钥(K5)模2+1乘。16将第(6)步和第(7)步的结果模2加。16将第(8)步的结果与第六个子密钥(K6)模2+1乘。16将第(7)步和第(9)步的结果模2加。将第(1)步和第(9)步的结果相异或。将第(3)步和第(9)步的结果相异或。将第(2)步和第(10)步的结果相异或。将第(4)步和第(10)步的结果相异或。将第(11)、(12)、(13)和(14)步的结果形成的4个子分组D0,D1,D2,D3作为输出,然后将中间两个分组(D1,D2)交换(最后一轮除外)后,作为下一轮的输入。经过8轮运算之后,有一个最终的输出D0,D1,D2,D3,对这4个输出子分组进行如下操作:16①D0和第一个额外子密钥模2+1乘。16②D1和第二个额外子密钥模2加。16③D2和第三个额外子密钥模2加。16④D3和第四个额外子密钥模2+1乘。最后,这4个子分组重新连接到一起产生密文。(3)密文解密介绍IDEA加密算法的资料较多,但是对于解密过程往往一笔带过,使读者很难真正了解IDEA的解密算法,下面我们就详细介绍一下。解密操作和加密的步骤基本相同,但是在求密钥时有所区别。首先从用户输入的128位密钥扩展出52个子密钥,存放在ULONG16Key[52]数组中,然后对这个52个子密钥进行换位操作。新位置:012345678910111213原位置:4849505146474244434540413638新位置:1415161718192021222324252627–55–\n计算机信息安全原位置:3739343530323133282924262527新位置:2829303132333435363738394041原位置:2223182019211617121413151011新位置:42434445464748495051原位置:6879450123表中的原位置行的值代表该子密钥在原密钥数组中的位置,比如新密钥数组中的第0号子密钥为原来子密钥组中的第48号子密钥,对子密钥数组换位后,就需要对某些子密钥进行1616模2+1的乘法逆或模2加法逆的替换,详情见下表(位置是针对换位后的子密钥组)。进行加法逆替换的子密钥的位置:12781314192025263132373843444950进行乘法逆替换的子密钥的位置:03691215182124273033363942454851需要变化的子密钥总共18+18=36个,另外的52–36=16个子密钥不变化。5.4.3RSA公开密钥密码算法DES算法除了可被人们使用高速计算机在较短时间内破译之外,另一个主要的缺点是它不适合Internet上的许多应用,例如电子邮件和数字签名等。这是因为DES算法的信息发送和接受双方使用相同的密钥的缘故。对于Internet用户来说,如果使用DES算法对电子邮件加密的话,则每个用户需要掌握和维持很多的密码,因为和不同的用户之间的密钥都必须是不同的。显然,这是不现实的。RSA公开密钥算法是在1978年提出的一种将加密密钥公开,并使其和解密密钥分开,使人们无法由已知的机密密钥e推导出解密密钥d的密码体制。RSA公开密钥算法又称为非对称加密法。它不同于DES算法的是:DES算法公开加密算法而对密钥进行保密,RSA算法不仅公开加密解密算法,而且还公开加密密钥e,RSA算法只对解密密钥d进行保密。虽然解密密钥d是由加密密钥e决定的,但人们无法由e计算出d。RSA公开密钥算法的特点如下:(1)RSA算法同时产生一对密钥,即加密密钥e和解密密钥d。(2)加密密钥与加密解密算法一起公开,而解密密钥d必须保密。–56–\n第5章密码技术(3)由已知加密密钥e不能推导出解密密钥d。(4)加密密钥不能用来解密,即De(C)≠M,C=Ee(M)。这里,D和E分别指公开的加密和解密算法,C指被加密过的报文,M指未加密或解密后的明文。(5)解密密钥和解密算法一起才能解读密文数据C,即Dd(C)=M。这里Dd指使用解密密钥d进行解密的解密算法。RSA公开密钥算法的基本原理如下:100首先选取两个大素数p与q(p和q为2以上的十进制数),N=pq,e和d分别是加密密钥和解密密钥,RSA算法的加密解密算法如下。e加密:C=MmodN,d解密:M=CmodN。这里,M,C均必须小于等于N。RSA算法的关键在于如何选取参数e和d。用户首先秘密地选择两个大素数p和q,并计算出N。然后根据N,用户再计算出N的欧拉函数Φ(N)=(p−1)(q−1)。然后,用户从[0,Φ(N)−1]中任选一个与Φ(N)互素的数e作为加密密钥,并公开参数e-1和N。最后根据ed=1modΦ(N),计算出解密密钥d=emodΦ(N)并进行保密。由于素数p和q是不公开的,而在p和q很大时,很难从N分解出p和q来,因此,如果不知道p和q,人们就无法从e和N推出解密密钥d。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已二十多年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。RSA的缺点主要有:(1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密;(2)分组长度太大,为保证安全性,n至少也要600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(SecureElectronicTransaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。习题1.算法衡量标准主要有哪些?2.加密系统的组成部分有哪些?3.传统的加密方法有哪几种?4.根据以下密钥和明文,用变位加密法写出密文。密钥:3245160明文:试验已成功进行5.画出DES加密算法流程图。6.不对称密钥加密技术中最著名的是哪种算法?该算法需要保密的参数有哪些?–57–\n第6章认证与数字签名信息的可认证性是信息安全的另一个重要方面。认证的目的有两个:一个是验证信息发送者的真实性,确认他没有被冒充;另一个是验证信息的完整性,确认被验证的信息在传递或存储过程中没有被篡改、重组或延迟。认证是防止敌手对系统进行主动攻击(如伪造、篡改信息等)的一种重要技术。认证技术主要包括数字签名、身份识别和信息的完整性校验等技术。在认证体制中,通常存在一个可信的第三方,用于仲裁、颁发证书和管理某些机密信息。在日常生活中,经常需要人们签署各种信件和文书,传统上都是用手写签名或印章。签名的作用是认证、核准和生效。随着信息时代的来临,人们希望对越来越多的电子文件进行迅速的、远距离的签名,这就是数字签名。本章将学习以下主要内容。1.信息认证技术简介。2.报文摘要、数字签名、数字证书。3.公钥基础设施PKI。6.1信息认证技术6.1.1信息认证技术简介常用的信息认证技术主要有数字摘要、数字信封、数字签名、数字时间戳及数字证书等。1.数字摘要(报文摘要)数字摘要是采用单向Hash函数对文件中若干重要元素进行某种变换运算得到固定长度的摘要码,并在传输信息时将之加入文件一同送给接收方,接收方收到文件后,用相同的方法进行变换运算,若得到的结果与发送来的摘要码相同,则可断定文件未被篡改,反之亦然。2.数字信封数字信封是用加密技术来保证只有规定的特定收信人才能阅读信的内容。在数字信封中,信息发送方采用对称密钥来加密信息,然后将此对称密钥用接收方的公开密钥来加密(这部分称为数字信封)之后,将它和信息一起发送给接收方,接收方先用相应的私有密钥打开–58–\n第6章认证与数字签名数字信封,得到对称密钥,然后使用对称密钥解开信息。这种技术的安全性相当高。3.数字签名日常生活中,通常用对某一文档进行签名来保证文档的真实有效性,防止其抵赖。在网络环境中,可以用电子数字签名作为模拟。把Hash函数和公钥算法结合起来,可以在提供数据完整性的同时保证数据的真实性。完整性保证传输的数据没有被修改,而真实性则保证是由确定的合法者产生的Hash,而不是由其他人假冒。而把这两种机制结合起来就可以产生数字签名。4.数字时间戳在书面合同中,文件签署的日期和签名一样均是防止文件被伪造和篡改的关键性内容。而在电子交易中,同样需对交易文件的日期和时间信息采取安全措施,而数字时间戳服务就能提供电子文件发表时间的安全保护。数字时间戳服务(DTS)是网络安全服务项目,由专门的机构提供。时间戳是一个经加密后形成的凭证文档,它包括三个部分:需加时间戳的文件的摘要、DTS收到文件的日期和时间及DTS的数字签名。5.数字证书在交易支付过程中,参与各方必须利用认证中心签发的数字证书来证明各自的身份。所谓数字证书,就是用电子手段来证实一个用户的身份及用户对网络资源的访问权限。数字证书是用来惟一确认安全电子商务交易双方身份的工具。由于它由证书管理中心做了数字签名,因此任何第三方都无法修改证书的内容。任何信用卡持有人只有申请到相应的数字证书,才能参加安全电子商务的网上交易。数字证书一般有四种类型:客户证书、商家证书、网关证书及CA系统证书。6.1.2报文摘要信息的完整性和认证是指信息的接受者能够检验收到的消息是否真实。检验的内容包括:消息的来源、消息的内容是否被篡改、消息是否被重放。消息的完整性经常通过散列技术来实现。散列(Hash)函数可以把任意长度的输入串变化成固定长度的输出串,它是一种单向函数,根据输出结果很难求出输入值,并且可以破坏原有数据的数据结构。因此,散列函数不仅应用于信息的完整性,而且经常应用于数字签名。6.1.2.1散列函数的用途1.验证数据的完整性发送方将数据报文和报文摘要一同发送,接收方通过计算报文摘要与发来数据报文比较,相同则说明数据报文未经修改。由于在报文摘要的计算过程中一般是将一个双方共享的秘密信息连接上实际报文一同参与摘要的计算,不知道秘密信息将很难伪造一个匹配的摘要,从而保证了接收方可以辨认出伪造或篡改过的报文。–59–\n计算机信息安全2.用户认证该功能实际上是验证数据的完整性功能的延伸。当一方希望验证对方,但又不希望验证秘密在网络上传送。这时一方可以发送一段随机报文,要求对方将秘密信息连接上该报文作摘要后发回,接收方可以通过验证摘要是否正确来确定对方是否拥有秘密信息,从而达到验证对方的目的。6.1.2.2散列函数的要求散列函数的要求如下。(1)接受的输入报文数据没有长度限制。(2)对任何输入报文数据生成固定长度的摘要(数字指纹)输出。(3)由报文能方便地算出摘要。(4)难以对指定的摘要生成一个报文,由该报文可以得出指定的摘要。(5)难以生成两个不同的报文具有相同的摘要。6.1.2.3报文摘要算法报文摘要算法(MessageDigestAlgorithms)即采用单向Hash算法将需要加密的明文进行摘要,而产生具有固定长度的单向散列(Hash)值。其中,散列函数(HashFunctions)是将一个不同长度的报文转换成一个数字串(即报文摘要)的公式,该函数不需要密钥,公式决定了报文摘要的长度。报文摘要和非对称加密一起,提供数字签名的方法。报文摘要算法主要有安全散列标准、MDx系列标准。1.安全散列算法安全散列算法(SecureHashAlgorithm,SHA)是一种报文摘要算法,它产生160位的散列值。SHA已经被美国政府核准作为标准,即FIPS180-1SecureHashStandard(SHS),FIPS规定必须用SHS实施数字签名算法。在产生与证实数字签名中过程中用到的Hash函数也有相应的标准做出规定。2.MDx散列算法MDx散列算法包括MD2、MD4、MD5,是由RSA创始人之Rivest发明的报文摘要算法。其中MD2最慢,MD4最快,MD5是MD4的一个变种。MD5对MD4做了改进,计算速度比MD4稍慢,但安全性能得到了进一步改善。MD5在计算中使用了64个32位常数,最终生成一个128位的散列值。详细信息可参见RFC1319(MD5)、RFC1320(MD4)、RFC1321(MD2)。6.2数字签名数字签名与传统的手写签名有很大的差别。首先,手写签名是被签署文件的物理组成部–60–\n第6章认证与数字签名分,而数字签名不是;其次,手写签名不易拷贝,而数字签名正好相反,因此必须阻止一个数字签名的重复使用;第三,手写签名是通过与一个真实的手写签名比较来进行验证,而数字签名是通过一个公开的验证算法来验证。数字签名的签名算法至少要满足以下条件:签名者事后不能否认;接受者只能验证;任何人不能伪造(包括接受者);双方对签名的真伪发生争执时,有第三方进行仲裁。数字签名的算法很多,应用最为广泛的三种是:Hash签名、DSS签名和RSA签名。6.2.1数字签名基本概念数字签名就是通过一个单向函数对要传送的报文进行处理得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串。用这个字符串来代替书写签名或印章,起到与书写签名或印章同样的法律效用。国际社会已开始制定相应的法律、法规,把数字签名作为执法的依据。目前的数字签名(DigitalSignature)是建立在公开密钥体制基础上,它是公开密钥加密技术的另一类应用。其使用方式是:报文的发送方从报文文本中生成一个128位或160位的单向散列值(或报文摘要),并用自己的私有密钥对这个散列值进行加密,形成发送方的数字签名,然后,将这个数字签名作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先从接收到的原始报文中计算出散列值(或报文摘要),接着再用发送方的公开密钥来对报文附加的数字签名进行解密,如果这两个散列值相同,那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文鉴别与验证,保证报文的完整性、权威性和发送者对所发报文的不可抵赖性。数字签名机制提供了一种鉴别方法,普遍用于银行、电子贸易等,以解决伪造、抵赖、冒充、篡改等问题。数字签名与数据加密完全独立。数据可以既签名又加密,只签名,只加密,当然,也可以既不签名也不加密。1.数字签名应具有的性质一种完善的数字签名应满足以下三个条件。(1)签名者事后不能否认自己的签名。(2)其他任何人均不能伪造签名,也下能对接收或发送的信息进行篡改、伪造和冒充。(3)签名必须能够由第三方验证,以解决争议。2.数字签名的设计要求数字签名的设计要求如下。(1)签名必须是依赖于被签名信息的一个位串模式。(2)签名必须使用某些对发送者是惟一的信息,以防止双方的伪造与否认。(3)必须相对容易生成该数字签名。(4)必须相对容易识别和验证该数字签名。(5)伪造该数字签名在计算复杂性意义上具有不可行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个数字签名。–61–\n计算机信息安全(6)在存储器中保存一个数字签名副本是现实可行的。3.数字签名分类(1)按方式分ò直接数字签名(DirectDigitalSignature);ò仲裁数字签名(ArbitratedDigitalSignature)。(2)按安全性分ò无条件安全的数字签名;ò计算上安全的数字签名。(3)按可签名次数分ò一次性的数字签名;ò多次性的数字签名。6.2.2数字签名算法实现数字签名有很多方法,目前数字签名采用较多的是公钥加密技术,如基于RSADataSecurity公司的PKCS(PublicKeyCryptographyStandards)、DSA(DigitalSignatureAlgorithm)、x.509、PGP(PrettyGoodPrivacy)。1994年美国标准与技术协会公布了数字签名标准(DSS)而使公钥加密技术广泛应用。同时应用散列算法(Hash)也是实现数字签名的一种方法。应用广泛的数字签名方法主要有三种,即RSA签名、DSS签名和Hash签名。这三种算法可单独使用,也可综合在一起使用。数字签名是通过密码算法对数据进行加、解密变换实现的,用DES算法、RSA算法都可实现数字签名。但三种技术或多或少都有缺陷,或者没有成熟的标准。1.Hash签名Hash签名不属于强计算密集型算法,应用较广泛。很多少量现金付款系统,如DEC的Millicent和CyberCash的CyberCoin等都使用Hash签名。使用较快的算法,可以降低服务器资源的消耗,减轻中央服务器的负荷。Hash的主要局限是接收方必须持有用户密钥的副本以检验签名,因为双方都知道生成签名的密钥,较容易攻破,存在伪造签名的可能。如果中央或用户计算机中有一个被攻破,那么其安全性就受到了威胁。2.RSA签名用RSA或其他公开密钥密码算法的最大方便是没有密钥分配问题(网络越复杂、网络用户越多,其优点越明显)。因为公开密钥加密使用两个不同的密钥,其中有一个是公开的,另一个是保密的。公开密钥可以保存在系统目录内、未加密的电子邮件信息中、电话黄页(商业电话)上或公告牌里,网上的任何用户都可获得公开密钥。而私有密钥是用户专用的,由用户本身持有,它可以对由公开密钥加密信息进行解密。3.DSS签名DSS数字签名是由美国国家标准化研究院和国家安全局共同开发的。由于它是由美国政府颁布实施的,主要用于与美国政府做生意的公司,其他公司则较少使用,它只是一个签名–62–\n第6章认证与数字签名系统,而且美国政府不提倡使用任何削弱政府窃听能力的加密软件,认为这才符合美国的国家利益。DSS和RSA采用了公钥算法,不存在Hash的局限性。和Hash签名相比,在公钥系统中,由于生成签名的密钥只存储于用户的计算机中,安全系数大一些。6.3数字证书6.3.1什么是数字证书数字证书就是互联网通信中标志通信各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个权威机构——CA机构,又称为证书授权(CertificateAuthority)中心发行的,CA是负责签发证书、认证证书、管理已颁发证书的机关。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。CA也拥有一个证书(内含公钥)和私钥。网上的公众用户通过验证CA的签字从而信任CA,任何人都可以得到CA的证书(含公钥),用以验证它所签发的证书。如果用户想得到一份属于自己的证书,他应先向CA提出申请。在CA判明申请者的身份后,便为他分配一个公钥,并且CA将该公钥与申请者的身份信息绑在一起,为之签字后便形成证书发给申请者。如果一个用户想鉴别另一个证书的真伪,他就用CA的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。人们可以在网上用它来识别对方的身份。从证书的用途来看,数字证书可分为签名证书和加密证书。签名证书主要用于对用户信息进行签名,以保证信息的不可否认性;加密证书主要用于对用户传送信息进行加密,以保证信息的真实性和完整性。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITU-TX.509国际标准。一个标准的X.509数字证书包含以下一些内容。(1)证书的版本信息。(2)证书的序列号,每个证书都有一个惟一的证书序列号。(3)证书所使用的签名算法。(4)证书的发行机构名称,命名规则一般采用X.500格式。(5)证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049。(6)证书所有人的名称,命名规则一般采用X.500格式。(7)证书所有人的公开密钥。(8)证书发行者对证书的签名。–63–\n计算机信息安全6.3.2为什么要用数字证书基于Internet的电子商务技术使在网上购物的顾客能够极其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险。买方和卖方都必须对于在Internet网上进行的一切金融交易运作都是真实可靠的,并且要使顾客、商家和企业等交易各方都具有绝对的信心,因而Internet电子商务系统必须保证具有十分可靠的安全保密技术。也就是说,必须保证网络安全的四大要素,即信息传输的保密性、数据交换的完整性、发送信息的不可否认性、交易者身份的确定性。(1)信息的保密性。交易中的商务信息均有保密的要求。如信用卡的账号和用户名被人知悉,就可能被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。因此在电子商务的信息传播中一般均有加密的要求。(2)交易者身份的确定性。网上交易的双方很可能素昧平生,相隔千里。要使交易成功首先要能确认对方的身份,对商家要考虑客户端不能是骗子,而客户也会担心网上的商店不是一个玩弄欺诈的黑店。因此能方便而可靠地确认对方身份是交易的前提。对于为顾客或用户开展服务的银行、信用卡公司和销售商店,为了做到安全、保密、可靠地开展服务活动,都要进行身份认证的工作。对有关的销售商店来说,他们对顾客所用的信用卡的号码是不知道的,商店只能把信用卡的确认工作完全交给银行来完成。银行和信用卡公司可以采用各种保密与识别方法,确认顾客的身份是否合法,同时还要防止发生拒付款问题以及确认订货和订货收据信息等。(3)不可否认性。由于商情的千变万化,交易一旦达成是不能被否认的。否则必然会损害一方的利益。例如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如收单方能否认收到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此电子交易通信过程的各个环节都必须是不可否认的。(4)不可修改性。交易的文件是不可被修改的,如上例所举的订购黄金。供货单位在收到订单后,发现金价大幅上涨了,如其能改动文件内容,将订购数1千克改为1克,则可大幅受益,那么订货单位可能就会因此而蒙受损失。因此电子交易文件也要能做到不可修改,以保障交易的严肃和公正。人们在感叹电子商务的巨大潜力的同时,不得不冷静地思考,在人与人互不见面的计算机互联网上进行交易和作业时,怎么才能保证交易的公正性和安全性,保证交易双方身份的真实性。国际上已经有比较成熟的安全解决方案,那就是建立安全证书体系结构。数字安全证书提供了一种在网上验证身份的方式。安全证书体制主要采用了公开密钥体制,其他还包括对称密钥加密、数字签名、数字信封等技术。我们可以使用数字证书,通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证:信息除发送方和接收方外不被其他人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。–64–\n第6章认证与数字签名6.3.3证书与证书授权中心CA机构作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。由此可见,建设证书授权(CA)中心,是开拓和规范电子商务市场必不可少的一步。为保证用户之间在网上传递信息的安全性、真实性、可靠性、完整性和不可抵赖性,不仅需要对用户的身份真实性进行验证,也需要有一个具有权威性、公正性、惟一性的机构,负责向电子商务的各个主体颁发并管理符合国内、国际安全电子交易协议标准的电子商务安全证书。CA是整个网上电子交易安全的关键环节。它主要负责产生、分配并管理所有参与网上交易的实体所需的身份认证数字证书。每一份数字证书都与上一级的数字签名证书相关联,最终通过安全链追溯到一个已知的并被广泛认为是安全、权威、足以信赖的机构——根认证中心(根CA)。电子交易的各方都必须拥有合法的身份,即由数字证书认证中心机构(CA)签发的数字证书,在交易的各个环节,交易的各方都需检验对方数字证书的有效性,从而解决了用户信任问题。CA涉及到电子交易中各交易方的身份信息、严格的加密技术和认证程序。基于其牢固的安全机制,CA应用可扩大到一切有安全要求的网上数据传输服务。数字证书认证解决了网上交易和结算中的安全问题,其中包括建立电子商务各主体之间的信任关系,即建立安全认证体系(CA);选择安全标准(如SET、SSL);采用高强度的加、解密技术。其中安全认证体系的建立是关键,它决定了网上交易和结算能否安全进行,因此,数字证书认证中心机构的建立对电子商务的开展具有非常重要的意义。认证中心(CA),是电子商务体系中的核心环节,是电子交易中信赖的基础。它通过自身的注册审核体系,检查核实进行证书申请的用户身份和各项相关信息,使网上交易的用户属性客观真实性与证书的真实性一致。认证中心作为权威的、可信赖的、公正的第三方机构,专门负责发放并管理所有参与网上交易的实体所需的数字证书。概括地说,认证中心(CA)的功能有:证书发放、证书更新、证书撤销和证书验证。CA的核心功能就是发放和管理数字证书,具体描述如下。(1)接收验证最终用户数字证书的申请。(2)确定是否接受最终用户数字证书的申请-证书的审批。(3)向申请者颁发、拒绝颁发数字证书-证书的发放。(4)接收、处理最终用户的数字证书更新请求-证书的更新。(5)接收最终用户数字证书的查询、撤销。(6)产生和发布证书废止列表(CRL)。(7)数字证书的归档。(8)密钥归档。(9)历史数据归档。认证中心为了实现其功能,主要由以下三部分组成。–65–\n计算机信息安全(1)注册服务器:通过WebServer建立的站点,可为客户提供每日24小时的服务。因此客户可在自己方便的时候在网上提出证书申请和填写相应的证书申请表,免去了排队等候等烦恼。(2)证书申请受理和审核机构:负责证书的申请和审核。它的主要功能是接受客户证书申请并进行审核。(3)认证中心服务器:是数字证书生成、发放的运行实体,同时提供发放证书的管理、证书废止列表(CRL)的生成和处理等服务。6.3.4数字证书的工作流程每一个用户有一个各不相同的名字,一个可信的证书认证中心(CA)给每个用户分配一个惟一的名字并签发一个包含名字和用户公开密钥的证书。如果甲想和乙通信,他首先必须从数据库中取得乙的证书,然后对它进行验证。如果他们使用相同的CA,事情就很简单。甲只需验证乙证书上CA的签名;如果他们使用不同的CA,问题就复杂了。甲必须从CA的树形结构底部开始,从底层CA往上层CA查询,一直追踪到同一个CA为止,找出共同的信任CA。证书可以存储在网络中的数据库中。用户可以利用网络彼此交换证书。当证书撤销后,它将从证书目录中删除,然而签发此证书的CA仍保留此证书的副本,以备日后解决可能引起的纠纷。如果用户的密钥或CA的密钥被破坏,从而导致证书的撤销。每一个CA必须保留一个已经撤销但还没有过期的证书废止列表(CRL)。当甲收到一个新证书时,首先应该从证书废止列表(CRL)中检查证书是否已经被撤销。现有持证人甲向持证人乙传送数字信息,为了保证信息传送的真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名,其传送过程如下。(1)甲准备好要传送的数字信息(明文)。(2)甲对数字信息进行哈希(hash)运算,得到一个信息摘要。(3)甲用自己的私钥(SK)对信息摘要进行加密得到甲的数字签名,并将其附在数字信息上。(4)甲随机产生一个加密密钥(如DES密钥),并用此密钥对要发送的信息进行加密,形成密文。(5)甲用乙的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给乙。(6)乙收到甲传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。(7)乙用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。(8)乙用甲的公钥(PK)对甲的数字签名进行解密,得到信息摘要。乙用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。(9)乙将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。–66–\n第6章认证与数字签名6.3.5数字证书的应用数字安全证书主要应用于电子政务、网上购物、企业与企业的电子贸易、安全电子邮件、网上证券交易、网上银行等方面。CA中心还可以与企业代码证中心合作,将企业代码证和企业数字安全证书一体化,为企业网上交易、网上报税、网上报关、网上作业奠定基础,免去企业面对众多的窗口服务的苦累。1.网上交易利用数字安全证书的认证技术,对交易双方进行身份确认以及资质的审核,确保交易者信息的惟一性和不可抵赖性,保护了交易各方的利益,实现安全交易。2.网上办公网上办公系统综合国内政府、企事业单位的办公特点,提供了一个虚拟的办公环境,并在该系统中嵌入数字认证技术,展开网上政文的上传下达,通过网络联结各个岗位的工作人员,通过数字安全证书进行数字加密和数字签名,实行跨部门运作,实现安全便捷的网上办公。3.网上招标以往的招投标受时间、地域、人文的影响,存在着许多弊病,例如外地投标者的不便、招投标各方的资质,以及招标单位和投标单位之间存在的猫腻关系。而实行网上的公开招投标,经贸委利用数字安全证书对企业进行身份确认,招投标企业只有在通过经贸委的身份和资质审核后,才可在网上展开招投标活动,从而确保了招投标企业的安全性和合法性,双方企业通过安全网络通道了解和确认对方的信息,选择符合自己条件的合作伙伴,确保网上的招投标在一种安全、透明、信任、合法、高效的环境下进行。通过该网上招投标系统,使企业能够制定正确的投资取向,根据自身的实际情况,选择合适的合作者。4.网上报税利用基于数字安全证书的用户身份认证技术对网上报税系统中的申报数据进行数字签名,确保申报数据的完整性,确认系统用户的真实身份和申报数据的真实来源,防止出现抵赖行为和他人伪造篡改数据;利用基于数字安全证书的安全通信协议技术,对网络上传输的机密信息进行加密,可以防止商业机密或其他敏感信息泄露。5.安全电子邮件邮件的发送方利用接收方的公开密钥对邮件进行加密,邮件接受方用自己的私有密钥解密,确保了邮件在传输过程中信息的安全性、完整性和惟一性。6.4公钥基础设施(PKI)为解决Internet的安全问题,世界各国对其进行了多年的研究,初步形成了一套完整的Internet安全解决方案,即目前被广泛采用的PKI(PublicKeyInfrastructure——公钥基础设施)–67–\n计算机信息安全技术。PKI技术采用证书管理公钥,通过第三方的可信任机构—认证中心CA(CertificateAuthority),把用户的公钥和用户的其他标识信息(如名称、E-mail、身份证号等)捆绑在一起,在Internet上验证用户的身份。目前,通用的办法是采用建立在PKI基础之上的数字证书,通过把要传输的数字信息进行加密和签名,保证信息传输的机密性、真实性、完整性和不可否认性,从而保证信息的安全传输。6.4.1PKI基础什么是PKI?PKI就是利用公开密钥理论和技术建立的提供安全服务的基础设施。所谓基础设施,就是在某个大环境下普遍适用的系统和准则。公开密钥基础设施(PKI)则是希望从技术上解决网上身份认证、电子信息的完整性和不可抵赖性等安全问题,为网络应用(如浏览器、电子邮件、电子交易)提供可靠的安全服务。PKI基础设施把公钥密码和对称密码结合起来,在Internet网上实现密钥的自动管理,保证网上数据的安全传输。从广义上讲,所有提供公钥加密和数字签名服务的系统,都可叫做PKI系统,PKI的主要目的是通过自动管理密钥和证书,可以为用户建立起一个安全的网络运行环境,使用户可以在多种应用环境下方便的使用加密和数字签名技术,从而保证网上数据的机密性、完整性、有效性,数据的机密性是指数据在传输过程中,不能被非授权者偷看;数据的完整性是指数据在传输过程中不能被非法篡改;数据的有效性是指数据不能被否认。一个有效的PKI系统必须是安全的和透明的,用户在获得加密和数字签名服务时,不需要详细地了解PKI是怎样管理证书和密钥的,一个典型、完整、有效的PKI应用系统至少应具有以下部分。ò公钥密码证书管理。ò黑名单的发布和管理。ò密钥的备份和恢复。ò自动更新密钥。ò自动管理历史密钥。ò支持交叉认证。由于PKI基础设施是目前比较成熟、完善的Internet网络安全解决方案,国外的一些大的网络安全公司纷纷推出一系列的基于PKI的网络安全产品,如美国的Verisign、IBM,加拿大的Entrust、SUN等安全产品供应商为用户提供了一系列的客户端和服务器端的安全产品,为电子商务的发展以及政府办公网、EDI等提供了安全保证。简言之,PKI(PublicKeyInfrastructure,公钥基础设施)就是提供公钥加密和数字签名服务的系统,目的是为了管理密钥和证书,保证网上数字信息传输的机密性、真实性、完整性和不可否认性。6.4.2PKI密码算法及应用1.单钥密码算法(加密)单钥密码算法,又称对称密码算法:是指加密密钥和解密密钥为同一密钥的密码算法。–68–\n第6章认证与数字签名因此,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码)。在对称密钥密码算法中,加密运算与解密运算使用同样的密钥。通常,使用的加密算法比较简便高效,密钥简短,破译极其困难;由于系统的保密性主要取决于密钥的安全性,所以,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题。最典型的是DES(DataEncryptionStandard)算法。2.双钥密码算法(加密、签名)双钥密码算法,又称公钥密码算法:是指加密密钥和解密密钥为两个不同密钥的密码算法。公钥密码算法不同于单钥密码算法,它使用了一对密钥:一个用于加密信息,另一个则用于解密信息,通信双方无需事先交换密钥就可进行保密通信。其中加密密钥不同于解密密钥,加密密钥公之于众,谁都可以用;解密密钥只有解密人自己知道。这两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一个密钥进行解密。若以公钥作为加密密钥,以用户专用密钥(私钥)作为解密密钥,则可实现多个用户加密的信息只能由一个用户解读;反之,以用户私钥作为加密密钥而以公钥作为解密密钥,则可实现由一个用户加密的信息而多个用户解读。前者可用于数字加密,后者可用于数字签名。在通过网络传输信息时,公钥密码算法体现出了单密钥加密算法不可替代的优越性。对于参加电子交易的商户来说,希望通过公开网络与成千上万的客户进行交易。若使用对称密码,则每个客户都需要由商户直接分配一个密码,并且密码的传输必须通过一个单独的安全通道。相反,在公钥密码算法中,同一个商户只需自己产生一对密钥,并且将公开密钥对外公开。客户只需用商户的公开密钥加密信息,就可以保证将信息安全地传送给商户。公钥密码算法中的密钥依据性质划分,可分为公钥和私钥两种。用户产生一对密钥,将其中的一个向外界公开,称为公钥;另一个则自己保留,称为私钥。凡是获悉用户公钥的任何人若想向用户传送信息,只需用用户的公钥对信息加密,将信息密文传送给用户便可。因为公钥与私钥之间存在的依存关系,在用户安全保存私钥的前提下,只有用户本身才能解密该信息,任何未受用户授权的人包括信息的发送者都无法将此信息解密。RSA公钥密码算法是一种公认十分安全的公钥密码算法。RSA公钥密码算法是目前网络上进行保密通信和数字签名的最有效的安全算法之一。RSA算法的安全性基于数论中大素数分解的困难性,所以,RSA需采用足够大的整数。因子分解越困难,密码就越难以破译,加密强度就越高。RSA既能用于加密又能用于数字签名,在已提出的公开密钥算法中,RSA最容易理解和实现的,这个算法也是最流行的。RSA的安全基于大数分解的难度。3.公开密钥数字签名算法(签名)DSA(DigitalSignatureAlgorithm,数字签名算法,用作数字签名标准的一部分),它是另一种公开密钥算法,它不能用作加密,只用作数字签名。DSA使用公开密钥,为接受者验证数据的完整性和数据发送者的身份。它也可用于由第三方去确定签名和所签数据的真实性。DSA算法的安全性基于求解离散对数的困难性,这类签字标准具有较大的兼容性和适用性,成为网络安全体系的基本构件之一。从上面的分析看,公钥密码技术可以提供网络中信息安全的全面解决方案。采用公钥技–69–\n计算机信息安全术的关键是如何确认某个人真正的公钥。在PKI中,为了确保用户及他所持有密钥的正确性,公共密钥系统需要一个值得信赖而且独立的第三方机构充当认证中心(CA),来确认声称拥有公共密钥的人的真正身份。要确认一个公共密钥,CA首先制作一张“数字证书”,它包含用户身份的部分信息及用户所持有的公共密钥,然后CA利用本身的密钥为数字证书加上数字签名。CA目前采用的标准是X.509V3。任何想发放自己公钥的用户,可以去认证中心(CA)申请自己的证书。CA中心在认证该人的真实身份后,颁发包含用户公钥的数字证书,它包含用户的真实身份,并证实用户公钥的有效期和作用范围(用于交换密钥还是数字签名)。其他用户只要能验证证书是真实的,并且信任颁发证书的CA,就可以确认用户的公钥。6.4.3密钥对的用法现在,我们将讲述PKI加密/签名体系是如何实现数据安全传输的。加密密钥对:发送者欲将加密数据发送给接收者,首先要获取接收者的公钥,并用此公钥加密要发送的数据,即可发送;接收者在收到数据后,只需使用自己的私钥即可将数据解密。此过程中,假如发送的数据被非法截获,由于私钥并未上网传输,非法用户将无法将数据解密,更无法对文件做任何修改,从而确保了文件的机密性和完整性。签名密钥对:此过程与加密过程对应。接收者收到数据后,使用私钥对其签名并通过网络传输给发送者,发送者用公钥解开签名,由于私钥具有惟一性,可证实此签名信息确实为由接收者发出。此过程中,任何人都没有私钥,因此无法伪造接收方的签名或对其作任何形式的篡改,从而达到数据真实性和不可抵赖性的要求。简言之,用于加密的密钥对:用公钥加密,用私钥解密。用于签名的密钥对:用私钥签名,用公钥验证。6.4.4PKI的基本组成完整的PKI系统必须具有权威认证机关(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。1.认证机关(CA)即数字证书的申请及签发机关,CA必须具备权威性的特征。2.数字证书库用于存储已签发的数字证书及公钥,用户可由此获得所需的其他用户的证书及公钥。3.密钥备份及恢复系统如果用户丢失了用于解密数据的密钥,则数据将无法被解密,这将造成合法数据丢失。为避免这种情况的,PKI提供备份与恢复密钥的机制。但须注意,密钥的备份与恢复必须由可信的机构来完成。并且,密钥备份与恢复只能针对解密密钥,签名私钥为确保其惟一性而不能够作备份。–70–\n第6章认证与数字签名4.证书作废系统证书作废处理系统是PKI的一个必备的组件。与日常生活中的各种身份证件一样,证书有效期以内也可能需要作废,原因可能是密钥介质丢失或用户身份变更等。为实现这一点,PKI必须提供作废证书的一系列机制。5.应用接口PKI的价值在于使用户能够方便地使用加密、数字签名等安全服务,因此一个完整的PKI必须提供良好的应用接口系统,使得各种各样的应用能够以安全、一致、可信的方式与PKI交互,确保安全网络环境的完整性和易用性。6.4.5PKI的应用前景PKI技术可运用于众多领域,其中包括:虚拟专用网络(VPN)、安全电子邮件、Web交互安全及倍受瞩目的电子商务安全领域。基于网络环境下数据加密/签名的应用将越来越广泛,PKI作为技术基础可以很好地实现通行于网络的统一标准的身份认证,其中既包含有线网络,也涵盖了无线通信领域。因此,我们可以预见,PKI的应用前景将无比广阔。习题1.常用的信息认证技术主要有哪些?2.散列(Hash)函数的用途有哪些?3.有哪几种常用的数字签名算法?试比较他们的特点。4.电子商务活动中使用数字证书有何作用?5.完整的PKI系统由哪几部分组成?–71–\n第7章网络安全技术随着网络技术的快速发展,黑客工具不仅变得越来越先进,而且也越来越容易被一般人获取和滥用。黑客技术的提升和黑客工具的泛滥,造成大量的企业、机构和个人的电脑系统遭受程度不同的入侵和攻击,或面临随时被攻击的危险。这就迫使大家不得不加强对自身电脑网络系统的安全防护,甚至追求所谓彻底的、一劳永逸的、100%的网络安全解决方案。但是,从理论上讲没有一个系统是绝对安全的,除非这个系统没有和外界有任何的联系,安全总是相对的。网络入侵和安全防范实际上就是指网络攻防技术。攻击技术包括目标网络信息收集技术,目标网络权限提升技术,目标网络渗透技术,目标网络摧毁技术四大类。每一类技术,都是日新月异、不断更新的。所以在网络的安全防范上,我们面对越来越多的新技术的攻击。网络安全防护技术具体来说包括攻击检测,攻击防范,攻击后的恢复这三个大方向,每一个方向上有代表性的产品:入侵检测系统负责进行攻击检测,防火墙和强制访问控制系统负责攻击防范,攻击后的恢复则由自动恢复系统来解决。这三大方向就说明了在网络安全防护上的多层安全防护措施。本章将学习以下主要内容。1.网络存在的威胁、网络安全技术分类、黑客的历史与现状。2.网络攻击的分类及一般步骤。3.扫描、监听与嗅探。4.口令破解及如何设置安全的口令。5.如何实现隐藏以及几种常见的入侵攻击方法。6.后门和特洛伊木马。7.1网络安全概述7.1.1网络存在的威胁随着网络的普及,安全日益成为影响网络效能的重要问题。Internet所具有的开放性、国际性和自由性在增加应用自由度的同时,对安全提出了更高的要求。(1)开放性的网络,导致网络的技术是全开放的,因而网络所面临的破坏和攻击可能是多方面的。例如,可能来自物理传输线路的攻击,可以对网络通信协议和实现实施攻击,可–72–\n第7章网络安全技术以是对软件实施攻击,也可以对硬件实施攻击。(2)国际性的网络还意味着网络的攻击不仅仅来自本地网络的用户,它可以来自Internet上的任何一个机器。也就是说,网络安全所面临的是一个国际化的挑战。(3)自由意味着网络最初对用户的使用并没有提供任何的技术约束,用户可以自由地访问网络,自由地使用和发布各种类型的信息。用户只对自己的行为负责,而没有任何的法律限制。尽管Internet的发展给政府机构、企事业单位带来了革命性的改革,但如何保护机密信息不受黑客和间谍的入侵,已成为其重要事情之一。一般认为,目前网络存在的威胁主要表现如下几点。ò非授权访问,指没有预先经过同意,就使用网络或计算机资源,如有意避开系统访问控制机制,对网络设备及资源进行非正常使用,或擅自扩大权限,越权访问信息等。它主要有以下几种形式:假冒、身份攻击、非法用户进入网络系统进行违法操作、合法用户以未授权方式进行操作等。ò信息泄漏或丢失,指敏感数据在有意或无意中被泄漏出去或丢失。它通常包括,信息在传输中丢失或泄漏(如“黑客”们利用网络监听、电磁泄漏或搭线窃听等方式可截获机密信息,如用户口令、账号等重要信息,或通过对信息流向、流量、通信频度和长度等参数的分析,推测出有用信息),信息在存储介质中丢失或泄漏,通过建立隐蔽隧道等窃取敏感信息等。ò破坏数据完整性,指以非法手段窃得对数据的使用权,删除、修改、插入或重发某些重要信息,以取得有益于攻击者的响应;恶意添加,修改数据,以干扰用户的正常使用。ò拒绝服务攻击,指它不断对网络服务系统进行干扰,改变其正常的作业流程,执行无关程序使系统响应减慢甚至瘫痪,影响正常用户的使用,甚至使合法用户被排斥而不能进入计算机网络系统或不能得到相应的服务。ò利用网络传播病毒,指通过网络传播计算机病毒,其破坏性大大高于单机系统,而且用户很难防范。7.1.2网络安全技术简介1.入侵检测技术入侵检测技术是近年出现的新型网络安全技术,目的是提供实时的入侵检测及采取相应的防护手段,如记录证据用于跟踪和恢复、断开网络连接等。实时入侵检测能力之所以重要,首先因为它能够对付来自内部网络的攻击,其次它能够减少被黑客入侵的时间。基于主机的入侵检测系统用于保护关键应用的服务器,实时监视可疑的连接,系统日志检查,非法访问的闯入等,并且提供对典型应用的监视。因此,在提供关键服务的服务器上使用入侵检测系统,安装实时的安全监控系统,可以提高服务器系统的可靠性,使网络安全系统更加强健。选择入侵检测系统,应特别注意其主要性能的情况,包括:协议分析及检测能力,解码效率(速度),自身安全的完备性,精确度及完整度,防欺骗能力,模式更新速度等等。入侵监测系统能够通过向管理员发出入侵或者入侵企图警告来加强当前的存取控制系–73–\n计算机信息安全统(例如防火墙),识别防火墙通常不能识别的攻击(如来自企业内部的攻击),在发现入侵企图之后提供必要的信息。2.防火墙(FireWall)技术防火墙(FireWall)是用一个或一组网络设备(计算机系统或路由器等),在两个或多个网络间加强访问控制,以保护一个网络不受来自另一个网络攻击的安全技术。防火墙的组成可以表示为:防火墙=过滤器+安全策略(+网关),它是一种非常有效的网络安全技术。在Internet上,通过它来隔离风险区域(即Internet或有一定风险的网络)与安全区域(内部网,如Intranet)的连接,但不妨碍人们对风险区域的访问。防火墙可以监控进出网络的通信数据,从而完成仅让安全、核准的信息进入,同时又抵制对企业构成威胁的数据进入的任务。通常,防火墙服务于以下几个目的。ò限制他人进入内部网络,过滤掉不安全服务和非法用户。ò限定人们访问特殊站点。ò为监视Internet安全提供方便。由于防火墙是一种被动技术,它假设了网络边界和服务,因此,它对内部的非法访问难以有效地控制。因此,防火墙适合于相对独立的网络,例如Intranet等种类相对集中的网络。当然,网络的安全性通常是以网络服务的开放性、便利性、灵活性为代价的,对防火墙的设置也不例外。防火墙的隔断作用一方面加强了内部网络的安全,一方面却使内部网络与外部网络的信息系统交流受到阻碍,因此必须在防火墙上附加各种信息服务的代理软件来代理内部网络与外部的信息交流。这样不仅增大了网络管理开销,而且减慢了信息传递速率。3.网络加密和认证技术网络信息加密的目的是保护网内的数据、文件、口令和控制信息,保护网上传输的数据。网络加密常用的方法有链路加密、端点加密和节点加密三种。链路加密的目的是保护网络节点之间的链路信息安全,端点加密的目的是对源端用户到目的端用户的数据提供加密保护,节点加密的目的是对源节点到目的节点之间的传输链路提供加密保护。网络加密技术是网络安全最有效的技术之一。一个加密网络,不但可以防止非授权用户的搭线窃听和入网,而且也是对付恶意软件(或病毒)的有效方法之一。认证主要包括身份认证和消息认证。4.网络防病毒技术在网络环境下,计算机病毒具有不可估量的威胁性和破坏力。CIH病毒及冲击波病毒就足以证明如果不重视计算机网络防病毒,那可能给社会造成灾难性的后果,因此计算机病毒的防范也是网络安全技术中重要的一环。网络防病毒技术包括预防病毒、检测病毒和消除病毒等三种技术。网络防病毒技术的具体实现方法包括对网络服务器中的文件进行频繁地扫描和监测,工作站上采用防病毒芯片和对网络目录及文件设置访问权限等。防病毒必须从网络整体考虑,从方便管理人员的工作着手,通过网络环境管理网络上的所有机器。如利用网络唤醒功能,在夜间对全网的客户机进行扫描,检查病毒情况;利用在线报警功能,网络上每一台机器出–74–\n第7章网络安全技术现故障、病毒侵入时,网络管理人员都能及时知道,从而从管理中心处予以解决。5.网络备份技术备份系统存在的目的是,尽可能快地全面恢复运行计算机系统所需的数据和系统信息。根据系统安全需求可选择的备份机制有:场地内高速度、大容量自动的数据存储、备份与恢复,场地外的数据存储、备份与恢复,对系统设备的备份。备份不仅在网络系统硬件故障或人为失误时起到保护作用,也在入侵者非授权访问或对网络攻击及破坏数据完整性时起到保护作用,同时亦是系统灾难恢复的前提之一。7.2黑客7.2.1黑客与入侵者人们几乎每天都可能听到众多的黑客事件。例如一位年仅15岁的黑客通过计算机网络闯入美国五角大楼,黑客将美国司法部主页上的“美国司法部”的字样改成了“美国不公正部”,黑客联手袭击世界上最大的几个热门网站如yahoo、amazon以及美国在线,黑客攻击上海信息港的服务器,窃取数百个用户的账号。那么什么是黑客呢?黑客一词,源于英文Hacker,原指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。黑客是那些检查(网络)系统完整性和安全性的人,他们通常非常精通计算机硬件和软件知识,并有能力通过创新的方法剖析系统。黑客通常会去寻找网络中漏洞,但是往往并不去破坏计算机系统。正是因为黑客的存在,人们才会不断了解计算机系统中存在的安全问题。入侵者(Cracker,有人翻译成“骇客”)是那些利用网络漏洞破坏系统的人,他们往往会通过计算机系统漏洞来入侵。他们也具备广泛的电脑知识,但与黑客不同的是他们以破坏为目的。真正的黑客应该是一个负责任的人,他们认为破坏计算机系统是不正当的。但是现在Hacker和Cracker已经混为一谈,人们通常将入侵计算机系统的人统称为黑客。本书提到的黑客都是指入侵计算机系统的人。7.2.2黑客的历史与现状20世纪60年代初,拥有巨型计算机的大学校园,如麻省理工学院(MIT)的人工智能实验室,成为黑客初显身手的舞台。1987年美国联邦执法部门指控17岁的高中辍学生赫尔伯特·齐恩闯入美国电话电报公司(AT&T)的内部网络和中心交换系统。齐恩是美国1986年“计算机欺诈与滥用法案”生效后被判有罪的第一人。他是因为在BBS中吹嘘自己攻击过美国电话电报公司的计算机系统而被逮捕的。1988年,康奈尔大学22岁的研究生罗伯特·莫里斯向互联网上传了一个“蠕虫”程序。这个程序是他为攻击UNIX系统的缺陷而设计的,该程序能够进入网络中的其他电脑并自我繁衍。“蠕虫”上网后迅速扩散感染了6000多个系统——几乎占当时互联网的十分之一。它–75–\n计算机信息安全占用了大量的系统资源,使网络陷入瘫痪。莫里斯很快被逮捕,专家称他设计的“蠕虫”程序造成了1500万到1亿美元的经济损失,但是他否认自己有这样的动机。最终莫里斯仅被判3年缓刑、做400小时社区服务和1万美元罚款。同年,在发现有黑客入侵军事网(Milnet)的一部联网电脑之后,美国国防部切断了非保密的军事网与阿帕网(ARPANET,即早期的互联网)之间的物理连接。1991年美国国会总审计署宣布在海湾战争期间,几个荷兰少年曾侵入国防部的计算机,修改和复制了一些非保密的与战争有关的敏感情报,包括军事人员、运往海湾的军事装备和重要武器装备开发情况等。1995年俄罗斯黑客列文在英国被捕。他被控用笔记本电脑从纽约花旗银行非法转移至少370万美元到世界各地由他和他的同党控制的账户。1998年美国国防部宣布黑客向五角大楼网站发动了“有史以来最大规模、最系统性的攻击行动”,打入了许多政府非保密性的敏感电脑网络,查询并修改了工资报表和人员数据。不久,警方抓获了两名加州少年黑客。三个星期后,美国警方宣布以色列少年黑客“分析家”被抓获。1999年挪威黑客组织“反编译工程大师”破解了DVD版权保护的解码密钥。该组织编制了一个DVD解码程序公布在互联网上,此举引发了一系列诉讼案。2000年2月,在三天的时间里,黑客使数家世界顶级互联网站——雅虎、亚马逊、电子港湾以及CNN等陷入瘫痪。黑客使用了“拒绝服务式”攻击手段。2001年4月,中美黑客大战随着中美撞机事件的发生而开始,并在5月1日左右达到高峰。“五一”长假,国内有千逾家网站被黑。其中近半数为政府(.gov)、教育(.edu)及科研(.ac)网站。面对美国黑客的挑衅,中国黑客奋起还击。在“五一”长假期间,中国黑客对美国网站发动大规模攻击行动,并成功攻克白宫网站。据估计,中美被黑的网站对比可能是1.5:1到2:1之间。中美黑客大战,涉及人员之广,破坏面积之大也是空前的。黑客从单打独斗,已发展成集团协作。2002年3月底,美国华盛顿著名艺术家GloriaGeary在eBay拍卖网站的账户,被黑客用来拍卖IntelPentium芯片。由于黑客已经更改了账户密码,使得真正的账户主人在察觉被黑客入侵后,反而无法进入自己的账户,更别提紧急删除这起造假拍卖事件了。虽然第二天eBay撤销了这起冒名拍卖的物件,然而却使受害人饱受虚惊。因为这些冒名顶替的黑客,也可能使用合法身份者的名义线上出价,然后让被害者付费。随着Internet在全球的发展,黑客的活动也日趋活跃,大有方兴未艾之势。其动向有以下几个特点。1.组织越来越扩大化早期的黑客虽然也有些是有组织的,但规模不大。现在跨地区,跨国界的大型黑客组织已经出现。在Internet网上还有许多黑客的专题讨论组,并有不断扩大之势。2.行动越来越公开化包括召开会议,举办竞赛,编写教材等。例如2002年7月12日至14日,来自世界各国的2000名国际黑客云集纽约,举行了迄今为止规模最大的全球黑客大会,并且抛出一款全–76–\n第7章网络安全技术新的软件作为宣战的工具。在此次黑客大会上,黑客们公布的一项计划引起了全球瞩目,那就是众黑客以不满网络安全检查为由宣布将对全球20多个进行网络检查的国家开战。3.案件越来越频繁化权威机构调查显示计算机攻击事件正在以年64%的速度增加。另据统计数字显示,至2002年底,黑客事件平均每天发生614次,比2002年年初提高20.2%。4.情况越来越复杂化无论人们对于黑客的功过如何评说,但黑客的成分背景日益复杂,行为动机各有不同,已是客观事实,对此己经不是用“好人、好事”还是“坏人、坏事”就能简单概括。正义、非正义,侵入、反侵入的斗争错综复杂。种种迹象表明,有朝一日在网上爆发一场世界黑客大战并非天方夜谭。7.3网络攻击7.3.1攻击分类在最高层次,攻击可被分为如下两类。1.主动攻击主动攻击包含攻击者访问他所需信息的故意行为。比如远程登录到指定机器的端口25找出公司运行的邮件服务器的信息;伪造无效IP地址去连接服务器,使接受到错误IP地址的系统浪费时间去连接那个非法地址。攻击者是在主动地做一些不利于他人系统的事情。正因为如此,找到他们是较容易的。主动攻击包括拒绝服务攻击、信息篡改、资源使用以及欺骗等攻击方法。2.被动攻击被动攻击主要是收集信息而不是进行访问,数据的合法用户对这种活动一点也不会觉察。被动攻击包括嗅探以及信息收集等攻击方法。这样分类不是说主动攻击不能收集信息或被动攻击不能用来访问系统。多数情况下这两种类型被联合用于入侵一个站点。但是,大多数被动攻击不一定包括可被跟踪的行为,因此更难被发现。从另一个角度看,主动攻击容易被发现但多数公司都没有发现,所以发现被动攻击的机会几乎是零。当前网络攻击的方法没有规范的分类模式,方法的运用非常灵活。从攻击的目的来看,可以有拒绝服务攻击、获取系统权限的攻击、获取敏感信息的攻击;从攻击的切入点来看,有缓冲区溢出攻击、系统设置漏洞的攻击;从攻击的纵向实施过程来看,有获取初级权限攻击、提升最高权限的攻击、后门攻击、跳板攻击;从攻击的类型来看,有对各种操作系统的攻击、对网络设备的攻击、对特定应用系统的攻击。所以说,很难用一个统一的模式对各种–77–\n计算机信息安全攻击手段进行分类。实际上黑客实施一次入侵行为,为达到他的攻击目的会结合采用多种攻击手段,在不同的入侵阶段使用不同的方法。7.3.2攻击的步骤1.隐藏直接地从自己的网址向某一网络进行攻击,将很快被对方发现、捕获,并且对方在获得攻击者地址后,将会进行反击。如果目标设有防火墙,将阻挡大部分非授权的访问,因此,在攻击之前要先将自己进行伪装或借用其他的服务器、用户名等,经多级跳转后进行攻击。隐藏要贯穿网络进攻的全过程,每一步都要最大限度地隐藏自身,达到长期潜伏的目的。当黑客成功获取了存取权限且完成了预定目标后,他还有最后一个工作要完成—隐藏攻击踪迹。这其中包括重新进入系统,将所有能够表明他曾经来过的证据隐藏起来。2.探测网络环境错综复杂,千万条网线连接着上亿台服务器、工作站和其他设备,并且地上电缆、光纤连接,天上卫星通信,空中、陆地无线通信形成立体式的网络。要进攻目标尽可能地找到通向目标的“干道”,并且大体勾勒出整个网络的布局、层次和空间连接关系。探测可直接分析与目标网络的连接,也可利用第三方的统计数据,如域名查询站点或其他黑客站点。网络进攻的立足点在于任何事物都有漏洞,通过探测、干扰、欺骗和暴力攻击,抓住系统的某一漏洞从而逐渐深入攻击,进而进入系统获得最大的控制权限。3.找出被信任的主机完成目标探测后,要充分了解与被攻击网站存在密切联系的网站、相关人员。当侵入到其信任的主机或获得相关人员常用的口令、E-mail等信息后,则可利用其作为跳板对目标实施攻击。方法是利用网络扫描、监听、检测和分析工具对目标分析,获得主机所提供的服务,运行的操作系统,试探主机的缺省登录用户名和口令,用已公布的操作系统、服务设施方面的漏洞,或利用IP地址欺骗手段,伪装成目标主机信任的站点,登录到主机。一般情况下这种登录只有极小的资源使用权限,但利用系统缺陷取得口令文件后,对其进行解密破译,以期获得更高的权限。UNIX操作系统的口令文件存于/etc/passwd,Windows9x操作系统的口令以*.pwl的文件存放,WindowsNT用账户数据库对账户进行管理。为达到进入系统的目的还可绕开口令检测,例如制造缓冲溢出,让溢出的数据覆盖口令或使口令检测进程失效。获得控制权限后,为长期潜伏,尽可能将与自身行动有关的记录修改,将驻留的后门程序的时间、文件名伪装成系统的一部分。4.寻找目标网中的漏洞利用目标的相关信息,如操作系统的版本,FTP、E-mail等服务所使用的软件,来查找–78–\n第7章网络安全技术有关该操作系统和软件的漏洞公告,然后利用扫描软件对相应的漏洞进行扫描。有些漏洞是系统、软件本身或人为设定造成的,若不修补将长期存在网络中,通过扫描随时都可发现,而有的漏洞是操作人员的暂时疏忽,如登录口令为空,暂时共享时未设口令等,对于这些漏洞的探测,则需长期地跟踪、监视,一旦捕捉到机会,则立即攻击,设法扩大控制权限。进入目标主机,获得控制权后便可读取目标中的秘密文件、信息,但其中有许多信息经过很强的加密,要将其解密,有的可能需要成百上千年。因此需要设计一个后门程序:以时间为序,记录系统运行的程序,输入输出的数据流(键盘、鼠标、显示器和其他设备的输入、输出),将这些信息获取后,与密文相结合分析将有助于破解,有时甚至能通过对屏幕抓图、键盘输入直接取得密码或明文。利用主机间的相互信任关系还可进一步获得与目标主机建立信任关系的主机上的信息。5.攻击网络攻击包括信息窃取、网络干扰、破坏或使网络设备毁坏。可利用目标的漏洞,设法获取口令或使自身的权限扩大,从而获得超级用户的权限,对被入侵的网站进行完全控制;收集该网站的信息,利用该网站嗅探、截获网络中传输的信息,在必要时才对其进行修改、毁坏;若难于获得最高控制权限,则利用该网站合法用户的身份进行欺骗,入侵相邻或相互信任的网站。还有一种方法就是使对方网络通信信道阻塞、服务器响应失灵。利用数据包造成信息通道阻塞,即由外向里,不断地从不同的站点向目标发数据。这些站点使用伪造的IP源地址或是其他已经入侵并控制的主机,在同一时间对目标站点进行访问、服务请求,当超负荷的数据包发向同一台服务器,便会使服务器过载,同时延缓目标主机的处理速度,干扰其处理正常的任务。7.4扫描探测、收集目标信息的方法主要有扫描、监听和嗅探。扫描是一种主动获取信息的方法,而监听、嗅探是被动的探测方法。扫描获得的信息多、快、准,不用像监听、嗅探那样被动地等待捕获系统数据流的传输。若数据包不经过放置嗅探器的位置则会无任何收获,但扫描所能获得信息的多少受系统安全防范措施限制,容易被发觉,而监听、嗅探则比较隐蔽,且能截获到密文。扫描按内容可分为端口扫描、系统扫描和漏洞扫描,按扫描的范围可分为单机扫描、网段扫描。为加快扫描的速度,扫描可以对一个目标的多个端口、提供的多种网络服务同时进行扫描,还可对多个目标同时进行扫描,或通过启用多台计算机同时进行分布式扫描来加快扫描的速度。但受某些网络服务、网络协议限定了最大连接数量的限制,这时扫描就不能一味的快扫,超量的扫描反而得不到反馈,此时应采取慢扫描,确保每次进行有效的扫描。对于防范较严的目标,应采取能躲避检测的隐蔽式扫描或半开连接式扫描,或转而启用监听、嗅探进行被动探测。–79–\n计算机信息安全7.4.1端口扫描“端口扫描”通常指用同一信息对目标计算机的所有所需扫描的端口进行发送,然后根据返回的端口状态来分析目标计算机的端口是否打开、是否可用。端口扫描行为的一个重要特征是,在短时间内有很多来自相同的源地址传向不同的目的端口的包。对于用端口扫描进行攻击的人来说,攻击者总是希望做到在获得扫描结果的同时,使自己很难被发现或者说很难被逆向跟踪。为了隐藏攻击,攻击者可以慢慢地进行扫描,有很大时间间隔的端口扫描是很难被识别的。隐藏源地址的方法是发送大量的欺骗性的端口扫描包(如1000个),其中只有一个是从真正的源地址来的。这样,即使全部包(1000个)都被察觉,被记录下来,也没有人知道哪个是真正的源地址。能发现的仅仅是“曾经被扫描过”。也正因如此,黑客们才乐此不彼地继续大量使用这种端口扫描技术来达到他们获取目标计算机信息、并进行恶意攻击的目的。通常进行端口扫描的工具目前主要采用的是端口扫描软件,也通称之为“端口扫描器”,端口扫描可以提供以下三个用途。(1)识别目标系统上正在运行的TCP协议和UDP协议服务。(2)识别目标系统的操作系统类型(Windows9x,WindowsNT,或UNIX等)。(3)识别某个应用程序或某个特定服务的版本号。端口扫描器是一种自动检测远程或本地计算机安全性弱点的程序。通过使用扫描器可不留痕迹的发现远程服务器的各种TCP协议端口的分配及提供的服务,还可以得知它们所使用的软件版本,这就能间接的了解到远程计算机所存在的安全问题。端口扫描器通过选用远程TCP/IP协议不同的端口的服务,记录目标计算机端口给予的回答的方法,可以搜集到很多关于目标计算机的各种有用信息(比如,是否有端口在侦听,是否允许匿名登陆,是否有可写的FTP目录,是否能用TELNET等)。端口扫描器并不是一个直接攻击网络漏洞的程序,它仅仅能帮助发现目标机的某些内在的弱点。一个好的扫描器还能对它得到的数据进行分析,帮助查找目标计算机的漏洞。但它不会提供一个系统的详细步骤。端口扫描器在扫描过程中主要具有以下三个方面的能力。(1)发现一个计算机或网络的能力。(2)一旦发现一台计算机,就有发现目标计算机正在运行什么服务的能力。(3)通过测试目标计算机上的这些服务,发现存在的漏洞的能力。编写扫描器程序必须有很多TCP/IP协议程序编写的经验和C、Perl或SHELL语言的知识。需要一些Socket编程的背景,一种开发客户/服务应用程序的方法。在众多的扫描软件中进行端口扫描的最多。SuperScanner、Pinger、hostname和reslover等扫描软件使用多线程的扫描技术使得扫描速度更快,且操作界面更加友好。扫描程序在扫描端口前先向目标IP地址发送icmp请求及ping对方,若没有收到回应则有可能对方不在线或安装了防火墙。对于安有防火墙的则放弃对其大范围端口扫描,采用后面的漏洞扫描,接着扫描软件利用套接字(Socket),试探与目标可能开放的Socket端口建立连接,针对目标开放的端口,初步判断其提供的应用,下一步采用漏洞扫描或监听的方法进行探测。为加快扫描速度可同时开启多个套接字,使用非阻塞I/O允许设置一个小的套接字周期,同时观测多–80–\n第7章网络安全技术个套接字。在套接字编程中用户目前最常用两种套接口,即流套接口(TCP)和数据报套接口(UDP)。流套接口提供了双向的、有序的、无重复并且无记录边界的数据流服务。数据报套接口支持双向的数据流,但并不保证是可靠、有序、无重复的。还有一种是原始套接口(RAWSOCKET)——用SOCK_RAW打开的套接口。原始套接字提供对网络下层通信协议的直接访问,它主要用于开发新的协议或自定义传输数据格式。利用原始套接字编程进行扫描可以制定特定的数据格式实现更为隐蔽的扫描如TCPSYN扫描、TCPFIN扫描和IP段扫描等。1.TCPSYN扫描在进行TCP连接时采用半开式扫描。即在建立TCP连接的三次握手的过程中只完成前两次握手。攻击者通过发送一个SYN包(TCP协议中的第一个包)开始一次SYN的扫描,任何开放的端口都将有一个SYN/ACK响应,若端口不开放则返回RST信号。攻击者获得SYN/ACK响应便确定了目标开放的端口。按照三次握手规则,攻击者需发送一个RST或ACK回应。若采用半开扫描,当接到SYN/ACK响应后,使连接中止。第三次握手得不到实现,从而系统不记录该次TCP连接。运用这种方法可以躲避一般性检测。这一扫描方法也被用于攻击,采用原始套接字编程伪造源IP地址,即可将攻击嫁祸于人,又可通过超量扫描使目标暂时瘫痪。2.TCPFIN扫描有些防火墙和包过滤器会对一些指定的端口进行监听,有的程序可以检测到TCPSYN扫描,但通过FIN数据包可躲过检测。在通常情况下,若目标端口关闭,系统会用RST回复FIN数据包,若端口开放,系统则不会回复FIN数据包。这种方法与系统实现有一定的关系,有的系统不管端口是否打开,都回复RST,在这种情况下,该扫描方法就不适用了,但可以区分UNIX和WindowsNT。3.IP段扫描扫描软件并不直接发送TCP探测数据包,而是将数据包分成两个较小的IP段,将一个TCP头分成好几个数据包,从而让它们能够通过包过滤防火墙。4.ICMP扫描ICMP(InternetControlMessageProtocol,Internet控制信息协议)为IP堆栈发送简单的信息,其中也包括错误信息。可以利用ICMP进行网络扫描、拒绝服务(DoS)攻击和隧道攻击等各种危害网络安全的活动。(1)Ping操作是最常用的ICMP应用。Ping命令向用户的IP堆栈发出一个ICMP回应请求报文,即回应报文(Echo,类型8),并且等待一个ICMP回应应答报文(EchoReply,类型0)。假设接收ICMP报文的目的主机是激活的,而且它拥有IP堆栈,如果该主机前面没有设置可以阻止ICMP回应应答报文的设备(如防火墙),那么源IP堆栈就能够收到ICMP回应应答报文。通过使用Ping命令,用户可以看到已经收到回应应答报文,并且知道远端设备是激活的和可达的。利用Ping就可以扫描网络。通过顺序地对每个主机地址进行Ping操作,可以探测出网络中哪一个IP地址的设备具有IP协议堆栈。因此,许多防火墙将进入网–81–\n计算机信息安全络的回应应答请求屏蔽掉,以防止黑客通过Ping扫描网络。除Ping以外,其他类型的ICMP也可用于扫描网络。(2)ICMP的时间戳(Timestamp,类型13)会产生一个时间戳应答(TimestampReply,类型14),但是只有在UNIX系统中才出现这种情况,微软的IP堆栈中没有此项功能。因此,根据对时间戳请求的应答,不仅可以知道目的系统主机是激活的,而且还能知道目的主机是否采用了微软的操作系统。(3)ICMP地址掩码请求(AddressMaskRequest,类型16)只会被路由器通过地址掩码应答(AddressMaskReply,类型17)来回答。地址掩码请求可以识别各种路由器,并且可以收集子网的信息,它对于了解网络拓扑结构很有用。由于这种类型的ICMP报文只能用于本地主机寻找子网掩码,它显然应该作为受到防火墙屏蔽的首选ICMP类型。路由器厂商应该设计出一种路由软件,使它只对邻近的网络请求产生回应。(4)重定向报文(Redirect,类型5)用于调整路由表。如果用户的台式机所处的子网中有两台路由器,每一台路由器都连接到不同的网络中,那么用户的系统要将其中的一台路由器设置为默认路由器。这样,当发到另一台路由器的报文到达用户的主机时,首先来到默认路由器,默认路由器会发送一个ICMP重定向报文到用户的主机,调整路由表。根据到达路由器上的不同信息,主机可能发送的代码有4种,其中包括主机重定向(代码0)或网络重定向(代码1)。如果可以向用户的主机发送ICMP重定向报文,那么它也可以更改用户的路由表,从而导致DoS攻击。一些路由器产品不会转发从其他网络来的ICMP重定向信息,将这种攻击在远端就屏蔽了。显然,重定向报文是一种必须被防火墙屏蔽的ICMP类型。(5)超时报文(TimeExceeded,类型11)通常用于错误处理,也可以用于定位网络。在IP数据包的包头中,有一个生命期(Time-To-Live,TTL)值,每当IP数据包通过一个IP层时,TTL值就会减少。TTL的作用是防止IP数据包在网络中进行永久性循环。它的起始值最大为255,最终会变成0。想对网络进行攻击的黑客可以使用追踪路由命令(traceroute)来发送一个人为设置的、TTL值很低的报文。这样导致路由器发回一个超时报文,其中包括路由器的IP地址。这就是用户在使用traceroute命令时所看到的信息,在微软的版本中则是tracert命令。(6)利用不能到达目的地报文(Destinationunreachable,类型3)定位网络信息。不能到达目的地报文包含15个子类型(代码),用于准确区分哪些设备不能到达,有时还可以指出不能到达的原因。例如,一台路由器可以报告某个网络、系统或系统中的某一个端口不可到达,它还可以报告被管理员屏蔽的设备,即被防火墙或包过滤器保护的那些设备。7.4.2系统扫描通过端口扫描,初步确定了系统提供的服务和存在的后门。但这种确定是选取默认值,即认定某一端口提供某种服务,例如80端口便认定为提供HTTP服务,这种认定是不准确的。另外为要了解目标的漏洞和进一步的探测,则需对目标的操作系统、提供各项服务所使用的软件、用户、系统配置信息等进行扫描,这就是系统扫描。图7.1为采用LANguardNetworkSecurityScanner(LNSS)扫描得到的结果。–82–\n第7章网络安全技术图7.1系统扫描从结果可看出该主机使用WindowsXP操作系统,提供了SMTP服务、WWW服务和FTP服务。扫描还获得了机器名、共享目录以及用户名等。其使用的FTP服务软件为微软的FTPService。WWW服务采用的软件为MicrosoftIIS/5.1。这些扫描结果为后续的攻击作了一定铺垫,如接下来根据此次探测的结果,针对其提供的SMTP、FTP、WWW服务,参照公布的漏洞进行扫描;获得的用户名,为后面的口令破解提供数据。系统扫描不仅获悉开放的端口,而且进一步向端口发送相应的请求,以确定系统提供的服务和相应的配置。进行系统扫描不再限于使用TCP或UDP协议,而是使用多种协议如NETBIOS、SNMP和ICMP协议等等。在系统扫描中探测到目标操作系统是十分重要的,绝大部分安全漏洞与缺陷都与操作系统相关。TCP/IP堆栈的特性与操作系统息息相关,被称为操作系统的“栈指纹”,可以利用网络操作系统里的TCP/IP堆栈作为特殊的“指纹”来确定系统的真正身份。这种方法的准确性相当高,因为再精明的管理员都不太可能去修改系统底层的网络堆栈参数。目前,利用这种技术实现的工具很多,比较著名有NMAP,CHECKOS,QUESO等。7.4.3漏洞扫描在系统提供的多项服务中,有些服务由于设计上的缺陷或使用不当从而产生漏洞。各大网络安全机构每天公布发现的漏洞和相应的检测方法,漏洞扫描主要以这些公布的漏洞为依据进行探测。在所公布的漏洞中,以应用最普遍的WWW服务的漏洞最多。图7.2所示为对IIS的Unicode漏洞进行的扫描。漏洞扫描器是一种自动检测远程或本地主机安全性弱点的程序。通过使用漏洞扫描器,系统管理员能够发现所维护服务器的各种TCP端口的分配、提供的服务、Web服务软件版本和这些服务及软件呈现在Internet上的安全漏洞。从而在计算机网络系统安全保卫战中做到“有的放矢”,及时修补漏洞,构筑坚固的安全长城。–83–\n计算机信息安全图7.2Unicode漏洞扫描按常规标准,可以将漏洞扫描器分为两种类型:主机漏洞扫描器(HostScanner)和网络漏洞扫描器(NetworkScanner)。主机漏洞扫描器是指在系统本地运行检测系统漏洞的程序,如著名的COPS、tripwire、tiger等自由软件;网络漏洞扫描器是指基于Internet远程检测目标网络和主机系统漏洞的程序,如Satan、ISSInternetScanner等。进行漏洞扫描需要详细了解大量漏洞细节,通过不断的收集各种漏洞测试方法,将其所测试的特征字串存入数据库,扫描程序通过调用数据库进行特征字串匹配来进行漏洞探测。扫描不要企图一次性获得某网段中各主机的全部信息,这样将花费大量的时间并将CPU运算用于毫无收获的探测。应先进行粗略的扫描寻找提供服务较多、安全防范较弱的主机,然后对其进行更详细的扫描。7.4.4扫描器实例在国外比较常用的有Nmap、CerberusInternetScanner(简称CIS)以及SATAN;国内的有安全焦点的X-Scanner与小榕的流光。7.4.4.1Nmap目前支持Win2K/XP的端口扫描器有很多,部分还提供GUI(图形用户界面)。在诸多端口扫描器中,Nmap是其中的佼佼者——它提供了大量的命令行选项,能够灵活地满足各种扫描要求,而且输出格式丰富。Nmap原本是为UNIX平台开发的,是许多UNIX管理员–84–\n第7章网络安全技术的至爱,后来被移植到Windows平台。NmapforWindows最新的稳定版本是3.30,可以从www.insecure.org/nmap/免费下载。1.安装NmapNmap要用到一个称为“Windows包捕获库”的驱动程序WinPcap,其作用是帮助调用程序(即这里的Nmap)捕获通过网卡传输的原始数据。WinPcap的最新版本在http://netgroup-serv.polito.it/winpcap下载,支持XP/2K/Me/9x全系列操作系统,下载得到的是一个执行文件,双击安装,一路确认使用默认设置就可以了,安装好之后需要重新启动。接下来从www.insecure.org/nmap/nmap_download.html下载Nmap,下载好之后解开压缩,不需要安装。除了可执行文件nmap.exe之外,它还有下列参考文档。(1)nmap-os-fingerprints,列出了500多种网络设备和操作系统的堆栈标识信息。(2)nmap-protocols,Nmap执行协议扫描的协议清单。(3)nmap-rpc,远程过程调用(RPC)服务清单,Nmap用它来确定在特定端口上监听的应用类型。(4)nmap-services,一个TCP/UDP服务的清单,Nmap用它来匹配服务名称和端口号。除了命令行版本之外,www.insecure.org还提供了一个带GUI的Nmap版本。和其他常见的Windows软件一样,GUI版本需要安装,图7.3就是GUI版Nmap的运行界面。GUI版的功能基本上和命令行版本一样,鉴于许多人更喜欢用命令行版本,本书以后的说明就以命令行版本为主。图7.3GUI版Nmap的运行界面–85–\n计算机信息安全2.常用扫描类型解开Nmap命令行版的压缩包之后,进入Windows的命令控制台,再转到安装Nmap的目录(如果经常要用Nmap,最好把它的路径加入到PATH环境变量)。不带任何命令行参数运行Nmap,Nmap显示出命令语法,如图7.4所示。下面是Nmap支持的四种最基本的扫描方式。(1)TCPconnect()端口扫描(-sT参数)。(2)TCP同步(SYN)端口扫描(-sS参数)。(3)UDP端口扫描(-sU参数)。(4)Ping扫描(-sP参数)。图7.4命令行版Nmap的运行界面如果要勾画一个网络的整体情况,Ping扫描和TCPSYN扫描最为实用。Ping扫描通过发送ICMP(InternetControlMessageProtocol,Internet控制消息协议)回应请求数据包和TCP应答(Acknowledge,ACK)数据包,确定主机的状态,非常适合于检测指定网段内正在运行的主机数量。在TCPconnect()扫描中,扫描器利用操作系统本身的系统调用打开一个完整的TCP连接——也就是说,扫描器打开了两个主机之间的完整握手过程(SYN,SYN-ACK和ACK)。一次完整执行的握手过程表明远程主机端口是打开的。TCPSYN扫描创建的是半打开的连接,它与TCPconnect()扫描的不同之处在于,TCPSYN扫描发送的是复位(RST)标记而不是结束ACK标记(即,SYN,SYN-ACK,或RST):如果远程主机正在监听且端口是打开的,远程主机用SYN-ACK应答,Nmap发送一个RST;如果远程主机的端口是关闭的,它的应答将是RST,此时Nmap转入下一个端口。图7.5是一次测试结果。很明显,TCPSYN扫描速度要超过TCPconnect()扫描。采用默认计时选项,在LAN环境下扫描一个主机,Ping扫描耗时不到十秒;TCPSYN扫描需要大约十三秒;而TCPconnect()扫描耗时最多,需要大约7分钟。–86–\n第7章网络安全技术图7.5LAN环境下扫描一个主机Nmap支持丰富、灵活的命令行参数。例如,如果要扫描192.168.7网络,可以用192.168.7.x/24或192.168.7.0-255的形式指定IP地址范围。指定端口范围使用-p参数,如果不指定要扫描的端口,Nmap默认扫描从1到1024再加上nmap-services列出的端口。如果要查看Nmap运行的详细过程,只要启用verbose模式,即加上-v参数,或者加上-vv参数获得更加详细的信息。例如,nmap-sS192.168.7.1-255-p20,21,53-110,30000--v命令,表示执行一次TCPSYN扫描,启用verbose模式,要扫描的网络是192.168.7,检测20、21、53到110以及30000以上的端口(指定端口清单时中间不要插入空格)。再举一个例子,nmap-sS192.168.7.1/24-p80扫描192.168.7子网,查找在80端口监听的服务器(通常是Web服务器)。有些网络设备,例如路由器和网络打印机,可能禁用或过滤某些端口,禁止对该设备或跨越该设备的扫描。初步侦测网络情况时,-host_timeout<毫秒数>参数很有用,它表示超时时间,例如nmap-sS-host_timeout10000192.168.0.1命令规定超时时间是10000毫秒。网络设备上被过滤掉的端口一般会大大延长侦测时间,设置超时参数有时可以显著降低扫描网络所需时间。Nmap会显示出哪些网络设备响应超时,这时你就可以对这些设备个别处理,保证大范围网络扫描的整体速度。当然,host_timeout到底可以节省多少扫描时间,最终还是由网络上被过滤的端口数量决定。–87–\n计算机信息安全Nmap的手册(man文档)详细说明了命令行参数的用法(虽然man文档是针对UNIX版Nmap编写的,但同样提供了Win32版本的说明)。7.4.4.2X-ScannerX-Scanner是国内的著名安全网站“安全焦点”的大作,最新的版本是2.30,可以从http://www.xfocus.net/免费下载。X-Scanner运行在Windows平台下,它主要针对WindowsNT/Windows2000操作系统的安全进行全面细致评估,可以扫描出很多Windows系统流行的漏洞,并详细的指出安全的脆弱环节与弥补措施。X-Scanner采用多线程方式对指定IP地址段(或单机)进行安全漏洞扫描,支持插件功能,提供了图形界面和命令行两种操作方式。扫描范围包括以下几个。(1)标准端口状态及端口banner信息。(2)CGI漏洞。(3)RPC漏洞。(4)SQL-SERVER默认账户。(5)FTP弱口令。(6)NT主机共享信息。(7)用户信息。(8)组信息。(9)NT主机弱口令用户等。1.扫描设置首先,打开X-Scanner,在扫描项目中可以任意的指定单独扫描一个特定项目,如图7.6所示。比较多的是CGI和SQL或者FTP默认口令,这些都是很致命的服务器漏洞。一般的情况下,只对〖运行参数〗中的扫描范围进行设置。在那里只要填写网站服务器的IP地址就可以,可以填写一个来针对某一个特定的网站或服务器,也可以填写一个IP段范围,来扫描一段IP地址上所有的计算机。具体扫描参数格式如下。命令行:Xscan-h[起始地址]<-[终止地址]>[扫描选项]其中的[扫描选项]含义如下:-p:扫描标准端口(端口列表可通过\dat\config.ini文件定制);-b:获取开放端口的banner信息,需要与-p参数合用;-c:扫描CGI漏洞;-r:扫描RPC漏洞;-s:扫描SQL-SERVER默认账户;-f:尝试FTP默认用户登录(用户名及口令可以通过\dat\config.ini文件定制);-n:获取NetBios信息(若远程主机操作系统为Windows9x/NT4.0/2000);-g:尝试弱口令用户连接(若远程主机操作系统为WindowsNT4.0/2000);-a:扫描以上全部内容;-x[代理服务器:端口]:通过代理服务器扫描CGI漏洞;–88–\n第7章网络安全技术图7.6X-scanner扫描设置-t:设置线程数量,默认为20个线程;-v:显示详细扫描进度;-d:禁止扫描前PING被扫主机。举例如下。Xscan-hxxx.xxx.1.1-xxx.xxx.10.255-a含义:扫描XXX.XXX.1.1-XXX.XXX.10.255网段内主机的所有信息;Xscan-hxxx.xxx.1.1-n-g-t30含义:获取XXX.XXX.1.1主机的Netbios信息,并检测NT弱口令用户,线程数量为30;Xscan-hxxx.xxx.1.1-p-b-c-x129.66.58.13:80-v-d含义:扫描xxx.xxx.1.1主机的标准端口状态,通过代理服务器“129.66.58.13:80”扫描CGI漏洞,检测端口banner信息,且扫描前不通过PING命令检测主机状态,显示详细扫描进度。在〖运行参数〗中,有很大的选择余地,比如它可以设置代理服务器来躲避网管的追查,并可以设置扫描的线程。对扫描显示也可以进行详细的选择。然后扫描器就开始工作了。2.扫描过程及结果图7.7是X-Scanner的扫描过程。X-Scanner会将扫描结果保存在/log/目录中,index_*.htm为扫描结果索引文件,并对于一些已知漏洞,X-Scanner给出了相应的漏洞描述,利用程序及解决方案,如图7.8所示。X-Scanner扫描的内容是绝大多数的服务器容易出现的漏洞和安全设置问题。最常用的还是其中的SQL默认账户、FTP弱口令和共享扫描,他们能揭示出许多麻痹大意的网管容易犯的一些低级错误。–89–\n计算机信息安全图7.7X-scanner的扫描过程图7.8X-scanner的扫描结果7.5监听与嗅探监听与嗅探是用于捕获流过嗅探器位置的网络数据包,并对其进行分析。由于流过的数据量非常大,因而必须有针对性的对数据过滤和分析,按分析的数据划分可分为本机监听、–90–\n第7章网络安全技术网段监听和密文嗅探。本机监听是对从本机网卡流入流出的数据进行监听;网段监听是通过获取流过的数据包来分析网络通信状态;密文嗅探则是根据一定的过滤规则获取密文。通过网络监听、嗅探可了解网络中通信状况,截获传输的信息,提取与口令相关的数据。监听、嗅探的实施受网络物理结构的限制,它们是将网卡设置为混杂(promiscuous)模式,即对流经网卡的所有数据全部接收。网络经物理设备如交换机、路由器等划分为多段后,A、B两个网段除了相互间的访问,A段中的主机访问其他网络的数据一般不会流到B网段中,从而在B网段内攻击者不能对A网段进行监听、嗅探。要对A实施监听、嗅探可将嗅探程序运行在A、B相连接的路由器或有路由器功能的主机上,或攻击进入A网段的某台主机,在其上运行嗅探程序,或利用ARP欺骗。7.5.1本机监听本机监听多用于安全防范,查看是否有非法连接和后门程序的存在。本机监听不一定需要专用的监听软件,可以用系统自带的netstat命令,如在本机运行netstat–a-n10>本机监听记录.log,则系统将会把本机所用端口状态以每隔10s更新,按如下形式记录在本机监听记录.log文件中。ActiveConnectionsProtoLocalAddressForeignAddressStateTCP0.0.0.0:1350.0.0.0:0LISTENINGTCP127.0.0.1:10250.0.0.0:0LISTENINGTCP127.0.0.1:10270.0.0.0:0LISTENINGTCP127.0.0.1:1027127.0.0.1:1053TIME_WAITTCP127.0.0.1:1027127.0.0.1:1056ESTABLISHEDTCP192.168.0.218:1370.0.0.0:0LISTENINGTCP192.168.0.218:1380.0.0.0:0LISTENINGTCP192.168.0.218:1390.0.0.0:0LISTENINGUDP127.0.0.1:1028*:*UDP192.168.0.218:137*:*UDP192.168.0.218:138*:*这一记录显示了本机正开放哪些端口与远程主机哪个端口建立了连接。另外,ActivePorts可以让你了解哪个程序在哪个端口应用,提供哪些网络服务。ActivePorts是一个在WindowsNT/2000/XP下易于操作的工具,它能够让你监控本机上所有打开的TCP/IP以及UDP端口。在众多的防火墙软件中也提供了监视功能,如天网防火墙2.5.0版本可以对应用程序开放新端口进行报警,枚举程序开放的端口和运行状态,如图7.9所示。利用本机监听在确保自身安全的同时,进行攻击设置,在本机开放共享监听,对共享端口的连接,获得对方访问共享时提交的系统信息;有意开放伪装木马端口如开放7626端口,伪装中了冰河木马程序,从而来捕获外部攻击提交的口令;监听外部对本机80端口的连接所提交的数据,若发现%c0%af、%c1%1c等奇怪的HTTP请求,则有可能自身被攻击者扫描或对方中的病毒程序正在扫描网络,若对方中的是Nimda病毒,则可扫描对方开放的共享,发–91–\n计算机信息安全现c$或d$标识的共享,则可无口令登录获取共享资源;在设计反弹型木马时,可以使自身开放端口等待连接,还可不开放任何服务端口,仅进行本机监听来捕获反弹木马的反馈信息。7.5.2网段监听通过监听获悉网络通信状况,分析网络中的数据流量,确定网络中通信、控制中枢。图7.10是用NetXRay获得的结果,显示了网络中的通信状态、流量,利用监听的结果还可弥补扫描无法对装有防火墙的主机探测。进行网段监听可以发现哪些主机之间正在进行频繁、大量的数据传输,以此来推测网段中主机之间的相互信任关系。监测网段对外部的访问,发现对特定资源图7.9天网防火墙监听系统运行状态如邮箱的访问,则可进行及时捕获,以获得有用信息。图7.10网段监听–92–\n第7章网络安全技术7.5.3嗅探器及其防范通过截获网络流过的数据,获取传输的机要文件、密码、电子邮件等。图7.11显示截获了HTTP连接的数据流,由此可以获得基于Web发布的E-mail邮件、登陆邮箱的用户名、密码等。图7.11截获HTTP连接数据流在实施网络监听、嗅探时专用的软件被称为嗅探器(Sniffer)软件,其中比较知名的有NetXRay和SnifferPro等,其功能强大,图形化的操作界面使用十分方便。图形界面的程序只适合在本机运行,要在远程主机运行还需命令行界面,在远程主机上运行无窗口显示,如BUTrSniff、winsniff、Esniff等,其中以UNIX系统中运行的嗅探器程序较多。Sniffer能够捕获网络中传输的报文。图7.12所示这一段报文便是用Sniffer截获到的,其中可以利用的信息有:usemame、password、邮件服务器网址等。利用嗅探器可以捕获口令,捕获机密的或者专用的信息,获取嗅探器所在网络的拓扑信息。事实上,如果在网络上存在非授权的嗅探器,就意味着系统完全暴露。嗅探器可以捕获网络上所有的报文,但实际上嗅探必须对报文进行选择,可以依据以下几点。(1)地址:数据包的源地址和目的地址,包括MAC地址和IP地址,对指定的目标进行监听,捕获信息。(2)协议:数据报文所使用的协议,网络数据帧传输协议如Appletalk、BanyanVINE、DECnet、IBMLANServer、NETBios、ATM、TCP/IP等,应用程序通信所使用的协议如发送邮件的SMTP、接收邮件的POP3等传送重要信息的协议。(3)关键字:检索像password、username等关键字,捕获含有关键字报文及其相随的报文。(4)报文大小:密码口令验证的报文相对较短,而文件、数据的传输报文相对较大,若目的是捕获密码,则只需捕获报文的头1KB。–93–\n计算机信息安全图7.12嗅探器捕获的报文嗅探器能否截获信息以及所能截获信息的多少与其所在的位置是密切相关的。嗅探器只能截获流过其所在位置的数据报文,嗅探器能截获与其使用同一传输线或经集线器相连的主机所发送的报文,而数据报文经过交换机路由器等设备,则数据报文会被投递至指定的端口,这样嗅探器捕获不到与不同端口相连的网络传输的信息,所以如能将嗅探器置于网关上,这样就能捕获网络和其他网络进行身份鉴别的过程。由于监听、嗅探是一种被动的网络侦测手段,因而隐蔽性较好,非常难以发现。通常防范嗅探器主要有以下几种方法。(1)安全的拓扑结构嗅探器只能在当前的网段上进行数据捕获。这就意味着,将网络分段工作进行的越细,嗅探器能够收集的信息就越少。但是除非公司是一个ISP,或者资源相对不受限制,否则这样的解决方案需要很大的代价。网络分段需要昂贵的硬件设备。有三种网络设备是嗅探器不能跨过的:交换机、路由器、网桥。因此可以通过灵活的运用这些设备来进行网络分段。可采用20个工作站为一组,然后每个月人为地对每段进行检测(也可以采用MD5随机的对每个网段进行检测)。网络分段只适用于小型网络。如果有一个500个工作站的网络,分布在50个以上的部门中,那么完全分段是价格所不允许的。在这种情况下,对会话进行加密是一种很好的选择。(2)用静态的ARP或者IP-MAC对应表代替动态的ARP或者IP-MAC对应表由于分段,嗅探器不能嗅探到与自身不在同网段的通信数据,但通过实验发现,并非完全嗅探不到。交换机会转发广播数据,不同网段内发的广播数据会转发到其他网段;利用ARP欺骗,使得分发到别的网段的数据包发到嗅探器所在网段;采用数据包阻塞,发大量的数据–94–\n第7章网络安全技术包使路由设备信道阻塞,从而路由器将别的网段发出的数据投递到非目的地所在网段,这样嗅探器就有可能接收到其他网段发出的数据报文。攻击者可对网络进行渗透嗅探,采用诸如ARP欺骗手段能够让入侵者在交换网络中顺利完成嗅探。网络管理员需要对各种欺骗手段进行深入了解,比如嗅探中通常使用的ARP欺骗,通过对ARP缓存进行改写重定向通信数据包,它改写了目标机器上的IP地址->Mac地址的映射,因此数据包将经由交换机发往监听者的机器。此外,攻击者还可以通过DNS欺骗、IP/名字欺骗等方式跨越局域网重定向通信数据包。对此种渗透嗅探的防范,可在重要的主机(包括在线网站、DNS和Mail服务器、防火墙和DMZ路由器等)上设置静态的ARP对应表,比如WIN2K系统使用arp命令设置,在交换机上设置静态的IP-MAC对应表等,防止利用欺骗手段进行嗅探。(3)会话加密会话加密提供了另外一种解决方案。不必担心数据被嗅探,而是想办法使得嗅探器无法识别嗅探到的数据。这种方法的优点是明显的:即使嗅探者嗅探到了数据,这些数据对它也是没有用的。但是其存在的缺点也十分明显。在加密时有两个主要的问题:一个是技术问题,一个是人为问题。技术问题包括该加密是否足够强大。例如,40位的加密就可能不够,而且并不是所有的应用程序都集成了加密支持。此外,跨平台的加密方案还不是很多,一般只在一些特殊的应用之中才有。再者,用户可能觉得麻烦而不使用加密。针对嗅探器捕获的加密报文,那么攻击接下去的任务就是进行解密。7.6口令安全在计算机安全系统中,用口令进行身份认证是防止入侵的第一道重要防线。黑客若没有获得一个有效口令,要想闯入计算机系统就很困难。因此,黑客攻击的第一步便是设法收集口令。7.6.1口令破解网络服务一般都要求进行用户合法身份验证,能否获得密码、口令是进一步扩大控制权限的关键。口令破解中最快的是利用系统漏洞进行破解,其次利用字典破解,最慢的是利用加密算法的逆运算进行破解。事实上随着加密技术的提高,用逆算法破解几乎不可能,对口令的破解往往还采取其他措施如电子欺骗、甚至诈骗的手段。采用网络中嗅探的方法或其他方法截获一些密文。对于用56位密钥加密的文件,采用多台高速计算机、设计分布处理微分密码分析算法,已可对其进行破解,但当密钥为128位时,对其破解在时间上是无法达到的,应采取其他方法。另外若在目标主机上有冰河或其他木马后门程序运行,则利用相应的控制端软件可直接获得明文和密钥。在登录Telnet、FTP、数据库等许多地方要求输入账号和口令。这些账号、口令都不会太长,采用字典破解是一种较为有效的方法。字典口令攻击,是一种猜测口令的方法。根据口令的统计规律生成的字典能较有针对性去猜测口令。–95–\n计算机信息安全1.利用系统漏洞破解Windows9x共享口令验证采用明码在网络中传输,用嗅探的方法便可截获其口令,同时该口令验证上有个重大的漏洞,即对口令的验证不是进行整个字串匹配校验,而是逐个字符进行校验。如图7.13和图7.14显示了用枚举口令的方法进行的破解共享目录\\ZHAO\SOFT的共享密码7715的过程。图7.13破解共享目录图7.14破解共享目录从图7.13中可以看出第78号数据报文中以6作为口令试探,第79号数据报文为返回结果Error=Badpassword;第81号数据报文以7为口令试探,获得第82号数据报文返回结果Error=Success。至此可知口令的第一位为7,接着便可破解第二位。标准101键键盘上共95个字符,由于Windows9x共享口令验证漏洞忽略大小写,应减去26,即以69个字符进行枚举破解(如果含有中文或其他符号则枚举用十六进制码表示从0x00到0xFF共256个),若4不利用漏洞破解四位口令全范围枚举要进行69次运算,若利用该漏洞对密码探测全部枚举完只需69*4次运算,可见随着口令位数增加,利用该漏洞对密码探测的优势将十分明显,实验中对一个8位既有数字,又有标号的口令破解所需时间不到3s。对于像FTP、Web站点登陆口令的破解,不必急于破解,而应通过扫描探测系统存在的漏洞。例如利用ASP程序的源码泄漏的漏洞获取口令校验的ASP程序源码,将可判别口令的存放地点,进而对其攻击获得存储口令文件。另外若在目标主机上有冰河或其他木马后门程序运行,则利用相应的控制端软件可直接获得明文和密钥。2.利用字典破解在无漏洞可利用时,则只能进行枚举可能的字符组合进行破解。用标准101键键盘上955个字符进行枚举破解一个5位的口令,其总共可能的口令为95个。对这一数量级口令个数进行逐个枚举,且受网络速度限制,要进行破解将十分困难,应通过合理的组织破解字符组5合的顺序来加快破解。例如先破解纯数字组合,则5位的口令数字组合共10,接着破解纯5英文单词,常用的单词约10等。按照某一规律生成字符组合,并将其写入一文档中,利用该文档进行破解,便称为利用字典破解,生成的文档称为字典文档。字典的生成应根据人们的生活习惯和口令的统计规律去生成,通过从网上聊天室、BBS社区、邮箱和留言版等处获得大量的账号和口令,从用户口令密码的设置可看出,人们常采用如下方法。–96–\n第7章网络安全技术ò用生日作为密码(如800528)。ò用序数作为密码(如123,abc)。ò用身份证号作为密码。ò用在字典中查得到的字作为密码。ò用用户名、术语、数字、地名、电话号码组合。字典攻击效率的高低在于字典的安排,分析查看字典的规律产生组合。下面分析英文单词的规律,以便察看到底有哪些方法可循。如下几个简单的单词[1]password[2]guest[3]client[4]superman[5]apple每个单词都有元音和辅音。元音在英文中有A、E、I、O、U这5个,所有的英文单词都会有这些母音(专有名词或缩写例外)。也有可能是双元音的词,如:au,ai,ea,ei,ia,ie,ou,oe,ui,ua等。每个词的开头,有可能是元音,也有可能是辅音,但是辅音之后通常接的是元音字母,但是也有例外。如:student是两个辅音再接一个元音字母,所以依照常用词找出这些辅音,如:br,bl,cl,dg,dr,fl,gr,kn,ph,st,sp,wh等。然后看结尾部分,通常结尾部分有下列几种:e,est,ord,ard,1s,es,s等。其组合有:辅音+元音+辅音,辅音+元音+辅音+元音+辅音等。按照这些组合规则,由程序自动生成字典。一个较好的字典可使解密的速度成倍提高。下面分析在UNIX系统中最常用的解密软件JohnTheRipper利用字典进行破解的运行情况。这个软件由著名的黑客组织——UCF编写,它支持UNIX,DOS,Windows系统,同时速度很快。对于老式的passwd文件,JOHN可以直接读取并用字典穷举击破。对于用passwd+shadow的方式加密的文件,JOHN提供了UNSHADOW程序直接把两者合成出老式passwd文件。JOHN在解密过程中会自动定时存盘,也可以强迫中断解密过程(Ctrl+c),下次执行还可以从中断的地方继续进行下去(john–restore)。任何时候敲击键盘,就可以看到整个解密的进行情况,所有已经被破解的密码会被保存在当前目录下的JOHN.POT文件中。UNIX共有128个字符(0x00—0x7F),小于0x20的都是控制符,不能作为口令;0x7F为转义符,不能作为口令。那么总共有128−32−1:95个可作为口令的字符,即10(数字)+33(标点符号)+26*2(大小写字母)=95个。如果passwd取任意5个字母+1位数字或符号(按顺序),可能性是52*52*52*52*52*43(约163亿种可能性);但如果5个字母是一个常用词,且设常用词为5000个,从5000个常用词中取一个词与任意一个字符组合成口令,即5000*(2*2*2*2*2)*43(约688万种可能性)。实际情况下绝大多数人都只用小写字符,可能性还要小。但这已经可以用微机进行穷举,所以6位口令是很不可靠的,至少要用7位。解密时需要用户指定一个字典文件,JOHN读取用户给定的字典文件中的单词尝试进行解密。其利用用户经常使用的诸如hello、superman、computer⋯之类的有意义单词作为字典中的密码。JOHN中自带了一个字典,文件名为:passWord.lst,里面包含了一些常被用来作为密码的单词。以下给出几个:12345、abcl23、passwd、123456、newpass、Internet、Maddock、newuser、12345678、computer00、Horses、Internet、duck2、Mickey以及Cowboys等,很多用户确实是这么设置密码的。当已经取得了某个口令文件SHADOW,并且存为SHADOW.TXT文件。用解密软件JOHN来解密,步骤如下。john–singleshadow.txt–97–\n计算机信息安全john–Wordfile:passWord.1st–rulesshadow.txtjohn–i:allshadow.txt第一步主要是根据用户的名称,加上常见的变化而猜测密码。比如此用户名为Mools,而其密码有可能是Mools、Moolsl23、Moolsl、slooM、slooMl23、sloMo…。这样的用户密码一般在l分钟内便能破解。第二步是使用字典文件来进行解密,字典利用的就是人们在记忆中的定式和懒惰性,如人们常用hello、superman、cooler、asdfgh、123456等作为自己的密码。而-rules参数则在此基础上再加上些变化,如字典中有单词cool,则JOHN还会尝试使用cooler、Cool1、Cool123等单词变化进行解密。一般视SHADOW中的用户多少及字典大小、计算机的速度快慢,解密时间从几小时到几天不等。第三步是利用纯粹的猜测、穷举的方法解密,遍历所有可能的密钥空间。JOHN会尝试以95个字母,进行1~8个长度的所有组合,这种方法将非常耗时。JohnTheRipper是对取得的口令文件进行解密,还有Repwl专门破解Windows9x的pwl口令文件,而LetMeIn、Ftppass则用于在线口令试探。在WindowsNT操作系统中,NT把用户信息和加密口令保存于NTRegistry中的SAM(SecurityAccountsManagement)文件或SAM._中,在Administrator组中的所有成员,其中包括备份操作员、服务器操作员以及所有具有备份特权的人员,都可以拷贝SAM。此SAM文件可以利用PWDump和NTCrack或LOPHTCRACK进行破解。LOPHTCRACK在对NT口令破解时,利用了NT口令加密的缺陷,即NT的LanManager(LM)口令散列算法LM将所有字符转变成大写,将口令扩充为14个字符(使用无意义的暗码);然后将这个字符串分成由七个字符组成的两部分,再分别进行加密;最后,将两组加密字符串连成一串,设置成最终的口令散列。由于NT口令加密的这一缺陷,使得破解一个9位的口令与破解7位口令难度相当,若后面几位能显示口令使用的规律,则使得破解更加容易。LOPHTCRACK等NT口令反向设计软件能够独立地推断口令的每一个部分。比如破解一个包含用户名为jack的NTSAM文件,若其密码为“Jackl234567”,尽管这是个11位长口令,但破解软件只需几秒便会显示其口令为“???????4567”,后4个字符很快被成功的解算出来,从“4567”的结果可以看出该口令可能包含“1234567”,则接下来的破解不应继续采用算法破解,而应采用字典进行破解,首选的字典文档生成方案便是使用用户名“jack”的4各字母大小写与“1234567”组合生成,共2个口令,枚举时间不到1秒,更稳妥的字典生4成方案采用95个字符取4位与“1234567”组合生成,共95个,枚举时间不到30秒。这与枚举完全部的11位,耗时大约100小时相比,要少多了。若利用各种组合生成的字典都无法破解,最后不得不进行穷举时,字符的排列顺序,不应按照字母的先后顺序排列,而应以某一统计规律排列。统计规律的获得,可通过收集大量口令,根据字符出现的频率来排列获得,另外还可利用键盘上字母的排列顺序,由于人们在使用键盘的行为习惯,使得易敲击到的按键在口令中也常被使用到。7.6.2设置安全的口令口令丢失不仅是你个人的损失,而且黑客通过你的口令进入系统后,会利用你的账户权限破坏整个系统,或以此为跳板攻击其他系统。因此,选择一个安全有效的口令是非常重要的。选择有效的口令可从以下几个方面入手。(1)千万不要使用你的用户名或真名做口令。安全行业把用户名做口令的账户称为Joe,–98–\n第7章网络安全技术它是黑客测试的第一个口令。(2)不要认为口令只能是数字,或只能是字母,口令可以使用:26×2(大小写字母)+10(数字)+33(标点符号)=95个字符。一个好的口令应包括大小写字母、数字、标点符号等,不要认为这很难记,如“1Q23L,yc45J.”可以记成“一去二三里,烟村四五家。”,这种口令虽然复杂,但很好记,又很难被搜索到。(3)不要使用对称性密码,如!dfd!。对于某些密码“暴力搜索”工具,这等于你的密码是3位数!(4)口令越长,“暴力搜索”需要的时间就越长。过去专家建议至少要取6位字符口令,而以现在的机器速度,6位口令并不可靠。如果取一个好的8字符口令,其各种组合大约为156.63*10种,在高速计算机上每秒算1百万次,使用“暴力搜索”平均需要1百年时间。(5)不要使用你的配偶、孩子、宠物、朋友或所在地的名字,以及生日、证件号码、电话号码等有关你的任何信息做口令。因为有时黑客并不遥远,他可以搜集到你的很多信息或就在你的机器上进行攻击,因此不可不防。说到此,还要提醒你提防“肩部冲浪者”,他会在你键入口令时记住它。(6)不要使用任何语言的单词或单词的变形作口令。“口令入侵者”可以搜索很多词典,再加上破译过程是由程序自动完成的,因此,有可能只需几个小时,便可破译口令。它比“暴力搜索”要快得多。(7)千万不要将口令告诉他人,无论他是谁或声称是谁。黑客是很好的“社会工程师”,他会不遗余力巧妙耐心地说服你将口令或其他敏感信息泄露给他,甚至伪装成系统管理员要求用户提供口令。(8)在不同的登录中不要使用同一个口令。有些口令的存放或传输是以明文或简单加密方式进行的,一旦被黑客获取,他便可以侵入到你能进入的所有系统。(9)永远不要对你的口令过于自信,要定期更换口令。不能重复使用同一个口令,这样可以避免“执着”的黑客进行“暴力搜索”,或即使口令泄露,黑客也无法长期使用它。(10)如果登录过程中出现了令人意外的现象,比如你肯定输对了口令,系统却显示“口令不对”或“系统出故障,请重新登录”等信息时,要考虑到是否有“特洛伊木马”伪装的登录屏正在套取你的口令或用户名?此时可请系统管理员进行分析,以防患于未然。如果每个用户都遵循以上十条规则,你的口令就会很有效,黑客也会对它大伤脑筋。7.7隐藏7.7.1通过跳板、代理实现隐藏若获得了用户登录口令,则可进一步登录到系统中;若没能获得口令,则采取其他的方法如测试系统可能存在的漏洞,如利用监听、嗅探捕获密文,暴力攻击等方法,但在进行这些行动之前最好先完成必要的防范措施。首先监听自身网络安全性,若发现被追踪迹象如被扫描或攻击,则立即暂停或离线,接着寻找防止被跟踪(即达到隐藏目的)的方法和途径。实现隐藏则要使对方不产生记录或记录错误;若控制权限较高或利用漏洞可清除记录,还可–99–\n计算机信息安全搜寻可用于作为中转跳板的主机。这些主机主要有免费的代理服务器、防护较弱的主机、漏洞较明显的主机,利用这些主机提供的代理服务或在其上安装代理程序便可实现中转的目的。在进行扫描时采用半开式扫描的方法,默认配置的系统不会对连接进行记录,若目标主机安装有其他防火墙软件则仍然会记录这些连接。对于短时间从同一地点发来的大量半开式连接,入侵检测系统很快会判定是一次蓄意入侵,从而会进行记录、阻挡和追查。在扫描时通过伪造数据包进行探测,利用原始套接字编程,即设置soket类型为SOCK_RAW,由程序填充整个IP数据包,从而利用伪造的IP数据包对目标进行扫描。为了获得目标的应答数据包,伪造的IP数据包中的IP地址应与自己在同一网段,路由设备才会将目标的应答数据包传送到自己所在的网段,然后利用监听、嗅探程序截获应答数据包进行分析,此时入侵监测系统获得的将是错误的记录。在互联网络中有许多的免费代理服务器,这些代理服务器分布在世界各地,通过这些代理服务器转交的访问将大大增加追查的难度。但是这些代理一般仅提供对WWW服务的访问,且只能实现一次中转,因而最好的代理中转还应利用控制权限更大的主机。在这些主机上安装代理程序,代理程序支持所有的端口连接和中转请求,代理程序还应支持多级代理,为防止追查,代理程序对接收和中转的数据应进行加密处理。在代理软件中,SkSockServer就是一个支持多级代理,且进行通信加密的代理软件。假设已在若干台有漏洞的主机上传了SkSockServer,在对方的主机上用命令行运行:C:\WINNT\system32>C:\WINNT\system32>SkSockServer–installSnakeSockProxyServiceinstalled.(安装跳板)C:\WINNT\system32>SkSockServer-configstarttype2TheNewStartTypehavesetto2--Auto(使跳板自动运行)C:\WINNT\system32>SkSockServer–configport8320(让跳板工作在8320端口)ThePortvaluehavesetto8320C:\WINNT\system32>netstartskserverTheSnakeSockProxyServiceserviceisstarting.TheSnakeSockProxyServicesservicewasstartedsuccessfully.(跳板安装成功)SkSockServer代理服务程序便在入侵的主机上运行,接着设置好SkSockServer的客户端程序,利用这些运行SkSockServer的主机作跳板进行更广的攻击。客户端:IP填入127.0.0.1,掩码填入255.255.255.255,选中“允许”单选框。点击“增加”按钮就设置了客户端只能通过127.0.0.1这一个IP地址连接,当然也可以改为其他任意地址。经过的SkSockServer:这里可以填上已经安装好SkSockServer机器的IP和端口,选中“允许”单选框,然后点击“增加”按钮。注意,如果填上超过1个IP地图7.15Snake代理跳板–100–\n第7章网络安全技术址,SkSockServer可以自动把这N个代理“串联”起来,如图7.15所示。程序最终显示为最下面一个代理地址。通过“上移”、“下移”按钮可以改变串联代理的次序。如果因为某些原因现在不想利用某个SkSockServer代理,还可以填上SkSockServer代理的IP地址和端口然后不选中“允许”单选框,点击“增加”按钮。然后在列表中删除Active项为YES的对应机器。图中Active标记为N的表示暂时没有激活的SkSockServer。通过SkSockServerGUI可以很方便地察看目前代理的使用情况。如果SkSockServerGUI显示连接传输的字节为0或者一直是非常小的数字,说明选用的某个SkSockServer代理连接有问题。利用单个SkSockServer代理作跳板,一个在使用中出了问题则可换另外一个SkSockServer代理。如果使用多个SkSockServer代理,当某个中间的代理有问题,则需逐个禁止激活中间代理,查出故障地址,然后将不能使用的代理去除。经过实际操作可知道SkSockServerGUI可以很好的支持各类浏览器、QQ和大部分网络连接工具。若无法获得代理或无法找到可利用的主机,则要真正在线去试探、攻击某目标时,必须先将自己隐藏,防止被发现。其中IP的隐藏最为关键。一般情况下,分配的IP为固定值或被指定在某一范围内,直接修改自己的IP也只能在所规定的范围,通过查该IP还是能确定攻击的具体来源。在网络中有许多的代理服务器,利用代理服务器对网络进行的访问,在目标端记录的是代理服务器的IP。proxyhunter(代理猎手)软件可用于搜索在网络中的代理服务器,图7.16显示其搜索过程。图7.16proxyhunter搜索过程对于这种经过一个中转站的攻击,依然可通过层层追查找到源头。对于像拒绝服务之类只需目标地址而不接收回应的攻击,可修改往外发送的数据报头,将源目标IP修改为任意值,这样就不易被发现。例如攻击15.52.246.45,可指定源地址、目标地址都为15.52.246.45,端口都使用80。如果要接收回应,可利用主机间的信任关系,实施IP欺骗,利用远程过程调用(RPC)中仅依赖IP实现身份确认的特性来攻击。–101–\n计算机信息安全7.7.2清除记录日志文件详细记录了系统中任何人所做的任何事情。这对于系统监测来说是非常重要的资料。在利用日志文件监测之前,必须先做两件事:第一,必须将系统的日志记录功能打开;第二,对日志文件内容进行详细阅读。很多管理员没有将记录日志文件的功能选项打开,而且即使打开了,也没有对它进行定期阅读。所以,即使黑客没有对自己的踪迹进行任何的消隐,也有很大的可能不被发现。有经验的攻击者都不会冒这个险,他们会清除所有的日志文件。清除可以采取两种方式。最简单的一种是进入系统然后将所有的日志文件删除。当数量很大的日志文件突然之间变的很少的话,系统会自动通知系统管理员,因为每个日志文件的结束处,都有一个触发器。第二种方法是攻击者可以“医治”日志文件。首先取得日志文件然后将其中有关于攻击记录的部分删除。根据所攻击的系统不同,工作的难度有所不同,因为WindowsNT系统和UNIX系统处理日志文件的方法不同。在UNIX系统中有以下三个重要的log文件。WTMP——记录每次登录的信息,包括登陆/退出的时间、终端、登录主机IP。UTMP——在线用户记录。LASTLOG——记录用户上次是从哪里登录的。每次通过Telnet、FTP、Rlogin以及Rsh的登录都会被记录到这些文件中。进入系统内部后应尽力删除这些记录(这些文件是系统内核的一部分,不能删除该文件,否则系统会告警),这些文件缺省的存放位置视UNIX版本不同而不同,通常在/etc或/usr/adm或/var/log目录下。WindowsNT在以下三个分开的日志文件中存放审计信息。ApplicationLog——包括用NTSECURITYAUTHORITY注册的应用程序产生的信息。SecurityLog——包括有关通过NT可识别安全提供者和客户的系统访问信息。SystemLog——包含所有系统相关事件的信息。在系统中除了log文件记录了操作行为,还有历史记录和临时文件、缓存文件,这些文件也应尽力删除或修改,这些文件主要保存在temp目录下。除了系统自带的安全审计外,网络管理人员还可能安装了第三方监测程序,对于查找这些程序产生的记录可以通过以下方法。(1)检查已经安装的安全程序。(2)检查SYSLOG配置和记录。(3)搜索所有在登录后有变化的文件。(4)查找所有打开的文件、程序。有些监测系统防范较严或产生的记录太多无法确定主要的安全审计记录,则可通过查找历史记录、log文件或安装自己的后台监视程序,监视系统管理员登陆所执行的操作,了解系统管理员采取了哪些安全措施,从而得知应该重点修改哪些记录文件。7.8入侵攻击为了达到某种目的对系统进行攻击,若取得了登陆权限并具有对文件读写权限,则最常–102–\n第7章网络安全技术见的攻击是删除、修改文件,安装木马后门,扩散病毒以及安放监听程序截获用户机密信息,以该主机作为跳板,对其他主机攻击;若没有登陆权限,则要采取其他的攻击方法。7.8.1拒绝服务攻击拒绝服务攻击(DenialofService,DoS)是一种最常见的攻击形式。严格来说,拒绝服务攻击并不是某一种具体的攻击方式,而是攻击所表现出来的结果,最终使得目标系统因遭受某种程度的破坏而不能继续提供正常的服务,甚至导致物理上的瘫痪或崩溃。具体的操作方法是多种多样的,可以是单一的手段,也可以是多种方式的组合利用。其结果都是一样的,即合法的用户无法访问所需信息。通常拒绝服务攻击可分为以下两种类型。第一种是使一个系统或网络瘫痪。如果攻击者发送一些非法的数据或数据包,就可以使得系统死机或重新启动。本质上是攻击者进行了一次拒绝服务攻击,因为没有人能够使用资源。以攻击者的角度来看,攻击的刺激之处在于可以只发送少量的数据包就使一个系统无法访问。在大多数情况下,系统重新上线需要管理员的干预,重新启动或关闭系统。所以这种攻击是最具破坏力的,因为做一点点就可以破坏,而修复却需要人为干预。第二种攻击是向系统或网络发送大量信息,使系统或网络不能响应。例如,如果一个系统无法在一分钟之内处理100个数据包,攻击者却每分钟向他发送1000个数据包。这时,当合法用户要连接系统时,用户将得不到访问权,因为系统资源已经不足。进行这种攻击时,攻击者必须连续地向系统发送数据包。当攻击者不向系统发送数据包时,攻击停止,系统也就恢复正常了。此攻击方法攻击者要耗费很多精力,因为他必须不断地发送数据。这种攻击会使系统瘫痪,然而大多数情况下,恢复系统只需要少量人为干预。这两种攻击既可以在本地机上进行也可以通过网络进行。1.拒绝服务攻击类型(1)PingofDeath根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了PingofDeath攻击,该攻击会造成主机的宕机。(2)TearDropIP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。(3)Land攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。(4)Smurf该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将–103–\n计算机信息安全源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。(5)SYNflood该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYNACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。(6)WinNuke是以拒绝目的主机服务为目标的网络层次的攻击。攻击者向受害主机的端口139,即netbios发送大量的数据。因为这些数据并不是目的主机所需要的,所以会导致目的主机的死机。(7)RPCLocator攻击者通过telnet连接到受害者机器的端口135上,发送数据,导致CPU资源完全耗尽。依照程序设置和是否有其他程序运行,这种攻击可以使受害计算机运行缓慢或者停止响应。无论哪种情况,要使计算机恢复正常运行速度必须重新启动。2.分布式拒绝服务攻击分布式拒绝服务攻击(DDoS)是攻击者经常采用而且难以防范的攻击手段。DDoS攻击是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高时,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了——目标对恶意攻击包的“消化能力”加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10000个攻击包,这样一来攻击就不会产生什么效果。所以分布式的拒绝服务攻击手段(DDoS)就应运而生了。如果用一台攻击机来攻击不再起作用的话,攻击者就使用数台攻击机同时攻击。DDoS就是利用更多的傀儡机更大的规模来发起进攻。高速广泛连接的网络也为DDoS攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起。攻击者的傀儡机位置可以分布在更大的范围,选择起来更灵活了。一个比较完善的DDoS攻击体系分成以下四大部分。攻击者所在机控制机(用来控制傀儡机)傀儡机受害者先来看一下最重要的控制机和傀儡机。它们分别用做控制和实际发起攻击。请注意控制机与攻击机的区别。对受害者来说,DDoS的实际攻击包是从攻击傀儡机上发出的,控制机只发布命令而不参与实际的攻击。对控制机和傀儡机,黑客有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自黑客–104–\n第7章网络安全技术的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦黑客连接到它们进行控制,并发出指令的时候,攻击傀儡机就成为害人者去发起攻击了。为什么黑客不直接去控制攻击傀儡机,而要从控制傀儡机上转一下呢?这就是导致DDoS攻击难以追查的原因之一。从攻击者的角度来说,肯定不愿意被捉到,而攻击者使用的傀儡机越多,他实际上提供给受害者的分析依据就越多。在占领一台机器后,高水平的攻击者会首先做两件事:一是考虑如何留好后门,二是如何清理日志。这就是擦掉脚印,不让自己做的事被别人查觉到。初级黑客会不管三七二十一把日志全都删掉,如果这样,网管发现日志都没了就会知道有人干了坏事,顶多无法再从日志发现是谁干的而已;相反,真正的好手会挑有关自己的日志项目删掉,让人看不到异常的情况。这样可以长时间地利用傀儡机。但是在攻击傀儡机上清理日志实在是一项庞大的工程,即使在有很好的日志清理工具的帮助下,黑客也是对这个任务很头痛的。这就导致了有些攻击机弄得不是很干净,通过它上面的线索找到了控制它的上一级计算机。这上级的计算机如果是黑客自己的机器,那么他就会被揪出来了。但如果这是控制用的傀儡机的话,黑客自身还是安全的。控制傀儡机的数目相对很少,一般一台就可以控制几十台攻击机,清理一台计算机的日志对黑客来讲就轻松多了,这样从控制机再找到黑客的可能性也大大降低。7.8.2缓冲区溢出攻击几十年来,缓冲区溢出一直引起许多严重的安全性问题。其中最著名的例子是:1988年,Internet蠕虫程序在finger中利用缓冲区溢出感染了Internet中的数千台机器。但是,缓冲区溢出问题并非已成古老的历史,缓冲区溢出(又称堆栈溢出)攻击已成为最常用的黑客技术之一。据统计,仅2002年缓冲区溢出就占使CERT/CC提出建议的所有重大安全性错误的百分之五十以上。引起缓冲区溢出问题的根本原因是C(与其后代C++)本质就是不安全的,没有边界来检查数组和指针的引用,也就是开发人员必须检查边界(而这一行为往往会被忽视),否则会冒遇到问题的风险。标准C库中还存在许多非安全字符串操作,包括strcpy()、sprintf()及gets()等。缓冲区溢出源于每个程序运行的需要:放置数据的空间。多数计算机程序都在内存中创建多个地址用于信息存储。C编程语言允许程序员在程序运行时在内存的两个不同部分(堆栈和堆)中创建存储区。通常,分配到堆的数据是那些malloc()或新建时获得的数据。而分配到堆栈的数据一般包括非静态的局部变量和所有按值传递的参数。大部分其他信息存储在全局静态存储器中。在分配同一数据类型的相邻块时,这块内存区域称为缓冲区。在写入缓冲区时,C程序员必须注意存储在缓冲区中的数据不能超过它所能容纳的量。缓冲区只能容纳一定数量的位,就象一个杯子只能盛一定量的水。如果放到杯子中的水太多,多余的水就会溢出到别的地方。相似地,如果试图放入缓冲区的数据比它能装入的要多,额外的数据就会溢出到别处。当程序写入超过缓冲区的边界时,这就是所谓的“缓冲区溢出”。发生缓冲区溢出时,会覆盖下一个相邻的内存块。由于C语言本质上的不安全性,所以它允许程序随意(或者更准确地说是完全出于偶然)溢出缓冲区。没有运行时检查来写入超过缓冲区末尾,所以程序–105–\n计算机信息安全员必须在自己的代码中执行这一检查,否则继续下去会出现问题。读取或写入超过缓冲区的末尾时,会导致以下不同(并且通常是不可预料的)行为。(1)程序的执行很奇怪。(2)程序完全失败。(3)程序可以继续,而且在执行中没有任何明显不同。缓冲区溢出的副作用取决于如下4方面。(1)写入的数据中有多少超过缓冲区边界。(2)当缓冲区已满并且溢出时,覆盖了哪些数据(如果有的话)。(3)程序是否试图读取溢出期间被覆盖的数据。(4)哪些数据最终替换被覆盖的内存。存在缓冲区溢出的程序的不确定行为使得对它们的调试异常棘手。最坏的情况是:程序可能正发生缓冲区溢出,但根本没有任何副作用的迹象。因此,缓冲区溢出问题常常在标准测试期间是发现不了的。认识缓冲区溢出的重要一点是,在发生溢出时,会潜在地修改碰巧分配在缓冲区附近的任何数据。一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误,但是,如果输入的数据是经过“黑客”精心设计的,覆盖缓冲区的数据恰恰是黑客的入侵程序代码,黑客就获取了程序的控制权。最简单的情况就是考虑直接在缓冲区后面的内存中分配有一个布尔标志。这个标志决定运行程序的用户是否可以访问专用文件。如果有不怀好意的用户覆盖缓冲区,则会更改标志的值,从而使攻击者可非法访问专用文件。缓冲区溢出导致安全性问题的另一个方法是通过摧毁堆栈。摧毁堆栈的目的是导致一个特定的编程故障:不仔细使用分配在程序运行时堆栈上的数据缓冲区,即局部变量和函数自变量。有效的摧毁堆栈所造成的后果比上一示例中提到的改变布尔访问控制标志的后果更为严重。有创造力的攻击者会通过摧毁堆栈利用缓冲区溢出的弱点,然后运行任何代码。这种想法是相当直接的:在某处插入一些攻击代码(例如,调用shell的代码)并以将控制传递给攻击代码的方式来覆盖堆栈。此外,攻击者利用缓冲区溢出得到机器上的交互式会话(shell)。如果被利用的程序以较高的优先权在运行(如root用户或管理员),则攻击者就会在交互式会话中得到该优先权。最惊人的缓冲区溢出是堆栈的摧毁,它会在超级用户或root、shell中造成后果。许多可利用的脚本都能在网络上找到,它们对特定体系结构上的堆栈进行摧毁。缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可能导致程序运行失败、系统死机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。缓冲区溢出攻击占了远程网络攻击的绝大多数,这种攻击可以使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权。如果能有效地消除缓冲区溢出的漏洞,则很大一部分的安全威胁可以得到缓解。目前主要有以下四种基本的方法保护缓冲区免受缓冲区溢出的攻击和影响。(1)非执行的缓冲区通过使被攻击程序的数据段地址空间不可执行,从而使得攻击者不可能执行植入被攻击–106–\n第7章网络安全技术程序输入缓冲区的代码,这种技术被称为非执行的缓冲区技术。在早期的UNIX系统设计中,只允许程序代码在代码段中执行。但是近来的UNIX和MSWindows系统由于要实现更好的性能和功能,往往在数据段中动态地放入可执行的代码,这也是缓冲区溢出的根源。为了保持程序的兼容性,不可能使所有程序的数据段都不可执行。(2)编写正确的代码编写正确的代码,使用更具安全性的函数,可以利用一些检测工具进行检测,如用grep来搜索源代码中容易产生漏洞的库调用,比如对strcpy和sprintf的调用,这两个函数都没有检查输入参数的长度。(3)数组边界检查数组边界检查能防止所有缓冲区溢出的产生和攻击。这是因为只要数组不溢出,溢出攻击也就无从谈起。为了实现数组边界检查,则应当对所有的数组读写操作进行检查以确保数组的操作在正确的范围内。(4)程序指针完整性检查程序指针完整性检查和边界检查有略微的不同,程序指针完整性检查在程序指针被引用之前检测到它的改变。因此,即使一个攻击者成功地改变了程序的指针,由于系统事先检测到了指针的改变,因此这个指针将不会被使用。7.8.3欺骗攻击假信息欺骗包括针对协议、网络服务的欺骗,如对TCP/IP三次握手中实施IP欺骗、发布错误的ARP(addressresolutionprotocol)数据包进行欺骗、DNS欺骗等。欺骗手段可分主动欺骗和被动欺骗。主动欺骗的方法是主动向目标发出假信息进行欺骗、干扰,如ARP数据包等,被动欺骗则被动的等待外部访问,如开放共享、提供Web服务来传播假信息、扩散病毒程序,而像E-mail电子邮件欺骗则既有主动性质,同时欺骗收件人去访问某个文件,则又具有被动性。1.ARP数据包欺骗ARP协议用于将IP地址转换成MAC地址。ARP数据包欺骗攻击有以下几种方式。(1)当一个主机A接收到与自己相同的IP发出ARP请求就会弹出一个对话框,提示“冲突”,通过伪造主机A的IP向局域网不停地发送ARP请求,则造成A系统瘫痪。(2)由于主机B接收到一个ARP请求包后就会把这个包中的信息放入到ARP表中,可通过以一个局域网网关或者任意一台不想让B访问的主机C的IP身份,同时以一个不存在的MAC地址向B发送ARP应答报文,结果造成主机B无法上网或访问主机C。(3)用ARP欺骗交换机,交换机具有记忆MAC地址功能,它维护一张MAC地址和它的端口号表,交换机读取数据包中目的MAC地址,然后通过这张表将数据包转发到对应端口,可以通过发送含有另一网段中主机MAC地址的ARP应答包欺骗交换机,从而使另一网段的工作异常,时常发生数据包丢失,同时还能监听传入另一网段的数据。2.DNS欺骗由于DNS服务器与其他名称服务器交换信息的时候并不进行身份验证,这就使得攻击–107–\n计算机信息安全者可以将不正确的信息掺入DNS服务器中,或通过攻击直接获取DNS服务器控制权,篡改DNS的记录信息,使用这些被篡改的记录信息来达到进一步入侵整个网络的目的。例如,将现有的DNS记录中的主机信息修改成被攻击者自己控制的主机,这样使所有到达原来目的地的数据包将被重定位到入侵者手中。如果WWW.263.net的主DNS服务器ns.263.net被人控制,原来的WWW.263.net是解析到211.100.3.2,那么入侵者可以篡改DNS的记录,将其重新解析到10.10.7.8,而这个10.10.7.8上也运行一个模仿了WWW.263.net提供的邮件服务,那么不知内情的用户就会在这个假的地址输入他们的密码和用户名,则这些信息即被窃取。利用被控制的DNS服务器还可绕过防火墙等其他安全设备的控制。现在一般的网站都设置有防火墙,但是由于DNS服务的特殊性,DNS需要的端口是UDP53和TCP53,它们都是需要有root执行权限,防火墙很难控制对这些端口的访问。可以利用DNS的诸多漏洞获取到DNS服务器的管理员权限。3.WEB欺骗假信息欺骗还包括对人的欺骗,由于人为操作的失误、疏忽、好奇或贪婪,从而使得欺骗得逞。用户无法像应用程序那样对提供的海量数据进行检测,且用户只能看到表面的现象,对于底部的运行和具体细节一无所知。常见的有Web欺骗、电子邮件欺骗。(1)基本的网站欺骗攻击者会利用现在注册一个域名没有任何要求的现状,抢先或特别设计注册一个非常类似的有欺骗性的站点。当一个用户浏览了这个假冒地址,并与站点作了一些信息交流,如填写了一些表格,站点会给出一些响应的提示和回答,同时记录下用户的信息,并给这个用户一个cookie,以便能随时跟踪这个用户。典型的例子是假冒金融机构,偷盗客户的信用卡信息。(2)man-in-the-middle攻击可以说所有不同类型的攻击都能使用man-in-the-middle(中间人)攻击,不止是WEB欺骗。在man-in-the-middle攻击中,攻击者必须找到自己的位置,以使进出受害方的所有流量都经过他。攻击者可通过攻击外部路由器来实现,因为所有进出公司组织的流量不得不经过这个路由器。man-in-the-middle原理是,攻击者通过某种方法(比如攻破DNS服务器,DNS欺骗,控制路由器,ARP欺骗)把目标机器域名的对应IP改成攻击者所控制机器的IP,这样所有外界对目标机器的请求将涌向攻击者的机器,这时攻击者可以转发所有的请求到目标机器,让目标机器进行处理,再把处理结果发回到发出请求的客户机。实际上,就是把攻击者的机器设成目标机器的代理服务器,这样,所有外界进入目标机器的数据流都在攻击者的监视之下了,攻击者可以任意窃听甚至修改数据流里的数据,收集到大量的信息。(3)URL重写在URL重写中,就像在中间人攻击中一样,攻击者把自己插入到通信流中,惟一不同的是,在中间人攻击中,当流量通过互联网时,攻击者必须在物理上能够截取它。有时这非常难于实现,因此攻击者使用URL重写。在URL重写中,攻击者能够把网络流量转到攻击者控制的另一个站点上。利用URL地址,使地址都指向攻击者的Web服务器,即攻击者可以将自己的Web地址–108–\n第7章网络安全技术隐藏在所有的URL地址中。这样,当用户与站点进行安全链接时,就会毫不防备地进入攻击者的服务器,于是用户的所有信息便处于攻击者的监视之中。但由于浏览器一般均设有地址栏和状态栏,当浏览器与某个站点连接时,可以在地址栏和状态栏中获得连接中的Web站点地址及其相关的传输信息,用户由此可以发现问题,所以攻击者往往在URL地址重写的同时,利用相关信息掩盖技术,即一般用JavaScript程序来重写地址栏和状态栏,以达到其掩盖欺骗的目的。4.电子邮件欺骗攻击者使用电子邮件欺骗有三个目的:第一,隐藏自己的身份。第二,如果攻击者想冒充别人,他能假冒那个人的电子邮件。使用这种方法,无论谁接收到这封邮件,他会认为它是攻击者冒充的那个人发的。第三,电子邮件欺骗能被看作是社会工程的一种表现形式。例如,如果攻击者想让用户发给他一份敏感文件,攻击者伪装他的邮件地址,使用户认为这是老板的要求,用户就可能会发给他这份敏感文件。执行电子邮件欺骗有以下三种基本方法,每一种有不同难度级别,执行不同层次的隐蔽。(1)相似的电子邮件地址使用这种类型的攻击,攻击者找到一个公司的老板或者高级管理人员的名字。有了这个名字后,攻击者注册一个看上去像高级管理人员名字的邮件地址。他只需简单的进入hotmail等网站或者提供免费邮件的公司,注册这样一个账号。然后在电子邮件的别名字段填入管理者的名字。我们知道,别名字段是显示在用户的邮件客户的发件人字段中。因为邮件地址似乎是正确的,所以收信人很可能会回复它,这样攻击者就会得到想要的信息。当用户收到邮件时,注意到它没有完整的电子邮件地址。这是因为把邮件客户设成只显示名字或者别名字段。虽然通过观察邮件头,用户能看到真实的邮件地址是什么,但是很少有用户这么做。(2)修改邮件客户身份当用户发出一封电子邮件时,邮件客户软件没有对发件人地址进行验证或者确认,因此如果攻击者能够运行被盗用者的邮件客户软件,他能够修改出现在发件人中的地址。要改变他的电子邮件身份,可到他的电子邮件客户软件的邮件属性栏,寻找身份一栏,通常选择“回复地址”。回复地址的默认值正常来说就是他的电子邮件地址和他的名字,但在此,攻击者可以任意更改。攻击者能够指定他想要的任何返回地址。因此当收件人回信时,回复邮件将回到攻击者提供的地址,而不是回到被盗用了地址的人那里。(3)登录SMTP服务器一个更复杂的方法是远程登录到邮件服务器的端口25,邮件服务器使用此端口在Internet上发送邮件。首先找一个发送邮件的SMTP服务器。这在今天的互联网上真是太容易了,比如smtp.china.net,smtp.yeah.net等等。然后带参数运行telnet,命令格式为:telnet25当攻击者想发送给用户信息时,他先写一个信息,其中“发件地址”和“发件人”可以随便输入一些字符,然后发送。按以上方法发出的邮件可以没有发件人姓名和发送方邮件地址,信件内容全部以明文纯–109–\n计算机信息安全文本形式发送,用记事本打开,只能从邮件的头部看到一些SMTP服务器的信息。这样就实现了匿名邮件的发送。有时攻击者会使用端口扫描来判断哪个服务器端口25是开放的,以此找到邮件服务器的IP地址。越来越多的系统管理员正在意识到攻击者在使用他们的系统进行欺骗,所以更新版的邮件服务器不允许邮件转发,并且一个邮件服务器应该只发送或者接受一个指定域名或者公司的邮件。7.9后门和特洛伊木马7.9.1什么是后门和木马在大多数情况下,攻击者入侵一个系统后,他可能还想在适当的时候再次进入系统。比如说,如果攻击者入侵了一个站点,将它作为一个对其他系统进行攻击的平台或者是跳板,他就会想在适当的时候登录到这个站点取回他以前存放在系统里面的工具进行新的攻击。很容易想到的方法就是在这个已经被入侵的系统中留一个后门。但是,非常关键的是,不但要留下下次进入的通道,而且还要对自己所做的一切加以隐藏,如果建立起的后门马上就被管理员发现就没有任何用处了。简单地说,后门(backdoor)就是攻击者再次进入网络或者是系统而不被发现的隐蔽通道。最简单的方法就是打开一个被端口监听代理所监听的端口,有很多软件可以做到这一点。如果用户使用端口扫描器对网络内部所有计算机从端口1到端口1023进行扫描的话,而攻击者打开的端口是5050,那么就永远也不会被发现。这也是我们在扫描时必须对所有的计算机从端口1到端口65535进行扫描的原因。而且不是一次就可以了,需要两次。一次为TCP,一次为UDP。由于越来越多的公司已经渐渐地加强了对TCP端口的管理而忽视了UDP端口的管理,所以很多攻击者将开放的端口都选择在UDP端口。当获得了系统的存储权时,建立后门是相当容易的;但是在没有完全获得对系统的存取权限时,一般可以通过使用特洛伊木马来实现。特洛伊木马是一个包含在一个合法程序中的非法的程序。该非法程序被用户在不知情的情况下执行。其名称源于古希腊的特洛伊木马神话。一般的木马都有客户端和服务器端两个执行程序,其中客户端是用于攻击者远程控制植入木马的机器,服务器端程序即是木马程序。攻击者要通过木马攻击目的系统,他所做的第一步是要把木马的服务器端程序植入到目的计算机里。目前木马入侵的主要途径还是先通过一定的方法把木马执行文件弄到被攻击者的电脑系统里,如邮件、下载等;然后通过一定的提示故意误导被攻击者打开执行文件,比如故意谎称这个木马执行文件是你朋友送给你的贺卡,可能你打开这个文件后,确实有贺卡的画面出现,但这时可能木马已经悄悄在你的后台运行了。一般的木马执行文件非常小,大都是几K到几十K,如果把木马捆绑到其他正常文件上,你很难发现的。所以,有一些网站提供的软件下载往往是捆绑了木马文件的,在你执行这些下载的文件,也同时运行了木马。–110–\n第7章网络安全技术木马也可以通过Script、ActiveX及Asp、Cgi交互脚本的方式植入。由于微软的浏览器在执行Script脚本上存在一些漏洞,攻击者可以利用这些漏洞传播病毒和木马,甚至直接对浏览者电脑进行文件操作等控制。如果攻击者有办法把木马执行文件上载到被攻击主机的一个可执行WWW目录里面,他可以通过编制Cgi程序在被攻击主机上执行木马程序。木马还可以利用系统的一些漏洞进行植入,如微软著名的IIS服务器溢出漏洞,通过一个IISHACK攻击程序即把IIS服务器崩溃,并且同时在攻击服务器执行远程木马执行文件。木马在被植入攻击主机后,它一般会通过一定的方式把入侵主机的信息,如主机的IP地址、木马植入的端口等发送给攻击者,这样攻击者有这些信息才能够与木马里应外合控制被攻击主机。在早期的木马里面,大多都是通过发送电子邮件的方式把入侵主机信息告诉攻击者,有一些木马文件干脆把主机所有的密码用邮件的形式通知给攻击者,这样攻击者就不用直接连接被攻击主机即可获得一些重要数据,如攻击OICQ密码的GOP木马即是如此。使用电子邮件的方式对攻击者来说并不是最好的一种选择,因为如果木马被发现,则可以通过这个电子邮件的地址找出攻击者。现在还有一些木马采用的是通过发送UDP或者ICMP数据包的方式通知攻击者。7.9.2几个常见的木马下面简要介绍几个常见的木马程序。1.BO2000BO的全称是BackOrifice(文雅一点的中文译名应该叫后门)。它是一个可以搜集信息、执行系统命令、重设置机器、重定向网络的客户机/服务器应用程序。只要远程机器执行了boserver程序,用户就可以连接这部机器,执行上述的动作。虽然BO可以当作一个简单的监视工具,但它主要的目的还是控制远程机器和搜集资料。BO匿名登录和可能恶意控制远程机器的特点,使它成为在网络环境里一个极其危险的工具。BO安装包括两部分:客户端和服务端。在服务端安装BO非常简单,只要执行BO的服务端程序即可。可执行文件名字最初叫做bo2k.exe,但实际上可能会被改名。这个可执行文件的名字是在BO客户端安装时,或在BO2000设置向导里指定的。向导会指导用户进行设置,包括服务端文件名(可执行文件)、网络协议(TCP或UDP)、端口、加密方式、密码。这个过程设置完毕后,运行bo2kgui.exe即可(BO客户端图形用户界面)。设置向导允许服务器端执行快速安装,使用默认设置,以便立即使用BO控制远程机器。但是,手工设置可以增加许多功能,有效防止BO被发现。设置向导有以下几个步骤。(1)服务端文件名。(2)网络协议(TCP或UDP)。(3)端口。(4)加密(XOR或3DES)。(5)密码/加密钥匙。向导执行完后,会列出服务器的设置工具,包括BO的运行状况,控制BO,客户端/服–111–\n计算机信息安全务器的通信协议和程序的隐藏。BO2000有如下特点。(1)可以查询或访问服务器端。(2)重新启动计算机、锁死系统、列出系统口令(从内存中获得)、获得系统信息。(3)记录键盘的活动,可以查看并删除LOG文件。(4)用一指定的文字及标题打开一个对话框。(5)将TCP端口映射到另外的一个IP地址、控制程序、HTTP文件服务器、文件名等。(6)增加或者去掉网络共享、网络共享的列表(包括局域网)、共享映像设备的列表、活动连接的列表。(7)进程控制:列表、删除及启动进程。(8)注册表的控制:虽然使用起来不太方便,所有的键都得手工键入。(9)播放WAV(声音)文件,捕捉屏幕图像。(10)完全磁盘寻址:列文件或目录、查找文件、查看文件、删除文件、移动文件、拷贝文件或者文件夹、传送文件列表的管理。(11)远程压缩或者解压缩文件(可以方便从远程计算机中获得大文件)。(12)灵活服务器控制:其中包括插件控制,命令接口管理器。2.冰河冰河是一个免费软件,主要用于远程监控。具体包括:自动跟踪屏幕变化、记录各种口令信息、获取系统信息、限制系统功能、任意操作文件及注册表、远程关机、发送信息等多种监控功能。冰河v8.0,完全修改了木马原来的默认配置。安装好服务器端监控程序后,运行客户端程序(如图7.17所示)就可以对远程计算机进行监控了。客户端执行程序的各模块功能如下。图7.17冰河客户端(1)添加主机:将被监控端IP地址添加至主机列表,同时设置好访问口令及端口,设置–112–\n第7章网络安全技术将保存在operate.ini文件中,以后不必重输。如果需要修改设置,可以重新添加该主机,或在主界面工具栏内重新输入访问口令及端口并保存设置。(2)删除主机:将被监控端IP地址从主机列表中删除(相关设置也将同时被清除)。(3)查看屏幕:查看被监控端屏幕(相当于命令控制台中的“系统类命令\捕获屏幕”)。(4)冰河信使:点对点聊天室。(5)自动搜索:搜索指定子网内安装有冰河的计算机。例如,欲搜索IP地址123.456.7.8至123.456.7.255的计算机,应将“起始”域设为123.456.7,将“起始地址”和“终止地址”分别设为7和255。(6)配置服务器程序:对G_Server.exe进行配置。例如是否将动态IP发送到指定信箱、改变监听端口、设置访问口令等。3.NetspyNetspy是国内高手编写的一个Windows95/98下运行的客户机/服务器模式的远程控制软件,它由客户程序和服务器程序两部分组成。Netspy服务器的安装方法十分简单,只需在待安装的机器上运行一次netspy.exe文件,即可安装完成。以后每次启动Windows95/98时,就会自动启动netspy.exe程序了。Netspy的客户程序有两个,一个是NetMonitor.exe,一个是procmon.exe。它们都是全中文界面的,使用十分简单方便。Netspy的缺点是不能为具体的机器设置密码,这样安装了netspyserver的机器一旦上网,有可能被任何安装了netspy客户程序的机器所控制了。由于netspy.exe程序安装后,每次重新启动Windows95/98都会自动启动,而且没有提供卸载手段,所以它可能被入侵者当作“后门”软件使用。只要设法欺骗受害人,使他运行一次netspy.exe文件,那么今后入侵者就仿佛有了一个进入受害者计算机的后门,只要受害人的计算机一上网,入侵者就可以神不知鬼不觉地取得它的完全控制权。这和BackOrifice非常相似。由于网虫们经常会从Internet上下载软件来使用,所以随时都面临着被入侵的危险。4.Happy99Happy99是一个在Internet上传播的蠕虫程序,主要以邮件的形式传递。如果收到Happy99.exe的程序,不小心执行后,将出现一幅放礼花的画面,在烟幕释放的同时,机器已被Happy99病毒感染。首次执行Happy99.exe,它会在Windows的系统目录下建立文件,SKA.EXE及SKA.DLL两个文件。其中SKA.EXE是Happy99.exe的拷贝,而SKA.DLL则被压缩在SKA.EXE文件中;此后,SKA将系统目录下的文件WSOCK32.DLL复制一份改为WSOCK32.SKA,在注表中创建一条注册项如下:HKEY_LOCAL_MACHINE\Software\Microsoft\CurrentVersion\RunOnce=SKA.EXE在下次启动时系统会自动加载。由于Happy99修改了两个函数:Connect(连接)和Send(发送邮件)调用,所以它能很清楚地“看到”受“感染”的用户的一切网上活动。当系统调用Connect或Send函数中的任意一个时,Happy99就会装载SKA.DLL(它含有两个出口函数:news和mail),它会将SKA.EXE映射到内存中,然后以与用户要发送邮件相同的地址发送一份自己的副本给该接收用户,该邮件没有任何内容,只有Happy99.exe文件。–113–\n计算机信息安全还有其他很多流行的木马程序,比如NetBus、Asylum和GOP等。总之,一旦木马程序进驻你的系统,它就会修改系统文件,从而控制你的系统。这时,你所有的“隐私”都会暴露在黑客的面前。7.9.3怎样检测与清除木马如今木马程序的种类越来越多,其危害性也越来越大。如何防范木马呢?大家至少要注意下面3点。(1)不要养成随意下载一些可执行的程序并执行它的习惯。(2)尽量不要共享磁盘。如果真的要共享文件夹,别忘了一定要加上密码。(3)给系统加上个人网络防火墙和反病毒软件,Norton、瑞星和金山等都是不错的品牌。当然要记住及时升级病毒库,再好的品牌不升级也不行。1.木马程序的检测现在,我们以Windows为例,学习一下木马程序的检测方法。首先,查看system.ini、win.ini、启动组中的启动项目。单击桌面上的“开始”按钮,选择“运行”,输入msconfig,出现Windows自带的“系统配置实用程序”对话框。(1)查看system.ini文件选中“system.ini”标签,展开[boot]目录,查看“shell=”这行,正常情况为“shell=Explorer.exe”,如果不是这样,就可能中了木马了。图7.18所示为正常时的情况。(2)查看win.ini文件选中win.ini标签,展开[windows]目录项,查看“run=”和“load=”行,等号后面正常时应该为空,如图7.19所示。图7.18system.ini对话框图7.19win.ini对话框(3)查看启动组再看看启动标签中的启动项目有没有什么非正常项目,要是有像bo、netbus、netspy等关键词,极有可能就是中了木马了。最好将启动组中的项目保持在比较精简的状态,不需要–114–\n第7章网络安全技术或无大用途的项目都屏蔽掉。如图7.20所示,只是选中了与注册表检查、音量控制、输入法和能源保护相关的启动栏,这样,一旦有木马出现就会一目了然了。其次,查看注册表。单击桌面上的“开始”按钮,选择“运行”,输入regedit,运行注册表编辑器,再展开至“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下(见图7.21),查看键值中有没有自己不熟悉的自动启动文件项目,如netbus、netspy、netserver等单词。注意,有的木马程序生成的服务器程序文件很像系统自身的文件,想由此伪装蒙混过关。比如Acid图7.20启动组对话框Battery木马,它会在注册表项的“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下加入Explore=“C:\Windows\Expiorer.exe”,木马服务器程序与系统自身真正的Explorer之间只有一个字母的差别!图7.21注册表编辑器通过类似的方法对下列各个主键下面的键值进行检查。HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceExHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce如果操作系统是WindowsNT,还得注意HKEY_LOCAL_MACHINE\Software\SAM下面–115–\n计算机信息安全的内容,如果有项目,那极有可能就是木马了。正常情况下,该主键下面是空的。上面这些主键是木马比较常用的隐身之处,当然在注册表中还有很多地方都可以隐藏木马程序,如:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_USERS\***\Software\Microsoft\Windows\CurrentVersion\Run一般地,注册表各个主键下都会有个叫“(默认)”名称的注册项,而且数据显示为“(未设置键值)”,也就是空的,这是正常现象。如果发现这个默认项被替换了,那么替换它的就是木马了。当然,你也可以用其他方法检测木马是否存在,如在MS-DOS窗口用netstat命令。2.清除木马如果中了木马怎么办?除了利用杀毒软件外,还有手动方法。下面总结了一些流行的木马病毒的手动解决方法。(1)BO2000它躲藏在Windows9x注册表的这个位置:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices如果在此发现可疑项(缺省名为UMGR32.EXE,很有可能改了名字),请将其删除。重新启动后,再到windows\system下面删除该名的程序。BO2K原件112K,但由于插件比较多,所以其大小是可变的。可以使用日期查找法来查,即找99年5月5号以后SYSTEM中的文件,找到可疑项,用文本编辑程序如ultraedit32查看是否为BO2K。对于WindowsNT,需要到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下查看各项服务,找到可疑项删之,这有一定难度,如果BO2K按其缺省方式设置,该服务即为RemoveAdministrationservers。在Windows95/98中,在运行栏键入msconfig,在启动项下禁用BO2K(即判断是BO2K的那个名字),然后到C:\windows\system下删除。此法用于不敢对注册表下手的人。在WindowsNT中,到服务器管理中的服务下查看可疑服务,然后禁用该服务,再到C:\winnt\system32中查找可疑程序(通过日期和文件大小查找法),用ultraedit32来判断是否为BO2K,找到即删除。利用BO2K客户端程序bo2kgui.exe来“删除”,首先用上面方法找到C:\winnt\system32(或C:\windows\system)下的BO2K程序,用ultraedit32打开查看BO2K所用端口、密码(都是以明文形式存储在文件中),然后用该端口密码与服务端程序连接,使用ShutdownServer命令的DELETE(删除),“删除”BO服务器(这时已删除注册表中内容),重启动后再删除C:\winn6system32(或C:\windows\system)的BO2K。(2)NetspyNetspy.exe文件运行后,立即拷贝一个副本到Windows安装目录的system目录下,并在注册表中加入下列键值:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\netspy该键值就是使netspy.exe在每次启动Windows时都被执行的原因。要检查当前的系统中是否有netspy.exe运行,只需查看Windows安装目录下是否有netspy.exe,以及打开注册表编–116–\n第7章网络安全技术辑器,查看系统注册表文件的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run分支,看里面是否有Netspy键值,如果有,删除即可。到这里似乎有这样的结论,要使netspy.exe不再被运行,只需删除这个键值,并删除system目录下的netspy.exe文件即可。然而Netspy设有保护机制,只要是在netspy.exe驻留的环境下,无论删除netspy.exe文件,还是删除键值,都是无效的,删除的东西会被自动补上。正确清除方法如下。①重新启动机器并在出现Staringwindows提示时,按F5键进入命令行状态。在C:\windows\system\目录下输入以下命令:delnetspy.exe回车!②进入注册表HKEY_LOCAL_MACHINE\Software\microsoft\windows\CurrentVersion\Run\,删除Netspy的键值即可安全清除Netspy。(3)冰河用纯DOS启动进入系统(以防木马的自动恢复),删除windows下的system\kernel32.exe和system\sysexplr.exe两个木马文件。注意,如果系统提示不能删除它们,则因为木马程序自动设置了这两个文件的属性,我们只需要打开它们的隐藏、只读属性,方法是键入如下命令:Attrib-ahrkernel32.exe或sysexplr.exe即可。删除后进入Windows系统进入注册表中,找到下面两个选项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices然后查找kernel32.exe和sysexplr.exe两个键值,删除。再找到HKEY_CLASSES_ROOT\txtfile\open\command看在键值中是否已改为“sysexplr.exe%1”,如是则改回“notepad.exe%1”。(4)NetBus在MS-DOS方式下用“Netstat-an”命令查看12345端口是否开启,在注册表相应位置中是否有可疑文件。首先清除注册表中的NetBus的主键,然后重新启动电脑,删除可执行文件即可。(5)Asylum这个木马程序是修改了system.ini和win.ini两个文件,先查一下system.ini文件下面的“BOOT”项是否为“shell=explorer.exe”,如不是则删除它,并记下原来的文件名,以便在纯DOS下删除它。再打开Win.ini文件,在[windows]项下的“run=”处查看是不是有文件名,一般情况下是没有任何加载值的,如有记下它,以便在纯DOS下删除相应的文件名。当然,为了以防万一,除了运用上述方法清除外,还可以利用木马专杀工具,如TheCleaner、RegRun之类的工具辅助清除。习题1.网络面临的威胁有哪些?2.简述主要的网络安全技术。3.有哪些网络攻击的类型?简述黑客攻击的一般步骤?–117–\n计算机信息安全4.简述扫描的目的及分类?分别说出它们的典型示例?5.什么是监听与嗅探?如何进行防范?6.口令破解的手段有哪些?如何设置安全的口令?7.如何实现跳板攻击?8.简述常见的入侵攻击方法及其原理。9.简述特洛伊木马的攻击原理及防范措施。10.上机练习一:熟练使用“X-Scanner”安全漏洞扫描工具。11.上机练习二:熟练使用“NetXRay”。12.上机练习三:练习手工检测及清除木马。–118–\n第8章防火墙技术近年来,随着Internet的迅速发展,网络安全已经成为人们日益关心的问题。在共享强大的网络资源的同时,网络上的许多敏感信息和保密数据难免受到各种主动的或被动的人为攻击。如信息泄露、信息窃取、数据篡改、数据增删及计算机病毒感染等。网络规模越来越大和越来越开放,其安全性将随之变差和变得难以控制。怎样才能保护自己重要和敏感的数据呢?配备一个网络防火墙(FireWall)是常用的措施。本章将学习以下主要内容。1.什么是防火墙,防火墙的功能和局限性。2.防火墙的分类,常见体系结构,主要技术形式及实现方式。3.设置防火墙的要素,防火墙安全技术分析,防火墙的设计准则。4.防火墙功能指标,防火墙的选择,主要防火墙产品。8.1防火墙技术概述8.1.1什么是防火墙安全技术上所说的防火墙,是指在两个网络之间加强访问控制的一整套装置,通常是软件和硬件的组合体;或者说,防火墙是用来在一个可信网络(如内部网)与一个不可信网络(如外部网)间起保护作用的一整套装置,在内部网(可信的)和外部网(不可信的,如Internet)之间的界面上构造一个保护层。它强制所有的访问或连接都必须经过这一保护层,在此进行检查和连接。只有被授权的通信才能通过此保护层,从而保护内部网资源免遭非法入侵。在物理上,防火墙表现为一个或一组带特殊功能的网络设备。但防火墙并不仅仅指用来提供一个网络安全保障的主机、路由器或多机系统,而是一整套保障网络安全的手段。它的目的是建立一个网络安全协议和机制,并通过网络配置、主机系统、路由器以及诸如身份认证等手段来实现该安全协议和机制。从广义上说,还包括各种加密技术的应用。上面所说的两个网络可以是一个单位的内部网和外部网(如Internet),但并不是只有在内部网和Internet之间才可以或有必要安装防火墙。虽然目前大部分防火墙是应用于Internet和内部网络之间,但是防火墙可以应用于各种互联网,如一个部门或一个公司的广域网,为了保护一个子网或部分主机群,也可以在子网边界设置防火墙。从图8.1可以看出,所有来自Internet的传输信息或从内部网络发出的信息都必须穿过防–119–\n计算机信息安全火墙。因此,防火墙能够确保如电子信件、文件传输、远程登录或在特定的系统间信息交换的安全。从总体上看,防火墙应具有以下五大基本任务。因特网(1)过滤进出网络的数据包。(2)管理进出网络的访问行为。防火墙(3)封堵某些禁止的访问行为。(4)记录通过防火墙的信息内容和活动。内部网络(5)对网络攻击进行检测和告警。防火墙是一种综合性的技术,涉及到计算机网络技术、密码技术、安全技术、软件技术、安全协议、网络标准化组织(ISO)的安全规图8.1Internet上的防火墙结构范以及安全操作系统等多方面。8.1.2防火墙的功能网络防火墙作为内部网与外部网之间的一个保护层,使内部网与外部网之间所有的信息流都必须通过防火墙,并通过监测、限制、更改所有流进流出防火墙的数据流,达到保护内部网络免受非法入侵。防火墙一般对来自内部网络系统的安全威胁不具备防范功能,并且常常需要有特殊的较为封闭的网络拓扑结构来支持。防火墙对网络安全功能的加强往往以牺牲网络服务的灵活性、多样性、开放性及较大的网络管理开销为代价。网络防火墙的主要功能如下。(1)控制不安全的服务,保护易受攻击的服务防火墙可以控制不安全的服务,因为只有授权的协议和服务才能通过防火墙。这就大大降低了子网的暴露度,降低了受到非法攻击的风险性,从而提高了网络的安全度。防火墙能防止易受攻击的服务,如NFS(网络文件系统服务)进出子网,这使得子网免于遭受来自外界的基于该服务的攻击。防火墙还能防止基于路由的攻击策略,防火墙会拒绝这种攻击试探并将情况通知系统管理员。(2)站点访问控制防火墙还提供了对指定站点的访问控制,比如有些主机允许被外部网络访问,而有些则要被保护起来,防止不必要也是不安全的访问。防火墙在网络的边界形成了一道关卡,通常在内部网中只有Mail(电子邮件)服务器、FTP(FileTransferProtocol,文件传输协议)服务器和WWW浏览服务器能被外部网访问,而其他访问则被主机禁止。(3)集中式的安全保护对于一个部门或公司来说,使用防火墙比不使用防火墙可能更加经济一些。这是因为如果使用了防火墙,就可以将所有需要修改的软件和附加的安全软件都放在防火墙上,而不使用防火墙就必须将所有软件分散到各个主机上。使用防火墙,保护就相对集中一些,经济上也相对便宜。尤其对于密码口令系统或其他的身份认证软件等,放在防火墙系统中更是优于放在Internet能访问的每台主机上。(4)强化站点资源的私有属性有一些站点其信息资源的私有属性(所谓私有指部门、团体或个人私有,而不是单指个–120–\n第8章防火墙技术人私有)是很重要的,使用防火墙后,这些站点就可以防止因DNS(域名服务)等服务泄露私有属性。即防火墙也能封锁域名服务信息,使Internet外部主机无法获取站点名和网址,通过封锁这些信息可防止攻击者获得可以利用的信息。(5)网络连接的日志记录及使用统计当防火墙系统被配置为内部网络所有与外部网络的连接均需经过的安全系统时,防火墙系统就能够对所有的访问做出日志记录,这些日志是对一些可能的攻击进行分析和防范的十分重要的情报。防火墙还能提供网络使用情况的统计数据,当发生可疑迹象时,防火墙能进行适当的警告并提供网络是否受到监测和攻击的详细信息。此外,防火墙也能够对正常的网络使用情况做出统计,通过对统计结果的分析,可使网络资源得到更好的配置和使用。(6)其他安全控制各应用部门可以根据自己的特殊要求来配置防火墙系统,从而实现其他安全控制的功能,如有的防火墙还可提供安全加密隧道进行远程管理。防火墙的应用简化了网络的安全管理,此外,防火墙还是安置网络地址翻译服务器(NAT)、WWW和FTP服务器的好地点。但是,我们应该指出,防火墙只是一种整体安全防范策略的一部分。这种安全策略必须包括全面的安全准则,即网络访问、当地和远程用户认证、拨出拨入呼叫、磁盘和数据加密以及病毒防护等有关的安全措施,网络易受攻击的各个节点都必须以相同程度的安全措施加以保护。8.1.3防火墙的局限性上面我们叙述了防火墙的功能,但它也是有局限性的,主要表现在以下几个方面。(1)不能防范恶意的知情者防火墙可以禁止系统用户经过网络连接发送专有的信息,但用户可以将数据复制到磁盘、磁带上,放在公文包中带出去。如果入侵者已经在防火墙内部,防火墙是无能为力的。内部用户偷窃数据,破坏硬件和软件,并且巧妙地修改程序而可以不用接近防火墙。对于来自知情者的威胁,只能要求加强内部管理,如主机安全防范和用户教育等。(2)防火墙不能防范不通过它的连接防火墙能够有效地防止通过它进行传输信息,然而不能防止不通过它而传输的信息。例如,如果站点允许对防火墙后面的内部系统进行拨号访问,那么防火墙绝对没有办法阻止入侵者进行拨号入侵。(3)防火墙不能防备全部的威胁防火墙被用来防备已知的威胁,如果是一个很好的防火墙设计方案,可以防备新的威胁,但没有一个防火墙能自动防御所有的新的威胁。(4)防火墙不能防范病毒防火墙不能有效防范病毒的入侵。虽然许多防火墙扫描所有通过的信息,以决定是否允许它通过内部网络,但扫描是针对源、目标地址和端口号的,而不扫描数据的确切内容。即使是先进的数据包过滤,在病毒防范上也是不实用的,因为病毒的种类太多,有许多种手段可使病毒在数据中隐藏。检测随机数据中的病毒穿过防火墙十分困难,它要求以下3点。①确认数据包是程序的一部分。–121–\n计算机信息安全②决定程序看起来像什么。③确定病毒引起的改变。事实上,大多数防火墙采用不同的可执行格式保护不同类型的机器。程序可以是编译过的可执行程序或者是一个副本,数据在网上传输时要分包,并经常被压缩,这样便给病毒带来了可乘之机。无论防火墙是多么安全,用户只能在防火墙后面清除病毒。8.2防火墙技术8.2.1防火墙的分类网络防火墙是一种用来加强网络之间访问控制的特殊网络设备,它对两个或多个网络之间传输的数据包和连接方式按照一定的安全策略对其进行检查,来决定网络之间的通信是否被允许,其中被保护的网络称为内部网络或私有网络,另一方则被称为外部网络或公用网络。防火墙能有效地控制内部网络与外部网络之间的访问及数据传输,从而达到保护内部网络的信息不受外部非授权用户的访问和过滤不良信息的目的。一个好的防火墙系统应具有以下五方面的特性。(1)所有的内部网络和外部网络之间传输的数据必须通过防火墙。(2)只有被授权的合法数据及防火墙系统中安全策略允许的数据可以通过防火墙。(3)防火墙本身不受各种攻击的影响。(4)使用目前新的信息安全技术,比如现代密码技术等。(5)人机界面良好,用户配置使用方便,易管理。实现防火墙的主要技术有:数据包过滤,应用网关和代理服务、电路层网关等。为实现以上特性,在防火墙产品的开发中,人们广泛地应用了网络拓扑、计算机操作系统、路由、加密、访问控制、安全审计等成熟或先进的技术和手段。纵观防火墙近年来的发展,可以将其划分为如下四个阶段(即四代)。1.基于路由器的防火墙由于多数路由器本身就包含有包过滤功能,故网络访问控制可能通过路由控制来实现,从而使具有包过滤功能的路由器成为第一代防火墙产品。第一代防火墙产品的特点如下。(1)利用路由器本身对包的解析,以访问控制表(AccessList)方式实现对包的过滤。(2)过滤判断的依据可以是地址、端口号、IP标志及其他网络特征。(3)只有包过滤的功能,且防火墙与路由器是一体的。这样,对安全要求低的网络可以采用路由器附带防火墙功能的方法,而对安全性要求高的网络则需要单独利用一台路由器作为防火墙。第一代防火墙产品的不足之处十分明显。(1)路由协议十分灵活,本身具有安全漏洞,外部网络要探寻内部网络十分容易。例如,在使用FTP协议时,外部服务器容易从20号端口上与内部网相连,即使在路由器上设置了过滤规则,内部网络的20号端口仍可以由外部探寻到。–122–\n第8章防火墙技术(2)路由器上包过滤规则的设置和配置存在安全隐患。对路由器中过滤规则的设置和配置十分复杂,它涉及到规则的逻辑一致性,作用端口的有效性和规则集的正确性,一般的网络系统管理员难于胜任,加之一旦出现新的协议,管理员就得加上更多的规则去限制,这往往会带来很多错误。(3)路由器防火墙的最大隐患是:攻击者可以“假冒”地址。由于信息在网络上是以明文方式传送的,黑客(Hacker)可以在网络上伪造假的路由信息欺骗防火墙。(4)路由器防火墙的本质缺陷是,由于路由器的主要功能是为网络访问提供动态的、灵活的路由,而防火墙则要对访问行为实施静态的、固定的控制,这是一对难以调和的矛盾,防火墙的规则设置会大大降低路由器的性能。可以说基于路由器的防火墙技术只是网络安全的一种应急措施,用这种权宜之计去对付黑客的攻击是十分危险的。2.用户化的防火墙工具套件为了弥补路由器防火墙的不足,很多大型用户纷纷要求以专门开发的防火墙系统来保护自己的网络,从而推动了用户防火墙工具套件的出现。作为第二代防火墙产品,用户化的防火墙工具套件具有以下特征。(1)将过滤功能从路由器中独立出来,并加上审计和告警功能。(2)针对用户需求,提供模块化的软件包。(3)软件可以通过网络发送,用户可以自己动手构造防火墙。(4)与第一代防火墙相比,安全性提高了,价格降低了。由于是纯软件产品,第二代防火墙产品无论在实现上还是在维护上都对系统管理员提出了相当复杂的要求,并带来以下问题。(1)配置和维护过程复杂、费时。(2)对用户的技术要求高。(3)全软件实现,使用中出现差错的情况很多。3.建立在通用操作系统上的防火墙基于软件的防火墙在销售、使用和维护上的问题迫使防火墙开发商很快推出了建立在通用操作系统上的商用防火墙产品。它们具有如下一些特点。(1)是批量上市的专用防火墙产品。(2)包括包过滤或者借用路由器的包过滤功能。(3)装有专用的代理系统,监控所有协议的数据和指令。(4)保护用户编程空间和用户可配置内核参数的设置。(5)安全性和速度大大提高。第三代防火墙有以纯软件实现的,也有以硬件方式实现的,它们已经得到了广大用户的认同。但随着安全需求的变化和使用时间的推延,仍表现出不少问题。(1)作为基础的操作系统及其内核往往不为防火墙管理者所知,由于源码的保密,其安全性无从保证。(2)由于大多数防火墙厂商并非通用操作系统的厂商,通用操作系统厂商不会对操作系–123–\n计算机信息安全统的安全性负责。(3)从本质上看,第三代防火墙既要防止来自外部网络的攻击,还要防止来自操作系统厂商的攻击。(4)用户必须依赖两方面的安全支持:一是防火墙厂商、一是操作系统厂商。4.具有安全操作系统的防火墙防火墙技术和产品随着网络攻击和安全防护手段的发展而演进,到1997年初,具有安全操作系统的防火墙产品面市,使防火墙产品步入了第四个发展阶段。具有安全操作系统的防火墙本身就是一个操作系统,因而在安全性上较之第三代防火墙有质的提高。获得安全操作系统的办法有两种:一种是通过许可证方式获得操作系统的源码;另一种通过固化操作系统内核来提高可靠性,由此建立的防火墙系统具有以下特点。(1)防火墙厂商拥有操作系统的源代码,并可实现安全内核。(2)对安全内核实现加固处理,即去掉不必要的系统特性,加上安全内核特性,强化安全保护。(3)对每个服务器、子系统都作了安全处理,一旦黑客攻破了一个服务器,它将会被隔离在此服务器内,不会对网络的其他部分构成威胁。(4)在功能上包括了包过滤、应用网关、电路级网关,且具有加密鉴别功能。(5)透明性好,易于使用。必须指出,上述阶段的划分更多地是以产品为对象的,目的在于对防火墙的发展有一个总体映像。市场上可见到的防火墙产品非常多,大体可分为以下几类。1.按产品形态划分可分为软件防火墙、软硬一体化防火墙和硬件防火墙。目前,国内产品尚无真正的硬件防火墙,基本都是基于IA架构的软件防火墙(包括操作系统和安全应用软件),最多也只能称之为软硬一体化防火墙。2.按适用范围划分分为网络防火墙和主机防火墙。其中,网络防火墙又分电信级防火墙、企业级防火墙和SOHO防火墙等。网络防火墙的基本思想:不是对每台主机分别进行保护,而是让所有对信息的访问通过某一点,并且保护这一点。网络防火墙往往更关注在启用安全功能后的性能问题。主机防火墙以软件的形式驻留在受保护的机器上,起保护单个机器的作用。对一个网络来说,防护措施应该是全方位的,既要有在网络边界的网络防火墙,又要有驻留在单台主机上的主机防火墙。由于传统防火墙的缺点是“防外不防内”,为解决这一问题,出现了“分布式防火墙”的概念。把网络防火墙的功能进行细化和简化后,可以得到成本较低、功能专一的防火墙,分布在整个企业网中保护每一个子网节点。企业网内部各子网节点的通信都要受到防火墙的控制,有效防止对内部各子网间的攻击企图。这些防火墙与网络边界防火墙和主机防火墙形成了一整套企业网防火墙体系,所有的防火墙都通过集中管理的方式控制,以实施企业整体安全策略。这一套系统通称为分布式防火墙。–124–\n第8章防火墙技术3.按应用技术划分分为包过滤型防火墙(早期产品大多是静态包过滤,目前基本上均是状态检测包过滤)、应用级代理型防火墙、电路层网关型防火墙。4.按网络接口划分分为千兆防火墙、百兆防火墙和十兆防火墙(目前基本上10/100Mbit/s自适应防火墙,十兆防火墙已很少提了)。随着网络技术的发展,网络带宽不断提高,处理速度不断加快,百兆防火墙已不能完全满足用户需求,近年来,千兆防火墙开始流行起来。各个商家纷纷推出自己的千兆防火墙,以弥补百兆防火墙在适应性上的不足,许多商家针对不同使用环境和不同用户群推出系列化产品,功能更专一,性价比更高。8.2.2防火墙的主要技术形式及实现方式8.2.2.1防火墙主要采用的技术1.包过滤技术是防火墙所要实现的最基本功能,现在的防火墙已经由最初的地址、端口判定控制,发展到判断通信报文协议头的各部分,以及通信协议的应用层命令、内容、用户认证、用户规则甚至状态检测等。特别要提到的是状态监测技术,一般是加载一个检测模块,在不影响网络正常工作的前提下,模块在网络层截取数据包,然后在所有的通信层上抽取有关的状态信息,据此判断该通信是否符合安全策略。由于它是在网络层截获数据包的,因此它可以支持多种协议和应用程序,并可以很容易地实现应用的扩充。2.代理服务技术其原理是在应用网关上运行应用代理程序,一方面代替原来的客户建立连接,另一方面代替原来的客户程序,与服务器建立连接,使得用户可以通过应用网关安全地使用Internet服务,而对于非法用户的请求将不予理睬。3.多级的过滤技术防火墙采用了包、应用网关和电路网关的三级过滤措施。在包过滤一级,能过滤掉所有的源路由分组和假冒的IP源地址;在应用网关一级,能利用FTP、SMTP等各种网关,控制和监测Internet提供的所有通用服务;在电路网关一级,实现内部主机与外部站点的透明连接,并对服务的执行严格的控制。4.网络地址转换(NAT)技术防火墙利用NAT技术,就如我们使用的电话总机,当不同的内部网络向外连接时使用相同的IP地址(总机号码);而内部网络互相通信时则使用内部IP地址(分机号码)。这样,两–125–\n计算机信息安全个IP地址就不会发生冲突,防火墙利用NAT技术能透明地对所有内部地址做转换,使得外部网络无法了解内部网络的内部结构,并可以节省IP资源,同时允许内部网络使用自己编的IP源地址和专用网络,防火墙能详尽记录每一个主机的通信,确保每个分组送往正确的地址。5.Internet网关技术由于防火墙是直接串接在网络之中,它必须支持用户在Internet上的所有服务,同时还要防止与Internet服务有关的安全漏洞。故它要能以多种安全的应用服务器(包括FTP、News、WWW等)来实现网关功能。6.安全服务器网络(SSN)为适应越来越多的用户向Internet上提供服务时对服务器保护的需要,防火墙采用分别保护的策略保护对外服务器。它利用一张网卡将对外服务器作为一个独立网关完全隔离。这就是安全服务网络(SSN)技术。对SSN上的主机既可单独管理,也可设置成通过FTP、Telnet等方式从内部网上管理。SSN与外部网之间有防火墙保护,SSN与内部网之间也有防火墙保护,一旦SSN受破坏,内部网络仍会处于防火墙的保护之下。7.用户鉴别与加密为了降低在Telnet、FTP等服务和远程管理上的风险,防火墙采用一次性使用的口令字系统作为用户的鉴别手段,并可实现对邮件的加密。8.审计和告警现在的防火墙产品的审计和告警功能已十分完善,都包含日志文件详细记录网络通信信息,日志文件包括:一般信息、内核信息、核心信息、接收邮件、邮件路径、发送邮件、已收消息、已发消息、连接需求、已鉴别的访问、告警条件、管理日志、进站代理、FTP代理、出站代理、邮件服务器、域名服务器等。告警功能会按每一个TCP或UDP探寻,并发出邮件、声响等多种方式报警。8.2.2.2技术实现防火墙产品的设计与开发中,安全内核、代理系统、多级过滤、安全服务器和鉴别与加密是关键所在。1.安全内核的实现防火墙是建立在安全操作系统之上的,安全的操作系统来自对专用操作系统的安全加固和改造,从现有的诸多产品看,对安全操作系统内核的固化与改造主要从以下几方面进行。(1)取消危险的系统调用。(2)限制命令的执行权限。(3)取消IP的转发功能。(4)检查每个分组的接口。(5)采用随机连接序号。–126–\n第8章防火墙技术(6)驻留分组过滤模块。(7)取消动态路由功能。(8)采用多个安全内核。2.代理系统的建立防火墙不允许任何信息直接穿过它,对所有的内外连接均要通过代理系统来实现,为保证整个防火墙的安全,所有的代理都应该采用改变根目录方式存在一个相对独立的区域以安全隔离。在所有的连接通过防火墙前,所有的代理要检查已定义的访问规则,这些规则控制代理的服务根据以下内容处理分组。(1)源地址。(2)目的地址。(3)时间。(4)同类服务器的最大数量。所有外部网络到防火墙内部或SSN的连接由进站代理处理,进站代理要保证内部主机能够了解外部主机的所有信息,而外部主机只能看到防火墙之外或SSN的地址。所有从内部网络SSN通过防火墙与外部网络建立的连接由出站代理处理,出站代理必须确保完全由它代表内部网络与外部地址相连,防止内部网址与外部网址的直接连接,同时还要处理内部网络SSN的连接。3.包过滤器的设计作为防火墙的核心部件之一,过滤器的设计要尽量做到减少对防火墙的访问,过滤器在调用时将被加载到内核中执行,服务终止时,过滤规则会从内核中消除,所有的包过滤功能都在内核中IP堆栈的深层运行,极为安全。分组过滤器包括以下参数。(1)进站接口。(2)出站接口。(3)允许的连接。(4)源端口范围。(5)源地址。(6)目的端口的范围等。对每一种参数的处理都应充分体现设计原则和安全政策。4.安全服务器的设计安全服务器的设计有两个要点:第一,所有SSN的流量都要隔离处理,即从内部网和外部网而来的路由信息流在机制上是分离的;第二,SSN的作用类似于两个网络,它看上去像是内部网,因为它对外透明,同时又像是外部网络,因为它从内部网络对外访问的方式十分有限。SSN上的每一个服务器都隐蔽于Internet,SSN提供的服务对外部网络而言好像防火墙功能,由于地址已经是透明的,对各种网络应用没有限制。实现SSN的关键在于。(1)解决分组过滤器与SSN的连接。–127–\n计算机信息安全(2)支持通过防火墙对SSN的访问。(3)支持代理服务。5.鉴别与加密的考虑鉴别与加密是防火墙识别用户、验证访问和保护信息的有效手段,鉴别机制除了提供安全保护之外,还有安全管理功能,目前国外防火墙产品中广泛使用令牌鉴别方式,具体方法有两种一种是加密卡(CryptoCard);另一种是SecureID,这两种都是一次性口令的生成工具。对信息内容的加密与鉴别则涉及加密算法和数字签名技术,除PEM、PGP和Kerberos外,目前国外防火墙产品中尚没有更好的机制出现,由于加密算法涉及国家信息安全和主权,各国有不同的要求。8.2.2.3防火墙的抗攻击能力作为一种安全防护设备,防火墙在网络中自然是众多攻击者的目标,故抗攻击能力也是衡量防火墙性能优劣的重要指标。在Internet环境中针对防火墙的攻击很多,下面从几种主要的攻击方法来评估的抗攻击能力。1.抗IP假冒攻击IP假冒是指一个非法的主机假冒内部的主机地址,骗取服务器的“信任”,从而达到对网络的攻击目的。防火墙可将网内的实际地址隐蔽起来,外部用户很难知道内部的IP地址,因而难以攻击。2.抗特洛伊木马攻击特洛伊木马能将病毒或破坏性程序传入计算机网络,且通常是将这些恶意程序隐蔽在正常的程序之中,尤其是热门程序或游戏,一些用户下载并执行这一程序,其中的病毒便会发作。防火墙若是建立在安全的操作系统之上的,其内核中不能执行下载的程序,故而可以防止特洛伊木马的发生。必须指出的是,防火墙能抗特洛伊木马的攻击并不表明其保护的某个主机也能防止这类攻击。事实上,内部用户可以通过防火墙下载程序,并执行下载的程序。3.抗口令字探寻攻击在网络中探寻口令的方法很多,最常见的是口令嗅探和口令解密。嗅探是通过监测网络通信,截获用户传给服务器的口令字,记录下来,以便使用;解密是指采用强力攻击、猜测或截获含有加密口令的文件,并设法解密。此外,攻击者还常常利用一些常用口令字直接登录。防火墙若采用了一次性口令字和禁止直接登录防火墙措施,能够有效防止对口令字的攻击。4.抗网络安全性分析网络安全性分析工具是提供管理人员分析网络安全性之用的,一旦这类工具用作攻击网–128–\n第8章防火墙技术络的手段,则能够比较方便地探测到内部网络的安全缺陷和弱点所在。目前,SATAN软件可以从网上免费获得,InternetScanner可以从市面上购买,这些分析工具给网络安全构成了直接的威胁。防火墙若采用了地址转换技术,将内部网络隐蔽起来,使网络安全分析工具无法从外部对内部网络做分析。8.2.2.4防火墙技术展望伴随着Internet的飞速发展,防火墙技术与产品的更新步伐必然会加快,而要全面展望防火墙技术的发展几乎是不可能的。但是,从产品及功能上,却又可以看出一些动向和趋势。下面诸点可能是下一步的走向和选择。(1)防火墙将从目前对子网或内部网管理的方式向远程上网集中管理的方式发展。(2)过滤深度会不断加强,从目前的地址、服务过滤,发展到URL(页面)过滤、关键字过滤和对ActiveX、Java等的过滤,并逐渐有病毒扫描功能。(3)利用防火墙建立专用网是较长一段时间用户使用的主流,IP的加密需求越来越强,安全协议的开发是一大热点。(4)对网络攻击的检测和各种告警将成为防火墙的重要功能。(5)安全管理工具不断完善,特别是日志分析工具等将成为防火墙产品中的一部分。(6)分布式防火墙将成为主流产品。分布式防火墙可以针对各个服务器及终端计算机的不同需要,对防火墙进行最佳配置,配置时能够充分考虑到这些主机上运行的应用,如此便可在保障网络安全的前提下大大提高网络运转效率。另外值得一提的是,伴随着防火墙技术的不断发展,人们选择防火墙的标准将主要集中在易于管理、应用透明性、鉴别与加密功能、操作环境和硬件要求、VPN的功能与CA的功能、接口的数量、成本等几个方面。8.2.3防火墙的常见体系结构目前,防火墙的体系结构一般有三种:双重宿主主机体系结构、屏蔽主机体系结构和屏蔽子网体系结构。1.双重宿主主机体系结构双重宿主主机体系结构是围绕具有双重宿主的主体计算机(又称堡垒主机)而构筑的。该计算机至少有两个网络接口,这样的主机可以充当与这些接口相连的网络之间的路由器,并能够从一个网络到另一个网络发送IP数据包。然而,实现双重宿主主机的防火墙体系结构禁止这种发送功能。因此,IP数据包从一个网络(例如,Internet)并不是直接发送到其他网络(例如内部的、被保护的网络)。防火墙内部的网络系统能与双重宿主主机通信,同时防火墙外部的网络系统(在Internet上)也能与双重宿主主机通信。通过双重宿主主机,防火墙内外的计算机便可进行通信了,但是这些系统不能直接互相通信,它们之间的通信必须经过双重宿主主机的过滤和控制。双重宿主主机的防火墙体系结构是相当简单的,双重宿主主机位于两者之间,并且被连接到Internet和内部的网络。图8.2所示为这种体系结构。–129–\n计算机信息安全Internet防火墙双重宿主主机内部网络图8.2双重宿主主机体系结构2.屏蔽主机体系结构双重宿主主机体系结构防火墙没有使用路由器。而屏蔽主机体系结构防火墙则使用一个路由器把内部网络和外部网络隔离开。在这种体系结构中,主要的安全由数据包过滤提供(例如,数据包过滤用于防止人们绕过代理服务器直接相连)。其结构如图8.3所示。Internet防火墙屏蔽路由器内部网络堡垒主机图8.3屏蔽主机体系结构这种体系结构涉及到堡垒主机。图8.3中堡垒主机位于内部的网络上。堡垒主机是Internet上的主机能连接到的惟一的内部网络上的系统。任何外部的系统要访问内部的系统或服务都必须先连接到这台主机。因此堡垒主机要保持更高等级的主机安全。数据包过滤也允许堡垒主机开放到外部网络的可允许连接(什么是“可允许”将由用户站点的安全策略决定)。–130–\n第8章防火墙技术在屏蔽路由器中,数据包过滤配置可以按下列方法执行。(1)允许其他的内部主机为了某些服务与Internet上的主机连接(即允许那些已经由数据包过滤的服务)。(2)不允许来自内部主机的所有连接(强迫那些主机经由堡垒主机使用代理服务)。用户可以针对不同的服务混合使用这些手段;某些服务可以被允许直接经由数据包过滤,而其他服务可以被允许仅仅间接地经过代理。这完全取决于用户实行的安全策略。因为这种体系结构允许数据包从Internet向内部网的移动,所以,它的设计比没有外部数据包能到达内部网络的双重宿主主机体系结构似乎是更冒风险。进而言之,保卫路由器比保卫主机较易实现,因为它提供非常有限的服务组。多数情况下,屏蔽主机体系结构提供比双重宿主主机体系结构具有更好的安全性和可用性。3.屏蔽子网体系结构屏蔽子网体系结构是在被屏蔽主机体系结构的基础之上添加额外的安全层,即通过添加周边网络(也称为非军事区DMZ),更进一步地把内部网络与Internet隔离开。堡垒主机是用户的网络上最容易受入侵的机器。任凭用户尽最大的力气去保护它,它仍是最有可能被侵入的机器,因为它本质上是能够被侵入的机器。如果在屏蔽主机体系结构中,用户的内部网络在没有其他的防御手段时(除了它们可能有的主机安全之外,这通常是非常少的),一旦有人成功地侵入屏蔽主机体系结构中的堡垒主机,那就可以毫无阻挡地进入了内部系统,因此,用户的堡垒主机是非常诱人的攻击目标。通过在周边网络上隔离堡垒主机,能减少在堡垒主机上侵入的影响。可以说,它只给入侵者一些访问的机会,但不是全部。屏蔽子网体系结构的最简单的形式为两个屏蔽路由器,每一个都连接到周边网。一个位于周边网与内部网络之间,另一个位于周边网与外部网络之间(通常为Internet)。其结构如图8.4所示。Internet堡垒主机外部路由器周边网防火墙内部路由器内部网络图8.4屏蔽子网体系结构–131–\n计算机信息安全为了侵入用这种类型的体系结构构筑的内部网络,侵袭者必须要通过两个路由器。即使侵袭者设法侵入堡垒主机,他将仍然必须通过内部路由器。在此情况下,网络内部的单一的易受侵袭点便不会存在了。下面要讨论在这种结构里所采用的组件。(1)周边网络周边网络是另一个安全层,是在外部网络与用户的被保护的内部网络之间的附加的网络。如果入侵者成功地侵入用户防火墙的外层领域,周边网络在入侵者与用户的内部系统之间提供一个附加的保护层。对于周边网络的作用,举例说明如下:在许多网络设置中,网络上的任意一台机器都可以观察到网络上其他机器的信息出入情况。对大多数以太网为基础的网络确实如此(而且以太网是当今使用最广泛的局域网技术);对若干其他成熟的技术,诸如令牌环和FDDI也是如此。探听者可以通过观测那些在Telnet、FTP以及rlogin会话期间使用过的口令成功地探测出口令。即使口令没被攻破,探听者仍然能偷看或访问他人的敏感文件的内容,或阅读他们感兴趣的电子邮件等等;探听者能完全监视何人在使用网络。对于周边网络,如果某人侵入周边网上的堡垒主机,他仅能探听到周边网上的通信。因为所有周边网上的通信来自或者通往堡垒主机或Internet。因为没有严格的内部通信(即在两台内部主机之间的通信,这通常是敏感的或者重要的)能越过周边网。所以,如果堡垒主机被损害,内部的通信仍将是安全的。一般来说,来往于堡垒主机和外部网的通信仍然是可监视的。防火墙设计工作的一部分就是确保上述信息流的暴露不会牵连到整个内部网络的安全。(2)堡垒主机在屏蔽的子网体系结构中,用户把堡垒主机连接到周边网;这台主机便是接受来自外界连接的主要入口。它为内部网服务的主要功能如下。ò它接收外来的电子邮件(SMTP)再分发给相应的站点;ò对于进来的FTP连接,转接到内部网的匿名FTP服务器;ò它接收外来的有关内部网站点的域名服务。另一方面,其出站服务(从内部的客户端到在Internet上的服务器)按如下方法处理。ò在外部和内部的路由器上设置数据包过滤来允许内部的客户端直接访问外部的服务器;ò在堡垒主机上设置代理服务器(如果用户的防火墙使用代理软件)来允许内部的客户端间接地访问外部的服务器。用户也可以设置数据包过滤来允许内部网的用户与主机的代理服务器进行交互,但是禁止内部的客户端与外部世界之间直接通信。(3)内部路由器内部路由器(在有关防火墙著作中有时被称为阻塞路由器)保护内部的网络使之免受Internet和周边网的侵扰。内部路由器完成防火墙的大部分包过滤工作,它允许某些站点的包过滤系统认为符合安全规则的服务在内外部网之间互传(各站点对各类服务的安全确认规则是不同的)。根据各站点的需要和安全规则,可允许的服务是以下这些外向服务中的若干种,如:Telnet、FTP或者其他服务。内部路由器可以设定,使周边网上的堡垒主机与内部网之间传递的各种服务和内部网与–132–\n第8章防火墙技术外部网之间传递的各种服务不完全相同。限制一些服务在内部网与堡垒主机之间互传的目的是减少在堡垒主机被侵入后而受到入侵的内部网主机的数目。(4)外部路由器在理论上,外部路由器(在有关防火墙著作中有时被称为访问路由器)保护周边网和内部网使之免受来自Internet的侵犯。实际上,外部路由器允许几乎任何东西从周边网出站,并且它们通常只执行非常少的数据包过滤。保护内部机器的数据包过滤规则在内部路由器和外部路由器上基本上是一样的;也就是说,如果安全规则上存在疏忽,那么,入侵者可用同样的方法通过内、外部路由器。由于外部路由器一般是由外界(如Internet服务供应商)提供,所以对外部路由器可做的操作是受限制的。网络服务供应商一般仅会在该路由器上设置一些普通的包过滤规则,而不会专为用户设置特别的包过滤规则,或者频繁更换包过滤规则。因此,对于安全保障而言,不能像依赖于内部路由器一样依赖于外部路由器。外部路由器真正有效的任务就是阻断来自外部网上伪造源地址进来的任何数据包。这些数据包自称是来自内部网,而其实它是来自外部网。内部路由器也具有上述功能,但它无法辨认自称来自周边网络的包是伪造的。因此,内部路由器不能保护周边网络上的系统免受伪数据包的侵扰。8.3防火墙配置和访问控制策略防火墙在为内部网络带来安全的同时,也产生了一定的负作用——它降低了网络运行效率。今天,技术的发展已使得网络逐渐融入人们的生活。人们在享受网络带来的方便的同时,不仅要求其具有较高的安全系数,同时对其数据传输速度提出了更高的要求。为适应这一需求,防火墙产品必须在提高安全性能的同时,解决传输速率瓶颈,实现安全、效率上的双方突破。8.3.1如何解决防火墙效率与安全之间的矛盾防火墙包含着一对矛盾(或称机制):一方面它限制数据流通,另一方面它又允许数据流通。由于网络的管理机制及安全策略(SecurityPolicy)不同,因此这对矛盾呈现出不同的表现形式。比如,作为防火墙应用的主要安全技术,在传统防火墙的设计中,包过滤只是与规则表进行匹配,对符合规则的数据包进行处理,不符合规则的就丢弃。由于是基于规则的检查,同属于同一连接的不同包毫无任何联系,每个包都要依据规则顺序过滤。由于网络安全涉及领域很多,技术复杂,安全规则往往要达到数百甚至上千种。随着安全规则的增加,很多防火墙产品都会出现性能大幅度降低,网络资源衰竭等问题,从而造成网络拥塞。所以,安全与效率的两难选择成为传统防火墙面临的最大问题。为了解决防火墙效率与安全之间的矛盾,存在两种极端的情形:第一种是除了非允许不可的都被禁止;第二种是除了非禁止不可都被允许。第一种的特点是安全但不好用,第二种是好用但不安全,而多数防火墙都在两者之间采取折衷。这里所谓的好用或不好用主要指跨越防火墙的访问效率。在确保防火墙安全或比较安全前提下提高访问效率是当前防火墙技术研究和实现的热点。–133–\n计算机信息安全8.3.2设置防火墙的要素1.网络策略影响防火墙系统设计、安装和使用的网络策略可分为两级:高级的网络策略定义允许和禁止的服务以及如何使用服务;低级的网络策略描述防火墙如何限制和过滤在高级策略中定义的服务。防火墙作为网络安全的一种防护手段,有多种实现方式。建立合理的防护系统,配置有效的防火墙应遵循如下四个步骤。(1)风险分析(RisksAnalysis)。(2)需求分析(NeedsAnalysis)。(3)确立安全政策(SecurityPolicy)。(4)选择准确的防护手段,并使之与安全政策保持一致(IdentifyingSecurityMechanismsandMethods)。2.服务访问策略服务访问策略集中在Internet访问服务以及外部网络访问(如拨入策略、SLIP/PPP连接等)。服务访问策略必须是可行的和合理的。可行的策略必须在阻止已知的网络风险和提供用户服务之间获得平衡。典型的服务访问策略是:允许通过增强认证的用户在必要的情况下从Internet访问某些内部主机和服务;允许内部用户访问指定的Internet主机和服务。3.增强的认证许多在Internet上发生的入侵事件源于脆弱的传统用户/口令机制。多年来,用户被告知使用难于猜测和破译口令,虽然如此,攻击者仍然在Internet上监视传输的口令明文,使传统的口令机制形同虚设。增强的认证机制包含智能卡,认证令牌,生理特征(如指纹)以及基于软件(如RSA)等技术,来克服传统口令的弱点。虽然存在多种认证技术,它们均使用增强的认证机制产生难被攻击者重用的口令和密钥。目前许多流行的增强机制使用一次有效的口令和密钥(如SmartCard和认证令牌)。8.3.3防火墙安全技术分析一个计算机网络,从应用层到网络层直至物理层都存在安全问题。防火墙只是整个网络安全防护的一部分,其他各种防护技术和手段,如密码技术、鉴别技术、访问控制、口令控制、计算机网络病毒防治等对网络安全都相当重要。防火墙并非绝对安全,它最多只能防护经过其本身的非法访问和攻击,而对不经防火墙的访问和攻击无能为力。从技术来讲,绕过防火墙进入网络并非不可能。为了能够使防火墙真正起到安全防护作用,要特别注意以下几点。1.防火墙的失效状态急需关注评价防火墙性能如何及能否起到安全防护作用,不仅要看它工作是否正常,能否阻挡或捕捉到恶意攻击和非法访问的蛛丝马迹,而且要看到一旦防火墙被攻破,它的状态如何?按级–134–\n第8章防火墙技术别来分,它有以下四种状态。(1)未受伤害能够继续正常工作。(2)关闭并重新启动,同时恢复到正常工作状态。(3)关闭并禁止所有的数据通行。(4)关闭并允许所有的数据通行。前两种状态比较理想,第四种最不安全。但是许多防火墙由于无条件进行失效状态测试和验证,无法确定其失效状态等级,因此网络存在安全隐患。2.防火墙的动态维护很有必要防火墙安装和投入使用后,并非万事大吉。要想充分发挥它的安全防护作用,必须对它进行跟踪和维护,要与商家保持密切的联系,时刻关注商家的动态。因为商家一旦发现其产品存在安全漏洞,那么会尽快发布补救(Patch)产品,此时应尽快确认真伪(防止特洛伊木马等病毒),并对防火墙软件进行更新。3.防火墙的非法访问深入分析研究防火墙技术,利用防火墙配置和实现的漏洞,可以对它实施攻击。通常情况下,有效的攻击都是从相关的子网进行的,因为这些网址得到了防火墙的信赖,虽说成功与否尚取决于机遇等其他因素,但对攻击者而言很值得一试。下面我们以数据包过滤防火墙为例,简要描述可能的攻击过程。这种类型的防火墙以IP地址作为鉴别数据包是否允许其通过的条件,而这恰恰是实施攻击的突破口。许多防火墙软件无法识别数据包到底来自哪个网络接口,因此攻击者无需表明进攻数据包的真正来源,只需伪装IP地址,取得目标的信任,使其认为来自网络内部即可。IP地址欺骗攻击正是基于这类防火墙对IP地址缺乏识别和验证的机制。通常主机A与主机B的TCP连接(中间有或无防火墙)是通过主机A向主机B提出请求建立起来的,而其间A和B的确认仅仅根据由主机A产生并经主机B验证的初始序列号ISN。具体分以下三个步骤。(1)主机A产生它的ISN,传送给主机B,请求建立连接。(2)B接收到来自A的带有SYN标志的ISN后,将自己本身的ISN连同应答信息ACK一同返回给A。(3)A再将B传送来的ISN及应答信息ACK返回给B。至此,正常情况,主机A与B的TCP连接就建立起来了。IP地址欺骗攻击的第一步是切断可信赖主机。这样可以使用TCP淹没攻击(TCPSynFloodAttack),使得信赖主机处于“自顾不暇”的忙碌状态,相当于被切断,这时目标主机会认为信赖主机出现了故障,只能发出无法建立连接的RST包而无暇顾及其他。攻击者最关心的是猜测目标主机的ISN。为此,可以利用SMTP的端口(25),通常它是开放的,邮件能够通过这个端口,与目标主机打开(Open)一个TCP连接,因而得到它的ISN。在此有效期间,重复这一过程若干次,以便能够猜测和确定ISN的产生和变化规律,这样就可以使用被切断的可信赖主机的IP地址向目标主机发出连接请求。请求发出后,目标主机会认为它是TCP连接的请求者,从而给信赖主机发送响应(包括SYN),而信赖主机目–135–\n计算机信息安全前仍忙于处理Flood淹没攻击产生的“合法”请求,因此目标主机不能得到来自于信赖主机的响应。现在攻击者发出回答响应,并连同预测的目标主机的ISN一同发给目标主机。随着不断地纠正预测的ISN,攻击者最终会与目标主机建立一个会晤。通过这种方式,攻击者以合法用户的身份登录到目标主机而不需进一步的确认。如果反复试验使得目标主机能够接收对网络的ROOT登录,那么就可以完全控制整个网络。防火墙安全防护面临威胁的几个主要原因有:SOCK的错误配置、不适当的安全政策、强力攻击、允许匿名的FTP协议、允许TFTP协议、允许Rlogin命令、允许X-Windows或OpenWindows、端口映射、可加载的NFS协议、允许Windows95/NT文件共享、Open端口。破坏防火墙的另一种方式是攻击与干扰相结合,也就是在攻击期间使防火墙始终处于繁忙的状态。防火墙过分的繁忙有时会导致它忘记履行安全防护的职能,处于失效状态。内部攻击防火墙也是可能的。由于安全防护的需要,安装了防火墙,随意访问被严格禁止了,这样内部人员无法在闲暇的时间通过Telnet浏览邮件或使用FTP向外发送信息,个别人会对防火墙不满进而会攻击它,破坏它,期望回到前的状态。这里,攻击的目标常常是防火墙或防火墙运行的操作系统,因此不仅涉及网络安全,还涉及主机安全问题。8.3.4防火墙的设计在防火墙设计中需要做哪些基本设计决策呢?在负责防火墙设计、制定工程计划以及实施或监督安装的工作人员面前,有许多基本设计问题需要解决。首先,它应体现你的公司或机构打算如何运行这个系统的策略。安装后的防火墙是为了明确地拒绝除对于连接到网络至关重要的服务之外的所有服务,或者说,安装就绪的防火墙是为以非威胁方式对“鱼贯而入”的访问(“queuing”access)提供一种计量和审计的方法。在这些选择中存在着某种程度的偏执。防火墙的最终功能可能将是行政上的结果,而非工程上的决策。第二,你需要何种程度的监视、冗余度以及控制水平?通过解决第一个问题,确定了可接受的风险水平(例如你的偏执到何种程度)后,你可以列出一个必须监测什么传输、必须允许什么传输流通行以及应当拒绝什么传输的清单。换句话说,你开始时先列出你的总体目标,然后把需求分析与风险评估结合在一起,挑出与风险始终对立的需求,加入到计划完成的工作清单中。第三是财务上的问题。在此,我们只能以模糊的表达方式论述这个问题。但是,试图以购买或实施解决方案的费用来量化提出的解决方案十分重要。例如,一个完整的防火墙的高端产品可能价值10万美元,而低端产品可能是免费的。像在Cisco或类似的路由器上做此类配置是免费的,需要的是人工。从头建立一个高端防火墙可能需要几个人工月,它可能等于价值3万美元的工作人员工资和利润。系统管理开销也是需要考虑的问题。建立自行开发的防火墙固然很好,但重要的是使建立的防火墙不需要费用高昂的不断干预。换句话说,在评估防火墙时,重要的是不仅要以防火墙目前的费用来评估它,而且要考虑到像支持服务这类后续费用。出于实用目的,我们目前谈论的是网络服务提供商提供的路由器与你内部网络之间存在–136–\n第8章防火墙技术的静态传输流路由服务。因此基于这一事实,在技术上,还需要做出几项决策。传输流路由服务可以通过诸如路由器中的过滤规则在IP层实现,或通过代理网关和服务在应用层实现。需要做出的决定是,是否将代理服务器放置在外部网络上为telnet、ftp、news等运行代理服务,或是否设置像过滤器这样的屏蔽路由器,允许与一台或多台内部计算机的通信。这两种方式都存在着优缺点,代理机可以提供更高水平的审计和潜在的安全性,但代价是配置费用的增加,以及可能提供的服务水平的降低(由于代理机需要针对每种需要的服务进行开发)。由来已久的易用性与安全性之间的平衡问题再次死死地困扰着我们。8.4防火墙的选择8.4.1防火墙功能指标1.产品类型从目前商用防火墙产品和技术发展来看,分为三种类型:基于路由器的包过滤防火墙、基于通用操作系统的防火墙及基于专用安全操作系统的防火墙。2.LAN接口列出支持的LAN接口类型:防火墙所能保护的网络类型。如以太网、快速以太网、千兆以太网、ATM、令牌环及FDDI等。支持的最大LAN接口数:指防火墙所支持的局域网络接口数目,也是其能够保护的不同内网数目。服务器平台:防火墙所运行的操作系统平台(如Linux、UNIX、WinNT、专用安全操作系统等)。3.协议支持支持的非IP协议:除支持IP协议之外,又支持AppleTalk、DECnet、IPX及NETBEUI等协议。建立VPN通道的协议:构建VPN通道所使用的协议,如密钥分配等,主要分为IPSec,PPTP、专用协议等。可以在VPN中使用的协议:在VPN中使用的协议,一般是指TCP/IP协议。4.加密支持支持的VPN加密标准:VPN中支持的加密算法。例如数据加密标准DES、3DES、RC4以及国内专用的加密算法。加密除用于保护传输数据以外,还应用于其他领域,如身份认证、报文完整性认证,密钥分配等。提供基于硬件的加密:是否提供硬件加密方法,硬件加密可以提供更快的加密速度和更–137–\n计算机信息安全高的加密强度。5.认证支持支持的认证类型:是指防火墙支持的身份认证协议,一般情况下具有一个或多个认证方案,如RADIUS、Kerberos、TACACS/TACACS+、口令方式、数字证书等。防火墙能够为本地或远程用户提供经过认证与授权的对网络资源的访问,防火墙管理员必须决定客户以何种方式通过认证。列出支持的认证标准和CA互操作性:厂商可以选择自己的认证方案,但应符合相应的国际标准,该项指所支持的标准认证协议,以及实现的认证协议是否与其他CA产品兼容互通。支持数字证书:是否支持数字证书。6.访问控制通过防火墙的包内容设置:包过滤防火墙的过滤规则集由若干条规则组成,它应涵盖对所有出入防火墙的数据包的处理方法,对于没有明确定义的数据包,应该有一个缺省处理方法;过滤规则应易于理解,易于编辑修改;同时应具备一致性检测机制,防止冲突。IP包过滤的依据主要是根据IP包头部信息如源地址和目的地址进行过滤,如果IP头中的协议字段表明封装协议为ICMP、TCP或UDP,那么再根据ICMP头信息(类型和代码值)、TCP头信息(源端口和目的端口)或UDP头信息(源端口和目的端口)执行过滤,其他的还有MAC地址过滤。应用层协议过滤要求主要包括FTP过滤、基于RPC的应用服务过滤、基于UDP的应用服务过滤要求以及动态包过滤技术等。在应用层提供代理支持:指防火墙是否支持应用层代理,如HTTP、FTP、TELNET、SNMP等。代理服务在确认客户端连接请求有效后接管连接,代为向服务器发出连接请求,代理服务器应根据服务器的应答,决定如何响应客户端请求,代理服务进程应当连接两个连接(客户端与代理服务进程间的连接、代理服务进程与服务器端的连接)。为确认连接的惟一性与时效性,代理进程应当维护代理连接表或相关数据库(最小字段集合);为提供认证和授权,代理进程应当维护一个扩展字段集合。在传输层提供代理支持:指防火墙是否支持传输层代理服务。允许FTP命令防止某些类型文件通过防火墙:指是否支持FTP文件类型过滤。用户操作的代理类型:应用层高级代理功能,如HTTP、POP3。支持网络地址转换(NAT):NAT指将一个IP地址域映射到另一个IP地址域,从而为终端主机提供透明路由的方法。NAT常用于私有地址域与公有地址域的转换,以解决IP地址匮乏问题。在防火墙上实现NAT后,可以隐藏受保护网络的内部结构,在一定程度上提高了网络的安全性。支持硬件口令、智能卡:是否支持硬件口令、智能卡等,这是一种比较安全的身份认证技术。7.防御功能支持病毒扫描:是否支持防病毒功能,如扫描电子邮件附件中的DOC、EXE和ZIP文件,FTP中的下载或上载文件内容,以发现其中包含的危险信息。–138–\n第8章防火墙技术提供内容过滤:是否支持内容过滤,信息内容过滤指防火墙在HTTP、FTP、SMTP等协议层,根据过滤条件,对信息流进行控制,防火墙控制的结果是:允许通过、修改后允许通过、禁止通过、记录日志、报警等。过滤内容主要指URL、HTTP携带的信息:JavaApplet、JavaScript、ActiveX和电子邮件中的Subject、To、From域等。能防御的DoS攻击类型:拒绝服务攻击(DoS)就是攻击者过多地占用共享资源,导致服务器超载或系统资源耗尽,而使其他用户无法享有服务或没有资源可用。防火墙通过控制、检测与报警等机制,可在一定程度上防止或减轻DoS黑客攻击。阻止ActiveX、Java、Cookies、Javascript侵入:属于HTTP内容过滤,防火墙应该能够从HTTP页面剥离JavaApplet、ActiveX等小程序及从Script、PHP和ASP等代码检测出危险代码或病毒,并向浏览器用户报警。同时,能够过滤用户上载的CGI、ASP等程序,当发现危险代码时,向服务器报警。8.安全特性支持转发和跟踪ICMP协议(ICMP代理):是否支持ICMP代理,ICMP为网间控制报文协议。提供入侵实时警告:提供实时入侵告警功能,当发生危险事件时,是否能够及时报警,报警的方式可能通过邮件、呼机、手机等。提供实时入侵防范:提供实时入侵响应功能,当发生入侵事件时,防火墙能够动态响应,调整安全策略,阻挡恶意报文。识别/记录/防止企图进行IP地址欺骗:IP地址欺骗指使用伪装的IP地址作为IP包的源地址对受保护网络进行攻击,防火墙应该能够禁止来自外部网络而源地址是内部IP地址的数据包通过。9.管理功能通过集成策略集中管理多个防火墙:是否支持集中管理,防火墙管理是指对防火墙具有管理权限的管理员行为和防火墙运行状态的管理,管理员的行为主要包括:通过防火墙的身份鉴别,编写防火墙的安全规则,配置防火墙的安全参数,查看防火墙的日志等。防火墙的管理一般分为本地管理、远程管理和集中管理等。提供基于时间的访问控制:是否提供基于时间的访问控制。支持SNMP监视和配置:SNMP是简单网络管理协议的缩写。本地管理:是指管理员通过防火墙的Console口或防火墙提供的键盘和显示器对防火墙进行配置管理。远程管理:是指管理员通过以太网或防火墙提供的广域网接口对防火墙进行管理,管理的通信协议可以基于FTP、TELNET、HTTP等。支持带宽管理:防火墙能够根据当前的流量动态调整某些客户端占用的带宽。负载均衡特性:负载均衡可以看成动态的端口映射,它将一个外部地址的某一TCP或UDP端口映射到一组内部地址的某一端口,负载均衡主要用于将某项服务(如HTTP)分摊到一组内部服务器上以平衡负载。失败恢复特性(failover):指支持容错技术,如双机热备份、故障恢复,双电源备份等。–139–\n计算机信息安全10.记录和报表功能防火墙处理完整日志的方法:防火墙规定了对于符合条件的报文做日志,应该提供日志信息管理和存储方法。提供自动日志扫描:指防火墙是否具有日志的自动分析和扫描功能,这可以获得更详细的统计结果,达到事后分析、亡羊补牢的目的。提供自动报表、日志报告书写器:防火墙实现的一种输出方式,提供自动报表和日志报告功能。警告通知机制:防火墙应提供告警机制,在检测到入侵网络以及设备运转异常情况时,通过告警来通知管理员采取必要的措施,包括E-mail、呼机、手机等。提供简要报表(按照用户ID或IP地址):防火墙实现的一种输出方式,按要求提供报表分类打印。提供实时统计:防火墙实现的一种输出方式,日志分析后所获得的智能统计结果,一般是图表显示。8.4.2防火墙的选择防火墙领域中的产品往往有上千种,如何在其中选择最符合需要的产品,是消费者最关心的事,在选购防火墙产品时应该考虑以下几点:1.安全性安全性主要表现在如下两点。(1)是否基于安全的操作系统。(2)是够采用专用的硬件平台。设计的安全性根本在操作系统,具有完整信任关系的操作系统才有系统安全性评价。应用系统的安全以操作系统的安全性为基础,同时,自身的安全实现也直接影响整体系统的安全性。安全管理为系统安全的重要外因,其直接影响安全设备的控制行为。2.高效性性能指标是防火墙的重要指标,其直接体现防火墙的可用性能,也体现防火墙对用户的安全代价,过高的安全代价用户无法接受。3.灵活性对通信行为的有效控制,要求防火墙设备有一系列不同级别满足不同用户的各类安全控制需求的控制策略,控制策略的有效性、多样性,级别目标清晰性,制定难易性,经济性等,体现控制策略的质量。4.管理方便性网络技术发展很快,各种安全事件不断涌现,这要求安全管理员经常性调整网络安全策略。对于防火墙类访问控制设备,除安全控制策略的不断调整外,业务系统的访问控制的调–140–\n第8章防火墙技术整也很频繁,这些要求防火墙的管理在充分考虑安全需要的前提下,提供方便灵活的管理方式和方法,通常体现为如下方面:管理途径、管理工具、管理权限。防火墙设备首先为网络通信设备,管理途径的提供要兼顾通常网络设备的管理方式。现实情况下,安全管理员大多由网管人员兼任,因此,管理方式还要适合网管人员的一般管理行为习惯,如远程telnet登录管理及管理命令的在线帮助等。管理工具主要为GUI类管理器,用它管理很直观,这对于设备的初期管理和不太熟悉的管理人员提供了有效的管理方式。权限管理为管理本身的基础,严格的权限认证可能会带来管理方便性的降低,应从合理的综合方式中找出最佳点。5.可靠性可靠性对防火墙类访问控制设备尤为重要,其直接影响受控网络的可用性,其在重要行业及关键业务系统中的作用和重要性是显然的。从系统设计上,提高可靠性的措施一般有提高本身部件的强健性、增大设计阈值和增加冗余部件,这要求有高的生产标准和设计冗余度,如使用工业标准、电源热备份、系统热备份等。6.是否可针对用户身份进行过滤防火墙过滤报文时,最基础的是针对IP地址进行过滤。大家都知道,IP地址是非常容易修改的,只要我打听到公司里谁可以穿过防火墙,那么我将我的IP地址改成和他的一样,我也可以穿过防火墙。这里需要一个针对用户身份而不是IP地址进行过滤的办法。目前防火墙上常用的是一次性口令验证机构,通过特殊的算法,保证用户在向防火墙登录时,口令不会在网络上泄漏,这样,防火墙可以确认登录上来的用户确实和他所声称的一致。这样做的好处有两个。(1)用户可以随便找一台计算机,向防火墙登录,防火墙就可判断他的权限,进行合适的过滤。(2)用户出差时,可以通过登录回公司的防火墙访问公司内部自己的服务器,不用担心在电话网上泄漏口令,在没有加密手段或加密成本较高时还是比较实用的。7.抵抗拒绝服务攻击在当前的网络攻击中,拒绝服务攻击是使用频率最高的方法,雅虎等网站遭受的就是拒绝服务攻击,只不过是发起攻击的点比较多,称之为分布式拒绝服务攻击(DDOS)。拒绝服务攻击可分成两类:一类由于操作系统或应用软件本身设计或编程上的缺陷而造成,种类繁多,只有通过打补丁的办法解决;一类是由于协议本身的缺陷,虽只有有限的几种,但造成的危害非常大,如SYNFlooding。要防火墙解决第一类问题显然是力不从心,系统缺陷和病毒不同,没有病毒码可以作为依据,在判断到底是不是攻击上常常误报,现有的国内外对这类攻击的检测至少有50%的误报率。而且,这类攻击检测不能装在防火墙上,否则可能把合法的报文认为是攻击。防火墙能做的是对付第二类攻击,如针对SYNFlooding,可以限制服务器接受连接请求的速度,最大的半连接数和最大已建立连接数实现。–141–\n计算机信息安全8.可扩展和可升级性用户的网络不是一成不变的,现在可能只要在公司内部网络和外部网络之间做过滤,随着业务的发展,公司内部可能具有不同安全级别的子网,此时就需要在这些子网之间做过滤。目前市面上的防火墙一般标配是三个网络接口,分别接外部网,内部网和SSN,在购买时必须问清楚是否可以增加网络接口,因为有些防火墙设计成只支持三个接口,无法扩展。与防病毒产品类似,随着网络技术的发展和黑客攻击手段的变化,防火墙也必须不断地进行升级,此时支持软件升级就更加重要了。如果不支持软件升级,为了抵御新的攻击手段,必须进行硬件上的更换,在更换期间你的网络是不设防的。以上就是防火墙的采购方法,选购防火墙时,如能做到以上几点,防火墙的选购就不会成为难题了。8.4.3主要防火墙产品1.硬件防火墙用专用芯片处理数据包,CPU只作管理之用。使用专用的操作系统平台,避免了通用性操作系统的安全性漏洞。高带宽,高吞吐量,真正线速防火墙。即实际带宽与理论值可以达到一致。安全与速度同时兼顾。没有用户限制。管理简单,快捷,可提供Web方式管理。美国NetScreen公司专门为网络服务提供商、宽带接入提供商及应用软件供应商等与电子商务有着密切联系的公司开发基于ASIC(专有集成电路)的互联网安全设备及系统,并为这些公司提供高性能的防火墙、虚拟专用网络和网络流量控制等功能。公司的产品拥有高超的传输速度、扩展和管理能力的表现,能够为客户提供最全面和集成的安全解决方案。NetScreen公司现有NetScreen-5、NetScreen-10、NetScreen-100和NetScreen-1000等一系列产品。其中NetScreen-1000是今年3月刚刚推出的新型产品,并且是业界第一个支持互联网数据中心(DataCenter)运作的千兆位安全系统,NetScreen-1000是专为ISP、ASP等具有高频宽及大容量的咨询环境需要所设计的。2.软硬件结合防火墙机箱+CPU+防火墙软件集成于一体(PCBOX结构),市面上大部分声称“硬件”防火墙的产品都采用这种结构。采用专用或通用操作系统。核心技术仍然为软件,容易造成网络带宽瓶颈。只能满足中低带宽要求,吞吐量不高。通常带宽只能达到理论值的20%~70%。中低流量时可满足一定的安全要求,在高流量环境下会造成堵塞甚至系统崩溃。管理比较方便。(1)CiscoPixCiscoPix系列内含Pix501、Pix506e、Pix515e、Pix525和Pix535等5款方案,它们主–142–\n第8章防火墙技术要应用于远程访问或站点到站点间的访问,由于吞吐量、联机数和接入速度的不同,其性能按上述顺序由低到高排列。其中,Pix501和Pix506e属10Mbps产品,Pix515e和Pix525属100Mbps产品,Pix535属1000Mbps产品,且后3者都具有双机热备功能,还包含VPN和部分IDS功能。Pix系列适用于有专业工程师担任管理员的企业用户,其中,Pix501和Pix506e适用于中小企业,Pix515e、Pix525和Pix535适用于中大型企业,而CiscoIOS防火墙适用于远程办公、中小型企业网关和内部网点等。CiscoPix的不足之处是管理完全基于命令行方式,如果用户需要图形化的管理界面,就必须到Cisco网站上下载一个管理软件;另外,CiscoPix的监视和日志功能有限,为了记录日志,还必须下载一个基于WindowsNT的PixFirewallSyslogServer才行。CiscoPix无法根据用户名或工作组来进行安全策略管理,而只能通过IP地址进行管理,而且实施安全策略管理还需要购买另一个软件包CSPM(CiscoSecurityPolicyManager)。(2)清华紫光清华紫光UF5300防火墙结合了基于状态检测技术的包过滤和应用代理功能。提供了热插拔的冗余AC/DC电源,避免了单路电源故障引起的防火墙宕机,具有高性能、高安全性和高可靠性,适合电信运营商级的网络环境应用。产品特性如下。ò包过滤和应用代理(支持内/外/DMZ)。ò可以双机失效转移,网络安全可靠。òIP/Mac地址绑定,防止内部IP欺骗。ò支持IP映射和端口转移。ò攻击检测和实时报警。ò带宽控制和流量优先权控制。ò基于SSL的浏览器管理界面。ò静态路由表,支持多个子网。ò用户认证,支持PPTP和IPSec。ò用户、IP、策略分组,易于管理。ò基于浏览器的系统升级。(3)东软NetEye防火墙3.2是NetEye防火墙系列中的最新版本。该系统在性能,可靠性,管理性等方面大大提高。其基于状态包过滤的流过滤体系结构,保证从数据链路层到应用层的完全高性能过滤,可以进行应用级插件的及时升级,攻击方式的及时响应,实现动态地保障网络安全。围绕流过滤平台,实现了流过滤不仅能够带给用户高性能的应用层保护,还包括新应用的及时支持,特殊应用的定制开发,安全攻击事件的及时响应。集成的VPN功能,简单、人性化的虚拟通道设置,有效提高了VPN的部署灵活性、可扩展性,大大降低了部署、维护的成本;完善的VPN产品线,适合于大规模的网络部署。系统的主要模块工作在操作系统的内核模式下,并对协议的处理进行了优化,性能接近线速,高吞吐量、低延迟、零丢包率、强大的缓冲能力,千兆版本能够利用多处理器的能力处理超过100万的并发连接,完全满足高–143–\n计算机信息安全速、对性能要求苛刻网络的应用。NetEye防火墙3.2的硬件采用了由Intel专门为东软设计生产的设备。其硬件体系结构完全采用了Intel用于电信级的服务器的标准,同时设备的关键部件,如CPU、内存、电源等完全冗余,保证了系统的高可靠性运行。NetEye防火墙3.2提供了带内、带外的双重控制通道,具有最短仅需一秒的双机热备自动切换功能,保证了网络的永不间断。3.软件防火墙运行在通用操作系统上的能安全控制存取访问的软件,性能依靠于计算机、CPU、内存等。基于众所周知的通用操作系统(如WindowsNT、SUNSolaris、SCOUNIX等),对底层操作系统的安全依赖性很高。由于操作系统平台的限制,极易造成网络带宽瓶颈。因此,实际所能达到的带宽通常只有理论值的20%~70%。可以满足低带宽低流量环境下的安全需要,高速环境下容易造成系统崩溃。有用户限制,一般需要按用户数购买。管理复杂,与系统有关,要求维护人员必须熟悉各种工作站及操作系统的安装及维护。CheckPoint是国际上著名的防火墙厂商,其生产的软件防火墙Firewall-1功能极为丰富,适用于各种各样的企业网络环境,根据不同的配置,其应用对象小到几个人的小公司,大到电信级的大客户。Firewall-1提供强大的图形化界面,能在一个Windows或UNIX工作站上同时管理整个网络的多个防火墙,实现了“一个安全策略适应全部”的目的。但由于软件防火墙必须与现有的操作系统平台相接口,并且受硬件性能限制,数据转发效率通常会受到一些影响,于是,CheckPoint也开始顺应硬件化潮流,与硬件厂商合作推出软硬件一体化防火墙以适应市场需求。产品系列CheckPoint防火墙产品包括FireWall-1、FireWall-1/VPN-1SecureServer、FireWall-1/VPN-1Gateway和VPN-1/FireWall-1SmallOffice。FireWall-1提供访问控制、内容安全、授权、集中管理和其他性能,是综合安全性套件;FireWall-1/VPN-1SecureServer为个人应用程序服务器提供全方位的防火墙保护;VPN-1Gateway可保护Internet商业通信私密性和对关键网络资源的未授权访问;FireWall-1/VPN-1SecureServer保护单个服务器和在一个企业网中的Client/Server通信。8.5防火墙的应用示例8.5.1天网防火墙个人版简介天网防火墙个人版SKYNETPersonalFireWall(以下简称天网防火墙)是由天网安全实验室研发制作给个人计算机用户使用的网络安全程序工具。天网安全实验室自1999年推出天网防火墙个人版V1.0后,连续推出了V1.01、V2.0、V2.45、V2.50等更新版本。天网防火墙是国内外针对个人用户最好的中文软件防火墙之一,可以拦截来历不明、有–144–\n第8章防火墙技术害、敌意访问或攻击行为。它根据系统管理者设定的安全规则(SecurityRules)把守网络,提供强大的访问控制、身份认证、应用选通、网络地址转换(NetworkAddressTranslation)、信息过滤、虚拟专网(VPN)、流量控制、虚拟网桥等功能。它可以抵挡网络入侵和攻击,防止信息泄露,并可与天网安全实验室的网站相配合,根据可疑的攻击信息,来找到攻击者。天网防火墙把网络分为本地网和互联网,可以针对来自不同网络的信息,来设置不同的安全方案,它适合于任何直接上网的用户,也适合通过网络共享软件上网的用户。8.5.2天网防火墙的安装最新版本的天网个人版防火墙可在天网安全阵线(http://www.sky.net.cn)下载,在其他专业下载网站也可以找到天网个人版防火墙。以下具体讲述安装步骤。第一步,选择安装的路径。天网防火墙个人版预设的安装路径是C:\ProgramFile文件夹,也可以通过单击右边的“浏览”按钮来自行设定安装路径,如图8.5所示。图8.5目标文件夹在设定好安装的路径后程序会提示建立程序集快捷工具栏方式的位置,如图8.6所示,选择“下一步”。图8.6添加程序组名称–145–\n计算机信息安全接下来是一个复制档案的过程,在复制档案完成后系统会提示必须重新激活计算机,安装完成的天网防火墙个人版程序才会生效,如图8.7所示。图8.7安装完成程序复制完毕之后,安装程序会调出防火墙设置向导帮助用户合理的设置防火墙。用户可以跟着它一步一步设置好适合自己的防火墙规则,如图8.8所示。图8.8防火墙设置向导最后,依提示重新启动计算机即可。8.5.3天网防火墙的设置1.系统设置在防火墙的控制面板中单击“系统设置”按钮即可展开防火墙系统设置面板。天网个人–146–\n第8章防火墙技术版防火墙系统设置界面如图8.9所示。图8.9系统设置以下将详细介绍各部分功能。(1)启动设置:选中开机后自动启动防火墙,天网个人版防火墙将在操作系统启动的时候自动启动,否则天网防火墙需要手工启动。(2)防火墙自定义规则重置:单击该按钮,防火墙将弹出窗口,如图8.10所示。如果确定,天网防火墙将会把防火墙的安全规则全部恢复为初始设置,用户对安全规则的修改和图8.10重置安全规则加入的规则将会全部被清除掉。(3)防火墙设置向导:为了便于用户合理的设置防火墙,天网防火墙个人版专门为用户设计了防火墙设置向导。用户可以跟随它一步一步完成天网防火墙的合理设置。(4)应用程序权限设置:勾选了该选项之后,所有的应用程序对网络的访问都默认为通行不拦截。这适合在某些特殊情况下,不需要对所有访问网络的应用程序都做审核的时候(例如在运行某些游戏程序的时候)。(5)局域网地址:设置在局域网内的地址。注意,如果机器是在局域网里面使用,一定要设置好这个地址。因为防火墙将会以这个地址来区分局域网或者是Internet和IP来源。(6)报警声音:设置报警声音,单击“浏览”,你可以自己选择一个声音文件做为天网防火墙预警的声音。初始状态是没有设置报警声音的,单击“重置”将采用天网防火墙默认的报警声音。2.安全级别设置天网个人版防火墙的缺省安全级别分为高、中、低三个等级,如图8.11所示。默认的安全等级为中。各自的安全设置说明如下。(1)低:所有应用程序初次访问网络时都将询问,已经被认可图8.11安全级别设置–147–\n计算机信息安全的程序则按照设置的相应规则运作。计算机将完全信任局域网,允许局域网内部的机器访问自己提供的各种服务(文件、打印机共享服务)但禁止Internet上的机器访问这些服务。(2)中:所有应用程序初次访问网络时都将询问,已经被认可的程序则按照设置的相应规则运作。禁止局域网内部和Internet上的机器访问自己提供的网络共享服务(文件、打印机共享服务),局域网和Internet上的机器将无法看到本机器。(3)高:所有应用程序初次访问网络时都将询问,已经被认可的程序则按照设置的相应规则运作,禁止局域网内部和Internet上的机器访问自己提供的网络共享服务(文件、打印机共享服务),局域网和Internet上的机器将无法看到本机器。除了是由已经被认可的程序打开的端口,系统会屏蔽向外部开放的所有端口。用户可以根据自己的需要调整自己的安全级别,方便使用。注意,天网的简易安全级别是为了方便不熟悉天网的用户能够很好的使用天网而设计的。正因为如此,如果用户选择了采用简易的安全级别设置,那么天网就会屏蔽掉高级的IP规则设定里规则的作用。3.IP规则设置(1)缺省IP规则介绍IP规则是针对整个系统的网络层数据包监控而设置的。利用自定义IP规则,用户可针对个人不同的网络状态,设置自己的IP安全规则,使防御手段更周到、更实用。用户可以单击“自定义IP规则”键进入IP规则设置界面。IP规则设置的操作界面如图8.12所示。图8.12IP规则设置关于缺省的规则各项的具体意义,这里只挑选几项重要的来解释。实际上“天网防火墙–148–\n第8章防火墙技术个人版”本身已经默认设置了相当好的缺省规则,一般用户并不需要做任何IP规则修改,就可以直接使用。防御ICMP攻击:选择时,即别人无法用PING的方法来确定你的存在。但不影响你PING别人。由于ICMP协议现在也被用来作为“蓝屏攻击”的一种方法,而且该协议对于普通用户来说,是很少使用到的。防御IGMP攻击:IGMP的用于组播的一种协议,对于MSWindows的用户是没有什么用途的,但现在也被用来作为“蓝屏攻击”的一种方法,建议选择此设置,不会对用户造成影响。TCP数据包监视:通过这条规则,你可以监视机器与外部之间的所有TCP连接请求。注意,这只是一个监视规则,开启后会产生大量的日志,该规则是给熟悉TCP/IP协议网络的人使用的,如果你不熟悉网络,请不要开启。这条规则一定要是TCP协议规则的的第一条。禁止互联网上的机器使用我的共享资源:禁止互联网上的机器使用我的共享资源,开启该规则后,别人就不能访问你的共享资源,包括获取你的机器名称。禁止所有人连接低端端口:防止所有的机器和自己的低端端口连接。由于低端端口是TCP/IP协议的各种标准端口,几乎所有的Internet服务都是在这些端口上工作的,所以这是一条非常严厉的规则,有可能会影响到某些软件的使用。如果需要向外面公开特定端口,请在本规则之前添加使该特定端口数据包可通行的规则。允许已经授权程序打开的端口:某些程序,如ICQ、视频电话等软件,都会开放一些端口,这样,同伴才可以连接到机器上。本规则可以保证这些软件可以正常工作。禁止所有人连接:防止所有的机器和自己连接。这是一条非常严厉的规则,有可能会影响使用某些软件。如果需要向外面公开特定端口,请在本规则之前添加使该特定端口数据包可通行的规则。该规则通常放在最后。UDP数据包监视:通过这条规则,可以监视机器与外部之间的所有UDP包的发送和接收过程,注意,这只是一个监视规则,开启后可能会产生大量的日志,平常请不要打开。这条规则是给熟悉TCP/IP协议网络的人使用,如果不熟悉网络,请不要开启。这条规则一定要是UDP协议规则的第一条。允许DNS(域名解释):允许域名解释。注意,如果要拒绝接收UDP包,就一定要开启该规则,否则会无法访问互联网上的资源。安全规则的设置是系统最重要,也是最复杂的地方。如果不熟悉IP规则,最后不要调整它,可以直接使用缺省的规则。如果熟悉IP规则,就可以非常灵活的设计适合自己使用的规则。(2)自定义IP规则简单地说,规则是一系列的比较条件和一个对数据包的运作,就是根据数据包的每一个部分来与设置的条件比较,当符合条件时,就可以确定对该名放行或者阻挡。通过合理的设置规则就可以把有害的数据包挡在你的机器之外。IP规则的页面主要由工具条、规则列表、规则说明3个部分组成。建立规则时,请注意下面的建议。ò防火墙的规则检查顺序与列表顺序是一致的。ò当有局域网时,又只想对局域网开放某些端口或协议(但对Internet关闭)时,可对–149–\n计算机信息安全局域网的规则采用允许“局域网网络地址”的某端口、协议的数据包“通行”的规则,然后用“任何地址”的某端口、协议的规则“拦截”,就可达到目的。ò如果录入的IP协议的规则,一定要保证IP协议规则的最后一条的内容是:“对方地址:任何地址,动作:继续下一规则”,否则其他协议的规则将会执行不到。ò不要滥用“记录”功能,一个定义不好的规则加上记录功能,会产生大量没有任何意义的日志,并耗费大量的内存。4.应用程序规则设置(1)普通应用程序规则的设置说明新版本的天网防火墙个人版增加对应用程序数据传输封包进行底层分析拦截功能,它可以控制应用程序发送和接收数据传输包的类型、通信端口,并且决定拦截还是通过。在天网防火墙个人版打开的情况下,激活的任何应用程序只要有通信传输数据包发送和接收存在,都会被天网防火墙个人版先截获分析,并弹出窗口,询问是通过还是禁止,如图8.13所示。图8.13天网防火墙警告窗口这时用户可以根据需要来决定是否允许应用程序访问网络。如果不选中“该程序以后按照这次的操作运行”,那么天网防火墙个人版在以后会继续截获该应用程序的传输数据包,并且弹出警告窗口。如果选中“该程序以后按照这次的操作运行”选项,该应用程序将自加入支应用程序列表中,可以通过应用程序设置来设置更为详尽的数据传输封包过滤方式。(2)高级应用程序规则设置应用程序规则面板中对应每一条应用程序规则都有“选项”和“删除”按钮,如图8.14所示。单击“选项”按钮,即可激活应用程序规则高级设置页面,如图8.15所示。–150–\n第8章防火墙技术图8.14应用程序规则面板图8.15应用程序规则高级设置可以设置该应用程序禁止使用TCP或者UDP协议传输,以及设置端口过滤,让应用程序只能通过固定几个通信端口或者一个通信端口接收和传输数据,当用户做这些设置时,可以选择询问和禁止操作。对应用程序发送数据传输包的监控,可以使用户了解到系统目前有哪些程序正在进行通信,如现在有一些共享或试用软件会在执行的时候从预先设定好的服务器取一些广告,还有一些恶意的程序会把用户个人隐私信息发送出去,用户可使用天网防火墙个人版禁止这些未经同意的程序进行数据通信操作。–151–\n计算机信息安全特洛伊木马也是一样的。天网防火墙个人版可以察觉到攻击者对特洛伊木马的控制通信,这也是新版天网防火墙个人版根据广大用户建议,添加的最强大的功能之一,如图8.16所示。图8.16应用程序网络状态习题1.什么是防火墙?简述防火墙的功能和局限性。2.防火墙是如何分类的?3.防火墙有哪几种常见体系结构?4.防火墙主要采用的技术有哪些?5.如何选择适合的防火墙产品?–152–\n第9章入侵检测技术随着技术的发展,网络日趋复杂,正是由于传统防火墙所暴露出来的不足和弱点,才引发了人们对入侵检测系统(IntrusionDetectionSystem,IDS)技术的研究和开发。网络入侵检测系统可以弥补防火墙的不足,为网络安全提供实时的入侵检测及采取相应的防护手段,如记录证据用于跟踪、恢复、断开网络连接等。入侵检测技术是近20年来出现的一种主动保护自己免受黑客攻击的新型网络安全技术。什么是入侵检测呢?简单地说,从系统运行过程中产生的或系统所处理的各种数据中查找出威胁系统安全的因素,并对威胁做出相应的处理,就是入侵检测。相应的软件或硬件称为入侵检测系统。入侵检测被认为是防火墙之后的第二道安全闸门,它在不影响网络性能的情况下对网络进行监测,从而提供对内部攻击、外部攻击和误操作的实时保护。本章将学习以下主要内容。1.入侵检测系统的发展历史、作用及功能。2.入侵检测系统的分类。3.入侵检测原理及系统通用模型。4.入侵检测系统的局限及面临的挑战。5.入侵检测系统的发展趋势及产品。9.1入侵检测技术概述9.1.1入侵检测系统的发展历史“入侵”(Intrusion)是个广义的概念,不仅包括发起攻击的人(如恶意的黑客)取得超出合法范围的系统控制权,也包括收集漏洞信息,造成拒绝访问(DoS)等对计算机系统造成危害的行为。入侵行为不仅来自外部,同时也指内部用户的未授权活动。从入侵策略的角度可将入侵检测的内容分为:试图闯入、成功闯入、冒充其他用户、违反安全策略、合法用户的泄漏、独占资源以及恶意使用。入侵检测的研究最早可追溯到JamesAnderson在1980年的工作。他首次提出了入侵检测的概念,将入侵尝试(intrusionattempt)或威胁(threat)定义为:潜在的有预谋未经授权访问信息、操作信息、致使系统不可靠或无法使用的企图。在报告中,Anderson还提出审计跟踪可应用于监视入侵活动的思想。但由于当时所有已有的系统安全程序都着重于拒绝未经–153–\n计算机信息安全认证主体对重要数据的访问,这一设想的重要性当时并未被理解。1987年,乔治敦大学的DorothyE.Denning提出了一个实时的入侵检测系统抽象模型——IDES(IntrusionDetectionExpertSystem,入侵检测专家系统),首次将入侵检测的概念作为一种计算机系统安全防御问题的措施提出。与传统加密和访问控制的常用方法相比,IDS是全新的计算机安全措施。其模型由六个部分组成:主体、对象、审计记录、轮廓特征、异常记录及活动规则。它独立于特定的系统平台、应用环境、系统弱点以及入侵类型,为构建入侵检测系统提供了一个通用的框架。1988年的MorrisInternet蠕虫事件使得Internet近5天无法使用,该事件促进了人们投入更多的精力于IDS的研究。1990年是入侵检测系统发展史上的一个分水岭。这一年,加州大学戴维斯分校的L.T.Heberlein等人提出了一个新的概念:基于网络的入侵检测——NSM(NetworkSecurityMonitor),NSM与此前的IDS系统最大的不同在于它并不检查主机系统的审计记录,它可以通过在局域网上主动地监视网络信息流量来追踪可疑的行为。这是第一次直接将网络流作为审计数据来源,因而可以在不将审计数据转换成统一格式的情况下监控异种主机。从此之后,入侵检测系统发展史翻开了新的一页,入侵检测系统中的两个重要研究方向开始形成:基于网络的IDS和基于主机的IDS。同时,在1988年莫里斯蠕虫事件发生之后,网络安全引起了军方、学术界和企业的高度重视。美国空军、国家安全局和能源部共同资助空军密码支持中心、劳伦斯利弗摩尔国家实验室、加州大学戴维斯分校、Haystack实验室,开展对分布式入侵检测系统(DIDS)的研究,将基于主机和基于网络的检测方法集成到一起。DIDS是分布式入侵检测系统历史上的一个里程碑式的产品,它的检测模型采用了分层结构。1991年,NADIR(NetworkAnomalyDetectionandIntrusionReporter)与DIDS(DistributeIntrusionDetectionSystem)提出了收集和合并处理来自多个主机的审计信息以检测一系列主机的协同攻击。1994年,MarkCrosbie和GeneSpafford建议使用自治代理(autonomousagents)以便提高IDS的可伸缩性、可维护性、效率和容错性,该理念非常符合正在进行的计算机科学其他领域(如软件代理,softwareagent)的研究。1995年开发了IDES完善后的版本——NIDES(Next-GenerationIntrusionDetectionSystem)可以检测多个主机上的入侵。另一条致力于解决当代绝大多数入侵检测系统伸缩性不足的途径于1996年提出,这就是GrIDS(Graph-basedIntrusionDetectionSystem)的设计和实现,该系统使得对大规模自动或协同攻击的检测更为便利,这些攻击有时甚至可能跨过多个管理领域。近些年来,入侵检测的主要创新包括:Forrest等将免疫原理运用到分布式入侵检测领域。1998年RossAnderson和AbidaKhattak将信息检索技术引进到入侵检测。2000年2月,对Yahoo!、Amazon、CNN等大型网站的DDOS(分布式拒绝服务)攻击引发了对IDS系统的新一轮研究热潮。9.1.2入侵检测的作用和功能入侵检测的作用主要有如下几个方面。(1)若能迅速检测到入侵,则有可能在造成系统损坏或数据丢失之前识别并驱除入侵者。–154–\n第9章入侵检测技术(2)若能迅速检测到入侵,可以减少损失,使系统迅速恢复正常工作,对入侵者造成威胁,阻止其进一步的行动。(3)通过入侵检测可以收集关于入侵的技术资料,可用于改进和增强系统抵抗入侵的能力。入侵检测的功能有如下几个方面。(1)监控、分析用户和系统的活动。(2)核查系统配置和漏洞。(3)评估关键系统和数据文件的完整性。(4)识别攻击的活动模式并向网管人员报警。(5)对异常活动的统计分析。(6)操作系统审计跟踪管理,识别违反政策的用户活动。(7)评估重要系统和数据文件的完整性。9.1.3入侵检测系统分类随着入侵检测技术的发展,到目前为止出现了很多入侵检测系统,不同的入侵检测系统具有不同的特征。根据不同的分类标准,入侵检测系统可分为不同的类别。对于入侵检测系统,要考虑的因素(分类依据)主要有信息源、入侵、事件生成、事件处理及检测方法等。下面就不同的分类依据及分类结果分别加以介绍。9.1.3.1根据原始数据的来源分类入侵检测系统要对其所监控的网络或主机的当前状态做出判断,并不是凭空臆测,它需要以原始数据中包含的信息为基础,做出判断。按照原始数据的来源,可以将入侵检测系统分为基于主机的入侵检测系统、基于网络的入侵检测系统和基于应用的入侵检测系统。1.基于主机的入侵检测系统(HIDS)主要用于保护运行关键应用的服务器。它通过监视与分析主机的审计记录和日志文件来检测入侵。日志中包含发生在系统上的不寻常和不期望活动的证据,这些证据可以指出有人正在入侵或已成功入侵了系统。通过查看日志文件,能够发现成功的入侵或入侵企图,并很快地启动相应的应急响应程序。通常,基于主机的IDS可监测系统、事件和WindowsNT下的安全记录以及UNIX环境下的系统记录,从中发现可疑行为。当有文件发生变化时,IDS将新的记录条目与攻击标记相比较,看它们是否匹配。如果匹配,系统就会向管理员报警并向别的目标报告,以采取措施。对关键系统文件和可执行文件的入侵检测的一个常用方法,是通过定期检查校验和来进行的,以便发现意外的变化。反应的快慢与轮询间隔的频率有直接的关系。此外,许多IDS还监听主机端口的活动,并在特定端口被访问时向管理员报警。比如,上面提到的IDES就属于这一类。它是一个独立于系统、应用环境、系统弱点和入侵类型的实时入侵检测专家系统。该系统可以看作是一个基于规则的模式匹配系统。审计记录一旦产生,就与相应的描述模型进行比较,与描述模型中的特定信息进行比较,确定用什么规则来更新描述模型,检测异常活动和报告检测异常结果。规则和描述模型结构是独立于系统的。IDES独立于系统的特点使其拥有较强的可移植性。但是,如果对目标系统的弱点有充分–155–\n计算机信息安全的了解,就有利于建立更有效的入侵检测系统。IDES对入侵的反应仅是向系统安全管理员发出警告,反应能力有限。尽管基于主机的入侵检查系统不如基于网络的入侵检查系统快捷,但它确实具有基于网络的系统无法比拟的优点。这些优点包括以下几个方面。(1)能确定攻击是否成功。主机是攻击的目的所在,所以基于主机的IDS使用含有已发生的事件信息,可以比基于网络的IDS更加准确地判断攻击是否成功。就这一方面而言,基于主机的IDS与基于网络的IDS互相补充,网络部分尽早提供针对攻击的警告,而主机部分则可确定攻击是否成功。(2)监控粒度更细。基于主机的IDS,监控的目标明确,视野集中,它可以检测一些基于网络的IDS不能检测的攻击。它可以很容易地监控系统的一些活动,如对敏感文件、目录、程序或端口的存取。例如,基于主机的IDS可以监督所有用户登录及退出登录的情况,以及每位用户在连接到网络以后的行为。它还可监视通常只有管理员才能实施的非正常行为。针对系统的一些活动,有时并不通过网络传输数据,有时虽然通过网络传输数据但所传输的数据并不能提供足够多的信息,从而使得基于网络的系统检测不到这些行为,或者检测到这个程度非常困难。(3)配置灵活。每一个主机有其自己的基于主机的IDS,用户可根据自己的实际情况对其进行配置。(4)可用于加密的以及交换的环境。加密和交换设备加大了基于网络IDS收集信息的难度,但由于基于主机的IDS安装在要监控的主机上,根本不会受这些因素的影响。(5)对网络流量不敏感。基于主机的IDS一般不会因为网络流量的增加而丢掉对网络行为的监视。(6)不需要额外的硬件。基于主机的入侵检测系统的主要缺点如下。(1)它会占用主机的资源,在服务器上产生额外的负载。(2)缺乏平台支持,可移植性差,因而应用范围受到严重限制。在网络环境中,某些活动对于单个主机来说可能构不成入侵,但是对于整个网络是入侵活动。例如“旋转门柄”攻击,入侵者企图登录到网络主机,他对每台主机只试用一次用户ID和口令,并不穷尽搜索,如果不成功,便转向其他主机。这种攻击方式,各主机上的入侵检测系统显然无法检测到,这就需要建立面向网络的入侵检测系统。2.基于网络的入侵检测系统(NIDS)主要用于实时监控网络关键路径的信息,它侦听网络上的所有分组来采集数据,分析可疑现象。基于网络的入侵检测系统使用原始网络包作为数据源。基于网络的IDS通常利用一个运行在混杂模式下的网络适配器来实时监视并分析通过网络的所有通信业务,当然也可能采用其他特殊硬件获得原始网络包。基于网络的IDS有许多仅靠基于主机的入侵检测法无法提供的功能。实际上,许多客户在最初使用IDS时,都配置了基于网络的入侵检测。基于网络的检测有以下优点。(1)监测速度快。基于网络的监测器通常能在微秒或毫秒级发现问题。而大多数基于主机的产品则要依靠对最近几分钟内审计记录的分析。–156–\n第9章入侵检测技术(2)隐蔽性好。一个网络上的监测器不像一个主机那样显眼和易被发现,因而也不那么容易遭受攻击。基于网络的监视器不运行其他的应用程序,不提供网络服务,可以不响应其他计算机,因此可以做得比较安全。(3)视野更宽。可以检测一些主机检测不到的攻击,如泪滴(teardrop)攻击,基于网络的SYN洪水等。还可以检测不成功的攻击和恶意企图。(4)较少的监测器。由于使用一个监测器就可以保护一个共享的网段,所以你不需要很多的监测器。相反地,如果基于主机,则在每个主机上都需要一个代理,这样的话,花费昂贵,而且难于管理。但是,如果在一个交换环境下,就需要特殊的配置。(5)攻击者不易转移证据。基于网络的IDS使用正在发生的网络通信进行实时攻击的检测。所以攻击者无法转移证据。被捕获的数据不仅包括攻击的方法,而且还包括可识别黑客身份和对其进行起诉的信息。许多黑客都熟知审计记录,他们知道如何操纵这些文件掩盖他们的作案痕迹,如何阻止需要这些信息的基于主机的系统去检测入侵。(6)操作系统无关性。基于网络的IDS作为安全监测资源,与主机的操作系统无关。与之相比,基于主机的系统必须在特定的、没有遭到破坏的操作系统中才能正常工作,生成有用的结果。(7)可以配置在专门的机器上,不会占用被保护的设备上的任何资源。基于网络的入侵检测系统的主要缺点如下。(1)只能监视本网段的活动,精确度不高。(2)在交换环境下难以配置。(3)防入侵欺骗的能力较差。(4)难以定位入侵者。3.基于应用(application)的入侵检测系统基于应用的入侵检测系统可以说是基于主机的入侵检测系统的一个特殊子集,也可以说是基于主机入侵检测系统实现的进一步的细化,所以其特性、优缺点与基于主机的IDS基本相同。主要特征是使用监控传感器在应用层收集信息。由于这种技术可以更准确地监控用户某一应用的行为,所以这种技术在日益流行的电子商务中也越来越受到注意。它监控在某个软件应用程序中发生的活动,信息来源主要是应用程序的日志。它监控的内容更为具体,相应的监控的对象更为狭窄。这三种入侵检测系统具有互补性,基于网络的入侵检测能够客观地反映网络活动,特别是能够监视到系统审计的盲区;而基于主机的和基于应用的入侵检测能够更加精确地监视系统中的各种活动。实际系统大多是这三种系统的混合体。9.1.3.2根据检测原理分类传统的观点根据入侵行为的属性将其分为异常和误用两种,然后分别对其建立异常检测模型和误用检测模型。异常入侵检测是指能够根据异常行为和使用计算机资源的情况检测出来的入侵。异常入侵检测试图用定量的方式描述可以接受的行为特征,以区分非正常的、潜在的入侵行为。Anderson做了如何通过识别“异常”行为来检测入侵的早期工作。他提出了一个威胁模型,将威胁分为外部闯入、内部渗透和不当行为三种类型,并使用这种分类方法–157–\n计算机信息安全开发了一个安全监视系统,可检测用户的异常行为。误用入侵检测是指利用已知系统和应用软件的弱点攻击模式来检测入侵。与异常入侵检测不同,误用入侵检测能直接检测不利的或不可接受的行为,而异常入侵检测是检查出与正常行为相违背的行为。综上,可根据系统所采用的检测模型,将入侵检测分为两类:异常检测和误用检测。1.异常检测在异常检测中,观察到的不是已知的入侵行为,而是所研究的通信过程中的异常现象,它通过检测系统的行为或使用情况的变化来完成。在建立该模型之前,首先必须建立统计概率模型,明确所观察对象的正常情况,然后决定在何种程度上将一个行为标为“异常”,并如何做出具体决策。2.误用检测在误用检测中,入侵过程模型及它在被观察系统中留下的踪迹是决策的基础。所以,可事先定义某些特征的行为是非法的,然后将观察对象与之进行比较以做出判别。误用检测基于已知的系统缺陷和入侵模式,故又称特征检测。它能够准确地检测到某些特征的攻击,但却过度依赖事先定义好的安全策略,所以无法检测系统未知的攻击行为,从而产生漏警。9.1.3.3根据体系结构分类按照体系结构,IDS可分为集中式、等级式和协作式三种。1.集中式这种结构的IDS可能有多个分布于不同主机上的审计程序,但只有一个中央入侵检测服务器。审计程序把当地收集到的数据发送给中央服务器进行分析处理。但这种结构的IDS在可伸缩性、可配置性方面存在致命缺陷。随着网络规模的增加,主机审计程序和服务器之间传送的数据量就会骤增,导致网络性能大大降低。并且,一旦中央服务器出现故障,整个系统就会陷入瘫痪。根据各个主机的不同需求配置服务器也非常复杂。2.等级式在这种IDS中,定义了若干个分等级的监控区域,每个IDS负责一个区域,每一级IDS只负责所监控区的分析,然后将当地的分析结果传送给上一级IDS。这种结构也存在一些问题。首先,当网络拓扑结构改变时,区域分析结果的汇总机制也需要做相应的调整。第二,这种结构的IDS最后还是要把各地收集到的结果传送到最高级的检测服务器进行全局分析,所以系统的安全性并没有实质性的改进。3.协作式将中央检测服务器的任务分配给多个基于主机的IDS,这些IDS不分等级,各司其职,负责监控当地主机的某些活动。所以,其可伸缩性、安全性都得到了显著的提高,但维护成本却高了很多,并且增加了所监控主机的工作负荷,如通信机制、审计开销、踪迹分析等。–158–\n第9章入侵检测技术9.2入侵检测技术虽说入侵检测是一个复杂的技术,不同的入侵检测系统可能使用的技术不同,具有不同的应用范围,但是,它们都有相同的一个检测原理。9.2.1入侵检测原理入侵检测跟其他检测技术有同样的原理。从一组数据中,检测出符合某一特点的数据。攻击者进行攻击的时候会留下痕迹,这些痕迹和系统正常运行的时候产生的数据混在一起,我们的任务就是从这些混合数据中找出是否有入侵的痕迹。如果有入侵的痕迹就报警。入侵检测一般包括以下两个步骤。9.2.1.1信息收集入侵检测的第一步是信息收集,内容包括系统、网络、数据及用户活动的状态和行为。而且,需要在计算机网络系统中的若干不同关键点收集信息,这样除可以扩大检测范围的因素外,而且有时候从一个源来的信息有可能看不出疑点,但从几个源来的信息的不一致性却是可疑行为或入侵的最好标识。入侵检测利用的信息一般来自以下四个方面。1.系统日志黑客经常在系统日志中留下他们的踪迹,因此,充分利用系统日志是检测入侵的必要条件。日志文件中记录了各种行为类型,每种类型又包含不同的信息,很显然地,对用户活动来讲,不正常的或不期望的行为就是重复登录失败、登录到不期望的位置以及非授权的企图访问重要文件等等。2.目录以及文件中的异常改变网络环境中的文件系统包含很多软件和数据文件,包含重要信息的文件和私有数据文件经常是黑客修改或破坏的目标。3.程序执行中的异常行为网络系统上的程序执行一般包括操作系统、网络服务、用户启动的程序和特定目的的应用,例如数据库服务器。每个在系统上执行的程序由一到多个进程来实现。每个进程执行在具有不同权限的环境中,这种环境控制着进程可访问的系统资源、程序和数据文件等。一个进程出现了不期望的行为可能表明黑客正在入侵你的系统。黑客可能会将程序或服务的运行分解,从而导致它失败,或者是以非用户或管理员意图的方式操作。4.物理形式的入侵信息这包括两个方面的内容,一是未授权的对网络硬件连接;二是对物理资源的未授权访问。–159–\n计算机信息安全9.2.1.2数据分析第二步是数据分析。一般通过四种技术手段进行分析:模式匹配,统计分析,专家系统和完整性分析。其中前三种方法用于实时的入侵检测,而完整性分析则用于事后分析。1.模式匹配模式匹配就是将收集到的信息与已知的网络入侵和系统误用模式数据库进行比较,从而发现违背安全策略的行为。该方法的一大优点是只需收集相关的数据集合,显著减少系统负担,且技术已相当成熟。它与病毒防火墙采用的方法一样,检测准确率和效率都相当高。但是,该方法存在的弱点是需要不断的升级以对付不断出现的黑客攻击手法,不能检测到从未出现过的黑客攻击手段。2.统计分析统计分析方法首先给系统对象(如用户、文件、目录和设备等)创建一个统计描述,统计正常使用时的一些测量属性(如访问次数、操作失败次数和延时等)。测量属性的平均值将被用来与网络、系统的行为进行比较,任何观察值在正常值范围之外时,就认为有入侵发生。其优点是可检测到未知的入侵和更为复杂的入侵,缺点是误报、漏报率高,且不适应用户正常行为的突然改变。具体的统计分析方法如基于专家系统的、基于模型推理的和基于神经网络的分析方法,目前正处于研究热点和迅速发展之中。入侵检测5种统计模型如下。(1)操作模型:该模型假设异常可通过测量结果与一些固定指标相比较得到,固定指标可以根据经验值或一段时间内的统计平均得到,举例来说,在短时间内的多次失败的登录很有可能是口令尝试攻击。(2)方差:计算参数的方差,设定其置信区间,当测量值超过置信区间的范围时表明有可能是异常。(3)多元模型:操作模型的扩展,通过同时分析多个参数实现检测。(4)马尔柯夫过程模型:将每种类型的事件定义为系统状态,用状态转移矩阵来表示状态的变化,当一个事件发生时,而状态矩阵该转移的概率较小则可能是异常事件。(5)时间序列分析,将事件计数与资源耗用根据时间排成序列,如果一个新事件在该时间发生的概率较低,则该事件可能是入侵。统计方法的最大优点是它可以“学习”用户的使用习惯,从而具有较高检出率与可用性。但是它的“学习”能力也给入侵者以机会通过逐步“训练”使入侵事件符合正常操作的统计规律,从而透过入侵检测系统。3.专家系统用专家系统对入侵进行检测,经常是针对有特征入侵行为。所谓的规则,即是知识,不同的系统与设置具有不同的规则,且规则之间往往无通用性。专家系统的建立依赖于知识库的完备性,知识库的完备性又取决于审计记录的完备性与实时性。入侵的特征抽取与表达,是入侵检测专家系统的关键。在系统实现中,将有关入侵的知识转化为if-then结构(也可以是复合结构),条件部分为入侵特征,then部分是系统防范措施。运用专家系统防范有特征入–160–\n第9章入侵检测技术侵行为的有效性完全取决于专家系统知识库的完备性。4.完整性分析完整性分析主要关注某个文件或对象是否被更改,这经常包括文件和目录的内容及属性,它在发现被更改的、被特洛伊化的应用程序方面特别有效。其优点是不管模式匹配方法和统计分析方法能否发现入侵,只要是成功的攻击导致了文件或其他对象的任何改变,它都能够发现。缺点是一般以批处理方式实现,不用于实时响应。9.2.2入侵检测系统通用模型目前所有的入侵检测系统都根据以上原理,实现一个通用模型。入侵检测系统通用模型由5个主要部分(信息收集器、分析器、响应、数据库和目录服务器)组成,如图9.1所示。信息收集器响应分析器数据库目录服务器图9.1入侵检测系统通用模型1.信息收集器信息收集器用于收集事件的信息。收集的信息将被用来分析,确定是否发生入侵。信息收集器可以被划分成不同级别,通常分为网络级别、主机级别和应用程序级别。对于网络级别,它的处理对象是网络数据包。对于主机级别,它的处理对象一般是系统的审计记录。对于程序级别,它的处理对象一般是程序运行的日志文件。被收集的信息可以发送到分析器处理,或者存放在数据库中待处理。2.分析器分析器对由信息源生成的事件作分析处理,确定哪些事件与正在发生或者已发生的入侵有关。两个最常用的分析方法是误用检测和异常检测。分析器的结果可以被响应,或者保存在数据库作统计。3.响应响应就是当入侵事件发生时,系统采取的一系列动作。这些动作常被分为主动响应和被动响应两类。主动响应能自动干预系统;被动响应给管理员提供信息,再由管理员采取行动。4.数据库数据库保存事件信息,包括正常和入侵事件。数据库还可以用来存储临时处理数据。扮演各个组件之间的数据交换中心的角色。–161–\n计算机信息安全5.目录服务器目录服务器保存入侵检测系统各个组件及其功能的目录信息。在一个比较大的入侵检测系统中,这个部分起一个很重要的作用,改进系统的维护性和扩展性。9.3入侵检测系统的弱点和局限9.3.1网络入侵检测系统的局限NIDS通过从网络上得到数据包进行分析,从而检测和识别出系统中的未授权或异常现象。9.3.1.1网络局限1.交换网络环境由于共享式HUB可以进行网络监听,将给网络安全带来极大的威胁,故而现在网络,尤其是高速网络基本上都采用交换机,从而给NIDS的网络监听带来麻烦。(1)监听端口现在较好的交换机都支持监听端口,故很多NIDS都连接到监听端口上。通常连接到交换机时都是全双工的,即在100MB的交换机上双向流量可能达到200MB,但监听端口的流量最多达到100MB,从而导致交换机丢包。为了节省交换机端口,很可能配置为一个交换机端口监听多个其他端口,在正常的流量下,监听端口能够全部监听,但在受到攻击的时候,网络流量可能加大,从而使被监听的端口流量总和超过监听端口的上限,引起交换机丢包。一般的交换机在负载较大的时候,监听端口的速度赶不上其他端口的速度,从而导致交换机丢包。(2)共享式HUB在需要监听的网线中连接一个共享式HUB,从而实现监听的功能。对于小公司而言,在公司与Internet之间放置一个NIDS,是一个相对廉价并且比较容易实现的方案。采用HUB,将导致主机的网络连接由全双工变为半双工,并且如果NIDS发送的数据通过此HUB的话,将增加冲突的可能。(3)线缆分流采用特殊的设备,直接从网线中拷贝一份相同的数据,从一根网线中将拷贝出两份(每个方向一份),连接到支持监听的交换机上,NIDS再连接到此交换机上。这种方案不会影响现有的网络系统,但需要增加交换机,价格不菲,并且面临与监听端口同样的问题。2.网络拓扑局限对于一个较复杂的网络而言,通过精心的发包,可以导致NIDS与受保护的主机收到的包的内容或者顺序不一样,从而绕过NIDS的监测。(1)其他路由–162–\n第9章入侵检测技术由于一些非技术的因素,可能存在其他的路由可以绕过NIDS到达受保护主机(例如某个被忽略的Modem,但Modem旁没有安装NIDS)。如果IP源路由选项允许的话,可以通过精心设计IP路由绕过NIDS。(2)TTL如果数据包到达NIDS与受保护的主机的HOP数不一样。则可以通过精心设置TTL值来使某个数据包只能被NIDS或者只能被受保护主机收到,从而使NIDS的Sensor与受保护主机收到的数据包不一样,从而绕过NIDS的监测。9.3.1.2检测方法局限NIDS常用的检测方法有特征检测、异常检测、状态检测、协议分析等。实际中的商用入侵检测系统大都同时采用几种检测方法。NIDS不能处理加密后的数据。如果数据传输中被加密,即使只是简单的替换,NIDS也难以处理,例如采用SSH、HTTPS、带密码的压缩文件等手段,都可以有效的防止NIDS的检测。NIDS难以检测重放攻击、中间人攻击、对网络监听也无能为力。目前的NIDS还难以有效的检测DDoS攻击。1.系统实现局限由于受NIDS保护的主机及其运行的程序各种各样,甚至对同一个协议的实现也不尽相同,入侵者可能利用不同系统的不同实现的差异来进行系统信息收集(例如Nmap通过TCP/IP指纹来对操作系统的识别)或者进行选择攻击。由于NIDS不大可能通晓这些系统的不同实现,故而可能被入侵者绕过。2.异常检测的局限异常检测通常采用统计方法来进行检测。异常检测需要大量的原始的审计记录,一个纯粹的统计入侵检测系统会忽略那些不会或很少产生会影响统计规律的审计记录的入侵,即使它具有很明显的特征。统计方法可以被训练而适应入侵模式。当入侵者知道他的活动被监视时,他可以研究统计入侵检测系统的统计方法,并在该系统能够接受的范围内产生审计事件,逐步训练入侵检测系统,从而其相应的活动逐渐偏离正常范围,最终将入侵事件作为正常事件对待。应用系统越来越复杂,许多主体活动很难以简单的统计模型来刻画,而复杂的统计模型在计算量上不能满足实时的检测要求。统计方法中的阈值难以有效确定,太小的值会产生大量的误报,太大的值会产生大量的漏报。例如,系统中配置为200个/秒半开TCP连接为SYN_Flooding,则入侵者每秒建立199个半开连接将不会被视为攻击。3.特征检测的局限检测规则的更新总是落后于攻击手段的更新。目前而言,一个新的漏洞在互联网上公布,第二天就可能在网上找到用于攻击的方法和代码,但相应的检测规则平均还需要好几天才能总结出来。存在一个发现新入侵方法到用户升级规则库/知识库的时间差,对有心的入侵者,将有充足的时间进行入侵。–163–\n计算机信息安全很多公布的攻击并没有总结出相应的检测规则或者检测规则误报率很高。并且现在越来越多的黑客倾向于不公布他们发现的漏洞,从而很难总结出这些攻击的攻击特征。目前新的规则的整理主要是志愿者或者厂家完成,由用户自行下载使用,用户自定义的规则实际上很少,在方便了用户的同时,也方便了入侵者:入侵者可以先检查所有的规则,然后采用不会被检测到的手段来进行入侵,大大降低被NIDS发现的概率。目前总结出的规则主要针对网络上公布的黑客工具或者方法,但对于很多以源代码发布的黑客工具而言,很多入侵者可以对源代码进行简单的修改(例如黑客经常修改特洛伊木马的代码),产生攻击方法的变体,就可以绕过NIDS的检测。4.协议局限对于应用层的协议,一般的NIDS只简单处理了常用的,如HTTP、FTP、SMTP等。还有大量的协议没有处理,也不大可能全部处理,直接针对一些特殊协议或者用户自定义协议的攻击,都能很好的绕过NIDS的检查。9.3.1.3资源及处理能力局限1.针对NIDS的DoS攻击(1)大流量冲击攻击者向被保护网络发送大量的数据,超过NIDS的处理能力有限,将会发生丢包的情况,从而可能导致入侵行为漏报。NIDS的网络抓包能力与很多因素相关。例如在每个包1500字节的情况下,NIDS将超过100MB/s的处理能力,甚至达到超过500MB/s的处理能力,但如果每个包只有50字节,100MB/s的流量意味2000000包/s,这将超过目前绝大多数网卡及交换机的处理能力。(2)IP碎片攻击攻击者向被保护网络发送大量的IP碎片(例如TARGA3攻击),超过NIDS能同时进行的IP碎片重组能力,从而导致通过IP分片技术进行的攻击漏报。(3)TCPConnectFlooding攻击者创建或者模拟出大量的TCP连接(可以通过上面介绍的IP重叠分片方法),超过NIDS同时监控的TCP连接数的上限,从而导致多余的TCP连接不能被监控。(4)AlertFlooding攻击者可以参照网络上公布的检测规则,在攻击的同时故意发送大量的将会引起NIDS报警的数据(例如stick攻击),将可能超过NIDS发送报警的速度,从而产生漏报,并且使网管收到大量的报警,难以分辨出真正的攻击。(5)LogFlooding攻击者发送大量的将会引起NIDS报警的数据,最终导致NIDS进行Log的空间被耗尽,从而删除先前的Log记录。2.内存及硬盘限制如果NIDS希望提高能够同时处理的IP碎片重组及TCP连接监控能力,这将需要更多的内存做缓冲。如果NIDS的内存分配及管理不好的话,将使系统在某种特殊的情况下耗费–164–\n第9章入侵检测技术大量的内存。如果开始使用虚拟内存,则将有可能发生内存抖动。通常硬盘的速度远远比不上网络的速度,如果系统产生大量的报警记录到硬盘,将耗费掉大量的系统处理能力,如果系统记录原始网络数据,保存大量和高速的网络数据将需要昂贵的大容量RAID。9.3.2主机入侵检测系统的局限1.资源局限由于HIDS安装被保护主机上,故所占用的资源不能太多,从而大大限制了所采用的检测方法及处理性能。2.操作系统局限不像NIDS,厂家可以自己定制一个足够安全的操作系统来保证NIDS自身的安全,HIDS的安全性受其所在主机的操作系统的安全性限制,如果所在系统被攻破,HIDS将很快被清除。如果HIDS为单机,则它基本上只能检测没有成功的攻击,如果HIDS为传感器/控制台结构,则将面临与NIDS同样的对相关系统的攻击。3.系统日志限制HIDS会通过监测系统日志来发现可疑的行为,但有些程序的系统日志并不足够详细,或者没有日志。有些入侵行为本身不会被具有系统日志的程序记录下来。如果系统没有安装第三方日志系统,则系统自身的日志系统很快会受到入侵者的攻击或修改,而入侵检测系统通常不支持第三方的日志系统。如果HIDS没有实时检查系统日志,则利用自动化工具进行的攻击将完全可能在检测间隔中完成所有的攻击工程并清除在系统日志中留下的痕迹。4.被修改过的系统核心能够骗过文件检查如果入侵者修改系统核心,则可以骗过基于文件一致性检查的工具。这就像当初某些病毒,当它们认为受到检查或者跟踪的时候会将原来的文件或者数据提供给检查工具或者跟踪工具。5.网络检测局限有些HIDS可以检查网络状态,但这将面临NIDS所面临的很多问题。9.3.3入侵检测系统面临的挑战IDS技术主要面临着三大挑战。1.如何提高入侵检测系统的检测速度,以适应网络通信的要求网络安全设备的处理速度一直是影响网络性能的一大瓶颈。虽然IDS通常以并联方式接入网络的,但如果其检测速度跟不上网络数据的传输速度,那么检测系统就会漏掉其中的部分数据包,从而导致漏报而影响系统的准确性和有效性。在IDS中,截获网络的每一个数据–165–\n计算机信息安全包,并分析、匹配其中是否具有某种攻击的特征需要花费大量的时间和系统资源,因此大部分现有的IDS只有几十兆的检测速度,随着百兆、甚至千兆网络的大量应用,IDS技术发展的速度已经远远落后于网络速度的发展。2.如何减少入侵检测系统的漏报和误报,提高其安全性和准确度基于模式匹配分析方法的IDS将所有入侵行为和手段及其变种表达为一种模式或特征,检测主要判别网络中搜集到的数据特征是否在入侵模式库中出现,因此,面对着每天都有新的攻击方法产生和新漏洞发布,攻击特征库不能及时更新是造成IDS漏报的一大原因。而基于异常发现的IDS通过流量统计分析建立系统正常行为的轨迹,当系统运行时的数值超过正常阈值,则认为可能受到攻击,该技术本身就导致了其漏报误报率较高。另外,大多IDS是基于单包检查的,协议分析得不够,因此无法识别伪装或变形的网络攻击,也造成大量漏报和误报。3.如何提高入侵检测系统的互动性能,从而提高整个系统的安全性能在大型网络中,网络的不同部分可能使用了多种入侵检测系统,甚至还有防火墙、漏洞扫描等其他类别的安全设备。这些入侵检测系统之间以及IDS和其他安全组件之间如何交换信息,共同协作来发现攻击、做出响应并阻止攻击是关系整个系统安全性的重要因素。例如,漏洞扫描程序例行的试探攻击就不应该触发IDS的报警,而利用伪造的源地址进行攻击,就可能联动防火墙关闭服务从而导致拒绝服务,这也是互动系统需要考虑的问题。9.4入侵检测系统的发展趋势随着网络技术和网络规模的不断发展,人们对于计算机网络的依赖也不断增强。与此同时,针对网络系统的攻击越来越普遍,攻击手法日趋复杂。IDS也随着网络技术和相关学科的发展而日趋成熟,其未来发展的趋势主要表现在以下方面。1.宽带高速实时的检测技术大量高速网络技术如ATM、千兆以太网等近年来相继出现,在此背景下的各种宽带接入手段层出不穷。如何实现高速网络下的实时入侵检测已经成为面临的现实问题。目前的千兆IDS产品其性能指标与实际要求相差很远。要提高其性能主要需考虑以下两个方面:首先,IDS的软件结构和算法需要重新设计,以期适应高速网的环境,提高运行速度和效率;其次,随着高速网络技术的不断发展与成熟,新的高速网络协议的设计也必将成为未来发展的趋势,那么,现有IDS如何适应和利用未来的新网络协议将是一个全新的问题。2.大规模分布式的检测技术传统的集中式IDS的基本模型是在网络的不同网段放置多个探测器收集当前网络状态的信息,然后将这些信息传送到中央控制台进行处理分析。这种方式存在明显的缺陷。首先,对于大规模的分布式攻击,中央控制台的负荷将会超过其处理极限,这种情况会造成大量信息处理的遗漏,导致漏警率的增高。其次,多个探测器收集到的数据在网络上的传输会在一定程度上增加网络负担,导致网络系统性能的降低。再者,由于网络传输的时延问题,中央–166–\n第9章入侵检测技术控制台处理的网络数据包中所包含的信息只反映了探测器接收到它时网络的状态,不能实时反映当前网络状态。面对以上问题,新的解决方法也随之产生。例如普渡大学开发的AAFID系统,该系统是Purdue大学设计的一种采用树形分层构造的代理群体,最根部的是监视器代理,提供全局的控制、管理以及分析由上一层节点提供的信息,在树叶部分的代理专门用来收集信息。处在中间层的代理被称为收发器,这些收发器一方面实现对底层代理的控制,一方面可以起到信息的预处理过程,把精练的信息反馈给上层的监视器。这种结构采用了本地代理处理本地事件,中央代理负责整体分析的模式。与集中式不同,它强调通过全体智能代理的协同工作来分析入侵策略。这种方法明显优于前者,但同时带来一些新的问题,如代理间的协作、代理间的通信等。这些问题仍在进一步研究之中。3.数据挖掘技术操作系统的日益复杂和网络数据流量的急剧增加,导致了审计数据以惊人速度剧增。如何在海量的审计数据中提取出具有代表性的系统特征模式,以便对程序和用户行为做出更精确的描述,是实现入侵检测的关键。数据挖掘技术是一项通用的知识发现技术,其目的是要从海量数据中提取对用户有用的数据。将该技术用于入侵检测领域,利用数据挖掘中的关联分析、序列模式分析等算法提取相关的用户行为特征,并根据这些特征生成安全事件的分类模型,应用于安全事件的自动鉴别。一个完整的基于数据挖掘的入侵检测模型要包括对审计数据的采集,数据预处理、特征变量选取、算法比较、挖掘结果处理等一系列过程。这项技术难点在于如何根据具体应用的要求,从用于安全的先验知识出发,提取出可以有效反映系统特性的特征属性,应用适合的算法进行数据挖掘。另一技术难点在于如何将挖掘结果自动地应用到实际的IDS中。目前,国际上在这个方向上的研究很活跃,这些研究多数得到了美国国防部高级计划署、国家自然科学基金的支持。但也应看到,数据挖掘技术用于入侵检测的研究总体上来说还处于理论探讨阶段,离实际应用还有相当距离。4.更先进的检测算法在入侵检测技术的发展过程中,新算法的出现可以有效提高检测的效率。以下三种机器学习算法为当前检测算法的改进注入新的活力。它们分别是计算机免疫技术、神经网络技术和遗传算法。计算机免疫技术是直接受到生物免疫机制的启发而提出的。生物系统中的脆弱性因素都是由免疫系统来妥善处理的,而这种免疫机制在处理外来异体时呈现了分布的、多样性的、自治的以及自修复的特征,免疫系统通过识别异常或以前未出现的特征来确定入侵。计算机免疫技术为入侵检测提供了以下思路,即通过正常行为的学习来识别不符合常态的行为序列。在这方面已经作了若干研究工作,仍有待于进一步深入。神经网络技术在入侵检测中研究的时间较长,并在不断发展。早期的研究通过训练向后传播神经网络来识别已知的网络入侵,进一步研究识别未知的网络入侵行为。今天的神经网络技术已经具备相当强的攻击模式分析能力,它能够较好地处理带噪声的数据,而且分析速度很快,可以用于实时分析。现在提出了各种其他的神经网络架构诸如自组织特征映射网络–167–\n计算机信息安全等,以期克服后向传播网络的若干限制性缺陷。遗传算法在入侵内检测中的应用时间不长,在一些研究试验中,利用若干字符串序列来定义用于分析检测的指令组,用以识别正常或者异常行为的这些指令在初始训练阶段中不断进化,提高分析能力。该算法的应用还有待于进一步的研究。5.入侵响应技术当IDS分析出入侵行为或可疑现象后,系统需要采取相应手段,将入侵造成的损失降到最小程度。一般可以通过生成事件告警、E-mail或短信息来通知管理员。随着网络的日益复杂和安全要求的提高,更加实时的和系统自动入侵响应方法正逐渐被研究和应用。这类入侵响应大致分为三类:系统保护、动态策略和攻击对抗。这三方面都属于网络对抗的范畴,系统保护以减少入侵损失为目的,动态策略以提高系统安全性为职责,而入侵对抗则不仅可以实时保护系统,还可实现入侵跟踪和反入侵的主动防御策略。6.建立入侵检测系统评价体系设计通用的入侵检测测试、评估方法和平台,实现对多种入侵检测系统的检测,已成为当前入侵检测系统的另一重要研究与发展领域。评价入侵检测系统可从检测范围、系统资源占用、自身的可靠性等方面进行,评价指标有:能否保证自身的安全、运行与维护系统的开销、报警准确率、负载能力以及可支持的网络类型、支持的入侵特征数、是否支持IP碎片重组、是否支持TCP流重组等。总之,入侵检测系统作为一种主动的安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,在网络系统受到危害之前拦截和响应入侵。随着网络通信技术安全性的要求越来越高,为给电子商务等网络应用提供可靠服务,而由于入侵检测系统能够从网络安全的立体纵深、多层次防御的角度出发提供安全服务,必将进一步受到人们的高度重视。9.5入侵检测产品9.5.1入侵检测产品的评估目前市场上有许多入侵检测系统,这些产品在不同方面都有各自的特色。如何去评价这些产品,尚无形成规定的评估标准。一般可以从以下几个方面去评价一个入侵检测系统。1.能保证自身的安全和其他系统一样,入侵检测系统本身也往往存在安全漏洞。如果查询bugtraq的邮件列表,诸如AxentNetProwler,NFR,ISSRealsecure等知名产品都有漏洞被发觉出来。若对入侵检测系统攻击成功,则直接导致其报警失灵,入侵者在其后所作的行为将无法被记录。因此入侵检测系统首先必须保证自己的安全性。2.运行与维护系统的开销较少的资源消耗,不影响受保护主机或网络的正常运行。–168–\n第9章入侵检测技术3.入侵检测系统报警准确率误报和漏报的情况尽量少。4.网络入侵检测系统负载能力以及可支持的网络类型根据网络入侵检测系统所布署的网络环境不同要求也不同。如果在512K或2M专线上布署网络入侵检测系统,则不需要高速的入侵检测引擎,而在负荷较高的环境中,性能是一个非常重要的指标。网络入侵检测系统是非常消耗资源的,但很少有厂商公布自己的pps(packetpersecond)参数。5.支持的入侵特征数和升级能力及方便性IDS的最主要的指标之一就是它能够发现入侵方式的数量。几乎每个星期都有新的漏洞和攻击方法出现,如果仅仅能够识别少量的攻击方法或者版本升级缓慢,根本无法保证网络的安全。产品的升级方式是否灵活也影响到它的功能发挥作用。一个好的实时检测产品应该在强大的技术支持力量的基础上进行经常性的升级,并且可以直接通过Internet或是下载升级包进行升级。6.是否支持IP碎片重组入侵检测中,分析单个的数据包会导致许多误报和漏报,IP碎片的重组可以提高检测的精确度。而且,IP碎片是网络攻击中常用的方法,因此,IP碎片的重组还可以检测利用IP碎片的攻击。IP碎片重组的评测标准有三个性能参数:能重组的最大IP分片数;能同时重组的IP包数;能进行重组的最大IP数据包的长度。7.是否支持TCP流重组TCP流重组是为了对完整的网络对话进行分析,它是网络入侵检测系统对应用层进行分析的基础。如检查邮件内容、附件,检查FTP传输的数据,禁止访问有害网站、判断非法HTTP请求等。9.5.2入侵检测系统实例1.InternetSecuritySystem(ISS)公司的LinkTrust™IDS领信入侵检测系统(LinkTrust™IDS)是著名的信息安全实验室“iS-OneSecurityLab”成功推出的最新一代入侵检测与防护系统。安氏集多年的网络安全产品开发及工程实施经验,以及作为IDS市场领导者体会的用户需求,采用当今世界先进的核心技术,完成了LinkTrust™IDS产品开发工作。LinkTrust™IDS采用了许多先进技术和设计,如专用硬件承载平台设计;复杂协议分析和模式匹配的融合技术;多层分布式体系结构设计;完全远程升级技术;数据相关性分析技术等。领信入侵检测系统采用先进的三层分布式体系结构。三层分布式体系结构更加灵活,可伸缩性和可生存性更好。三层分布式结构的核心就是中间层的事件收集器。–169–\n计算机信息安全事件收集器是控制台和传感器的枢纽,它负责从传感器收集事件数据并传送给控制台和企业数据库。事件收集的工作由独立的部件完成,大大减轻了控制台工作负荷。安全事件的数据随着监控的网络规模的增大、安全事件的增多、安全审计的要求,数据量会成爆炸性增长,因此对数据库软件和硬件平台的要求更高,数据存储在中间层会增加安全性和提高性能,增加部署方案的灵活性。在三层分布式结构中各部件可以运行在一台计算机上,也可以分布运行在多台计算机上。各部件可以是一对多或者多对多的关系。领信入侵检测系统由网络传感器、主机传感器以及管理器组成,在网络和主机层面,将基于攻击特征分析和协议分析的入侵检测技术完美结合,监控分析网络传输和系统事件,自动检测和响应可疑行为,使用户在系统受到危害之前截取并防范非法入侵和内部网络误用,最大程度降低安全风险,保护企业网络系统安全。LinkTrust™IDS功能特点如下。(1)先进的网络入侵检测技术LinkTrust™IDS采用先进的网络协议分析检测技术与传统的模式匹配检测技术结合的方式构造了新一代的网络传感器。其优点是显著增加了检测效率;降低了误报率;对未知攻击方法的具有免疫力;占用系统资源更少;支持大数据流量的检测。(2)增强的主机入侵检测技术基于主机的入侵检测传感器在传统的监控系统日志和普通系统活动基础上,增加了对内核级系统事件、网络活动、Web应用程序的检测。通过分析关键服务器的内核级事件、主机日志和网络活动,执行实时的入侵检测并阻止恶意活动。(3)全面的检测能力LinkTrust™IDS有全面的入侵检测特征库,能识别1200多种已知攻击特征,对一些未知的攻击特征也可以检测。(4)支持千兆检测能力LinkTrust™IDS的网络传感器和千兆网络传感器采用了新设计的高性能信息包驱动器和最先进的协议分析技术,使LinkTrust™IDS不仅支持100%百兆流量检测速度,而且具有高达90%的千兆流量检测能力。(5)动态配置防火墙LinkTrust™IDS可以动态配置LinkTrust™CyberWall、CheckPoint、Lucent的防火墙规则,提升防火墙的安全防护能力。(6)高性能、高可靠性硬件设计LinkTrust™IDS网络传感器运行在专门设计的硬件设备上。操作系统经精简、加固等处理和各种安全性测试工作,确保系统本身的安全性和高效率。硬件设备采用基于Intel架构的专用搭载平台,具有高可靠性、安全性、环境适应性等特点,广泛用于电信、金融、政府和军事等领域。(7)全中文用户界面用户可以通过全中文控制台界面进行管理和配置,访问中文联机帮助,生成中文报告等,用户感觉更加亲切、工作效率更高。中文联机帮助采用智能化设计,使用户能迅速找到所需信息。–170–\n第9章入侵检测技术(8)广泛的响应方式LinkTrust™IDS提供了丰富的响应方式,如:记录下事件的详细内容;实时观看或回放事件的原始记录;向控制台发出警告;发提示性的电子邮件;向网络管理平台发出SNMP消息;自动终止攻击;挂起用户账号;重新配置防火墙;阻断可疑网络流量;执行一个用户自定义的响应程序。(9)强大的报告系统强大的图形报告系统能加快监控和审查过程,节省用户时间和费用。报告系统支持过滤功能,用户可以方便、快捷地定制各种报告。报告面向不同读者、内容各有侧重、形式多样,有管理层阅读的概括、趋势报告,有技术人员阅读的详细技术报告,有文字报告、图形报告等。(10)全远程自动升级功能全远程升级过程允许过时的网络传感器或主机传感器能够轻松地升级到当前版本。通过安氏网站,用户可在线远程自动更新攻击特征库或升级产品,补充最新发现的攻击特征签名,拥有最新的产品特性。2.ComputerAssociates(CA)公司的eTrustIntrusionDetection(eID)eTrustIntrusionDetection提供了全面的网络保护功能,其内置主动防御功能可以防止破坏的发生。这种高性能且使用方便的解决方案在单一软件包中提供了最广泛的监视、入侵和攻击探测、非法URL探测和阻塞、警告、记录和实时响应。具有以下独特的功能。(1)网络访问控制eID使用基本规则定义可以访问特定网络资源的用户,从而确保只对网络资源进行授权访问。(2)高级反病毒引擎能够探测包含计算机病毒的网络流量的病毒扫描引擎。它可以防止用户在不知情的情况下下载受病毒感染的文件。从CAWeb站点可以得到最新和更新后的病毒特征码。(3)全面的攻击模式库eID可以自动探测来自网络流量的攻击模式(即使是正在进行中的攻击)。定期更新的攻击模式库可以从CAWeb站点获得能够确保入侵检测保持最新。(4)URL阻塞管理员可以指定不允许用户访问的URL,从而防止了非工作性Web冲浪。(5)内容扫描管理员通过eID可以定义策略对内容进行检查。这可以防止在没有授权的情况下通过电子邮件或Web发送敏感数据。(6)网络使用情况记录eID允许网络管理员跟踪最终用户、应用程序等的网络使用情况。它有助于改进网络策略规划和提供精确的网络收费。(7)集中化监控网络管理员可以从本地或远程监控运行eID的一个或多个站,在不同网络段(本地或远程)上安装了受中央站控制的eID代理后,管理员可以根据收集到的合并信息查看报警和生–171–\n计算机信息安全成报告。(8)远程管理远程用户可以使用TCP/IP或者调制解调器连接访问运行eID的站。在连接后,根据eID管理员定义的权限,用户可以查看和监控eID数据、更改规则以及创建报告。3.Symentec的IntruderAlertIntruderAlert是基于主机的入侵检测系统。通过监视系统是否被滥用以及对潜在问题的告警,SymantecIntruderAlert为系统管理员提供了解决方案,使他们能够在信息被盗或系统被误用之前采取主动的安全措施。(1)实时监控检测恶意活动IntruderAlert检测所有未经授权的以及恶意的活动,保持系统、应用程序、以及数据的安全。实时监控可让系统管理员察觉到系统所面临的威胁,采取预防措施防止信息被盗或丢失。IntruderAlert还可以让系统管理员创建及部署新的安全策略,有效地维持系统和数据的可用性及完整性。并且,它还可以集中收集并存档审核日志,以备事件后分析之用。(2)先进的监控和更新功能——覆盖所有主要的操作平台通过基于安全策略的监控功能,决定要监控哪些系统和活动以及采取什么措施,IntruderAlert可实现对系统的完全控制。它包含一整套完全的工具,可使系统管理员快速创建并应用新的策略,并以图表和图形的形式为主机和网络组件提供实时的入侵检测的更新。IntruderAlert的专业代理(SoftwareAgents)支持绝大多数服务器平台,包括Windows2000、NT,绝大多数商业版本的UNIX、NovellNetWare。4.启明星辰的天阗黑客入侵检测与预警系统天阗入侵检测系统是一种动态的入侵检测与响应系统。它能够实时监控网络传输,自动检测分析可疑行为,发现来自网络外部或网络内部以及针对主机的攻击,并可以实时响应,通过多种方式发出警报,阻断攻击方的连接。天阗入侵检测系统由一系列入侵检测产品组成,包括网络型的天阗N100,天阗N300,天阗N1000,以及Windows(NT)主机型天阗H120,和Solaris主机型天阗H220共五个型号。每一个天阗型号的产品都由控制中心和探测引擎(网络、主机)两部分组成。其中控制中心(软件)作为入侵检测系统的管理和配置工具,可以编辑,修改和分发下属网络探测器、子控制中心及主机探测器的策略定义,给下级各个探测器升级事件库,同时,它也接收来自每个探测器的实时报警信息。探测引擎分为硬件式的网络探测引擎和软件式的主机IDS程序,分别通过监听网络,收集网络上的有关数据,做出比较分析,最后决定是否报警,甚至阻断;或者安装在所要监测的主机上,实时监控访问本机的数据,进行比较分析,对于非法的事件时实上报给控制中心。天阗入侵检测系统具有如下四大特点。(1)高度的安全性和稳定性堡垒最容易从内部攻破,因此安全产品要保证自身的安全性尤其重要,很难相信一个自身漏洞百出的产品能够保证他人的安全。从技术上说,天阗入侵检测与预警系统采取了多种先进措施保障自己的安全。–172–\n第9章入侵检测技术ò控制中心与所探测网段物理隔离,探测引擎则本身无IP地址,黑客无法对消失在网络中的目标进行扫描和攻击,这样在网络中实现自身隐藏及带外管理。ò控制中心与探测引擎通信加密,探测器和控制中心互相认证,防止欺骗。防止日志、策略在传输过程中被篡改。管理网口不开放连接端口,提高自身的隐藏性。ò操作系统内核重新编译,并经过了特别的优化,不采用通用的TCP/IP堆栈,避免通用TCP/IP堆栈的缺陷导致的安全漏洞。ò关闭所有端口及服务,对于外界它是个透明的设备,是无法通过扫描等手段在网络中找到它的位置的。(2)国际先进的入侵检测技术结合国内最完备攻击特征事件库启明星辰公司目前的反入侵技术研究支撑来自四方面:研发中心,积极防御实验室,博士后工作站,美国硅谷黑客研究中心,天阗目前的漏洞库积累和对于最新攻击特征的捕捉代表了中国的最新,最高的水平。天阗采用了国际一流的协议分析技术,内含国内最完备的协议分析型入侵检测事件库。天阗还具有基于异常的检测技术,这种检测方法可以发现可疑的网络行为,也能够对未知的攻击方式发出预警信号,是对其他方法的有利补充。这是天阗的一项先进技术。行为关联的技术的引入是因为一个真正的攻击不是一个单独的行为就可以发现,必须分析一系列的单独行为,找到其中的行为关联关系,才能更好的认识攻击。这又是天阗与其他一般入侵监测系统的一项重要区别。状态迁徙技术应用于主机入侵检测系统中,以发现不同状态间的关联,检测可能的入侵行为。这也是天阗的一项独特技术。天阗先进的事件自定义功能采用启明星辰自主设计的VT++语言,以深层协议分析为基础,能够实现以下功能。ò对攻击特征进行多样化、灵活定义,可以使启明星辰保证对最新攻击方法的迅速反应和升级,同时可以协助用户直接定义针对其特殊应用的攻击和威胁。ò用户可以方便地修改协议端口默认值,满足用户保护特殊网络应用的需要,同时有效防止黑客以变形木马等方式躲避IDS监控的攻击。ò用户可以自定义所关注的敏感信息,加强内外部信息的审查,如商业机密,反动、黄色、暴力等信息。ò用户可以定义与指定的人、邮件、IP地址等有关的行为,实现对重点目标的保护和对重点怀疑对象异常行为的有效监控。(3)完善的集中管理与分布式多级控制为了适应中国信息化建设的客观需求,天阗专门设计了与行政业务管理流程紧密结合的多级管理方式。通过策略下发机制,使上级部门能够统一全网的安全防护策略;通过信息上传机制,使上级部门能够及时了解和监控全网的安全状态;通过对监测信息统一和全面的分析,能够实现全局预警和全网统一升级。网络应用是及其复杂的,性能再好的入侵检测系统,如果管理不便,也无法保障安全。天阗采用集中管理、多层控制,可以实现不同级别的网络入侵检测以及主机入侵检测统一管理。天阗将网络入侵检测和主机入侵检测集成在一个控制中心进行集中管理,在一个控制中心即可以管理同级别或低级别的网络的探测引擎又可以管理主机的探测引擎,针对不同的引擎制定不同的策略,使天阗系统更具广泛的适用性和生命力。同时,天阗的控制中心可灵活–173–\n计算机信息安全设置,在一个大型网络中,天阗总控制中心可以连接分控制中心、网络探测引擎和主机探测引擎,而且这种连接可以是多层次的。多层控制的最大好处就是可以成倍的解决人力资源的浪费,而且不会打乱现有的网络管理分工和部署。天阗还为用户提供了严格的管理权限,用户管理员、管理员、操作员、分析员。另外还提供了用户可选择的IC卡,加密狗,加密软盘等多种身份认证方式。管理权限的分级和多鉴别的身份认证方式使天阗入侵检测与预警系统更具安全性。(4)广泛的与国内外各类防火墙等多种安全产品进行联动在承担制订中华人民共和国国家标准(网络安全监控与报警产品技术要求)的基础上,参考有关国际标准化框架,例如IDMEF(requirement5.1),IAP,COPS,IDWG,IDXP等,启明星辰提出以入侵检测为核心的新一代互操作协议:VenusInteractiveProtocol(VIP)。目前已经完成的有:防火墙(VIP-Firewall),漏洞扫描(VIP-Scanner),防病毒(VIP-AV),网络管理(VIP-SNMP)等。天阗入侵检测与预警系统可以通过和防火墙的联动来阻断攻击。目前入侵检测系统与防火墙的联动有三种标准,分别是VenusInteractiveProtocol(VIP)、TOPSEC、OPSEC。其中启明星辰公司开发了自己的VIP-Firewall通用防火墙联动接口,国内著名的防火墙厂商天融信、华堂、华依、中软、联想、亿阳等,已利用启明星辰公司提供的通用防火墙联动API接口,实现了与天阗入侵检测系统的联动。任何防火墙厂家使用启明星辰的通用防火墙联动接口,就可以非常容易的和天阗进行联动。与此同时,启明星辰公司根据CHECKPOINT公司OPSEC协议及天融信公司的TopSec标准提供的API接口,可以实现与CHECKPOINT公司、天融信防火墙的深度耦合。任何防火墙厂商只需要支持以上协议中的一种就可以与天阗入侵检测系统进行联动,构架全方位的网络防御体系。天阗与各主流防火墙的联动以及最新实现的和天镜漏洞扫描的联动,已经在国家重点信息化安全保障工程、国家安全部、银行机构等一些大型网络中广泛的应用,其联动能力与效果十分显著,充分体现了以天阗IDS为核心筑造的动态防御体系对安全防护能力的极大提升作用。5.中软DIDSystem分布式入侵检测系统(1)主要功能ò强大的攻击检测预警能力DIDSystem内置已知网络攻击特征/模式数据库,能够根据网络数据流和网络通信会话轨迹,智能地与网络攻击模式进行匹配。对确认为攻击的行为,系统进行阻断会话、制止攻击、日志记录、系统告警或者进行反攻击等响应。ò强大的违规操作检测预警能力DIDSystem能够根据用户自定义的网络安全策略对网络活动进行检查,捕获网络安全违规活动。并对相应违规操作进行适当的响应。ò实时通信连接阻断和攻击制止能力DIDSystem能够根据用户安全策略的定义对攻击行为和违规行为进行会话终止响应,制止攻击事件的延续,最大限度地保证网络系统的安全。ò事件报警能力DIDSystem能够根据所发生的网络安全事件,以不同的事件等级产生控制台报警。–174–\n第9章入侵检测技术ò事件日志能力DIDSystem能够自动响应网络安全事件,包括记录网络事件发生的日期和时间,事件的源与目的IP地址。ò风险分析报告能力DIDSystem能够对系统在一定时间段内的安全状况进行统计分析,给出网络系统总体的安全状况报告和趋势分析报告。ò过滤器自定义与安全策略定义能力DIDSystem不仅能提供缺省的网络探测器模板,而且它允许用户根据系统规则生成用户模板。同时,它还以某种方式支持用户定义的用户网络安全事件。ò支持分布式入侵检测DIDSystem能够支持多个分布式IDS探针,对多个网段同时进行入侵检测预警与响应,支持多达50个Sensors。(2)主要特点ò网络数据流截获引擎速度快,在100M网络中当网络流量保持在60%时仍然可以监控100%的包,意味着每秒可以分析17000个数据包。ò采用透明工作方式。接入系统,无需对网络的结构及设置作任何改动;对网络通讯不附加任何延时,不影响网络传输的效率。ò包重组能力强。ò过滤器效率高。ò解码能力强。ò采用远程监控模式。可以对每个探测器进行远程配置,并支持加密通信和认证。ò能进行运行状态实时监测,远程启停管理。ò具有多协议分析支持,可以进行应用解码,可进一步对数据包的内容进行分析处理。ò采用集中管理的分布式工作方式,可以监测多个网络出口或应用于广域网络监测,发现可疑的网络活动,对恶意网络连接做出反应。ò以安全策略模板,安全事件,安全事件响应方式支持安全策略定义。ò根据放置的特点,可以监测对防火墙的攻击;可以源源本本地记录网络活动,作为计算机系统日志的补充,而系统日志是有可能被黑客篡改抹去痕迹的。9.6入侵检测系统实例9.6.1Snort简介Snort是一个强大的轻量级的网络入侵检测系统。作者是MartinRoesch。最新版本是2.1.0版。它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,Snort具有很好的扩展性和可移植性。还有,这个软件遵循通用公共许可证:GPL,所以只要遵守GPL,任何组织和个人都可以自由使用。–175–\n计算机信息安全1.Snort的特点(1)Snort是一个轻量级的入侵检测系统Snort虽然功能强大,但是其代码极为简洁、短小,其源代码压缩包只有大约300KB。(2)Snort的可移植性很好Snort的跨平台性能极佳,目前已经支持Linux,Solaris,BSD,IRIX,HP-UX,Win32平台等系统。(3)Snort的功能非常强大Snort具有实时流量分析和日志IP网络数据包的能力。能够快速地检测网络攻击,及时地发出报警。Snort的报警机制很丰富,例如,syslog、用户指定的文件、一个UNIX套接字,还有使用SAMBA协议向Windows客户程序发出WinPopup消息。利用XML插件,Snort可以使用SNML(simplenetworkmarkuplanguag,简单网络标记语言)把日志存放到—个文件件或者实时报警。Snort能够进行协议分析,内容的搜索/匹配。现在Snort能够分析的协议有TCP、UDP、ICMP和IP。将来,可能提供对ARP、IGRP、GRE、OSPF、RIP、IPX等协议的支持。它能够检测多种方式的攻击和探测,例如,缓冲区溢出、秘密端口扫描、CGI攻击、SMB探测及探测操作系统指纹特征的企图等。Snort的日志格式既可以是tcpdump式的二进制格式,也可以解码成ASCII字符形式,更加便于用户尤其是新手检查。使用数据库输出插件,Snort可以把日志记入数据库,当前支持的数据库包括:Postgresql、MySQL、任何unixODBC数据库,还有Oracle。使用TCP流插件(tcpstream),Snort可以对TCP包进行重组。Snort能够对IP包的内容进行匹配,但是对于TCP攻击,如果攻击者使用一个程序,每次发送只有一个字节的TCP包,完全可以避开Snort的模式匹配。而被攻击的主机的TCP协议栈会重组这些数据,将其送给在目标端口上监听的进程,从而使攻击包逃过Snort的监视。使用TCP流插件,可以对TCP包进行缓冲,然后进行匹配,使Snort具备了对付上面这种攻击的能力。使用spade(StatisticalPacketAnomalyDetectionEngine)插件,Snort能够报告非正常的可疑包,从而对端口扫描进行有效的检测。Snort还有很强的系统防护能力。使用FlexResp功能,Snort能够主动断开恶意连接。(4)扩展性能较好,对于新的攻击威胁反应迅速作为一个轻量级的网络入侵检测系统,Snort有足够的扩展能力。它使用一种简单的规则描述语言。最基本的规则只是包含四个个域:处理动作、协议、方向及注意的端口。例如,logtcpanyany->10.1.1.0/2479。还有一些功能选项可以组合使用,实现更为复杂的功能。用户可以从http://www.Snort.org得到其规则集。Snort支持插件,可以使用具有特定功能的报告、检测子系统插件对其功能进行扩展。Snort当前支持的插件包括:数据库日志输出插件、碎数据包检测插件、端口扫描检测插件、HTTPURInormalization插件及XML插件等。Snort的规则语言非常简单,能够对新的网络攻击做出很快的反应。发现新的攻击后,可以很快根据Bugtraq邮件列表,找出特征码,写出检测规则。因为其规则语言简单,所以很–176–\n第9章入侵检测技术容易上手,节省人员的培训费用。(5)遵循公共通用许可证GPLSnort遵循GPL,所以任何企业、个人、组织都可以免费使用它作为自己的NIDS。2.Snort的体系结构Snort由3个主要的子系统构成:包解码器(packetDccoder)、探测引擎(DetectionEngine)、日志及告警系统。这些子系统以libpcap混杂模式包嗅探库为基础。(1)包解码器:Snort的包解码支持以太网和SLIP及PPP媒体介质。包解码所做的所有工作就是为探测引擎准备数据。(2)探测引擎:探测引擎是Snort的心脏。它主要负责的工作是:按照启动时加载的规则,对每个数据包进行分析。探测引擎将Snort规则分解为链表头和链表选项进行引用。链表头由诸如源/目标IP地址及端口号这些普通信息标识。链表选项定义一些更详细的信息如TCP标志、ICMP代码类型、特定的内容类型、负载容量等。探测引擎按照Snort规则文件中定义的规则依次的分析每个数据包。与数据包中数据匹配的第一条规则触发在规则定义中指定的动作。凡是与规则不匹配的数据包都被丢弃。探测引擎中的关键部分是plugin模块如端口扫描模块等,它增加的一些分析能力增强了Snort的功能。(3)日志及告警系统:告警和日志是两个分离的组件。日志负责将包解码器收集到的信息以可读的格式或以tcpdump格式记录下来。告警组件,将告警信息发送到syslog、文本文件、UNIX套接字或数据库中。在进行测试或在入侵学习过程当中,还可以关掉告警。9.6.2Snort的安装在http://www.Snort.org网站可以下载已经编译好的Snort二进制包和源代码包。由于Snort的运行需要libpcap的支持,所以在安装Snort之前需要保证系统内已经安装了相应的libpcap版本。Libpcap可以在http://www.tcpdump.org找到。Windows下的Snort的安装则需要相应的winpcap版本。在Linux系统安装Snort时,如果是rpm包,则可以执行下面的命令来安装:#rpm-iSnort-2.1.0-1.i386.rpm#/usr/sbin/Snort-?如果是源代码包可以先把它压缩到一个目录,在进入该目录,然后进行编泽。命令如下。(1)解压snort-2.1.O.tar.gz#tarzxvfsnort-2.1.O.tar.gz(2)进入到其所在目录,编译Snort#cdsnort-2.1.0#./configure#make#makeinstall#snort-?–177–\n计算机信息安全9.6.3Snort的运行USAGE:snort[-options]Options:-A设置报警模式:fast、full、unsock或none-a显示ARP(AddressResolutionProtocol,地址解析协议)包-b日志文件使用tcpdump格式(速度更快)-c使用规则文件rules-C只使用字符方式显示负载信息(不使用hex方式)-d对应用层解码-D在后台运行Snort-e显示第二层(数据链路层)包头信息-F从bpf文件中读取BPF过滤器-g初始化完成后,使Snort的gid为gname-h设置主网络地址为hn-i在网络接口if上监听-I把网络接口名加入到报警输出中-I设置目录1d为日志目录-M把SMB消息发送到文件wrkst列出的工作站中-ri收到cnt个包后退出-N关闭日志功能(警报功能仍然有效)-o把规则测试顺序修改为:Pass|Alert|Log-O打乱被日志的IP地址-p关闭混杂嗅探模式-P设置复制的包的长度为snaple(默认:1514)-q安静模式。不输出banner和状态报告。-r读取并处理tcpdump文件tf(回放功能)-s把所有警告信息记入syslog服务器(默认端口:514)-S设置规则文件巾的n的值等于v的值-t初始化完成后Chroots到dir目录-u初始化完成后,把Snort的uid设置为uname-v详细显示-V显示版本号-X从链路层开始复制包的数据-?显示帮助信息Snort有三种工作模式:嗅探器(Sniffer)、数据包记录器(packetlogger)、网络入侵检测系统(NIDS)。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。–178–\n第9章入侵检测技术1.嗅探器模式如果只要把TCP/IP包头信息打印在屏幕上,只需要输入下面的命令:#/snort-v使用这个命令将使Snort只输出IP和TCP/UDP/ICMP的包头信息。如果想看到应用层的数据,可以使用:#/snort-vd这条命令使Snort在输出包头信息的同时显示包的数据信息。如果还要显示数据链路层的信息,就使用下面的命令:#/snort-vde注意这些选项开关还可以分开写或者任意结合在一块。例如:下面的命令就和上面最后的一条命令等价:#/snort-d-v-e2.数据包记录器模式如果要把所有的包记录到硬盘上,需要指定一个日志目录,Snort就会自动记录数据包。#/snort-dev-1./log当然,./log目录必须存在,否则Snort就会报告错误信息并退出。当Snort在这种模式下运行,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名,例如:192.168.0.1如果只指定了-l命令开关,而没有设置目录名,snort有时会使用远程主机的IP地址作为目录,有时会使用本地主机IP地址作为目录名。为了只对本地网络进行日志,需要给出本地网络:#/snort-dev-1./log-h192.168.10.0/24这个命令告诉snort把进入C类网络192.168.10的所有包的数据链路、TCP/IP以及应用层的数据记录到目录./log中。如果网络速度很快,或者想使日志更加紧凑以便以后的分析,那么应该使用二进制的日志文件格式。所谓的二进制日志文件格式就是tcpdump程序使用的格式。使用下面的命令可以把所有的包记录到一个单一的二进制文件中:#/snort-1./log-b注意此处的命令行和上面的有很大的不同。勿需指定本地网络,因为所有的东西都被记录到一个单一的文件。不必冗余模式或者使用-d、-e功能选项,因为数据包中的所有内容都会被记录到日志文件中。可以使用任何支持tcpdump二进制格式的嗅探器程序从这个文件中读出数据包,例如:tcpdump或者Ethereal。使用-r功能开关,也能使Snort读出包的数据。Snort在所有运行模式下都能够处理tcpdump格式的文件。例如:如果想在嗅探器模式下把一个tcpdump格式的二进制文件中的包打印到屏幕上,可以输入下面的命令:#/snort-dv-rpacket.log在日志包和入侵检测模式下,通过BPF(BSDPacketFilter)接口,可以使用许多方式维护–179–\n计算机信息安全日志文件中的数据。例如,只想从日志文件中提取ICMP包,只需要输入下面的命令行:#/snort-dvrpacket.logicmp3.网络入侵检测系统模式Snort最重要的用途还是作为网络入侵检测系统(NIDS),使用下而命令行可以启动这种模式:#/snort-dev-1./log-h192.168.10.0/24-csnort.confsnort.conf是规则集文件。Snort会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果你不指定输出目录,Snort就输出到/var/log/snort目录。注意:如果想长期使用Snort作为自己的入侵检测系统,最好不要使用-v选项。因为使用这个选项,使Snort向屏幕上输出一些信息,会大大降低Snort的处理速度,从而在向显示器输出的过程中丢弃一些包。此外,在绝大多数情况下,也没有必要记录数据链路层的包头,所以-e选项也可以不用:#/snort-d-h192.168.10.0/24-1./log-csnort.conf这是使用Snort作为网络入侵检测系统最基本的形式,日志符合规则的包,以ASCII形式保存在有层次的目录结构中。在NIDS模式下,有很多的方式来配置snort的输出。在默认情况下,Snort以ASCII格式记录日志,使用full报警机制。如果使用full报警机制,Snort会在包头之后打印报警消息。如果你不需要日志包,可以使用-N选项。Snort有6种报警机制:full、fast、socket、syslog、smb(winpopup)和none。其中有4个可以在命令行状态下使用-A选项设置。这4个是:-Afast:报警信息包括:一个时间戳(timestamp)、报警消息、源/目的IP地址和端口。-Afull:是默认的报警模式。-Aunsock:把报警发送到一个UNIX套接字,需要有一个程序进行监听,这样可以实现实时报警。-Anone:关闭报警机制。使用-s选项可以使Snort把报警消息发送到syslog,默认的设备是LOG_AUTHPRIV和LOGALERT。可以修改snort.conf文件修改其配置。Snort还可以使用SMB报警机制,通过SAMBA把报警消息发送到Windows主机。为了使用这个报警机制,在运行./configure脚本时,必须使用--enable-smbalerts选项。下面是一些输出配置的例子:使用默认的日志方式(以解码的ASCII格式)并且把报警发给syslog:#/snort-csnort.conf-1./log-s-h192.168.10.0/24使用二进制日志格式和SMB报警机制:#/snort-csnort.conf-b-MWORKSTATIONS9.6.4Snort的规则Snort最重要的用途是作为网络入侵检测系统,它有自己的规则语言。从语法上看,这种规则语言非常简单,但是对于入侵检测来说它足够强大。对于匹配特定规则的数据包,Snort–180–\n第9章入侵检测技术有三种处理动作:pass、log、alert。(1)pass:放行数据包。(2)log:把数据包记录到日志文件。(3)alert:产生报警消息并日志数据包。Snort的每条规则都可以分成逻辑上的两个部分:规则头和规则选项。规则头包括:规则行动(rulesaction)、协议(protocol)、源/目的IP地址、子网掩码以及源/目的端口。规则选项包含报警消息和异常包的信息(特征码),使用这些特征码来决定是否采取规则规定的行动。最基本的规则只是包含四个个域:处理动作、协议、方向、注意的端口。例如:logtcpanyany->10.1.1.0/2479这条规则表示:让Snort记录从外部网络到C类网址10.1.1端口为79的所有数据包。Snort规则中还可以有规则选项(ruleoption),使用规则选项可以定义更为复杂的行为,实现更加强大的功能。下面是一条含有规则选项的规则。alerttcpanyany->10.1.1.0/2480(content:"/cgi-bin/phf";msn"PHFprobe!";)这条规则用来检测对本地网络web服务器(端口80)的PHF服务的探测,一旦检测到这种探测数据包,snort就发出报警消息,并把整个探测包记录到日志。在规则中,IP地址的定义也有很大的灵活性。使用any关键词表示任何IP地址或者端口。一般地,IP地址可以使用xx.xx.xx.xx/子网掩码的形式定义,其中xx.xx.xx.xx是由.分割的四个字节的数字。注意不能使用域名方式,Snort不对域名进行解析。还可以使用非操作符!对IP地址和端口进行操作,这个操作符就是逻辑非的意思。对于端口,还可以使用操作符:限制端口的范围。例如:alerttcp!10.1.1.0/24any->10.1.1.0/246000:6010(msg:"Xtraffic";)这条规则使snort对于从外部网络到内部网络X-window服务端口的数据包发出报警。关于Snort的规则的详细说明可以参考Snort的随机文档。习题1.简述入侵检测系统的定义、作用和功能。2.简述入侵检测的原理。3.入侵检测系统如何分类?4.入侵检测系统的局限有哪些?5.入侵检测系统面临哪些挑战?6.简述入侵检测系统的发展趋势。–181–\n第10章操作系统与网站安全操作系统是惟一紧靠硬件的基本软件。其安全职能是其他软件安全职能的根基,缺乏这个安全的根基,构筑在其上的应用系统以及安全系统的安全性将得不到根本保障。操作系统是一切软件运行的基础。在操作系统中安全的含义是,在操作系统的工作范围内,提供尽可能强的访问控制和审计机制,在用户/应用程序和系统硬件/资源之间进行符合安全政策的调度,限制非法的访问,在整个软件信息系统的最底层进行保护。按照有关信息系统安全标准的定义,安全的操作系统要有这样的特征。(1)最小特权原则,即每个特权用户只拥有能进行他工作的权力。(2)自主访问控制和强制访问控制,包括保密性访问控制和完整性访问控制。(3)安全审计。(4)安全域隔离。虽然安全操作系统是信息安全的基础,但这并不意味着只要有了它就万事大吉了。安全是一个系统工程,操作系统安全只是其中的一个层次,还需要各个环节的配合,安全操作系统应该与各种安全软硬件解决方案,例如防火墙、杀毒软件、加密产品等配合使用,才能达到信息系统安全的最佳状态。本章将学习以下主要内容。1.Windows2000操作系统安全特性、功能、工具及防范对策。2.Linux系统安全及网络安全。3.IISWeb服务器安全和ApacheWeb服务器安全。10.1Windows2000系统的安全性10.1.1Windows2000操作系统安全性能简介由于采用较完整的安全机制,Windows2000实现了良好的数据安全性、企业间通信的安全性、企业和Internet网的单次安全登录,以及易用的安全管理。1.数据安全性Windows2000所提供的保证数据保密性和完整性的特点,首先表现在用户登录时的安全性:从用户登录网络开始,对数据的保密性和完整性的保护就已经开始。Windows2000借助Kerberos和PKI等验证协议提供了强有力的口令保护。–182–\n第10章操作系统与网站安全其次是对网络数据的保护:包括在本地网络上的数据或者穿越网络的数据,在本地网络的数据由验证协议来保证其安全性;还有是对存储数据的保护:通常采用数字签名来签署软件产品或者加密文件系统,用以防范破坏性程序的运行。2.通信的安全性Windows2000为不同企业之间的通信,提供了多种安全协议和用户模式的内置集成支持,包括如下几个方面。(1)在目录服务中创建专门为外部企业开设的用户账号:通过Windows2000的活动目录,可以设定组织单元、授权或虚拟专用网等方式,并对它们进行管理。(2)建立域之间的信任关系:用户可以在Kerberos或公开密钥体制得到验证之后,远程访问已经建立信任关系的域。(3)公开密钥体制:电子证书可以用于提供用户身份确认和授权,企业可以把通过电子证书验证的外部用户映射为目录服务中的一个用户账号。(4)Windows2000可以使用IPSec这种加密的IP协议来加密网络上的数据。同样,它可以在更高的传输层上使用SSL和更新的TLS规范来加密数据。在ActiveDirectory中,这两种方式都可以被设置为强制性策略,以便特定的客户机和服务器之间能够进行通信。Windows2000的公开密钥加密是其VPN支持的基础。3.单次安全登录当用户成功地登录到网络之后,Windows2000透明地管理一个用户的安全属性(SecurityCredentials),而不管这种安全属性是通过用户账号和用户组的权限规定(这是企业网的通常做法)来体现的,还是通过数字签名和电子证书(这是Internet的通常做法)来体现的。先进的应用服务器都应该能从用户登录时所使用的安全服务提供者接口(SSPI)获得用户的安全属性,从而使用户做到单次登录,从而访问所有的服务。4.易用的管理性通过在活动目录中使用组策略,管理员可以集中地把所需要的安全保护加强到某个容器(SDOU)的所有用户/计算机对象上。Windows2000包括了一些安全性模版,既可以针对计算机所担当的角色来实施,也可以作为创建定制的安全性模版的基础。Windows2000提供了两个微软管理界面(MMC)的插件作为安全性配置工具,即安全性模版和安全性配置/分析。安全性模版MMC提供了针对十多种角色的计算机的管理模版,这些角色包括从基本工作站、基本服务器一直到高度安全的域控制器。它们的安全性要求是不同的。通过安全性配置/分析MMC,管理员可以创建针对当前计算机的安全性策略。当然通过对加载模版的设置,该插件就会智能地运行配置或分析功能,并产生报告。10.1.2Windows2000操作系统安全功能和工具10.1.2.1安全模板、安全配置和分析Windows2000为在网络环境设置中的使用提供了一套安全模板。“安全模板”是–183–\n计算机信息安全Windows2000域控制器、服务器或客户计算机上适合某一特定安全等级的安全设置配置文件。例如,hisecdc模板包括适合高安全性域控制器的设置。安全模板所包含的安全性信息有七类:账户策略、本地策略、时间日志、受限组、文件系统、注册表及系统服务。可以把安全配置文件导入组策略对象并把它应用到一个等级的计算机上。把安全配置文件导入个人数据库用来检查和配置本地计算机的安全策略。安全模板(SecurityTemplate)、安全配置和分析(SecurityConfigurationandAnalysis)是在Windows2000环境中部署安全体系时所能使用的最能够节省时间的工具,特别是在与组策略联合使用时。安全模板是Windows2000中与安全有关的设置的结构化列表,通过点击鼠标就可以编辑和应用,无需去寻找和配置大量分散的安全设置。这些模板文件可以与系统的当前设置进行比较,从而显示出一致和不一致的配置(即分析功能)。通过打开一个空白的Microsoft管理控制台(MMC),然后添加安全模板、安全配置和分析管理单元,就可以使用这两项工具,如图10.1和10.2所示。图10.1添加管理单元10.1.2.2组策略组策略(GroupPolicy)是Windows2000提供的功能最强大的新工具之一,它的作用已经远远超出了安全设置的范围。组策略是Windows2000的集中化管理配置管理体系。它是由组策略对象(GroupPolicyObject,GPO)实现的,GPO定义了可以被应用于(或链接到)用户和计算机的配置参数。GPO有两种类型:本地GPO(LGPO)和活动目录GPO(ADGPO)。LGPO保存在%systemroot%\system32\GroupPolicy目录中,由以下文件组成:gpt.ini,管理模板(.adm),安全配置文件(.pol),以及登录/注销和启动/关机脚本。–184–\n第10章操作系统与网站安全图10.2安全模板ADGPO存储在%systemroot%\system32\sysvol\\Policies目录中,活动目录中的System|Policy容器中也保存了指向每个ADGPO的指针。LGPO只作用于本地计算机。ADGPO则可以应用于站点(site)、域(domain)、组织单位(OrganizationalUnit,OU),而且多个GPO可以链接到同一个站点、域或OU。与安全相关的GPO设置集中在ComputerConfiguration\WindowsSettings\SecuritySettings结点之下。SecuritySettings(安全策略)结点定义了账户策略、审核策略、事件日志、公钥和IPSec策略。由于这些参数可以在站点、域、OU级别上进行设置,大型网络环境中的安全管理工作的负担就可以减轻很多。更好的是,安全模板可以被导入到一个GPO中。因此,组策略是安全地配置大型Windows2000域的最佳方法。1.组策略工作原理组策略与ActiveDirectory用户中的域和文件夹以及计算机MMC(Microsoft管理控制台)管理单元相关联。组策略授予的权限应用到存储于该文件夹中的计算机上。使用ActiveDirectory站点和服务管理单元还可将组策略应用到站点。子文件夹从父文件夹继承组策略,子文件夹也可能依次有自己的组策略对象。指派给一个文件夹的组策略可能不止一个。组策略是安全组的补充。组策略可以将单一安全配置文件应用到多台计算机上。它加强了一致性并易于管理。组策略对象包含实现多种类型安全策略的权限和参数。总之,组策略可由父站点传递到子站点和局域网。如果将一个特定组策略指派给高级的–185–\n计算机信息安全父站点,这个组策略会应用到父等级以下所有站点,包括每个容器中的用户和计算机对象。2.组策略安全设置有九种组策略安全功能。它们是位于组策略对象“安全设置”节点的容器。包括:账户策略、本地策略、事件日志、受限组、系统服务、注册表、文件系统、公钥策略及ActiveDirectory中的网际协议安全策略。有些策略只应用于域的范围,也就是说,策略设置是在域范围内进行的。例如账户策略一律应用于域内的所有用户账户。不能为同一域内的不同部门定义不同账户策略。至于安全策略范围,账户策略和公钥策略都具有域范围。所有其他策略范围都可在部门等级设定。10.1.2.3Kerberos的验证机制Kerberos是在Internet上长期被采用的一种安全验证机制,它是基于公开密钥的方式。Kerberos协议定义了一系列客户机/密钥发布中心(KeyDistributionCenter,KDC)/服务器之间进行的获得和使用Kerberos票证的通信过程。Kerberos最大的好处是单次登录,登录后客户不需要重新认证就能访问网络中的其他Windows2000服务器。当已被验证的客户机试图访问一个网络服务时,Kerberos服务(即KDC)就会向客户端发放一个有效期一般为8个小时的“对话票证”(SessionTicket)。网络服务不需要访问目录中的验证服务,就可以通过对话票证来确认客户端的身份,这种对话的建立过程比WindowsNT4.0中的速度要快许多。Kerberos加强了Windows2000的安全特性,它体现在更快的网络应用服务验证速度,允许多层次的客户/服务器代理验证,和跨域验证建立可传递的信任关系。可传递的信任关系的实现,是因为每个域中的验证服务(KDC)信任都是由同一棵树中其他KDC所发放的票证,这就大大简化了大型网络中多域模型的域管理工作。Kerberos还具有强化互操作性的优点。在一个多种操作系统的混合环境中,Kerberos协议提供了通过一个统一的用户数据库为各种计算任务进行用户验证的能力。即使在非Windows2000平台上通过KDC验证的用户,比如从Internet进入的用户,也可以通过KDC域之间的信任关系,获得无缝的Windows2000网络访问。10.1.2.4加密文件系统(EFS)Windows2000加密文件系统(EFS)让用户能够在本地计算机上给指定文件或文件夹加密,为本地存储的数据添加保护。EFS自动为正在使用的文件加密并在文件存储时再次加密。除了为文件加密的用户和有EFS恢复证书的管理员,其他人都无法读取这些文件。由于加密机制已经内置在文件系统中,它的操作对用户是透明的而且很难攻击。EFS对保护可能被盗的计算机如笔记本电脑上的数据尤为有用。可在笔记本电脑上配置EFS以确保用户文档文件夹内的商业信息都已加密。即使有人想绕过EFS并试图使用低级磁盘工具读取信息,加密也能保护信息。EFS的主要目的在于保护本地NTFS文件系统磁盘上的用户文件。–186–\n第10章操作系统与网站安全1.EFS工作原理EFS使用对每个文件都是惟一的对称加密密钥为文件加密。然后使用来自文件所有者EFS证书的公钥为加密密钥加密。由于文件所有者是惟一能够访问私钥的人,他也是惟一能为密钥、继而为文件解密的人。使用管理员EFS文件恢复证书的公钥也能为初始加密密钥加密。这个证书的私钥可用来在紧急情况下恢复文件。建议单位建立恢复代理。即使通过网络或计算机丢失造成文件被盗,如果不能先作为适当的用户登陆网络,文件也无法解密。既然无法读取文件,也就无法对其进行秘密修改。EFS解决的是数据保密策略方面的问题。2.实现EFS的先决条件要实现EFS,公钥基础结构必须到位,而且必须至少有一位管理员拥有EFS数据恢复证书,这样才能在文件原作者出现问题时为文件解密。文件作者必须有EFS证书。要加密的文件和文件夹必须存储在Windows2000中的NTFS版本上。3.如何实现EFS打开Windows资源管理器,右击一个文件夹或文件。选择“属性”。在“常规”选项卡上,单击“高级”,然后选择“内容加密为安全数据”复选框,则该文件或选定文件夹中的所有文件内容现在都已加密。10.1.2.5Windows文件保护(WFP)WFP的功能是对将要安装的系统文件的来源和版本进行验证。这种验证功能可以避免以.sys、.dll、.ocx、.ttf、.fon和.exe为扩展名的系统文件被覆盖。WFP在后台运行,能够检测到其他程序试图覆盖或移动受保护的系统文件的企图。WFP还能检查文件的数字签名以确定新的文件是否是正确的版本。如果该文件不是正确的版本,WFP将使用默认情况下存储在%systemroot%\system32\dllcache文件夹(这个文件夹是作为受保护的操作系统文件隐藏起来的)、网络安装位置或Windows2000安装光盘中的备份将该文件覆盖。如果WFP找不到适当的文件,它将提示用户输入文件的位置。WPF还会在事件日志中记录覆盖文件的企图。文件签名检查程序:sigverif.exe,sfc.exe等可用于检查受WFP保护的文件的完整性。10.1.3Windows2000的系统安全防范对策由于Windows2000操作系统良好的网络功能,因此在Internet中有许多网站服务器使用Windows2000作为主操作系统的。但由于该操作系统是一个多用户操作系统,黑客们为了在攻击中隐藏自己,往往会选择Windows2000作为首先攻击的对象。那么,作为一名Windows2000用户,我们该如何通过合理的方法来防范Windows2000的安全呢?下面列出防范Windows2000安全的几则措施。1.及时备份系统为了防止系统在使用的过程中发生意外情况而难以正常运行,我们应该对Windows2000–187–\n计算机信息安全完好的系统进行备份,最好是在一完成Windows2000系统的安装任务后就对整个系统进行备份,以后可以根据这个备份来验证系统的完整性,这样就可以发现系统文件是否被非法修改过。如果发生系统文件已经被破坏的情况,也可以使用系统备份来恢复到正常的状态。备份信息时,我们可以把完好的系统信息备份在CD-ROM光盘上,以后可以定期将系统与光盘内容进行比较以验证系统的完整性是否遭到破坏。如果对安全级别的要求特别高,那么可以将光盘设置为可启动的并且将验证工作作为系统启动过程的一部分。这样只要可以通过光盘启动,就说明系统尚未被破坏过。2.设置系统格式为NTFS安装Windows2000时,应选择自定义安装,仅选择个人或单位必需的系统组件和服务,取消不用的网络服务和协议。因为协议和服务安装越多,入侵者入侵的途径越多,潜在的系统安全隐患也越大。选择Windows2000文件系统时,应选择NTFS文件系统,充分利用NTFS文件系统的安全性。NTFS文件系统可以将每个用户允许读写的文件限制在磁盘目录下的任何一个文件夹内,而且Windows2000新增的磁盘限额服务还可以控制每个用户允许使用的磁盘空间大小。3.加密文件或文件夹为了防别人偷看系统中的文件,我们可以利用Windows2000系统提供的加密工具,来保护文件和文件夹。4.取消共享目录的EveryOne组默认情况下,在Windows2000中新增一个共享目录时,操作系统会自动将EveryOne这个用户组添加到权限模块当中。由于这个组的默认权限是完全控制,结果使得任何人都可以对共享目录进行读写。因此,在新建共享目录之后,要立刻删除EveryOne组或者将该组的权限调整为读取。5.创建紧急修复盘如果系统一不小心被破坏而不能正常启动时,就需要专用的Windows2000系统启动盘,为此我们一定要记得在Windows2000安装完好后创建一个紧急修复磁盘。6.改进登录服务器将系统的登录服务器移到一个单独的机器中会增加系统的安全级别,使用一个更安全的登录服务器来取代Windows2000自身的登录工具也可以进一步提高安全。在大的Windows2000网络中,最好使用一个单独的登录服务器用于登录服务。它必须是一个能够满足所有系统登录需求并且拥有足够的磁盘空间的服务器系统,在这个系统上应该没有其他的服务运行。更安全的登录服务器会大大削弱入侵者透过登录系统窜改日志文件的能力。7.使用好安全机制严格设计管理好Windows2000系统的安全规则,其内容主要包括“密码规则”、“账号–188–\n第10章操作系统与网站安全锁定规则”、“用户权限分配规则”、“审核规则”以及“IP安全规则”。对全部用户都应按工作需要进行分组,合理对用户分组是进行系统安全设计的最重要的基础。利用安全规则可以限定用户口令的有效期、口令长度。设置登录多少次失败后锁定工作站,并对用户备份文件和目录、关机、网络访问等各项行为进行有效控制。8.对系统进行跟踪记录为了能密切地监视黑客的攻击活动,应该启动Windows2000的日志文件,来记录系统的运行情况。当黑客在攻击系统时,其蛛丝马迹都会被记录在日志文件中。因此有许多黑客在开始攻击系统时,往往先通过修改系统的日志文件,来隐藏自己的行踪,为此我们必须限制对日志文件的访问,禁止一般权限的用户去查看日志文件。当然,系统中内置的日志管理程序功能可能不是太强,我们应该采用专门的日志程序,来观察那些可疑的多次连接尝试。另外,我们还要小心保护好具有根权限的密码和用户,因为黑客一旦知道了这些具有根权限的账号后,他们就可以修改日志文件来隐藏其踪迹了。9.使用好登录脚本制定系统策略和用户登录脚本,对网络用户的行为进行适当的限制。我们可以利用系统策略编辑器和用户登录脚本为用户设定工作环境,控制用户在桌面上进行的操作,控制用户执行的程序,控制用户登录的时间和地点(如只允许用户在上班时间、在自己办公室的机器上登录,除此以外一律禁止访问),采取以上措施可以进一步增强系统的安全性。10.经常检查系统信息如果在工作的过程中突然觉得计算机工作不对劲,仿佛感觉有人在遥远的地方遥控你时,你必须及时停止手中的工作,立即按Ctrl+Alt+Del复合键来查看系统是否运行了什么其他的程序。一旦发现有莫名其妙的程序在运行,你马上停止它,以免对整个计算机系统有更大的威胁。但是并不是所有的程序运行时出现在程序列表中,有些程序例如BackOrifice(一种黑客的后门程序)并不显示在Ctrl+Alt+Del复合键的进程列表中,最好运行“附件”->“系统工具”->“系统信息”,然后双击“软件环境”,选择“正在运行任务”,在任务列表中寻找自己不熟悉的或者自己并没有运行的程序。一旦找到程序后应立即终止它,以防后患。11.对病毒的袭击要警惕如今病毒在Internet上传播的速度越来越快。为防止主动感染病毒,最好不要访问非法网站,不要下载和运行不明程序。例如收到一封带有附件的电子邮件,且附件是扩展名为EXE一类的文件,这时千万不能随意运行它,因为这个不明真相的程序,就有可能是一个系统破坏程序。攻击者常把系统破坏程序换一个名字用电子邮件发给你,并带有一些欺骗性主题,骗你说一些:“这个东西将给您带来惊喜”,“帮我测试一下程序”之类的话。对待这些表面上很友好、善意的邮件附件,应该立即删除。12.设置好系统的安全参数充分利用NTFS文件系统的本地安全性能,设计好NTFS文件系统中文件和目录的读–189–\n计算机信息安全写、访问权限,对用户进行分组。对不同组的用户分别授予拒绝访问、读取和更改权限,一般只赋予所需要的最小的目录和文件的权限。值得注意的是对完全控制权限的授予应特别小心。对于网络资源共享,更要设计好文件系统的网络共享权限,对不应共享的文件和目录决不能授予共享权限。对能够共享的文件和目录,应对不同的组和用户分别授予拒绝访问、读、更改和完全控制等权限。10.2Linux系统的安全性Linux是Internet发展的产物。由于Linux操作系统是免费的,以及Linux操作系统出色的稳定性和健壮性,因此它在世界上越来越流行。由于投资成本的原因,许多中小企业开始大量使用Linux于中小型服务器。随着Linux的广泛应用,人们必须考虑主机的安全性问题。运行Linux的主机很容易联网,这同时也带来了一种潜在的危险——非法用户的入侵。当Linux只是简单的安装时,这种入侵的危险尤其可能发生。本节就此讨论如何构建一个安全的Linux系统环境。10.2.1Linux系统安全10.2.1.1物理安全电脑系统的物理安全是首先考虑的安全问题,物理安全是整个安全的第一道关卡。1.BIOS安全BIOS是一个非常底层的软件,它配置了或者说操作着x86平台的底层硬件。LILO和其他的Linux引导程序首先访问BIOS,再决定如何引导Linux机器。可以使用BIOS上的安全设置去阻止攻击者操作机器。可以在机器的BIOS中设置一个启动密码。这虽然不能提供足够的安全,但是它对攻击者起到了一个威慑作用。有必要取消启动顺序中的从软盘启动的顺序,设置一个进入BIOS的密码,防止攻击者进入BIOS,对它进行修改。2.启动载入程序的安全各种Linux引导程序也允许设置启动密码。以LILO为例,它已经有了密码和受限制的设置。如果以单用户身份登录,在启动时候被设置了需要输入密码。像在/etc/lilo.conf文件中加入如下设置:(password=yourpassword;restricted;)那可限制在启动时候必须输入密码才能启动Linux。3.系统锁定很多时候,会有什么急事要离开电脑一会,而工作还在继续。此时可激活系统的锁定程序,把系统终端锁定,以便攻击者不能进入该系统终端。在Linux中,锁定程序是xlock和vlock。Xlock是XWindow的锁定程序,在Linux的各个发行版都支持。在X窗口运行xlock,–190–\n第10章操作系统与网站安全此程序将会锁定系统,若想进入系统,必须输入密码。Vlock是允许锁定一部分或者全部Linux虚拟终端。可以锁定正在工作的终端,而不影响其他的终端。其他人可以从那些未被锁定的终端登录,但不可以使用被你锁定了的终端(除非解锁了)。10.2.1.2本地安全通过一个本地用户账号获得访问是系统入侵者试图获得root权限的第一件事情。对于安全松散的系统,入侵者会利用各种漏洞把他们的一般用户升级为root用户。1.用户管理(1)创建一个新用户每创建一个新用户,应尽量分配合适的权限给用户(他们能完成工作的权限)。这样作会使系统变得安全些。下面是允许让别人合法访问机器的几条好的规则。ò尽量给他们所需要的最小权限;ò要知道他们什么时候、什么地方登录,或者他们登录信息被记录起来;要把那些不使用的账号删除或者禁用;ò在所有的计算机和网络上使用相同的用户ID号,对于用户的管理是十分明智的。增加用户有三个过程:ò在/etc/passwd文件中写入新用户的入口项,同时也在/etc/shadow中创建与该用户相关的密码信息;ò为新登录用户建立一个HOME目录;ò在/etc/group中为新用户增加一个入口项;在/etc/passwd文件中写入新的入口项时,口令部分可先设置为NOLOGIN,以免有人作为此新用户登录。在修改文件前,应mkdir/etc/ptmp,以免他人同时修改此文件,新用户一般独立为一个新组,GID号与UID号相同(除非他要加入目前已存在的一个新组),UID号必须和其他人不同,HOME目录一般设置在/usr或/home目录下建立一个以用户登录名为名称的目录做为其主目录。在Linux中,/etc/group文件含有关于小组的信息,/etc/passwd中的每个GID在本文件中应当有相应的入口项,入口项中列出了小组名和小组中的用户。这样可方便地了解每个小组的用户,否则必须根据GID在/etc/passwd文件中从头至尾地寻找同组用户。/etc/group文件对小组的许可权限的控制并不是必要的,因为系统用UID,GID(取自/etc/passwd)决定文件存取权限,即使/etc/group文件不存在于系统中,具有相同的GID用户也可以小组的存取许可权限共享文件。小组就像登录用户一样可以有口令。如果/etc/group文件入口项的第二个域为非空,则将被认为是加密口令,newgrp命令将要求用户给出口令,然后将口令加密,再与该域的加密口令比较。给小组建立口令一般不是个好作法。第一,如果小组内共享文件,若有某人猜着小组口令,则该组的所有用户的文件就可能泄漏。其次,管理小组口令很费事,因为对于小组没有类似的passwd命令。可用/usr/lib/makekey生成一个口令写入/etc/group。以下情况必须建立新组。–191–\n计算机信息安全ò可能要增加新用户,该用户不属于任何一个现有的小组;ò有的用户可能时常需要独自为一个小组;ò有的用户可能有一个SGID程序,需要独自为一个小组;ò有时可能要安装运行SGID的软件系统,该软件系统需要建立一个新组。要增加一个新组,必须编辑/etc/group文件,为新组加一个入口项。由于用户登录时,系统从/etc/passwd文件中取GID,而不是从/etc/group中取GID,所以group文件和口令文件应当具有一致性。对于一个用户的小组,UID和GID应当是相同的。多用户小组的GID应当不同于任何用户的UID,一般为5位数,这样在查看/etc/passwd文件时,就可根据5位数据的GID识别多用户小组,这将减少增加新组,新用户时可能产生的混淆。(2)删除用户删除用户与添加用户的工作正好相反,首先在/etc/passwd和/etc/group文件中删除用户的入口项,并删除/etc/shadow中与用户相关的信息,然后删除用户的HOME目录和所有文件。rm-r/usr/loginname删除整个目录树。如果用户在/usr/spool/cron/crontabs中有crontab文件,也应当删除。(3)将用户移到另一个系统这是一个复杂的问题,不只是拷贝用户的文件和用户在/etc/passwd文件中的入口项。首先一个问题是用户的UID和GID可能已经用于另一个系统,若是出现这种情况,必须给要移的用户分配另外的UID和GID,如果改变了用户的UID和GID,则必须搜索该用户的全部文件,将文件的原UID和GID改成新的UID和GID。如果用户从一个不是本系统管理员的系统移来,则应对该用户的目录结构运行程序进行检查。一个不安全系统的用户,可能有与该用户其他文件存在一起的SUID/SGID程序,而这个SUID/SGID程序属于另一个用户。在这种情况下,如果用cpio或tar命令将用户的目录结构拷贝到本系统,SUID/SGID程序也将会拷贝到本系统而没有任何警告信息。应当在允许用户使用新系统以前先删除这种文件的SUID/SGID许可。总之,始终坚持检查所移用户的文件总是更安全些。也可以用su命令进入用户的户头,再拷贝用户文件,这样文件的所有者就是该用户,而不是root。(4)用chroot()限制用户如果的确想限制一个用户,可用chroot()子程序为用户建立一个完全隔离的环境,改变了进程对根目录的概念,因此可用于将一个用户封在整个文件系统的某一层目录结构中,使用户无法用cd命令转出该层目录结构,不能存取文件系统中其余部分的任何文件。这种限制方式比加限制的shell好得多。用户使用的命令应由系统管理员在新的root目录中建立一个bin目录,并建立用户可用命令的链到系统的/bin目录中相应命令文件上(若在不同的文件系统则应拷贝命令文件)。还应建立新的passwd文件,保留系统登录户头(为了使ls-l正确地报告与受限制的子文件系统中的文件相关的正确登录名)和用户账户,但系统账户的口令改为NOLOGIN以使受限制的用户不能取得系统登录的真实口令,使“破密”程序的任何企图成为泡影。2.root安全在机器上,root是最重要的账号。此账号是整台机器的超级管理员账号,也可能是网络–192–\n第10章操作系统与网站安全上其他机器的超级管理员账号。只有在运行非常短的、特殊的任务时候才使用root账号,平时应尽量使用普通用户。以root用户登录即使出现很小的错误,这也可能引出问题。一些系统管理命令只能由超级用户运行。超级用户拥有其他用户所没有的特权,他不管文件存取许可方式如何,都可以读、写任何文件,运行任何程序。系统管理员通常使用命令:/bin/su或以root进入系统从而成为超级用户。有时候,一些事情必须是root才能执行的,Linux中提供了su命令,让用户变化身份。可使用此命令换成root用户,去完成任务,然后再退出来,回到原来的用户。10.2.1.3文件系统安全Linux支持多种文件系统,包括ext、ext2、hpfs、vfat和ntfs等。通过虚拟文件系统VFS,Linux操作系统可以支持不同类型的文件系统。Linux文件系统的安全主要是通过设置文件的权限来实现的。每一个Linux的文件或目录,都有3组属性,分别定义文件或目录的所有者,用户组和其他人的使用权限(只读、可写、可执行、允许SUID、允许SGID等)。特别注意,权限为SUID和SGID的可执行文件,在程序运行过程中,会给进程赋予所有者的权限,如果被黑客发现并利用就会给系统造成危害。1.与文件系统安全相关的命令(1)chmod命令用chmod可修改访问权限,Chmod命令有两种方式:一种是字符方式,使用字符来修改文件的权限;另外一种是数字方式,使用3个数字的组合来修改文件的权限。(2)find命令find命令用于搜索目录树,并对目录树上的所有文件执行某种操作,参数是目录名表(指出从哪些起点开始搜索),还可给出一个或多个选项,规定对每个文件执行什么操作。(3)secure程序系统管理员应当作一个secure程序以定期检查系统中的各个系统文件,包括检查设备文件和SUID、SGID程序,尤其要注意检查SUID、SGID程序,检查/etc/passwd和/etc/group文件,寻找久未登录的户头和校验各重要文件是否被修改。(4)ncheck命令用于检查文件系统,只用一个磁盘分区名作为参数,将列出i节点号及相应的文件名。i节点相同的文件为链接文件。注意所列出的清单文件名与mount命令的第一个域相同的文件名前部分将不会列出来。因为是做文件系统内部的检查,ncheck并不知道文件系统安装点以上部分的目录。也可用此命令来搜索文件系统中所有的SUID和SGID程序和设备文件,使用-s选项来完成此项功能。2.安装和拆卸文件系统文件系统是可安装的,这意味着每个文件系统可以连接到整个目录树的任意节点上(根目录总是被安装上的)。安装文件系统的目录称为安装点。/etc/mount命令用于安装文件系统,用这条命令可将–193–\n计算机信息安全文件系统安装在现有目录结构的任意处。安装文件系统时,安装点的文件和目录都是不可存取的,因此未安装文件系统时,不要将文件存入安装点目录。文件系统安装后,安装点的存取许可方式和所有者将改变为所安装的文件根目录的许可方式和所有者。安装文件系统时要注意安装点的属性会改变。还要注意新建的文件,除非新文件系统是由标准文件建立的,系统标准文件会设置适当的存取许可方式,否则新文件系统的存取许可将是777。可用-r选项将文件系统安装成只读文件系统。需要写保护的驱动器和磁盘应当以这种方式来安装。不带任何参数的/etc/mount可获得系统中所安装的文件系统的有关信息。包括:文件系统被安装的安装点目录,对应/dev中的哪个设备,只读或可读写,安装时间和日期等。从安全的观点来讲,可安装系统的危险来自用户可能请求系统管理员为其安装用户自己的文件系统。如果安装了用户的文件系统,则应在允许用户存取文件系统前,先扫描用户的文件系统,搜索SUID/SGID程序和设备文件。在除了root外任何人不能执行的目录中安装文件系统,用find命令或secure列出可疑文件,删除不属于用户所有的文件的SUID/SGID许可。用户的文件系统用完后,可用umount命令卸下文件系统。并将安装点目录的所有者改回root,存取许可改为755。3.系统目录和文件系统中有许多文件不允许用户写,如:/bin,/usr/bin,/usr/lbin,/etc/passwd,/etc/rc,/usr/lib/crontab,/etc/inittab这样一些文件和目录(大多数的系统目录),可写的目录允许移动文件,会引起安全问题。系统管理员应经常检查系统文件和目录的许可权限和所有者。可做一个程序根据系统提供的规则文件(在/etc/permlist文件中)所描述的文件所有者和许可权规则检查各文件。注意如果系统的安全管理不好,或系统是新安装的,其安全程序不够高,可以用make方式在安全性强的系统上运行上述程序,将许可规则文件拷贝到新系统来,再以设置方式在新系统上运行上述程序,就可提高本系统的安全程序。但要记住,两个系统必须运行相同的系统版本。10.2.1.4Linux中的密码安全和加密最重要的安全特征之一是使用密码。密码的使用是你和你的用户两者都变得安全起来。Linux中提供了对密码的加密。当用户创建时候,要求输入密码。你所输入的密码先经过DES加密,然后把加密的结果存储在/etc/shadow文件中。当你登录时,你所输入的密码经过DES加密,加密的结果与存储在/etc/shadow文件中的密码进行比较,如果匹配,你就可以顺利登录。在Linux中还提供了一种password检测程序,它不允许你设置一个很容易被猜测出来的密码。当你设置密码时,此程序就在运行。入侵者常常使用一些破密工具猜测你的密码。如果你的密码不是足够的随机,这很容易被猜测出来。PAM模块允许你使用不同的加密算法(MD5或者类似的)对你的密码加密。PAM模块允许你改变认证方法和需要,它封装了本地所有的认证方法,并且不需要对你的二进制文件重新编译。在Linux中也支持公开密钥加密算法。公开密钥加密算法有两个密钥,一个用于加密(公–194–\n第10章操作系统与网站安全钥),另一个用于解密(私钥)。在传统的加密法中,加密和解密的密钥是相同的。要使别人能看到加密的报文,就要把密钥给对方。在传统的加密法中,密钥的传送造成了一个很大的安全隐患。在公开密钥加密算法中,我们仅把公钥传送给对方。对方用公钥对报文加密,然后把报文传送过来,我们再用私钥进行解密即可。即使公钥被知道了,解密者也不能解密被公钥加密了的报文。这样确保了报文传送的安全。PGP在Linux上得到了很好支持,其中2.6.2版本和5.0版本在Linux上工作得的十分良好。IPSEC是另外一种形式的数据加密。现在Linux也支持IPSEC。IPSEC是在IP网络层实现数据安全通信的加密法,它提供了认证、完整性、访问控制和保密性。IPSEC被写入Linux内核。由于内核的支持,IPSEC实现起来变得很简单。对于远程登录,在Linux中使用ssh和stelnet程序。他们的连接是经过加密的。Openssh是一个合适的用来替代rlogin、rsh和rcp的程序。它使用公开密钥加密算法去加密两台主机的通信,也对用户进行认证。它被使用在远程安全登录或者在主机之间拷贝数据。它在你的连接时进行数据压缩,使主机之间进行X11通信变得安全起来。Securesocketlayer(SSL)协议最初由Netscape公司开发,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通信的全球化标准。它包括了几个应用,例如安全telnet,一个对Apache服务器设计的模块,几种数据库,也包括几种DES、IDEA和Blowfish算法。Linux里采用了加密IP封装(CIPE)的技术。CIPE是为了提供一个安全子网连接到一个不信任的像Internet这样的网络的安全。CIPE在网络层加密数据。在网络上的主机之间传送的数据包被加密。Kerberos是一个认证系统。当一个用户登录时候,Kerberos对该用户作认证,并且用一种方法提供用户到周围的网络上其他服务器和分散的主机进行身份鉴别。这种认证方式被用在像rlogin这样的程序,这样可以允许用户不使用密码就登录到其他主机。这种认证方法也可使用在电子邮件系统,目的是担保邮件被发送到正确的用户那里,也担保发信者名副其实。Kerberos也可和其他的程序联系在一起。这样可以防止用户欺骗系统,让系统相信用户是某个人。10.2.2Linux网络安全网络操作系统是用于管理计算机网络中的各种软硬件资源,实现资源共享,并为整个网络中的用户提供服务,保证网络系统正常运行的一种系统软件。如何确保网络操作系统的安全,是网络安全的根本所在。只有网络操作系统安全可靠,才能保证整个网络的安全。纵观网络的发展历史,可以看出,对网络的攻击可能来自非法用户,也可能来自合法的用户。因此作为Linux网络系统的管理员,既要时刻警惕来自外部的黑客攻击,又要加强对内部网络用户的管理和教育,具体可以采用以下的安全策略。1.仔细设置每个内部用户的权限为了保护Linux网络系统的资源,在给内部网络用户开设账号时,要仔细设置每个内部用户的权限,一般应遵循“最小权限”原则,也就是仅给每个用户授予完成他们特定任务所必须的服务器访问权限。这样做会大大加重系统管理员的管理工作量,但为了整个网络系统–195–\n计算机信息安全的安全还是应该坚持这个原则。2.确保用户口令文件/etc/shadow的安全对于网络系统而言,口令是比较容易出问题的地方,作为系统管理员应告诉用户在设置口令时要使用安全口令(在口令序列中使用非字母,非数字等特殊字符)并适当增加口令的长度(大于6个字符)。系统管理员要保护好/etc/passwd和/etc/shadow这两个文件的安全,不让无关的人员获得这两个文件,这样黑客利用John等程序对/etc/passwd和/etc/shadow文件进行了字典攻击获取用户口令的企图就无法进行。系统管理员要定期用John等口令解密程序对本系统的/etc/passwd和/etc/shadow文件进行模拟字典攻击,一旦发现有不安全的用户口令,要强制用户立即修改。3.加强对系统运行的监控和记录Linux网络系统管理员,应对整个网络系统的运行状况进行监控和记录,这样通过分析记录数据,可以发现可疑的网络活动,并采取措施预先阻止今后可能发生的入侵行为。如果进攻行为已经实施,则可以利用记录数据跟踪和识别侵入系统的黑客。4.合理划分子网和设置防火墙如果内部网络要进入Internet,必须在内部网络与外部网络的接口处设置防火墙,以确保内部网络中的数据安全。对于内部网络本身,为了便于管理,合理分配IP地址资源,应该将内部网络划分为多个子网,这样做也可以阻止或延缓黑客对整个内部网络的入侵。5.定期对Linux网络进行安全检查Linux网络系统的运转是动态变化的,因此对它的安全管理也是变化的,没有固定的模式,作为Linux网络系统的管理员,在为系统设置了安全防范策略后,应定期对系统进行安全检查,并尝试对自己管理的服务器进行攻击,如果发现安全机制中的漏洞应立即采取措施补救,不给黑客以可乘之机。6.制定适当的数据备份计划确保系统万无一失没有一种操作系统的运转是百分之百可靠的,也没有一种安全策略是万无一失的,因此作为Linux系统管理员,必须为系统制定适当的数据备份计划,充分利用磁带机、光盘刻录机、双机热备份等技术手段为系统保存数据备份,使系统一旦遭到破坏或黑客攻击而发生瘫痪时,能迅速恢复工作,把损失减少到最小。7.加强对Linux网络服务器的管理,合理使用各种工具(1)慎用Telnet服务在Linux下,用Telnet进行远程登录时,用户名和用户密码是明文传输的,这就有可能被在网上监听的其他用户截获。另一个危险是黑客可以利用Telnet登入系统,如果他又获取了超级用户密码,则对系统的危害将是灾难性的。因此,如果不是特别需要,不要开放Telnet服务。如果一定要开放Telnet服务,应该要求用户用特殊的工具软件进行远程登录,这样就–196–\n第10章操作系统与网站安全可以在网上传送加密过的用户密码,以免密码在传输过程中被黑客截获。(2)合理设置NFS服务和NIS服务NFS(NetworkFileSystem)服务,允许工作站通过网络共享一个或多个服务器输出的文件系统。但对于配置得不好的NFS服务器来讲,用户不经登录就可以阅读或者更改存储在NFS服务器上的文件,使得NFS服务器很容易受到攻击。如果一定要提供NFS服务,要确保基于Linux的NFS服务器支持SecureRPC(SecureRemoteProcedureCall),以便利用DES(DataEncryptionStandard)加密算法和指数密钥交换(ExponentialKeyExchange)技术验证每个NFS请求的用户身份。NIS(NetworkInformationSystem)服务,是一个分布式数据处理系统,它使网络中的计算机通过网络共享passwd文件,group文件,主机表文件和其他共享的系统资源。通过NIS服务和NFS服务,在整个网络中的各个工作站上操作网络中的数据就像在操作和使用单个计算机系统中的资源一样,并且这种操作过程对用户是透明的。NIS服务器传统地称为ypserv。对于一个中等大小的网络来说,单个服务器通常就足够了;大型的网络可能需要在不同的网段以及不同的机器上运行几个服务器,以减轻服务器机器和路由器的负荷。现在有一个问题要解决,也即一个客户如何知道要连接到哪一台服务器上去。最简单的途径是有一个配置文件,它给出了要在其上查找服务器的主机名。然而,这个办法非常不灵活,因为它不允许客户依据这些服务器存在与否使用不同的服务器(当然是指从同一个域)。因此,传统的NIS实现依赖于一个称作ypbind的特殊后台程序在它们的NIS域中来侦测一个适当的NIS服务器。在能够执行任何NIS查询之前,任何应用程序首先要从ypbind找出要使用哪个服务器。ypbind通过向本地IP网络广播来探测服务器;第一个响应的服务器假设是最快的一个并将用于随后的NIS查询。在某个间隔时间过去以后,或者如果服务器不工作了,ypbind将再次控测运行着的服务器。但是NIS服务也有漏洞,在NIS系统中,不怀好意的用户可以利用自己编写的程序来模仿Linux系统中的ypserv响应ypbind的请求,从而截获用户的密码。因此,NIS的用户一定要使用ypbind的secure选项,并且不接受端口号小于1024(非特权端口)的ypserv响应。(3)小心配置FTP服务FTP服务与前面讲的Telnet服务一样,用户名和用户密码也是明文传输的。因此,为了系统的安全,必须通过对/etc/ftpusers文件的配置,禁止root,bin,daemon,adm等特殊用户对FTP服务器进行远程访问,通过对/etc/ftphosts的设定限制某些主机不能连入FTP服务器,如果系统开放匿名FTP服务,则任何人都可以下载文件(有时还可以上载文件),因此,除非特别需要一般应禁止匿名FTP服务。(4)合理设置POP3和Sendmail等电子邮件服务对一般的POP3服务来讲,电子邮件用户的口令是按明文方式传送到网络中的,黑客可以很容易截获用户名和用户密码。要想解决这个问题,必须安装支持加密传送密码的POP3服务器(即支持AuthenticatedPOP命令),这样用户在往网络中传送密码之前,可以先对密码加密。(5)加强对WWW服务器的管理,提供安全的WWW服务–197–\n计算机信息安全当一个基于Linux系统的网站建立好之后,绝大部分用户是通过Web服务器,利用WWW浏览器对网络进行访问的,因此必须特别重视Web服务器的安全,无论采用哪种基于HTTP协议的Web服务器软件,都要特别关注CGI脚本(CommonGatewayInterface),这些CGI脚本是可执行程序,一般存放在Web服务器的CGI-BIN目录下面,在配置Web服务器时,要保证CGI可执行脚本只存放于CGI-BIN目录中,这样可以保证脚本的安全,且不会影响到其他目录的安全。(6)最好禁止提供finger服务在Linux系统下,使用finger命令,可以显示本地或远程系统中目前已登录用户的详细信息,黑客可以利用这些信息,增大侵入系统的机会。为了系统的安全,最好禁止提供finger服务,即从/usr/bin下删除finger命令。如果要保留finger服务,应将finger文件换名,或修改权限为只允许root用户执行finger命令。由于Linux操作系统使用广泛,又公开了源码,因此是被广大计算机用户研究得最彻底的操作系统;而Linux本身的配置又相当的复杂,按照前面的安全策略和保护机制,可以将系统的风险降到最低,但不可能彻底消除安全漏洞。作为Linux系统的管理员,一定要有安全防范意识,定期对系统进行安全检查,发现漏洞要立即采取措施,不给黑客以可乘之机。10.3Web站点的安全10.3.1IISWeb服务器安全10.3.1.1Windows2000设置1.解除NetBIOS与TCP/IP协议的绑定NetBOIS在局域网内是不可缺少的功能,在网站服务器上却成了黑客扫描工具的首选目标。方法:控制面板—>网络和拨号连接—>本地网络—>属性—>TCP/IP—>属性—>高级—>WINS—>禁用TCP/IP上的NetBIOS,如图10.3所示。2.禁用SMB多数用户可能会认为禁用了TCP/IP上的NetBIOS就已经成功地禁止了对他们的计算机的SMB访问,这是错误的。这个设置只是禁用了NetBIOS会话服务,即TCP端口139。Windows2000在TCP445上运行了另一个SMB监听程序。系统版本高于NT4ServicePack6a的WindowsSMB客户端在试图与TCP139建立连接失败后,会自动转向TCP445,因此空会话仍然能够被客户建立,即使TCP139已经禁用或阻塞。方法:打开NetworkandDial-upConnections(网络和拨号连接),选择Advanced菜单中的AdvancedSettings(高级设置),然后在适当的适配器上取消对FileandPrinterSharingforMicrosoftNetworks(Microsoft网络的文件和打印机共享)的选择,如图10.4所示。–198–\n第10章操作系统与网站安全图10.3禁用TCP/IP上的NETBIOS图10.4禁用SMB3.删除所有的网络共享资源Windows2000在默认情况下有不少网络共享资源,在局域网内对网络管理和网络通信有用,在网站服务器上同样是一个特大的安全隐患。方法:控制面板—>管理工具—>计算机管理—>共享文件夹—>停止共享。但上述方法太麻烦,服务器每重启一次,管理员就必须停止一次。可以修改注册表,方法如下。运行Regedit,然后修改注册表,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters下增加一个键,Name:AutoShareServerType::REG_DWORDValue:0然后重新启动您的服务器,磁盘分区共享去掉,但IPC共享仍存在,需每次重启后手工删除。可以修改注册表,禁止建立空连接,运行regedit,找到如下组建[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把RestrictAnonymous=DWORD的键值改为:00000001。4.改NTFS的安全权限NTFS下所有文件默认情况下对所有人(EveryOne)为完全控制权限,这使黑客有可能使用一般用户身份对文件做增加、删除、执行等操作,建议对一般用户只给予读取权限,而只给管理员和System以完全控制权限,但这样做有可能使某些正常的脚本程序不能执行,或者某些需要写的操作不能完成,这时需要对这些文件所在的文件夹权限进行更改,建议在做–199–\n计算机信息安全更改前先在测试机器上作测试,然后慎重更改。5.系统启动的等待时间设置为0秒控制面板->系统->启动/关闭,然后将列表显示的默认值“30”改为“0”(或者在boot.ini里将TimeOut的值改为0)。6.只开放必要的端口,关闭其余端口缺省情况下,所有的端口对外开放,黑客就会利用扫描工具扫描那些端口可以利用,这对安全是一个严重威胁。7.加强日志审核日志包括事件查看器中的应用、系统、安全日志,IIS中的WWW、SMTP、FTP日志、SQLSERVER日志等,从中可以看出某些攻击迹象,因此每天查看日志是保证系统安全的必不可少的环节。安全日志缺省是不记录,账号审核可以从域用户管理器—>规则—>审核中选择指标;NTFS中对文件的审核从资源管理器中选取。要注意的一点是,只需选取你真正关心的指标就可以了,如果全选,则记录数目太大,反而不利于分析;另外选择太多对系统资源也是一种浪费。8.加强数据备份这一点非常重要,站点的核心是数据,数据一旦遭到破坏后果不堪设想,而这往往是黑客们真正关心的东西;遗憾的是,不少网管在这一点上作的并不好,不是备份不完全,就是备份不及时。数据备份需要仔细计划,制定出一个策略并作了测试以后才实施,而且随着网站的更新,备份计划也需要不断地调整。9.只保留TCP/IP协议,删除NETBEUI、IPX/SPX协议网站需要的通信协议只有TCP/IP,而NETBEUI是一个只能用于局域网的协议,IPX/SPX是面临淘汰的协议,放在网站上没有任何用处,反而会被某些黑客工具利用。10.停掉没有用的服务,只保留与网站有关的服务和服务器某些必须的服务有些服务比如RAS服务、Spooler服务等会给黑客带来可乘之机,如果确实没有用处建议禁止掉,同时也能节约一些系统资源。但要注意有些服务是操作系统必须的服务,建议在停掉前查阅帮助文档并首先在测试服务器上作一下测试。11.隐藏上次登录用户名缺省情况下,上次登录的用户名会出现在登录框中,这就为黑客猜测口令提供了线索,最好的方式就是隐藏上次登录用户名。修改注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\WinlogonDontDisplayLastUserName,将其值设为1。 –200–\n第10章操作系统与网站安全12.安装最新的MDACMDAC是数据访问部件,通常程序对数据库的访问都通过它,但它也是黑客攻击的目标,为防止以前版本的漏洞可能会被带入升级后的版本,建议卸载后安装最新的版本。注意:在安装最新版本前最好先做一下测试,因为有的数据访问方式或许在新版本中不再被支持。10.3.1.2IIS设置1.只安装OptionPack中必须的服务,建议不要安装IndexServer、FrontPageServerExtensions、示例WWW站点等功能。IIS中的众多安全隐患是由一些其他的功能引起的,如果仅做一个WWW站点,就需要安装必须的服务,如WWW服务、FTP服务,这样减少黑客利用这些漏洞攻击的机会。2.停止默认的FTP站点、默认的Web站点、管理Web站点,在新的目录下新建WWW服务与FTP服务。默认的站点与管理Web站点含有大量有安全漏洞的文件,极易给黑客造成攻击机会。因此,必须禁止。同时,应该在新的目录下建立服务,这个目录千万不要放在InetPubwwwroot下,最好放在与它不同的分区下。3.删除不必要的IIS扩展名映射最好去掉.IDC、.HTR、.STM、.IDA、.HTW应用程序映射,.shtml、.shtm等如果无用,也应去掉。上述应用程序映射,具有大量安全隐患。方法:Web站点->属性->主目录->配置->应用程序映射。安装新的ServicePack后,IIS的应用程序映射应重新设置。安装新的ServicePack后,某些应用程序映射又会出现,导致出现安全漏洞。这是管理员较易忽视的一点。4.设置IP拒绝访问列表对于WWW服务,可以拒绝一些对站点有攻击嫌疑的地址;尤其对于FTP服务,如果只是自己公司上传文件,就可以只允许本公司的IP访问该FTP服务,这样,安全性大为提高。5.禁止对FTP服务的匿名访问如果允许对FTP服务做匿名访问,该匿名账户就有可能被利用来获取更多的信息,以致对系统造成危害。6.建议使用W3C扩充日志文件格式每天记录客户IP地址,用户名,服务器端口,方法,URL字根,HTTP状态,用户代理,而且每天均要审查日志(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为FullControl)。日志文件作为一个重要措施,既–201–\n计算机信息安全可以发现攻击的迹象,采取预防措施,也可以作为受攻击的一个证据。7.慎重设置WEB站点目录的访问权限一般情况下,不要给予目录以写入和允许目录浏览权限。只给予.ASP文件目录以脚本的权限,而不要给予执行权限。目录访问权限必须慎重设置,否则会被黑客利用。10.3.1.3ASP编程安全安全不仅是网管的事,编程人员也必须在某些安全细节上注意,养成良好的安全习惯,否则,会给黑客造成可乘之机。目前,大多数网站上的ASP程序有这样那样的安全漏洞,但如果写程序的时候注意的话,还是可以避免的。1.涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接的用户名与口令应给予最小的权限。用户名与口令,往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码,后果是严重的。因此要尽量减少它们在ASP文件中的出现次数。出现次数多的用户名与口令可以写在一个位置比较隐蔽的包含文件中。如果涉及到与数据库连接,理想状态下只给它以执行存储过程的权限,千万不要直接给予该用户以修改、插入、删除记录的权限。2.需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。现在的需要经过验证的ASP程序多是在页面头部加一个判断语句,但这还不够,有可能被黑客绕过验证直接进入,因此有必要跟踪上一个页面。3.防止ASP主页.inc文件泄露问题当存在asp的主页正在制作并没有进行最后调试完成以前,可以被某些搜索引擎追加为搜索对象,如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中察看到数据库地点和结构的细节,揭示完整的源代码。解决方案:程序员应该在网页发布前对其进行彻底的调试;安全专家需要固定asp包含文件以便外部的用户不能看他们。首先对.inc文件内容进行加密,其次也可以使用.asp文件代替.inc文件使用户无法从浏览器直接观看文件的源代码。.inc文件的文件名不能使用系统默认的或者有特殊含义容易被黑客猜测到的,尽量使用无规则的英文字母。4.注意某些ASP编辑器会自动备份asp文件,进而被下载的漏洞在有些编辑asp程序的工具创建或者修改一个asp文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个.bak文件,如你创建或者修改了some.asp,编辑器自动生成一个叫some.asp.bak文件,如果你没有删除这个bak文件,攻击者有可能直接下载some.asp.bak文件,这样some.asp的源程序就会给下载。5.在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、JavaScript、VBScript语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对–202–\n第10章操作系统与网站安全输入字符的长度进行限制。而且不但在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏;如果该输入框涉及到数据查询,他们会利用特殊查询输入得到更多的数据库数据,甚至是表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过,因此必须在服务器端再做一次检查。6.防止ACCESSmdb数据库有可能被下载的漏洞在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个Access数据库文件,这是非常危险的。解决方法如下。(1)为你的数据库文件名称起个复杂的非常规的名字,并把他放在几层目录下。所谓“非常规”,打个比方:比如有个数据库要保存的是有关书籍的信息,可不要把他起个“book.mdb”的名字,起个怪怪的名称,比如asdf12sd.mdb,再把他放在如./kdslf/i44/studi/的几层目录下,这样黑客要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。(2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如,DBPath=Server.MapPath("cmddb.mdb")conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPath假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中写:conn.open"shujiyuan"(3)使用ACCESS来为数据库文件编码及加密。首先选取“工具->安全->加密/解密数据库”,选取数据库(如:employer.mdb),然后按确定,接着会出现“数据库加密后另存为”的窗口,存为:employer1.mdb。接着employer.mdb就会被编码,然后存为employer1.mdb。要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。接下来我们为数据库加密,首先打开经过编码了的employer1.mdb,在打开时,选择“独占”方式。然后选取功能表的“工具->安全->设置数据库密码”,接着输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他是无法看到employer1.mdb的内容。10.3.1.4SQLSERVER的安全SQLSERVER是Windows2000平台上用的最多的数据库系统,但是它的安全问题也必须引起重视。数据库中往往存在着最有价值的信息,一旦数据被窃后果不堪设想。1.及时更新补丁程序与Windows2000一样,SQLSERVER的许多漏洞会由补丁程序来弥补。建议在安装补丁程序之前先在测试机器上做测试,同时提前做好目标服务器的数据备份。–203–\n计算机信息安全2.给SA一个复杂的口令SA具有对SQLSERVER数据库操作的全部权限。遗憾的是,一部分网管对数据库并不熟悉,建立数据库的工作由编程人员完成,而这部分人员往往只注重编写SQL语句本身,对SQLSERVER数据库的管理不熟悉,这样很有可能造成SA口令为空。这对数据库安全是一个严重威胁。目前具有这种隐患的站点不在少数。3.严格控制数据库用户的权限,轻易不要给用户对表有直接的查询、更改、插入、删除权限,可以通过给用户以访问视图的权限,以及只具有执行存储过程的权限。用户如果对表有直接的操作权限,就会存在数据被破坏的危险。4.制订完整的数据库备份与恢复策略。10.3.2ApacheWeb服务器安全在众多的WebServer产品中,Apache是应用最为广泛的一个产品,同时也是一个设计上非常安全的程序。但是,同其他应用程序一样,Apache也存在安全缺陷。10.3.2.1Apache服务器的介绍Apache服务器是Internet网上应用最为广泛的Web服务器软件之一,运行于大约60%的Web站点。Apache服务器源自美国国家超级技术计算应用中心(NCSA)的Web服务器项目中。目前已在互联网中占据了领导地位。Apache服务器经过精心配置之后,才能使它适应高负荷,大吞吐量的互联网工作。快速、可靠、通过简单的API扩展,Perl/Python解释器可被编译到服务器中,且完全免费,完全源代码开放。如果你需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。Apache的流行有以下若干原因。(1)Apache是一个可配置的Web服务器。(2)Apache是可扩展的(用户可以很容易地在其中添加模块,如mod_perl和mod_php3)。(3)Apache开放源代码。(4)Apache是免费的。10.3.2.2Apache服务器的主要安全缺陷Apache服务器的安全缺陷主要是使用HTTP协议进行的拒绝服务攻击(denialofservice)、缓冲区溢出攻击以及被攻击者获得root权限三个缺陷。合理的网络配置能够保护Apache服务器免遭多种攻击。主要的安全缺陷如下。1.使用HTTP协议进行拒绝服务攻击的安全缺陷这种方法攻击者会通过某些手段使服务器拒绝对HTTP应答。这样会使Apache对系统资源(CPU时间和内存)需求剧增,最终造成Apache系统变慢甚至完全瘫痪。–204–\n第10章操作系统与网站安全2.缓冲区溢出的安全缺陷该方法攻击者利用程序编写的一些缺陷,使程序偏离正常的流程。程序使用静态分配的内存保存请求数据,攻击者就可以发送一个超长请求使缓冲区溢出。比如一些Perl编写的处理用户请求的网关脚本。一旦缓冲区溢出,攻击者可以执行其恶意指令或者使系统宕机。3.被攻击者获得root权限的安全缺陷该安全缺陷主要是因为Apache服务器一般以root权限运行(父进程),攻击者会通过它获得root权限,进而控制整个Apache系统。因此,使用最高和最新安全版本对于加强ApacheWeb服务器的安全是至关重要的。请广大Apache服务器管理员去http://www.apache.org/dist/httpd/下载补丁程序以确保其WEB服务器安全。10.3.2.3正确维护和配置Apache服务器虽然Apache服务器的开发者非常注重安全性,但由于Apache服务器是庞大的项目,难免会存在安全隐患。正确维护和配置ApacheWEB服务器就很重要了。应注意的以下问题。1.Apache服务器配置文件Apache的配置文件通常是httpd.conf,这个文件包含了大量指定Apache行为方式的命令。Apache曾经使用过3个配置文件,位于/usr/local/apache/conf目录下。这三个文件是:httpd.conf—>主配置文件srm.conf—>填加资源文件access.conf—>设置文件的访问权限但现在它们的内容已经被组合到单个httpd.conf文件中。2.Apache服务器的日志文件可以使用日志格式指令来控制日志文件的信息。使用LogFormat"%a%l"指令,可以把发出HTTP请求浏览器的IP地址和主机名记录到日志文件。出于安全的考虑,在日志中至少应该记录那些验证失败的WEB用户,在http.conf文件中加入LogFormat"%401u"指令可以实现这个目的。这个指令还有其他的许多参数,用户可以参考Apache的文档。另外,Apache的错误日志文件对于系统管理员来说也是非常重要的,错误日志文件中包括服务器的启动、停止以及CGI执行失败等信息。3.Apache服务器的目录安全认证在ApacheServer中是允许使用.htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确的用户账号与密码。这样可作为专门管理网页存放的目录或作为会员区等。–205–\n计算机信息安全4.Apache服务器访问控制access.conf文件中包含一些指令控制允许什么用户访问Apache目录。应该把denyfromall设为初始化指令,再使用allowfrom指令打开访问权限。orderdeny,allowdenyfromallallowfromsafechina.net设置允许来自某个域、IP地址或者IP段的访问。5.Apache服务器的密码保护问题我们再使用.htaccess文件把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者srm.conf文件中使用AccessFileName指令打开目录的访问控制。如:AuthNamePrivateFilesAuthTypeBasicAuthUserFile/path/to/httpd/usersrequireYourname#htpasswd-c/path/to/httpd/usersYourname习题1.简述操作系统安全的重要性。2.Windows2000操作系统安全功能和工具有哪些?3.如何保证Linux系统安全?4.Linux网络安全策略有哪些?5.如何实现IISWeb服务器安全?6.上机练习一:对ApacheWeb服务器进行安全性设置。7.上机练习二:安装、配置Windows2000和IISWeb服务器,并用安全工具对其进行检测。–206–\n第11章E-mail安全与网络加密随着Internet的发展,电子邮件作为一种通信方式逐渐普及。当前电子邮件的用户已经从科学和教育行业发展到了普通家庭中的用户,电子邮件传递的信息也从普通文本信息发展到包含声音、图像在内的多媒体信息。随着用户的增多和使用范围的逐渐扩大,保证邮件本身的安全以及电子邮件对系统安全性的影响越来越重要。本章将学习以下主要内容。1.E-mail工作原理、安全漏洞及保护E-mail的方法。2.邮件加密软件PGP。3.网络加密与密钥管理。11.1E-mail的安全11.1.1E-mail工作原理及安全漏洞电子邮件已经成为企业、商业及人际交往最重要的交流工具之一了,所以很多黑客也把攻击目标盯上了电子邮件。针对电子邮件的攻击分为两种:一种是直接对电子邮件的攻击,如窃取电子邮件密码,截取发送邮件内容,发送邮件炸弹;另一种是间接对电子邮件的攻击,如通过邮件传输病毒、木马程序。1.E-mail工作原理一个邮件系统包含了用户代理(UserAgent)、传输代理(TransferAgent)及接收代理(DeliveryAgent)三大部分。用户代理是一个用户端发信和收信的程序,负责将信按照一定的标准包装,然后送至邮件服务器,将信件发出或由邮件服务器收回。传输代理负责信件的交换和传输,将信件传送至适当的邮件主机,再由接收代理将信件分发至不同的邮件信箱。传输代理必须要能够接受用户邮件程序送来的信件,解读收信人的地址,根据SMTP协议将它正确无误地传递到目的地。现在一般的传输代理已采用Sendmail程序完成工作,到达邮件主机再经接收代理POP(PostOfficeProtocol,网络邮局协议或网络中转协议)使邮件被用户读取至自己的主机。2.E-mail的安全漏洞产生电子邮件安全隐患主要有三个方面。一是电子邮件传送协议自身的先天安全隐患,–207–\n计算机信息安全众所周知,电子邮件传输采用的是SMTP(SimpleMailTransferProtocol),即简单邮件传输协议,它传输的数据没有经过任何加密,只要攻击者在其传输途中把它截获即可知道内容。二是邮件接收客户端软件的设计缺陷导致的,如微软的Outlook存在安全隐患可以使攻击者编制一定代码让木马或者病毒自动运行。三是用户个人的原因导致的安全隐患,如在网吧、学校等公共场所上网把电子邮件的密码保存在上面,或者随意打开一些来历不明的邮件。(1)电子邮件易被截获电子邮件作为一种网络应用服务,采用的是简单邮件传输协议(SMTP)。传统的电子邮件基于文本格式,对于非文本格式的二进制数据,比如可执行程序,首先需要通过一些编码程序,像UNIX系统命令uuencode,将这些二进制数据转换为文本格式,然后夹带在电子邮件的正文部分。随着网络应用的不断发展,大量多媒体数据,如图形、音频、视频数据需要通过电子邮件传输。Internet采用“类型/编码”格式的多目的互联网络邮件扩展MIME(MultipurposeInternetMailExtensions)标准来标识和编码这些多媒体数据。这些传输的数据如果在传送中途被截获,把这些数据包按顺序可以重新还原成为你发送的原始文件。由于电子邮件的发送是要通过不同的路由器进行转发,直到到达电子邮件最终接收主机,攻击者可以在电子邮件数据包经过这些路由器的时候把它们截取下来,这些都是我们所不能发现的。我们发送完电子邮件后,就不知道它会通过哪些路由器最终到达主机,也无法确定,在经过这些路由器的时候,是否有人把它截获下来,就像我们去邮局寄信,我们无从知道寄出去的信会经过哪些邮局转发,哪些人会接触到这封信。我们使用电子邮件就像我们在邮局发送一封没有粘封的信一样不安全。(2)邮件攻击一类是直接对电子邮件的攻击,如垃圾邮件(E-mailSpamming)也叫邮件炸弹。这种情形是指邮件服务器或某个用户在很短的时间内收到大量无用的邮件,而且通常是从某一虚设的地址发来的,从而大量地占用系统可用空间和资源,使机器暂时无法正常工作或邮箱被添满而无法接收新邮件。另一类是指黑客通过电子邮件的方式向你发送木马、病毒或者一段带有攻击特征的特定HTML代码,如通过一段特定的HTML代码可以在你打开邮件的时候把你的主机信息记录发送给攻击者,如果利用IE一些版本的漏洞,甚至可以通过这些脚本漏洞对你的文件系统进行读写操作。如著名的“爱虫”病毒即是通过电子邮件传递,它会打开感染主机的Outlook邮件地址薄,然后把自己发送给这些地址。当其他人接到这个电子邮件时,会以为是好友发过来的文件,打开它,结果又进行第二轮传输,周而复始,这是“爱虫”能感染了全球成千上万机器的原因。11.1.2保护E-mail1.给电子邮件加密邮件本身的安全首先要保证邮件不被无关的人窃取或更改,同时接收者也必须能确定该邮件是由合法发送者发出的。可以使用公开密钥系统来达到这个目的。实际使用中,用户自–208–\n第11章E-mail安全与网络加密己持有一把密钥,称为私钥,将另一把密钥公开,这把密钥称为公钥。当用户向外发送邮件时,他首先使用一种单向散列函数从邮件中得到固定长度的散列值,该值与邮件的内容相关,称为该邮件的指纹,然后使用自己的密钥对指纹进行加密。接受者能使用他的公钥进行解密,然后重新生成指纹进行比较,这保证邮件是由他本人发送而非假冒,同时也保证邮件在发送过程中没有被更改,这个过程称为数字签名和核实。他也可以使用接收者的公钥进行加密,这保证只有拥有对应密钥的接收者才能进行解密,来得到电子邮件的明文信息。公开密钥系统使用RSA算法的健壮性保证了邮件的安全性,但是用户必须得到所有其他接收者的公钥。随之而来的问题是,如何保证得到的公钥是合法的接收者的,而不是来自假冒者的假冒公钥。通常用户相信经过某些人数字签名过的公钥。对公钥进行签名认证的机构或人的管理方式在公开密钥系统称为信任管理。有两种信任管理的模型,第一种是链状结构,没有一个对公钥进行管理的中心机构,用户信任他的朋友认证过的公钥;另一种是树状结构,用户从他的上级对公钥进行认证,因而存在一个对公钥进行管理的中心机构。2.安全需要标准加密后的电子邮件是非文本信息,而且对邮件进行数字签名是独立于邮件本身的另一个部分,由于Internet中采用的简单邮件传输协议(SMTP)只能用来传送文本信息,因此传递非文本信息必须将数据首先编码成邮件传输协议可以识别的文本。人们制订了MIME协议使电子邮件中可以存在多个部分和多个不同的编码结构,这样多种非文本信息就能作为附件在这些独立部分中编码传输。MIME协议将邮件不同部分的分隔位置和类型信息存储在MIME头中,而用户并不会注意到这些额外信息。支持MIME标准的电子邮件软件能根据MIME头中说明的信息来分离并使用正确的程序来浏览这些附件。通过MIME标准,电子邮件能传送附属的二进制文件、不同字符集的邮件、HTML、声音、图像、视频以及其他种类的非文本信息。因而可以扩展MIME标准来传递加密的邮件数据,以使公开密钥系统与电子邮件系统透明的集成在一起。当前还没有安全电子邮件的正式标准,两个重要的草案是S/MIME和OpenPGP。S/MIME由RSA算法专利的拥有者RSA数据安全所制订,使用X.509标准的树状认证结构,这个标准得到了Microsoft和Netscape等大多数商业公司的支持,并将很快得到IETF承认。OpenPGP由PGP公司发展,基于流行的电子邮件安全软件PGP,得到IBM等公司的支持,也将成为IETF标准。由于S/MIME使用树状信任管理模型,而OpenPGP使用链状结构,因此IT经理们对S/MIME更感兴趣。但是由于现在电子商务还不够普及,因此这些标准为用户完全接受还需要一定时间。3.采用过滤功能除了电子邮件本身的安全性以外,电子邮件也带来了其他安全问题。其中一个问题是垃圾邮件或邮件炸弹对电子邮件系统的影响。由于通过Internet发送电子邮件非常方便和便宜,广告公司便可以用来发送无聊的广告,或者心怀恶意的人不断发送攻击邮件。如何处理这些垃圾邮件的确令人头痛,这也将影响用户对电子邮件系统的信任。更可怕的是过多的邮件超过了有限的邮箱容量,致使用户或系统将不能正常接受邮件。对付这些垃圾邮件的基本方法是过滤。过滤器根据制订的规则来区分不同的邮件,例如,根据邮件的发–209–\n计算机信息安全送者地址、或者邮件的主题进行判断是否接收或拒绝。邮件主机系统管理员可以在电子邮件服务程序中设置拒绝接收指定条件的邮件,比如来自某个广告公司的邮件服务器的邮件等。用户自己也可以在电子邮件客户程序中设定过滤,拒绝察看来自某个具有恶意地址的邮件。电子邮件对计算机安全性的另一个影响是病毒。由于电子邮件可用于附带传送二进制数据,传送的数据中很可能包含有病毒。事实上,由于很多用户使用MIME来传送文档,电子邮件已经成为宏病毒传播的一个主要途径。在这种情况下,除了用户本身在处理电子邮件附件时需要小心之外,系统管理员可以在邮件系统中安装一些软件来防止病毒传播。电子邮件除了作为病毒的载体对计算机的安全造成危害之外,在MIME标题头中使用一些怀有恶意的代码能对一些特定的电子邮件程序进行攻击,例如,MicrosoftOutlook98,NetscapeMessenger(Mail)v4.05。这些电子邮件程序对邮件信息中用于标识附件的MIME名字附件没有能够正确处理。在用户阅读邮件信息时,电子邮件程序处理附件,由于这些程序在将MIME头读入内存时没有检查它们的长度,就能导致邮件程序的缓冲区溢出,然后就能运行包含在附件中的任意代码。这些代码具有用户的所有能力,能做重发邮件、改变文件、甚至格式化磁盘等破坏事件。对于这些破坏者,就需要尽快使用补丁程序,修正电子邮件程序的问题。11.1.3邮件加密软件PGPPGP(PrettyGoodPrivacy)是一个基于RSA公钥加密体系的邮件加密软件,用它可以对邮件加密以防止非授权者阅读,还能对邮件加上数字签名从而使收信人可以确信邮件的发送方。它让用户可以安全地和从未见过的人们通信,事先并不需要任何保密的渠道用来传递密钥。它采用了以下方法来实现数据的安全:审慎的密钥管理、一种RSA和传统加密的杂合算法、用于数字签名的邮件文摘算法、加密前压缩等,还有一个良好的人机工程设计,因此它功能强大,有很快的速度,而且它的源代码是免费的。实际上PGP可以用来加密文件,还可以用PGP代替UUencode生成RADIX64格式(就是MIME的BASE64格式)的编码文件。PGP的创始人是美国的PhilZimmermann。他的创造性在于他把RSA公钥体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密钥认证管理机制上有巧妙的设计。因此PGP成为当前几乎最流行的公钥加密软件包。PGP是一种供大众使用的加密软件。在现代社会里,电子邮件和网络上的文件传输已经成为生活的一部分,邮件的安全问题日益突出,大家都知道在Internet上传输的数据是不加密的,如果你自己不保护自己的信息,第三者就会轻易获得你的隐私。还有一个问题就是信息认证,要让收信人确信邮件没有被第三者篡改,就需要使用数字签名技术。RSA公钥体系的特点使它非常适合用来满足保密性(Privacy)和认证性(Authentication)的要求。RSA(Rivest-Shamir-Adleman)算法是一种基于大数不可能质因数分解假设的公钥体系。假设甲要寄信给乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于没别人知道乙的私钥所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙就无法确信是不是甲的来信。认证的问题就出现了,这时候数字签名就有用了。PGP是用MD5算法产生一个128位的二进制数作为“邮件文摘”。甲用自己的私钥将128位的“邮件文摘”加密,附加在邮件上,再用乙的公钥将整个邮件加密。这样这份密文被乙–210–\n第11章E-mail安全与网络加密收到以后,乙用自己的私钥将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的“邮件文摘”,再与用甲的公钥解密签名得到的数比较,如果符合就说明这份邮件确实是甲寄来的。这样两个要求都得到了满足。PGP还可以只签名而不加密,这适用于公开发表声明时,声明人为了证实自己的身份,可以用自己的私钥签名。这样就可以让收件人能确认发信人的身份,也可以防止发信人抵赖自己的声明。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被中途篡改。那么为什么说PGP用的是RSA和传统加密的杂合算法呢?因为RSA算法计算量极大,在速度上不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法。IDEA的加(解)密速度比RSA快得多,所以实际上PGP是用一个随机生成密钥(每次加密不同)使用IDEA算法对明文加密,然后用RSA算法对该密钥加密。这样收件人同样是用RSA解密出这个随机密钥,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。PGP的创意有一半就在这一点上了,RSA体系20世纪70年代就已提出,一直没有推广应用,主要原因是速度太慢,PGP正好解决了这个问题。PGP创意的另一半在于密钥管理。一个成熟的加密体系必然要有一个成熟的密钥管理机制配套。公钥体制的提出就是为了解决传统加密体系的密钥分配难保密的缺点。比如网络黑客们常用的手段之一就是“监听”,如果密钥是通过网络传送就太危险了。举个例子:NovellNetware的老版本中,用户的密码是以明文在线路中传输的,这样监听者轻易就获得了他人的密码。当然Netware4.1中数据包头的用户密码现在是加密的了。对PGP来说公钥本来就要公开,就没有防监听的问题。但公钥的发布中仍然存在安全性问题,例如公钥被篡改(PublicKeyTampering),这可能是公钥密码体系中最大的漏洞,因为大多数新手不能很快发现这一点。对于那些非常分散的人,PGP更赞成使用私人方式的密钥转介方式,因为这样更能反映出人们自然的社会交往,而且人们也能自由地选择信任的人来介绍。每个公钥有至少一个“用户名”(UserID),请尽量用自己的全名,最好再加上本人的E-mail地址,以免混淆。应当注意一点:在使用任何一个公钥之前,一定要首先对其认证。无论怎样,绝对不要直接信任一个从公共渠道(尤其是那些看起来保密的)得来的公钥,而要使用熟人介绍的公钥,或者自己与对方亲自认证。同样你也不要随便为别人签字认证他们的公钥,就和你在现实生活中一样,家里的房门钥匙你只会交给信任的人。下面讲述如何通过电话认证密钥。每个密钥有它们自己的标识(keyID),它是一个8位十六进制数,两个密钥具有相同keyID的可能性是几十亿分之一,而且PGP还提供了一种更可靠的标识密钥的方法:“密钥指纹”(key'sfingerprint)。每个密钥对应一串数字(16个8位十六进制数),这个数字重复的可能就更微乎其微了。而且任何人无法指定生成一个具有某个指纹的密钥,密钥是随机生成的,从指纹也无法反推出密钥来。这样你拿到某人的公钥后就可以和他在电话上核对这个指纹,从而认证他的公钥。关于公钥的安全性问题是PGP安全的核心,和传统单密钥体系一样,私钥的保密也是决定性的。相对公钥而言,私钥不存在被篡改的问题,但存在泄露的问题。RSA的私钥是很长的一个数字,用户不可能将它记住,PGP的办法是让用户为随机生成的RSA私钥指定一个–211–\n计算机信息安全口令(passphase)。只有通过给出正确口令才能将私钥释放出来使用,用口令加密私钥的方法保密程度和PGP本身是一样的。所以私钥的安全性问题实际上首先是对用户口令的保密。当然私钥文件本身失密也很危险,因为破译者所需要的只是用穷举法试探出口令了,虽说很困难但毕竟是损失了一层安全性。PGP在安全性问题上的精心考虑体现在PGP的各个环节。比如每次加密的实际密钥是个随机数,大家都知道计算机是无法产生真正的随机数的。PGP程序对随机数的产生是很审慎的,关键的随机数像RSA密钥的产生是从用户敲键盘的时间间隔上取得随机数种子的。另外,PGP内核使用PKZIP算法来压缩加密前的明文。一方面对电子邮件而言,压缩后加密再经过7bits编码密文有可能比明文更短,这就节省了网络传输的时间。另一方面,明文经过压缩,实际上相当于经过一次变换,信息更加杂乱无章,对明文攻击的抵御能力更强。PGP中使用的PKZIP算法是经过原作者同意的。PKZIP算法是一个公认的压缩率压缩速度都相当好的压缩算法。在PGP中使用的是PKZIP2.0版本兼容的算法。Windows下免费的PGP最新版本是8.0.2,可从http://www.pgp.com/免费下载,PGP的运行界面如图11.1所示。图11.1PGP8.02forWindows11.2网络加密与密钥管理加密技术用于网络安全通常有两种形式,一种是面向网络,另一种是面向服务。面向网络的加密技术通常工作在网络层或传输层,使用经过加密的数据包传送、认证网络路由及其他网络协议所需的信息,从而保证网络的连通性和可用性不受损害。面向应用服务的加密技术是目前较为流行的方法,其优点在于实现相对简单,不需要对网络数据所经过的网络的安全性能提出特殊要求,可对电子邮件等数据实现端到端的安全保障。11.2.1网络加密对传输信息的加密保护在计算机网络中应用最为普遍,加密的方式主要有链路加密、端到端加密和混合加密。–212–\n第11章E-mail安全与网络加密1.链路加密如图11.2所示,链路加密是对网中两个相邻节点之间传输的数据进行加密保护。在受保护数据所选定的路由上,任一对节点和相应的调制解调器之间安装有相同的密码机,并配置相应的密钥,不同节点对之间的密码机和密钥不一定相同。明文密文明文密文明文调调调调密密密密制制制制节码码节码码节解解解解点机机点机机点调调调调1122器器器器数据数据图11.2链路加密2.端到端加密如图11.3所示,端到端加密是对一对用户之间的数据连续地提供保护。它要求各对用户(而不是各对节点)采用相同的密码算法和密钥。对于传送通路上的各中间节点,数据是保密的。链路加密虽然能防止搭线窃听,但不能防止在消息交换过程中由于错误路由所造成的泄密,参见图11.4。在链路加密方式下,由网络提供密码功能,故对用户来说是透明的。在端到端加密方式下,如果加密功能由网络自动提供,则对用户来说也是透明的;如果加密功能由用户自己选定,则对用户来说就不是透明的。采用端到端加密方式时,只在需用加密保护数据的用户之间备有密码设备,因而可以大大减少整个网中使用密码设备的数量。网络中传送的消息由报头(含目的地、作业号、报文源、起止指示符、报文类别、格式等业务数据)和报文(用户之间交换的数据)组成。在链路加密方式下,报文和报头可同时进行加密,这有利于对抗业务流量分析。密钥2密钥2用标ED户目密钥1密钥1定2预用消息节点3节点4户ED交换密钥3密钥31中心实用节点1节点2际ED户目标3通信网终端终端节点5节点6图11.3端对端加密图11.4链路加密的弱点3.混合加密采用端到端加密方式只能对报文加密,报头则以明文形式传送,容易受业务流量分析的攻击。为了保护报头中的敏感信息,可以用图11.5所示的端到端和链路混合加密方式。在此–213–\n计算机信息安全方式下,报文将被两次加密,而报头则只由链路方式进行加密。在明文和密文混传的网中,可在报密钥3密钥3密钥1头的某个特定位上指示报文是否被加用密,也可按线路协议由专用控制信息实户密钥1密钥2密钥2ED2现自动起止加密操作。D用消息节点户密钥4从成本、灵活性和安全性来看,一ED交换1密钥4密钥5E中心用般端到端加密方式较有吸引力。对某些节点户ED3远程处理机构,链路加密可能更为合D节点适。如当链路中节点数很少时,链路加密操作对现有程序是透明的,无须操作图11.5混合加密员干预。目前大多数链路加密设备是以线路的工作速度进行工作的,因而不会引起传输性能的显著下降。另外,有些远端设备的设计或管理方法不支持端到端加密方式。端到端加密的目的是对从数据的源节点到目的节点的整个通路上所传的数据进行保护,而链路加密的目的是对全部通路或链路中有被潜伏截收危险的一段通路进行保护。网中所选用的数据加密设备要与数据终端设备及数据电路端接设备的接口一致,并且要遵守国家和国际标准规定。当前,信息技术及其应用的发展领先于安全技术,因此应大力发展安全技术以适应信息技术发展的需要。安全技术和它所带来的巨大效益远未被人们所认识,但对这个问题的认识绝不能太迟钝。信息的安全设计是个较复杂的问题,应当统筹考虑,协调各种要求,并力求降低成本。11.2.2密钥管理一个系统中各实体之间通过共享的一些公用数据来实现密码技术,这些数据可能包括公开的或秘密的密钥、初始化数据以及一些附加的非秘密参数。系统用户首先要进行初始化工作。密钥是加密算法中的可变部分,在采用密码技术保护的现代信息系统中,其安全性取决于对密钥的保护,而不是对算法或硬件本身的保护。密码体制可以公开,密码设备可能丢失,同一型号的密码机仍可继续使用。然而一旦密钥丢失或出错,不但合法用户不能提取信息,而且可能使非法用户窃取信息。因此,产生密钥算法的强度、密钥长度以及密钥的保密和安全管理在保证数据系统的安全中是极为重要的。1.密钥管理的基本概念密钥管理是处理密钥自产生到最终销毁的整个过程中的有关问题,包括系统的初始化,密钥的产生、存储、备份/恢复、装入、分配、保护、更新、控制、丢失、吊销和销毁等内容。设计安全的密码算法和协议并不容易,而密钥管理则更困难。密钥是保密系统中更为脆弱的环节,其中分配和存储可能是最棘手的。密钥管理在过去都是手工作业来处理点-点通信中的问题。随着通信技术的发展,多用户保密通信网的出现,在一个具有众多交换节点和服务器,以及多出前者几个数量级的工作站及用户的大型网络中,密钥管理工作极其复杂,要求密钥管理系统逐步实现自动化。在一个大型通信网络中,数据将在多个终端和主机之间进行传递。–214–\n第11章E-mail安全与网络加密终端加密的目的在于使无关用户不能读取别人的信息,但这需要大量的密钥而使密钥管理复杂化。类似地,在主机系统中,许多用户向同一主机存取信息,也要求彼此之间在严格的控制之下相互隔离。因此,密钥管理系统应当能保证在多用户、多主机和多终端情况下的安全和有效性。密钥管理不仅影响系统的安全性,而且涉及系统的可靠性、有效性和经济性。类似于信息系统的安全性,密钥管理也有物理上、人事上、规程上和技术上的内容,本节将主要从技术上讨论密钥管理的有关问题。在分布系统中,人们已经设计了用于自动密钥分配业务的几个方案。其中某些方案已被成功地使用,如Kerberos和ANSIX9.17方案采用了DES技术,而ISO-CCITTX.509目录认证方案主要依赖于公钥技术。密钥管理的目的是维持系统中各实体之间的密钥关系,以抗击如以下各种可能的威胁。(1)密钥的泄露。(2)秘密钥或公开钥的确证性的丧失,确证性包括共享或有关于一个密钥的实体身份的知识或可证实性。(3)秘密钥或公开钥未经授权使用,如使用失效的密钥或违例使用密钥。密钥管理与特定的安全策略有关,而安全策略又根据系统环境中的安全威胁制定。一般安全策略需要对下述几个方面做出规定。ò密钥管理的技术和行政方面要实现哪些要求和所采用的方法,包括自动和人工方式。ò每个参与者的责任和义务。ò为支持和审计、追踪与安全有关事件需做的记录类型。密钥管理要借助于加密、认证、签名、协议及公证等技术。密钥管理系统中常常依靠可信赖第三方参与的公证系统。公证系统是通信网中实施安全保密的一个重要工具,它不仅可以协助实现密钥的分配和证实,而且可以作为证书机构、时戳代理、密钥托管代理和公证代理等。它不仅可以断定文件签署时间,而且可保证文件本身的真实可靠性,使签字者不能否认其在特定时间对文件的签字。在发生纠纷时可以根据系统提供的信息进行仲裁。公证机构还可采用审计追踪技术,对密钥的注册、证书的制作,密钥更新、吊销进行记录审计等。2.密钥的种类密钥的种类多而繁杂,但从一般通信网的应用来看可有下述几种。(1)基本密钥(BaseKey)或称初始密钥(PrimaryKey)基本密钥是由用户选定或由系统分配的,可在较长时间(相对于会话密钥)内由一对用户所专用的秘密钥,故又称作用户密钥(UserKey)。要求它既安全,又便于更换,和会话密钥一起去启动和控制某种算法所构造的密钥产生器,来产生用于加密数据的密钥流。(2)会话密钥(SessionKey)会话密钥即两个通信终端用户在一次通话或交换数据时所用的密钥。当用它对传输的数据进行保护时称为数据加密密钥(DataEncryptingKey),当用它保护文件时称为文件密钥(FileKey)。会话密钥的作用是使我们可以不必太频繁地更换基本密钥,有利于密钥的安全和管理。这类密钥可由用户双方预先约定,也可由系统通过密钥建立协议动态地产生并赋予通信双方,它为通信双方专用,故又称专用密钥(PrivateKey)。由于会话密钥使用时间短暂而有利于安全性,它限制了密码分析者攻击时所能得到的同一密钥下加密的密文量;在不慎将–215–\n计算机信息安全密钥丢失时,由于使用该会话密钥加密的数据量有限因而影响不大;会话密钥只在需要时通过协议建立,从而降低了密钥的分配存储量。(3)密钥加密密钥(KeyEncryptingKey)它用于对传送的会话或文件密钥进行加密时采用的密钥,也称次主密钥(SubmasterKey)、辅助(二级)密钥(SecondaryKey)或密钥传送密钥(KeyTransportKey)。通信网中每个节点都分配有一个这类密钥。为了安全,各节点的密钥加密密钥应互不相同。每台主机都须存储有关到其他各主机和本主机范围内各终端所用的密钥加密密钥,而各终端只需要一个与其主机交换会话密钥时所需的密钥加密密钥,称之为终端主密钥(TerminalMasterKey)在主机和一些密码设备中,存储各种密钥的装置应有断电保护和防窜扰、防欺诈等控制功能。(4)主机主密钥(HostMasterKey)它是对密钥加密密钥进行加密的密钥,存于主机处理器中。除了上述几种密钥外,还有一些密钥在工作中会碰到。例如,用户选择密钥(CustomOptionKey),用来保证同一类密码机的不同用户使用不同的密钥;还有族密钥(FamilyKey)及算法更换密钥(AlgorithmChangingKey)等。这些密钥的某些作用可以归入上述几类中的一类。它们主要是在不增大更换密钥工作量的条件下,扩大可使用的密钥量。基本密钥一般通过面板开关或键盘选定,而用户选择密钥常要通过更改密钥产生算法来实现。例如,在非线性移位寄存器型密钥流产生器中,基本密钥和会话密钥用于确定寄存器的初态,而用户选择密钥可决定寄存器反馈线抽头的连接。(5)在双钥体制下,有公开钥和秘密钥、签名密钥和证实密钥之分。习题1.简述E-mail工作原理。2.保护E-mail的方法有哪些?3.网络加密的方式主要有哪几种?4.上机练习:熟练使用邮件加密软件PGP。–216–\n第12章数据库系统安全信息技术在全球的迅猛发展极大地推动了知识经济的繁荣和人类文明的演进,与之密切相关的各种数据库管理系统(DBMS)产品也迅速经历了从集中到分布,从单机环境到网络环境,从支持信息管理到联机事务处理(OLTP),再到联机分析处理(OLAP)的发展过程,虽然系统的功能不断增强;但因为数据库系统中大量数据的集中存放和管理,往往成为非法入侵者攻击的焦点,因而,如何保证和加强其安全性和保密性,已成为数据库管理员关心的首要问题之一。本章将学习以下主要内容。1.数据库系统安全的含义、特性。2.数据库基本安全架构,数据库加密。3.数据库的故障类型。4.数据库的备份与恢复。12.1数据库系统安全概述12.1.1简介数据库系统的安全性要求与已讨论过的其他计算系统的安全性要求有很大的相似性。数据库安全是指保护数据库数据不被非法访问和非法更新,并防止数据的泄露和丢失。保证数据库的安全涉及立法、管理和技术等多方面的问题,这里只讨论技术上的一些问题。数据库系统,一般可以理解成两部分:一部分是数据库,按一定的方式存取数据;另一部分是数据库管理系统(DBMS),为用户及应用程序提供数据访问,并具有对数据库进行管理、维护等多种功能。数据库系统安全,包含以下两层含义。第一层是指系统运行安全,它包括:法律、政策的保护,如用户是否有合法权利,政策是否允许等;物理控制安全,如机房加锁等;硬件运行安全;操作系统安全,如数据文件是否保护等;灾害、故障恢复;死锁的避免和解除;电磁信息泄漏防止。第二层是指系统信息安全,它包括:用户口令字鉴别;用户存取权限控制;数据存取权限、方式控制;审计跟踪;数据加密。–217–\n计算机信息安全12.1.2数据库系统安全特性1.数据独立性数据独立于应用程序之外。理论上数据库系统的数据独立性分为以下两种。(1)物理独立性数据库的物理结构的变化不影响数据库的应用结构,从而也就不能影响其相应的应用程序。这里的物理结构是指数据库的物理位置、物理设备等。(2)逻辑独立性数据库逻辑结构的变化不会影响用户的应用程序,数据类型的修改、增加、改变各表之间的联系都不会导致应用程序的修改。这两种数据独立性都要靠DBMS来实现。到目前为止,物理独立性已经能基本实现,但逻辑独立性实现起来非常困难,数据结构一旦发生变化,一般情况下,相应的应用程序都要作或多或少的修改。追求这一目标也成为数据库系统结构复杂的一个重要原因。2.数据安全性一个数据库能否实现防止无关人员得到他不应该知道的数据,是数据库是否实用的一个重要指标。如果一个数据库对所有的人都公开数据,那么这个数据库就不是一个可靠的数据库。一般,比较完整的数据库对数据安全性采取以下措施。(1)将数据库中需要保护的部分与其他部分相隔离。(2)使用授权规则。这是数据库系统经常使用的一个办法,数据库给用户ID号和口令、权限。当用户用此ID号和口令登录后,就会获得相应的权限。不同的用户或操作会有不同的权限。比如,对于一个表,某人有修改权,而其他人只有查询权。(3)将数据加密,以密文的形式存于数据库内。3.数据的完整性数据完整性这一术语用来泛指与损坏和丢失相对的数据状态。它通常表明数据在可靠性与准确性上是可信赖的,同时也意味着数据有可能是无效的或不完整的。数据完整性包括数据的正确性、有效性和一致性。(1)正确性数据在输入时要保证其输入值与定义这个表时相应的域的类型一致。如表中的某个字段为数值型,那么它只能允许用户输入数值型的数据,否则不能保证数据库的正确性。(2)有效性在保证数据正确的前提下,系统还要约束数据的有效性。例如:对于月份字段,若输入值为0,那么这个数据就是无效数据,这种无效输入也称为“垃圾输入”。当然,若数据库输出的数据是无效的,相应称为“垃圾输出”。(3)一致性当不同的用户使用数据库,应该保证他们取出的数据必须一致。因为数据库系统对数据的使用是集中控制的,因此数据的完整性控制还是比较容易实现的。–218–\n第12章数据库系统安全4.并发控制如果数据库应用要实现多用户共享数据,就可能在同一时刻多个用户要存取数据,这种事件叫做并发事件。当一个用户取出数据进行修改,在修改存入数据库之前如有其他用户再取此数据,那么读出的数据就是不正确的。这时就需要对这种并发操作施行控制,排除和避免这种错误的发生,保证数据的正确性。5.故障恢复当数据库系统运行时出现物理或逻辑上的错误时,如何尽快将它恢复正常,这就是数据库系统的故障恢复功能。12.2数据库基本安全架构数据库系统信息安全技术性依赖于两个层次:一层是数据库管理系统本身提供的用户名/口令字识别、视图、使用权限控制、审计等管理措施,大型数据库管理系统Oracle、Sybase等均有此功能;另一层就是靠应用程序设置的控制管理,如使用较普遍的PowerBuilder、VisualFoxpro、Delphi、VisualC++等。作为数据库用户,最关心自身数据资料的安全,特别是用户的查询权限问题。对此,目前一些大型数据库管理系统(如Oracle、Sybase等产品)提供了以下几种主要手段。12.2.1用户分类不同类型的用户授予不同的数据管理权限。一般将权限分为三类:数据库登录权限类、资源管理权限类和数据库管理员权限类。有了数据库登录权限的用户才能进入DBMS,才能使用DBMS所提供的各类工具和实用程序。同时,数据库客体的主人可以授予这类用户以数据查询、建立视图等权限。这类用户只能查阅部分数据库信息,不能改动数据库中的任何数据。具有资源管理权限的用户,除了拥有上一类的用户权限外,还有创建数据库表、索引等数据库客体的权限,可以在权限允许的范围内修改、查询数据库,还能将自己拥有的权限授予其他用户,可以申请审计。具有数据库管理员权限的用户将具有数据库管理的一切权限,包括访问任何用户的任何数据,授予(或回收)用户的各种权限,创建各种数据库客体,完成数据库的整库备份、装入重组以及进行全系统的审计等工作。这类用户的工作是谨慎而带全局性的工作,只有极少数用户属于这种类型。例如在Oracle中,用户并非对每个对象进行访问逐个授权,那样太繁杂了,而是为用户账号授予一个角色进行访问,该角色定义了一组完备的权限。Oracle可以提供CONNECT、RESOURSE和DBA角色以进行不同级别的访问。具有CONNECT角色的用户账号有权访问数据库,但不能创建自己的对象;具有RESOURSE角色的用户账号可以创建自己的数据库对象;DBA角色提供给用户账号对数据库的完全访问权限以及向其他用户账号授予权限的能–219–\n计算机信息安全力。在角色中的组织结构允许将数据库安全机制按照实际社会组织形式进行建模和构造。可以将一个角色定义在很高的级别上,例如系统的使用者;或者定义在更详细的级别上,例如会计,雇员和雇主。所以我们可以定制不同的安全角色,一个用户可以对应多个安全角色,他的访问控制权限是多个安全角色权限的并集;一个安全角色可以关联多个用户。通过角色,可以有效地进行安全性控制。如在Oracle中,可使用口令保护角色来限制来自特别查询工具(如SQL*PLUS)对重要数据的访问。它们可以用来使INSERT、UPDATA以及DELETE权限或者所有权限失效。角色的口令必须对应用程序的使用者保密。没有口令和使之生效的方法,用户会被禁止访问相应的数据。此外,同WindowsNT的域用户管理类似,我们通过多个设置组来区别用户对数据库的操作权限和限制用户对客户端开发工具的操作权限。一般可以按以下三类分组。(1)系统管理员组也就是全权用户组,除了对客户端拥有所有操作权限以外,还具有对数据字典(对其他用户权限的授予或取消)、开发工具的操作权限。(2)一般用户组它的具体权限是由系统管理员组的成员来规定的。(3)缺省用户组对没有授权的合法用户系统缺省地认为它拥有缺省用户组的系统操作权限。当然,缺省用户组权限的大小通过系统管理员端开发工具也是可变的。一个用户可以关联多个组,其系统操作权限是多个组权限的并集;一个组里可以有多个用户。如此,通过安全角色和组来为用户授权,可以一次性为拥有相同权限的用户定义权限供多次分配,简化授权过程,并可以降低安全机制的负担和成本。对于分布式DBMS也应该采用集中授权的方式,全系统的存取权限和操作权限都由统一的DBA(数据库管理员)进行定义和管理。即用户账号、角色和组都受数据库管理员管理。12.2.2数据分类同一类权限的用户,对数据库中数据管理和使用的范围又可能是不同的。为此,DBMS提供了将数据分类的功能,即建立视图。管理员把某用户可查询的数据逻辑上归并起来,简称一个或多个视图,并赋予名称,再把该视图的查询权限授予该用户(也可以授予多个用户)。这种数据分类可以进行得很细,其最小粒度是数据库二维表中一个交叉的元素。一般不要给用户直接访问基表的权限。如果你希望让用户使用交互式工具如Oracle提供的SQL*PLUS、Developer/2000来访问数据库,可以只给他们访问视图和存储过程的权限,而不是对表的直接访问权限。视图和存储过程同数据库中的其他对象一样,也要进行权限设定,这样用户只能取得对视图和存储过程的授权,而无法访问基表。12.2.3审计追踪与攻击检测虽然存取控制在经典和现代安全理论中都是实施安全策略的最重要手段,但软件工程技术目前还没有达到形式证明一个系统的安全体系的程度,因此不可能保证任何一个系统完全–220–\n第12章数据库系统安全不存在安全漏洞,也没有一种可行的方法可以彻底解决合法用户在通过身份认证后滥用特权的问题。因而,大型DBMS提供的审计追踪与攻击检测便成了一个十分重要的安全措施,也是任何一个安全系统中不可缺少的最后一道防线。审计功能在系统运行时可以自动将对数据库的所有操作记录在审计日志中,它用来监视各用户对数据库施加的动作。攻击检测系统则是根据审计数据分析检测内部和外部攻击者的攻击企图,再现导致系统现状的事件,分析发现系统安全的弱点,追查相关责任者。有两种方式的审计:即用户审计和系统审计。用户审计时,DBMS的审计系统记下所有对自己表或视图进行访问的企图(包括成功的和不成功的)及每次操作的用户名、时间、操作代码等信息。审计的结果存储在数据库的审计表中(系统表)之中,利用这些信息用户可以进行审计分析。系统审计由系统管理员进行,其审计内容主要是系统一级命令以及数据库实例的使用情况。例如对于Oracle,数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式。如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。如此,每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。对一个Oracle数据库实例,一旦在线日志填满后,可形成在线日志归档文件。归档的在线日志文件被惟一标识并合并成归档日志。日志项记录的数据不仅可为攻击检测系统提供数据依据,建立不同的攻击检测模型,检测可能的攻击行为和攻击企图,并用于重构对数据库所作的全部修改,对数据库备份和恢复有着重要作用。设计审计机制首先要根据系统要求的安全级别确定审计那些与安全有关的事件,如使用标识和鉴定机制的事件、将客体引入用户空间的事件、删除实体的事件等。12.2.4数据库加密一般而言,数据库系统提供的上述基本安全技术能够满足一般的数据库应用,但对于一些重要部门或敏感领域的应用,仅靠上述这些措施是难以完全保证数据的安全性,某些用户尤其是一些内部用户仍可能非法获取用户名、口令字,或利用其他方法越权使用数据库,甚至可以直接打开数据库文件来窃取或篡改信息。因此,有必要对数据库中存储的重要数据进行加密处理,以实现数据存储的安全保护。实现数据库加密以后,各用户(或用户组)的数据由用户用自己的密钥加密,可以使得即使是数据库管理员获得的信息也无法进行正常解密,从而保证了用户信息的安全。另外,通过加密,数据库的备份内容成为密文,从而能减少因备份介质失窃或丢失而造成的损失。由此可见,数据库加密是保证用户数据隔离、防止重要数据泄露的重要手段,对于企业内部安全管理,也是不可或缺的。与传统的通信或网络加密技术相比,由于数据保存的时间要长得多,对加密强度要求也更高;而且,由于数据库中的数据量大,使用的用户多,对加密解密的时间要求也更高,要求不会明显降低系统性能。一个密码系统包含明文集合、密文集合、密钥集合和算法,其中密钥和算法构成了密码系统的基本单元。算法是一些公式、法则或程序,规定明文与密文之间的变换方法,密钥可以看作算法中的参数。数据库密码系统要求将明文数据加密成密文数据,数据库中存储密文数据,查询时将密文数据取出解密得到明文信息。–221–\n计算机信息安全1.数据库加密的特点较之传统的数据加密技术,数据库密码系统有其自身的要求和特点。传统的加密以报文为单位,加解密都是从头至尾顺序进行。数据库数据的使用方法决定了它不可能以整个数据库文件为单位进行加密。当符合检索条件的记录被检索出来后,就必须对该记录迅速解密。然而该记录是数据库文件中随机的一段,无法从中间开始解密,除非从头到尾进行一次解密,然后再去查找相应的这个记录,显然这是不合适的。必须解决随机地从数据库文件中某一段数据开始解密的问题。2.数据库密码系统应采用公开密钥传统的密码系统中,密钥是秘密的,知道的人越少越好。一旦获取了密钥和密码体制就能攻破密码,解开密文。而数据库数据是共享的,有权限的用户随时需要知道密钥来查询数据。因此,数据库密码系统宜采用公开密钥的加密方法。3.多级密钥结构数据库关系运算中参与运算的最小单位是字段,查询路径依次是库名、表名、记录名和字段名。因此,字段是最小的加密单位。也就是说当查得一个数据后,该数据所在的库名、表名、记录名、字段名都应是知道的。对应的库名、表名、记录名、字段名都应该具有自己的子密钥,这些子密钥组成了一个能够随时加/解密的公开密钥。可以设计一个数据库,其中存放有关数据库名、表名、字段名的子密钥,系统启动后将这些子密钥读入内存供数据库用户使用。与记录相对应的子密钥,一般的方法应是在该记录中增加一条子密钥数据字段。4.合理处理数据这包括几方面的内容。首先要恰当地处理数据类型,否则DBMS将会因加密后的数据不符合定义的数据类型而拒绝加载,或因识别不了必须的部分数据无从完成对数据库文件的管理和使用;其次,需要处理数据的存储问题,实现数据库加密后,应基本上不增加空间开销。在目前条件下,数据库关系运算中的比较、匹配字段,如表间连接码、索引字段等数据不宜加密。据此,一般只能对数据库中数据进行部分加密。当然,从提高系统安全性出发还可选择联机全数据库加密或脱机全数据库加密等不同的加密方式。5.不影响合法用户的操作加密系统影响数据操作响应时间应尽量短。在现阶段,平均延迟时间不应超过0.1秒。此外,对数据库的合法用户来说,数据的录入、修改和检索操作应该是透明的,不需要考虑数据的加/解密问题。12.3数据库的备份与恢复尽管系统采取了一定的保护措施来防止数据库安全性和完整性被破坏,保证并发事务–222–\n第12章数据库系统安全的正确执行,但数据库中的数据仍无法保证绝对不遭受破坏。例如,计算机的硬盘存储器中“磁头碰撞”将会丢失磁盘上存储的数据。硬件故障、软件的错误、操作员的失误以及恶意的破坏等都会引发事务的非正常中断,破坏数据库并造成全部或部分数据丢失。因此系统必须具有检测故障并把数据从错误状态中恢复到某一正确状态的功能,这就是数据库的恢复。任何—个系统都难免可能由于种种原因而发生故障。所以,备份及故障恢复是数据库系统可靠性、实用性的基本保证。备份与恢复对数据库的安全来说是至关重要的。备份是指在某种介质上,如磁带、磁盘等,存储数据库或部分数据库的拷贝。恢复是指及时将数据库返回到原来的状态。12.3.1故障的类型数据库系统运行时可能发生各种类型的故障。可分类如下:1.事务故障事务故障就是由程序执行错误而引起事务非预期的、异常的终止。它发生在单个事务的局都范围内,实际上就是程序故障,主要有如下四点。(1)逻辑上的错误。如运算溢出、死循环、非法操作、地址越界等。(2)无效(违犯完整性限制)的输入数据。(3)存取控制(安全性)违例。(4)资源限定。如为了解除死锁,实施可串行化的调度策略等而中止一个事务。对于那些预先设计的、程序本身有显式的例外处理的故障不算事务故障。这种故障不会毁坏数据库(但可能使数据库处于不正确状态),也不直接影响别的事务。2.系统故障系统故障是指使系统停止运行的任何事件,系统此时需重新启动,内存数据可能丢失。主要有如下四点。(1)CPU等硬件故障。(2)操作系统出错。(3)电源故障。(4)操作员错误。这类故障将影响所有事务使其非正常结束,内存、各种缓冲区的内容丢失,但并不会毁坏数据库;而是造成数据库处于非正确状态。它直接影响当前正在活动的所有事务。3.介质故障介质故障就是外存设备故障。主要有如下四点。(l)磁头碰撞盘面。(2)突然的强磁场干扰。(3)数据传输部件出错。(4)磁盘控制器出错。–223–\n计算机信息安全这类故障发生可能性小,但破坏性大,使数据库本身被破坏。它影响到出故障前的全部事务。4.计算机病毒计算机病毒是一种人为的故障或破坏,它对数据库的影响有两种可能性:一是数据库本身被破坏;二是数据库没有被破坏,但数据可能不正常。这种计算机病毒程序与其他程序不同,它具有可以繁殖、潜伏、传播和破坏等特点,从而造成对计算机系统及数据库的危害。病毒的种类很多,不同病毒有不同的特征。为此计算机的安全工作者已研制了许多预防、检查、诊断、消灭计算机病毒的软件。但是,至今还没有一种使得计算机“终生”免疫的软件。因此数据库一旦被破坏仍要用恢复技术对数据库加以恢复。12.3.2数据库的备份12.3.2.1数据库备份的分类数据库的备份大致有三种类型:冷备份、热备份和逻辑备份。1.冷备份冷备份的思想是关闭数据库,在没有最终用户访问它的情况下将其备份。冷备份通常在系统无人使用的时候进行。冷备份的最好办法之一是建立一个批处理文件,该文件在指定的时间先关闭数据库,然后对数据库文件进行备份,最后再启动数据库。这种方法在保持数据的完整性方面是最好的一种。但是,如果数据库太大,无法在备份时间窗口中完成对它的备份,此时,应该考虑采用其他的适用方法。2.热备份数据库正在运行时所进行的备份称为热备份。数据库的热备份依赖于系统的日志文件。在备份进行时,日志文件将需要作更新或更改的指令“堆起来”,并不是真正将任何数据写入数据库记录。当这些被更新的业务被堆起来时数据库实际上并未被更新,因此数据库能被完整地备份。热备份方法的一个致命的缺点是具有很大的风险性。其原因有三个,第一如果系统在进行备份时崩溃,那么堆在日志文件中的所有业务都会被丢失,即造成数据的丢失。第二,在进行热备份时,要求数据库管理员(DBA)仔细地监视系统资源,确保存储空间不会被日志文件占用完而造成不能接受业务的局面。最后,日志文件本身在某种程度上也需要作备份以便重建数据。这样需要考虑另外的文件并使其与数据库文件协调起来为备份增加了复杂度。3.逻辑备份所谓的逻辑备份是使用软件技术从数据库中提取数据并将结果写入一个输出文件。该输出文件不是一个数据库表,而是表中的所有数据的一个映像。在大多数客户/服务器结构模式–224–\n第12章数据库系统安全的数据库中,结构化查询语言(SQL)就是用来建立输出文件的。该过程较慢,对大型数据库的全盘备份不太实用。但是,这种方法适合用于增量备份,即备份那些上次备份之后改变了的数据。12.3.2.2数据库备份的性能数据库备份的性能可以用两个参数来说明其好坏,这两个参数就是被复制到备份介质(磁盘、磁带等)上数据的数据量和进行该项工作所花的时间。数据量和时间开销之间是一种很难解决的矛盾。如果在备份窗口中所有的数据都被传输到备份介质上,就不存在什么问题。如果备份窗口中不能备份所有的数据,就会面临一个十分严重的问题。通常,提高数据库备份性能的办法有如下几种。(1)升级数据库管理系统。(2)使用更快的备份设备。(3)备份到磁盘上。磁盘可以是处于同一系统上的,也可以是网络的另一个系统上的。如能指定一个完整的容量或服务器作为备份磁盘之用的话,这种方法的效果最好。(4)使用本地备份设备。使用此方法时应保证连接的SCSI接口适配卡能承担高速扩展数据传输。另外,应将备份设备接在单独的SCSI接口上。(5)使用原始磁盘分区备份。直接从磁盘分区读写数据,而不是使用文件系统API调用。这种办法可加快备份的执行。12.3.3数据库的恢复12.3.3.1数据库恢复技术的种类恢复技术大致可以分为三种:单纯以备份为基础的恢复技术、以备份和运行日志为基础的恢复技术和基于多备份的恢复技术。1.单纯以备份为基础的恢复技术单纯以备份为基础的恢复技术是由文件系统恢复技术演变过来的,即周期性地把磁盘上的数据库复制或转储到磁带上。由于磁带是脱机存放的,系统对它没有任何影响。当数据库失效时,可取最近一次从磁盘复制到磁带上的数据库备份来恢复数据库,即把备份磁带上的数据库复制到磁盘的原数据库所在的位置上。利用这种方法,数据库只能恢复到最近备份的一次状态,从最近备份到故障发生期间的所有数据库的更新数据将会丢失。这意味着备份的周期越长,丢失的更新的数据也就越多。数据库中的数据一般只部分更新,很少全部更新。如果只转储其更新过的物理块,则转储的数据量会明显减少,也不必用过多的时间去转储。如果增加转储的频率,则可以减少发生故障时已被更新过的数据的丢失。这种转储称为增量转储。利用增量转储作备份的恢复技术实现起来颇为简单,也不增加数据库正常运行时的开销,其最大的缺点是不能恢复到数据库的最近状态。这种恢复技术只适用于小型的和不太重要的数据库系统。–225–\n计算机信息安全2.以备份和运行日志为基础的恢复技术系统运行日志用于记录数据库运行的情况,一般包括三个内容:前像(BeforeImage,BI)、后像(AfterImage,AI)和事务状态。所谓的前像是指数据库被一个事务更新时,所涉及的物理块更新前的影像,它以物理块为单位。前像在恢复中所起的作用是帮助数据库恢复更新前的状态,即撤销更新,这种操作称为撤销(Undo)。后像恰好与前像相反,它是当数据库被某一事务更新时,所涉及的物理块更新后的影像,其单位和前像一样以物理块为单位。后像的作用是帮助数据库恢复到更新后的状态,相当于重做一次更新。这种操作在恢复技术中称为重做(Redo)。运行日志中的事务状态记录每个事务的状态,以便在数据库恢复时作不同处理。事务状态的变化情况如图11.1所示。事务开始活动状态操作结束事务提交事务失败卷回结束图12.1事务状态变化示意图由图12.1可知,每个事务有两种可能的结果。(1)事务提交后结束这说明事务已成功执行,事务对数据库的更新能被其他事务访问。(2)事务失败需要消除事务对数据库的影响,对这种事务的处理称为卷回(Rollback)。基于备份和日志为基础的这种恢复技术,当数据库失效时,可取出最近备份,然后根据日志的记录,对未提交的事务用前像卷回,这称为向后恢复(BackwardRecovery);对已提交的事务,必要时用后像重做,称向前恢复(ForwardRecovery)。这种恢复技术的缺点是,由于需要保持一个运行的记录,既花费较大的存储空间,又影响到数据库正常工作的性能。它的优点可使数据库恢复到最近的一致状态。大多数数据库管理系统也都支持这种恢复技术。3.基于多备份的恢复技术多备份恢复技术的前提是每一个备份必须具有独立的失效模式(IndependentFailureMode),这样可以利用这些备份互为备份,用于恢复。所谓独立失效模式是指各个备份不至于因同一故障而一起失效。获得独立失效模式的一个重要的要素是各备份的支持环境尽可能地独立,其中包括不共用电源、磁盘、控制器以及CPU等。在部分可靠性要求比较高的系统–226–\n第12章数据库系统安全中,采用磁盘镜像技术,即数据库以双备份的形式存放在二个独立的磁盘系统中,为了使失效模式独立,两个磁盘系统有各自的控制器和CPU,但彼此可以相互切换。在读数时,可以选读其中任一磁盘;在写数据时,两个磁盘都写入同样的内容。当一个磁盘中的数据丢失时,可用另一个磁盘的数据来恢复。基于多备份的恢复技术在分布式数据库系统中用得比较多,这完全出于性能或其他考虑,在不同的结点上设有数据备份,而这些数据备份由于所处的结点不同,其失效模式也比较独立。12.3.3.2数据库恢复的方法数据库的恢复大致有如下几种方法。(1)周期性地对整个数据库进行转储,把它复制到备份介质中(如磁带中),作为后备副本,以备恢复之用。转储通常又可分为静态转储和动态转储。静态转储是指转储期间不允许(或不存在)对数据库进行任何存取、修改活动,而动态转储是指在存储期间允许对数据库进行存取或修改。(2)对数据库的每次修改,都记下修改前后的值,写入“运行日志”中。它与后备副本结合,可有效地恢复数据库。日志文件是用来记录数据库每一次更新活动的文件。在动态转储方式中必须建立日志文件,后备副本和日志文件综合起来才能有效地恢复数据库。在静态转储方式中,也可以建立日志文件。当数据库毁坏后可重新装入后备副本把数据库恢复到转储结束时刻的正确状态。然后利用日志文件,把已完成的事务进行重新处理,对故障发生时尚未完成的事务进行撤销处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。12.3.3.3利用日志文件恢复事务下面介绍一下如何登记日志文件以及发生故障后如何利用日志文件恢复事务。1.登记日志文件(Logging)事务运行过程中,系统把事务开始、事务结束(包括Commit和Rollback)以及对数据库的插入、删除、修改等每一个操作作为一个登记记录(Log记录)存放到日志文件中。每个记录包括的主要内容有:执行操作的事务标识、操作类型、更新前数据的旧值(对插入操作而言,此项为空值)和更新后的新值(对删除操作,此项为空值)。登记的次序严格按并行事务执行的时间次序,同时遵循“先写日志文件”的规则。我们知道写一个修改到数据库和写一个表示这个修改的Log记录到日志文件中是两个不同的操作,有可能在这两个操作之间发生故障,即这两个操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记下这个修改,则以后就无法恢复这个修改了。因此为了安全应该先写日志文件,即首先把Log记录写到日志文件上,然后写数据库的修改。这就是“先写日志文件”的原则。–227–\n计算机信息安全2.事务恢复利用日志文件恢复事务的过程分为如下两步。(1)从头扫猫日志文件找出哪些事务在故障发生时已经结束(这些事务有BeginTransaction和Commit记录),哪些事务尚未结束(这些事务只有BeginTransaction,无Commit记录)。(2)对尚未结束的事务进行撤销处理,对已经结束的事务进行重做。进行撤销处理的方法是:反向扫描日志文件,对每个撤销事务的更新操作执行反操作。即对已经插入的新记录执行删除操作,对已删除的记录重新插入,对修改的数据恢复旧值。进行重做处理的方法是:正向扫描日志文件,重新执行登记操作。对于非正常结束的事务显然应该进行撤销处理,以消除可能对数据库造成的不一致性。对于正常结束的事务进行重做处理也是需要的,这是因为虽然事务已发出Commit操作请求,但更新操作有可能只写到了数据库缓冲区(在内存),还没来得及物理地写到数据库(外存)便发生了系统故障、数据库缓冲区的内容被破坏,这种情况仍可能造成数据库的不一致性。由于日志文件上更新活动已完整地登记下来,因此可能重做这些操作而不必重新运行事务程序。3.利用转储和日志文件利用转储和日志文件可以有效地恢复数据库。当数据库本身被破坏时(如硬盘故障和病毒破坏)可重装转储的后备副本,然后运行日志文件,执行事务恢复,这样就可以重建数据库。当数据库本身没有被破坏,但内容已经不可靠时,可利用日志文件恢复事务,从而使数据库回到某一正确状态,这时不必重装后备副本。习题1.简述数据库系统安全特性。2.试分析数据库安全的重要性,说明数据库安全所面临的威胁。3.数据库中采用了哪些安全技术和保护措施?4.什么叫“前像”,什么叫“后像”?–228–\n第13章计算机病毒及防治随着计算机的不断普及和网络的发展,伴随而来的计算机病毒传播问题越来越引起人们的关注。1999年4月26日的CIH病毒大爆发给我们带来了巨大损失,而其后出现的Melissa、ExploreZIP、Ju1y-Killer以及“冲击波”等病毒也在计算机用户中造成了不小的恐慌。一时间,人人谈毒色变。计算机病毒真的那么可怕么?我们究竟该如何来认识及防治计算机病毒呢?本章将学习以下主要内容。1.计算机病毒的定义、分类、特点、破坏行为、入侵途径、作用机制。2.网络计算机病毒的特点、检测、防止及感染病毒后的修复。3.反病毒软件的原理及常用产品介绍。13.1计算机病毒概述13.1.1计算机病毒的定义自从1946年第一台冯-诺依曼型计算机ENIAC出世以来,计算机被广泛应用到人类社会的各个领域。现代通信技术的不断发展在带给人们方便快捷的沟通的同时也为计算机病毒提供了良好的生存环境。“计算机病毒”的概念最早是由美国病毒研究专家F.Cohen博士提出,计算机病毒本身是一段人为编制的特制程序,插入计算机程序中破坏计算机功能或者毁坏数据,影响计算机使用,具有自我复制能力,感染能力很强,可以很快地蔓延,且有一定的潜伏期,常常难以根除。这些特性与生物意义上的病毒非常相似。在《中华人民共和国计算机信息系统安全保护条例》中对计算机病毒的定义为:“计算机病毒是指编制或者在计算机程序中插入的计算机功能或者数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。”病毒不是来源于突发或偶然的原因。突发的停电和偶然的错误,会在计算机的磁盘和内存中产生一些乱码和随机指令,但这些代码是无序和混乱的。病毒则是一种比较完美的、精巧严谨的代码,按照严格的秩序组织起来,与所在的系统网络环境相适应和配合起来的。病毒不会通过偶然形成,并且需要有一定的长度,这个基本的长度从概率上来讲是不可能通过随机代码产生的。病毒是人为的特制程序。现在流行的病毒是由人为故意编写的,多数病毒可以找到作者信息和产地信息。–229–\n计算机信息安全13.1.2计算机病毒的分类从第一个病毒出世以来,究竟世界上有多少种病毒,说法不一。直至今日病毒的数量仍在不断增加,且表现形式也日趋多样化。如此多的种类,我们可以通过适当的标准把它们分门别类地归纳成几种类型,从而更好地来了解和掌握它们。1.按照寄生方式分类计算机病毒按其寄生方式大致可分为三类,一是引导型病毒;二是文件型病毒;三是混合型病毒,它集引导型和文件型病毒特性于一体。引导型病毒是指寄生在磁盘引导区或主引导区的计算机病毒。它是一种开机即可启动的病毒,先于操作系统而存在,所以用软盘引导启动的电脑容易感染这种病毒。此种病毒利用系统引导时,不对主引导区的内容正确与否进行判别的缺点,在引导系统的过程中侵入系统,驻留内存,监视系统运行,待机传染和破坏。通过感染磁盘上的引导扇区或改写磁盘分区表(FAT)来感染系统,该病毒几乎常驻内存,激活时即可发作,破坏性大。引导型病毒按其寄生对象的不同又可分为两类,即MBR(主引导区记录)病毒、PBR(分区引导记录)病毒。MBR病毒感染硬盘的主引导区,典型的病毒有大麻(Stoned)、2708病毒、火炬病毒等。PBR病毒感染硬盘的活动分区引导记录,典型的病毒有Brain、小球病毒、Girl病毒等。文件型病毒是指能够寄生在文件中的计算机病毒。这类病毒程序感染可执行文件或数据文件(即文件扩展名为.com、.exe和.ovl等可执行程序)。病毒以这些可执行文件为载体,当你运行可执行文件时就可以激活病毒。文件型病毒大多数也是常驻内存的。在各种PC机病毒中,文件型病毒占的数目最大,传播最广,采用的技巧也多。而且,各种文件型病毒的破坏性也各不相同,例如对全球造成了重大损失的CIH病毒,主要传染Windows95/98可执行程序,同时利用Windows系统的VxD技术,破坏计算机BIOS,导致系统主板损坏,使计算机无法启动。宏病毒是近几年才出现的,是一种新型的文件型病毒。宏病毒是利用宏语言编制的病毒,寄存于Word文档中,充分利用宏命令的强大系统调用功能,实现某些涉及系统底层操作的破坏。复合型病毒兼有文件型病毒和引导型病毒的特点。这种病毒扩大了病毒程序的传染途径,既感染磁盘的引导记录,又感染可执行文件。所以它的破坏性更大,传染的机会也更多,杀灭也更困难。这种病毒典型的有Flip病毒、新世纪病毒、One-half病毒等。2.按照破坏性分类按照计算机病毒的破坏情况可分两类:良性病毒和恶性病毒。良性病毒是指不破坏计算机内的数据,但会大量占用CPU空间,增加系统开销,降低系统工作效率的一类计算机病毒。这类病毒或许只是开个玩笑,一个恶作剧。某些爱好计算机并对计算机技术精通的人士为了炫耀自己的高超技术和智慧,凭借对软硬件的深入了解,编制了这些特殊的程序。这些程序通过载体传播出去后,在一定条件下被触发。对于使用染有病毒的计算机用户而言可能只是在使用计算机过程中出现的一段声音或图像。但他由于会影响计算机的正常操作,甚至造成系统死锁。其危害性仍不可忽视。这类病毒有小球病毒、–230–\n第13章计算机病毒及防治1575/1591病毒、救护车病毒、扬基病毒、Dabi病毒等等。而恶性病毒是指那些发作后,就会破坏系统或数据,给计算机系统造成各种破坏的一类计算机病毒。这类病毒很多且危害性极大,如米开朗基罗病毒、黑色星期五病毒以及火炬病毒等。一旦发作可以给用户造成不可挽回的损失。这类恶性病毒是很危险的,应当注意防范。3.按照传播媒介分类随着Internet的发展,计算机病毒又分为单机病毒和网络病毒。单机病毒的载体是磁盘,常见的是病毒从软盘传入硬盘,感染系统,然后再传染其他软盘,软盘又传染其他系统。网络病毒的传播媒介不再是移动式载体,而是网络通道,这种病毒的传染能力更强,破坏力更大。13.1.3计算机病毒的特点计算机病毒是一个程序,但和普通的计算机程序又有不同,它在计算机中生存、传播,具有以下特点。1.破坏性病毒主要是破坏计算机系统,破坏文件。这种病毒多数是恶作剧者的产物,一些人利用病毒的这些特点宣传自己的政治观点和主张。也有一些病毒设计者在其编制的病毒发作时进行人身攻击。2.传染性计算机病毒不但本身具有破坏性,更有害的是具有传染性,传染性是病毒的最本质的特征。病毒借助非法拷贝进行传染,其中一部分是自己复制自己,并在一定条件下传染给其他程序;另一部分则是在特定条件下执行某种行为。计算机病毒传染的渠道多种多样,如软盘、光盘、活动硬盘、网络等等。一旦病毒被复制或产生变种,若不加控制,其传染速度之快令人难以预防。3.潜伏性有些病毒像定时炸弹一样,具有潜在的破坏力。病毒感染系统一般可以潜伏一定时间,等到条件具备的时候一下子就爆发开来,给系统带来严重的破坏。病毒的潜伏性越好,其在系统中存在的时间就越长,病毒传染的范围也就越广。4.隐蔽性计算机病毒具有很强的隐蔽性,计算机病毒寄生在其他程序之中,当执行这个程序时,病毒就起破坏作用,而在未启动这个程序之前,它是不易被人发觉的。有的病毒可以通过病毒软件检查出来,有的根本就查不出来,有的时隐时现、变化无常,这类病毒处理起来通常很困难。病毒进入计算机后并开始破坏数据的过程不易被人发觉,且这种破坏性是不可知的。–231–\n计算机信息安全一旦病毒发作,往往已给计算机带来了不同程度的伤害。病毒的隐蔽地点常在系统的引导区、可执行文件中、数据文件中、硬盘分区表中或在硬盘的坏区等。5.不可预见性不同种类的病毒的代码千差万别,病毒的制作技术也在不断提高,就病毒而言,它永远超前于反病毒软件。新的操作系统和应用系统的出现,软件技术的不断发展,为计算机病毒的发展提供了新的发展空间,对未来病毒的预测将更加困难,这就要求人们不断提高对病毒的认识,增强防范意识。13.1.4计算机病毒的破坏行为和入侵途径13.1.4.1病毒的破坏行为计算机病毒在条件满足的情况下被激活,对系统或磁盘上的文件进行破坏活动,这种破坏活动有可能是删除磁盘文件,也可能是显示一串无用的提示信息,例如,在用感染了“大麻病毒”的系统盘进行启动时,屏幕上会出现“YourPCisnowStoned!”。有的病毒在发作时,会干扰系统或用户的正常工作,例如“小球”病毒在发作时,屏幕上会出现一个上下来回滚动的小球。而有的病毒,一旦发作,则会造成系统死机或删除磁盘文件。例如,“黑色星期五”病毒在激活状态下,只要判断当天既是13号又是星期五,则病毒程序的破坏模块即把当前感染该病毒的程序从磁盘上删除。计算机病毒的破坏行为体现了病毒的杀伤能力。病毒破坏行为的激烈程度取决于病毒作者的主观愿望和他所具有的技术能量。数以万计、不断发展扩张的病毒,其破坏行为千奇百怪,不可能穷举其破坏行为,难以做全面的描述,不同的病毒,其破坏行为各有不同。根据现有的病毒资料可以把病毒的破坏目标和攻击部位归纳如下。1.攻击系统数据区攻击部位包括:硬盘主引导扇区、Boot扇区、FAT表、文件目录。一般来说,攻击系统数据区的病毒是恶性病毒,受损的数据不易恢复。2.攻击文件病毒对文件的攻击方式很多,可列举如下:删除、改名、替换内容、丢失部分程序代码、内容颠倒、改变文件的属性和建立日期、写入空白或碎片、假冒文件、丢失文件簇、丢失数据文件。3.攻击内存内存是计算机的重要资源,也是病毒的攻击目标。病毒额外地占用和消耗系统的内存资源,可以导致一些大程序运行受阻。病毒攻击内存的方式如下:占用大量内存、改变内存总量、禁止分配内存、蚕食内存。4.干扰系统运行病毒会干扰系统的正常运行,以此作为自己的破坏行为。此类行为也是花样繁多,可以–232–\n第13章计算机病毒及防治列举下述诸方式:不执行命令、干扰内部命令的执行、虚假报警、打不开文件、内部栈溢出、占用特殊数据区、换现行盘、时钟倒转、重启动、死机、强制游戏、扰乱串并行口。5.速度下降病毒激活时,其内部的时间延迟程序启动。在时钟中纳入了时间的循环计数,迫使计算机空转,计算机速度明显下降。6.攻击磁盘攻击磁盘数据、不写盘、写操作变读操作、写盘时丢字节。7.扰乱屏幕显示病毒扰乱屏幕显示的方式很多,可列举如下:字符跌落、环绕、倒置、显示前一屏、光标下跌、滚屏、抖动、乱写、吃字符。8.键盘病毒干扰键盘操作,已发现有下述方式:响铃、封锁键盘、换字、抹掉缓存区字符、重复、输入紊乱。9.喇叭许多病毒运行时,会使计算机的喇叭发出响声。有的病毒作者让病毒演奏旋律优美的世界名曲,在高雅的曲调中去杀戮人们的信息财富。有的病毒作者通过喇叭发出种种声音。已发现的有以下方式:演奏曲子、警笛声、炸弹噪声、鸣叫、咔咔声、嘀嗒声。10.攻击CMOS在机器的CMOS区中,保存着系统的重要数据。例如系统时钟、磁盘类型、内存容量等,并具有校验和。有的病毒激活时,能够对CMOS区进行写入动作,破坏系统CMOS中的数据。11.干扰打印机假报警、间断性打印、更换字符。13.1.4.2病毒入侵途径自从1987年在大范围内发现病毒以来,整个计算机界就一直受到病毒的侵袭。计算机上所有接受信息的方式都有可能引起病毒的入侵。在网络没有普及的时代,病毒传播主要是依靠磁盘、CD-ROM,目前网络的普及使得病毒也搭上了快车。Internet逐渐成为病毒入侵的主要途径,电子邮件、网页和文件的下载都将成为病毒的入侵点。按照病毒的入侵途径,我们可将计算机病毒划分为“四大家族”:源码病毒、入侵病毒、操作系统病毒、外壳病毒。简述如下。(1)源码病毒攻击高级语言编写的程序,它常在程序未被编译之前就进入源程序中,然后被编译为合法程序的一部分。–233–\n计算机信息安全(2)入侵病毒就是将其自身入侵到现有程序中,即进入了合法的主程序中。它不好清除,因为一旦清除,势必会破坏主程序。(3)操作系统病毒是将自身的部分加入或替代部分操作系统模块。它传染性很大,破坏性很大。(4)外壳病毒只放在程序周围,而对原程序不作修改。它易编制,也易防杀。13.1.5计算机病毒的作用机制计算机病毒一般由引导部分、传染部分、破坏/表现部分以及其他的一些功能模块构成。引导部分完成病毒的初始化并为病毒的传染提供条件,传染部分完成病毒代码的复制工作,一旦条件成熟,便激发表现部分,达到病毒的破坏目的,使被传染系统或被传染系统的设备上表现出特定的现象。病毒的引导部分和传染部分均为表现部分服务,总的说来,计算机病毒的完整的作用过程应包含以下四大机制。13.1.5.1计算机病毒的引导机制1.计算机病毒的寄生对象计算机病毒实际上是一种特殊的程序,是一种程序必然要存储在磁盘上,但是病毒程序为了进行自身的主动传播,必须使自身寄生在可以获取执行权的寄生对象上。就目前出现的各种计算机病毒来看,其寄生对象有两种,一种是寄生在磁盘引导扇区;另一种是寄生在可执行文件(EXE或COM)中。这是由于不论是磁盘引导扇区还是可执行文件,它们都有获取执行权的可能,这样病毒程序寄生在它们的上面,就可以在一定条件下获得执行权,从而使病毒得以进入计算机系统,并处于激活状态,然后进行病毒的动态传播和破坏活动。2.计算机病毒的寄生方式计算机病毒可以附加在可执行程序的头部或尾部,或采用某种其他方式嵌入。计算机病毒的寄生方式有两种,一种是采用替代法;另一种是采用链接法,所谓替代法是指病毒程序用自己的部分或全部指令代码,替代磁盘引导扇区或文件中的全部或部分内容。所谓链接法则是指病毒程序将自身代码作为正常程序的一部分与原有正常程序链接在一起,病毒链接的位置可能在正常程序的首部、尾部或中间,寄生在磁盘引导扇区的病毒一般采取替代法,而寄生在可执行文件中的病毒一般采用链接法。3.计算机病毒的引导过程计算机病毒的引导过程一般包括以下三方面。(1)驻留内存病毒若要发挥其破坏作用,一般要驻留内存。为此就必须开辟所用内存空间或覆盖系统占用的部分内存空间。有的病毒不驻留内存,在加载的同时就执行传染和破坏,这种病毒的隐蔽性更强。(2)窃取系统控制权在病毒程序驻留内存后,其运行的关键在于被感染的程序被调用时,首先执行病毒代码,然后再执行程序原来的代码。这就必须使病毒的有关部分取代或扩充系统的原有功能,并窃–234–\n第13章计算机病毒及防治取系统的控制权。此后病毒程序依据其设计思想,隐蔽自己,等待时机,在条件成熟时,再进行传染和破坏。(3)恢复系统功能病毒为隐蔽自己,驻留内存后还要恢复系统,使系统不会死机,只有这样才能等待时机成熟后,进行感染和破坏的目的。有的病毒在加载之前进行动态反跟踪和病毒体解密。对于寄生在磁盘引导扇区的病毒来说,病毒引导程序占有了原系统引导程序的位置,并把原系统引导程序搬移到一个特定的地方。这样系统一启动,病毒引导模块就会自动地装人内存并获得执行权,然后该引导程序负责将病毒程序的传染模块和发作模块装人内存的适当位置,并采取常驻内存技术以保证这两个模块不会被覆盖,接着对该两个模块设定某种激活方式,使之在适当的时候获得执行权。处理完这些工作后,病毒引导模块将系统引导模块装入内存,使系统在带毒状态下运行。13.1.5.2计算机病毒的传染机制1.计算机病毒的传染方式所谓传染是指计算机病毒由一个载体传播到另一个载体,由一个系统进入另一个系统的过程。这种载体一般为磁盘、磁带或网络,它是计算机病毒赖以生存和进行传染的媒介。但是,只有载体还不足以使病毒得到传播。促成病毒的传染还有一个先决条件,可分为两种情况,或者叫做两种方式。其中一种情况是,用户在进行拷贝磁盘或文件时,把一个病毒由一个载体复制到另一个载体上。或者是通过网络上的信息传递,把一个病毒程序从一方传递到另一方。这种传染方式叫做计算机病毒的被动传染。另外一种情况是,计算机病毒是以计算机系统的运行以及病毒程序处于激活状态为先决条件。在病毒处于激活的状态下,只要传染条件满足,病毒程序能主动地把病毒自身传染给另一个载体或另一个系统。这种传染方式叫做计算机病毒的主动传染。2.计算机病毒的传染过程对于病毒的被动传染而言,其传染过程是随着拷贝磁盘或文件工作的进行而进行的,而对于计算机病毒的主动传染而言,其传染过程是这样的:在系统运行时,病毒通过病毒载体即系统的外存储器进入系统的内存储器,常驻内存,并在系统内存中监视系统的运行。伺机进行传染,在病毒引导模块将病毒传染模块驻留内存的过程中,通常还要修改系统中断向量入口地址(例如INT13H或INT21H),使该中断向量指向病毒程序传染模块。这样,一旦系统执行磁盘读写操作或系统功能调用,病毒传染模块就被激活,传染模块被激活后,就会对攻击目标进行判断,以决定是否传染之,在判断出传染条件满足时,利用系统INT13H读写磁盘中断把病毒自身传染给被读写入磁盘或被加载的程序,也就是实施病毒的传染,然后再转移到原中断服务程序执行原有的操作。在病毒的传染过程中,被攻击的对象仍能正常运行,即传染非破坏。3.系统型病毒传染机理计算机软硬盘的配置和使用情况是不同的。软盘容量小,可以方便地移动交换使用,在计–235–\n计算机信息安全算机运行过程中可能多次更换软盘;硬盘作为固定设备安装在计算机内部使用,大多数计算机配备一只硬盘。系统型病毒针对软硬盘的不同特点采用了不同的传染方式。系统型病毒利用在开机引导时窃获的INT13控制权,在整个计算机运行过程中随时监视软盘操作情况,趁读写软盘的时机读出软盘引导区,判断软盘是否染毒,如未感染就按病毒的寄生方式把原引导区写到软盘另一位置,把病毒写入软盘第一个扇区,从而完成对软盘的传染。染毒的软盘在软件交流中又会传染其他计算机。由于在每个读写阶段病毒都要读引导区,既影响微机工作效率,又容易因驱动器频繁寻道而造成物理损伤。系统型病毒对硬盘的传染往往是在计算机上第一次使用带毒软盘进行的,具体步骤与软盘传染相似,也是读出引导区判断后写入病毒。4.文件型病毒传染机理当执行被传染的.COM或.EXE可执行文件时,病毒驻入内存。一旦病毒驻入内存,便开始监视系统的运行。当它发现被传染的目标时,进行如下操作。(1)首先对运行的可执行文件特定地址的标识位信息进行判断是否已感染了病毒。(2)当条件满足,利用INT13H将病毒链接到可执行文件的首部或尾部或中间,并存入磁盘中。(3)完成传染后,继续监视系统的运行,试图寻找新的攻击目标。文件型病毒通过与磁盘文件有关的操作进行传染,主要传染途径有如下几点。(1)加载执行文件文件型病毒驻留内存后,通过其所截获的INT21中断检查每一个加载运行可执行文件进行传染。加载传染方式每次传染一个文件,即用户准备运行的那个文件,传染不到那些用户没有使用的文件。(2)列目录过程一些病毒编制者可能感到加载传染方式每次传染一个文件速度较慢,不够过瘾,于是后来造出通过列目录传染的病毒。在用户列硬盘目录的时候,病毒检查每一个文件的扩展名,如果是可执行文件就调用病毒的传染模块进行传染。这样病毒可以一次传染硬盘一个于目录下的全部可执行文件。DIR是最常用的DOS命令,每次传染的文件又多,所以病毒的扩散速度很快,往往在短时间内传遍整个硬盘。对于软盘而言,由于读写速度比硬盘慢得多,如果一次传染多个文件所费时间较长,容易被用户发现,所以病毒“忍痛”放弃了一些传染机会,采用列一次目录只传染一个文件的方式。(3)创建文件过程创建文件是操作系统内部的一项操作,功能是在磁盘上建立一个新文件。已经发现利用创建文件过程把病毒附加到新文件上去的病毒,这种传染方式更为隐蔽狡猾。因为加载传染和列目录传染都是病毒感染磁盘上原有的文件,细心的用户往往会发现文件染毒前后长度的变化,从而暴露病毒的踪迹。而创建文件的传染手段却造成了新文件生来带毒的奇观。好在一般用户很少去创建一个可执行文件,但经常使用各种编译、连接工具的计算机专业工作者应该注意文件型病毒发展的这一动向,特别在商品软件最后生成阶段严防此类病毒。13.1.5.3计算机病毒的破坏机制破坏机制在设计原则、工作原理上与传染机制基本相同。它也是通过修改某一中断向量–236–\n第13章计算机病毒及防治入口地址(一般为时钟中断INT8H,或与时钟中断有关的其他中断,如INT1CH),使该中断向量指向病毒程序的破坏模块。这样,当系统或被加载的程序访问该中断向量时,病毒破坏模块被激活,在判断设定条件满足的情况下,对系统或磁盘上的文件进行破坏活动,这种破坏活动不一定都是删除磁盘文件,有的可能是显示一串无用的提示信息,例如,在用感染了“大麻病毒”的系统盘进行启动时,屏幕上会出现“YourPCisnowStoned!”。有的病毒在发作时,会干扰系统或用户的正常工作,例如“小球”病毒在发作时,屏幕上会出现一个上下来回滚动的小球。而有的病毒,一旦发作,则会造成系统死机或删除磁盘文件。例如,“黑色星期五”病毒在激活状态下,只要判断当天既是13号又是星期五,则病毒程序的破坏模块即把当前感染该病毒的程序从磁盘上删除。13.1.5.4计算机病毒的触发机制感染、潜伏、可触发、破坏是病毒的基本特性。感染使病毒得以传播,破坏性体现了病毒的杀伤能力。大范围感染,众多病毒的破坏行为可能给用户以重创。但是,感染和破坏行为总是使系统或多或少地出现异常。频繁的感染和破坏会使病毒暴露,而不破坏、不感染又会使病毒失去杀伤力。可触发性是病毒的攻击性和潜伏性之间的调整杠杆,可以控制病毒感染和破坏的频度,兼顾杀伤力和潜伏性。过于苛刻的触发条件,可能使病毒有好的潜伏性,但不易传播,只具低杀伤力。而过于宽松的触发条件将导致病毒频繁感染与破坏,容易暴露,导致用户做反病毒处理,也不能有大的杀伤力。计算机病毒在传染和发作之前,往往要判断某些特定条件是否满足,满足则传染或发作,否则不传染或不发作或只传染不发作,这个条件就是计算机病毒的触发条件。实际上病毒采用的触发条件花样繁多,从中可以看出病毒作者对系统的了解程度及其丰富的想象力和创造力。目前病毒采用的触发条件主要有以下几种。1.日期触发许多病毒采用日期做触发条件。日期触发大体包括:特定日期触发、月份触发、前半年后半年触发等。2.时间触发时间触发包括特定的时间触发、染毒后累计工作时间触发、文件最后写入时间触发等。3.键盘触发有些病毒监视用户的击键动作,当发现病毒预定的键入时,病毒被激活,进行某些特定操作。键盘触发包括击键次数触发、组合键触发、热启动触发等。4.感染触发许多病毒的感染需要某些条件触发,而且相当数量的病毒又以与感染有关的信息反过来作为破坏行为的触发条件,称为感染触发。它包括:运行感染文件个数触发、感染序数触发、感染磁盘数触发、感染失败触发等。–237–\n计算机信息安全5.启动触发病毒对机器的启动次数计数,并将此值作为触发条件称为启动触发。6.访问磁盘次数触发病毒对磁盘I/O访问的次数进行计数,以预定次数做触发条件叫访问磁盘次数触发。7.调用中断功能触发病毒对中断调用次数计数,以预定次数做触发条件。8.CPU型号/主板型号触发病毒能识别运行环境的CPU型号/主板型号,以预定CPU型号/主板型号做触发条件,这种病毒的触发方式奇特罕见。计算机病毒使用的触发条件是多种多样的,而且往往不只是使用上面所述的某一个条件,而是使用由多个条件组合起来的触发条件。大多数病毒的组合触发条件是基于时间的,再辅以读、写盘操作,按键操作以及其他条件。如“侵略者”病毒的激发时间是开机后机器运行时间和病毒传染个数成某个比例时,恰好按CTRL+ALT+DEL组合键试图重新启动系统则病毒发作。病毒中有关触发机制的编码是其敏感部分。剖析病毒时,如果搞清病毒的触发机制,可以修改此部分代码,使病毒失效,就可以产生没有潜伏性的极为外露的病毒样本,供反病毒研究使用。13.2网络计算机病毒13.2.1网络计算机病毒的特点世界已进入互联网时代,人们的生活愈来愈多的与网络联系到了一起。计算机网络系统的建立让多台计算机能够共享数据资料和外部资源,网络在人们面前展现了一片无比开阔的天地。然而,世上没有十全十美的东西,Internet开拓性的发展,也给计算机病毒带来了更为有利的生存和传播环境。网络病毒出现了,它在网络上迅速传播,为网络带来灾难性后果。在网络环境下,病毒可以按指数增长模式进行传染。病毒侵入计算机网络,可以导致计算机效率急剧下降、系统资源遭到严重破坏,短时间内造成网络系统的瘫痪。因此网络环境下病毒防治必将成为计算机防毒领域的研究重点。如今的网络病毒是指以网络为平台,对计算机产生安全威胁的所有程序的总和。在网络环境中,计算机病毒具有以下一些新的特点。1.传染方式多一般来说,计算机网络的基本构成包括网络服务器和网络节点站(包括有盘工作站,无–238–\n第13章计算机病毒及防治盘工作站和远程工作站)。病毒入侵网络的主要途径是通过工作站传播到服务器硬盘中,再由服务器的共享目录传播到其他的工作站。病毒传染方式复杂多样,通常有以下几种。(1)病毒直接从有盘站拷贝到服务器中。(2)病毒先传染工作站,在工作站内存驻留,等运行网络盘内程序时再传染给服务器。(3)病毒先传染工作站,在工作站内存驻留,在病毒运行时直接通过映像路径传染到服务器中。(4)如果远程工作站被病毒侵入,病毒也可以通过通信中数据交换进入网络服务器中。一旦病毒进入文件服务器,就可通过它迅速传染到整个网络的每一台计算机。而对于无盘工作站来说,由于其并非真的“无盘”(它的“盘”是网络盘),当其运行网络盘上的一个带毒程序时,便将内存中的病毒传染给该程序或通过映像路径传染到服务器其他文件上,因此无盘工作站也是病毒滋生的温床。2.传染速度快在单机环境下,病毒只能通过软盘从一台计算机传染到另一台计算机,而在网络中则可通过网络通信机制,借助高速电缆进行迅速扩散。网络病毒普遍具有较强的再生机制,一接触就可通过网络扩散与传染。一旦某个公用程序染了毒,那么病毒将很快在整个网络上传播,感染其他的程序。根据有关资料介绍,在网络上病毒传播的速度是单机的几十倍。据测定,针对一台典型的PC网络在正常使用情况,只要有一台工作站有病毒,就可在几十分钟内将网上的数百台计算机全部感染。由于病毒在网络中传染速度非常快,使其扩散范围很大,不但能迅速传染局域网内所有计算机,还能通过远程工作站将病毒在一瞬间传播到千里之外。由网络病毒造成网络瘫痪的损失是难以估计的。一旦网络服务器被感染,其解毒所需的时间将是单机的几十倍以上。3.清除难度大计算机网络难于彻底清除。单机上的计算机病毒有时可通过删除带毒文件。低级格式化硬盘等措施将病毒彻底清除,而网络中只要有一台工作站未能消毒干净就可使整个网络重新被病毒感染,甚至刚刚完成清除工作的一台工作站就有可能被网上另一台带毒工作站所感染。因此,仅对工作站进行病毒杀除,并不能解决病毒对网络的危害。4.破坏性强网络病毒破坏性极强。网络上病毒将直接影响网络的工作,轻则降低速度,影响工作效率,重则造成网络系统的瘫痪,破坏服务器系统资源,使多年的工作毁于一旦。以Novel1网为例,一旦文件服务器的硬盘被病毒感染,就可能造成NetWare分区中的某些区域上内容的损坏,使网络服务器无法起动,导致整个网络瘫痪,造成不可估量的损失。5.具有潜伏性和可激发性网络病毒与单机病毒一样,具有潜伏性和可激发性。在一定的环境下受到外界因素刺激,便能活跃起来,这就是病毒的激活。激活的本质是一种条件控制,此条件是多样化的,可以–239–\n计算机信息安全是内部时钟、系统日期和用户名称,也可以是在网络中进行的一次通信。一个病毒程序可以按照病毒设计者的预定要求,在某个服务器或客户机上激活并向各网络用户发起攻击。网络一旦感染了病毒,即使病毒已被清除,其潜在的危险也是巨大的。根据统计,病毒在网络上被清除后,85%的网络在30天内会再次感染。6.针对性强网络病毒并非一定对网络上所有的计算机都进行感染与攻击,而是具有某种针对性。例如,有的网络病毒只能感染IBMPC工作站,有的却只能感染Macintosh计算机,有的病毒则专门感染使用UNIX操作系统的计算机。13.2.2网络计算机病毒实例——电子邮件病毒随着Internet的飞速发展,E-mail日益成为人们传递信息,交流思想的重要工具,其发展速度之快,影响范围之广是其他传播手段所无法比拟的。但是随之而来的电子邮件病毒却给人们带来了无比的伤痛。风靡全球的“美丽莎”(Melissa)、Papa和HAPPY99等计算机病毒都是通过电子邮件的方式进行传播、扩散,其结果导致邮件服务器瘫痪,用户信息和重要文档泄密,无法收发E-mail,给个人、企业和政府部门造成严重的损失。为此我们有必要介绍一下电子邮件计算机病毒。1.电子邮件病毒的特点所谓电子邮件计算机病毒就是以电子邮件作为传播途径的计算机病毒,实际上该类计算机病毒和普通的计算机病毒一样,只不过是传播方式改变而已。电子邮件计算机病毒实际上并不是一类单独的计算机病毒,严格来说它应该划入到文件型计算机病毒及宏病毒中去,只不过由于这些计算机病毒采用了独特的电子邮件传播方式(其中不少种类还专门针对电子邮件的传播方式进行了优化),因此习惯称将它们为电子邮件计算机病毒。绝大多数通过E-mail传播的病毒都有自我复制的能力,他们能够主动选择用户邮箱的地址簿中的地址发送邮件,或用户发送邮件时,将被病毒感染的文件附到邮件上一起发送。这种成指数增长的传播速度可以使病毒在很短的时间内遍布整个Internet。电子邮件病毒每次在世界范围内大规模爆发时,都会带来非常巨大的经济损失。如:2001年5月4日,“爱虫”爆发的第一天便有6万台以上机器被感染,在其后的短短一个星期里,互联网便经历了一场罕见的“病毒风暴”。电子邮件病毒破坏力非常大,其攻击的对象是整个计算机网络,因而其影响要远比单机染毒更大,破坏性也更强。由于其传播速度快,范围广,一台PC机上的病毒可以通过网络迅速感染与之相连的众多机器。当其发作时,往往造成整个网络的瘫痪,而网络瘫痪造成的损失往往是难以估计的。邮件病毒之所以会带来如此之大的危害,是与它本身的特性密不可分的。该类计算机病毒的特点有。(1)电子邮件本身是无毒的,但它的内容中可以有UNIX下的特殊的换码序列,就是通常所说的ANSI字符,当用UNIX智能终端上网查看电子邮件时,有被侵入的可能。(2)电子邮件可以夹带任何类型的文件作为附件(Attachment),病毒可伪装成邮件附件的形式进行发送。(3)利用某些电子邮件收发器特有的扩充功能,比如Outlook/OutlookExpress能够执行–240–\n第13章计算机病毒及防治VBA指令编写的宏等等,在电子邮件中夹带有针对性的代码,利用电子邮件进行传染、扩散。(4)利用某些操作系统所特有的功能,比如利用Windows98下的WindowsScriptingHost,利用*.SHS文件来进行破坏。(5)超大的电子邮件、电子邮件炸弹也可以认为是一种电子邮件计算机病毒,它以来历不明的电子邮件地址不断将电子邮件寄于同一个收件人。由此影响邮件服务器的正常服务功能,消耗大量的网络资源。2.电子邮件病毒的防范通常对付电子邮件计算机病毒,只要删除携带电子邮件计算机病毒的信件就能够删除它。但是大多数的电子邮件计算机病毒在一被接收到客户端时就开始发作了,基本上没有潜伏期。所以预防电子邮件计算机病毒是至关重要的。以下是一些常用的预防电子邮件计算机病毒的方法如下。(1)不要轻易打开附件中的文档文件。不要轻易执行附件中的*.EXE和*.COM文件。这些附件极有可能带有病毒或黑客程序,轻易运行很可能带来不可预测的结果(如Navidad.exe)。对于电子邮件中的可执行程序附件必须检查,确定无异后才可使用。(2)文件扩展名很怪的附件,或者是带有脚本文件如*.VBS、*.SHS等的附件,千万不要直接打开。可以删除包含这些附件的电子邮件,以保证计算机系统不受计算机病毒的侵害。(3)自己往外传送的附件,也一定要检查,确定无毒后才可发送。虽然电子邮件计算机病毒相当可怕,但只要防护得当,还是完全可以避免传染上计算机病毒的,仍可放心使用。(4)对付电子邮件病毒,在运行的计算机上安装实时化的杀毒软件,最为有效。实时化杀毒软件会时刻监控用户对外的任何操作。好的杀毒软件具有很强的实时监控功能,能够非常有效地检测病毒,阻止病毒侵袭,并且会自动报警,立即清除。当然也要及时升级,才能取得最佳效果。有条件的还可以在电子邮件服务器上安装服务器版电子邮件计算机病毒防护软件,从外部切断电子邮件计算机病毒的入侵途径,确保整个网络的安全。(5)使用防毒软件的同时保护客户机和服务器。一方面,只有客户机的防毒软件才能访问个人目录,并且防止病毒从外部入侵。另一方面,只有服务器的防毒软件才能进行全局监测和查杀病毒,这是防止病毒在整个系统中扩散的惟一途径,也是阻止病毒入侵没有本地保护但连接到邮件系统的计算机的惟一方法。(6)不断完善“网关”软件及病毒防火墙软件,加强对整个网络入口点的防范。13.3反病毒技术13.3.1计算机病毒的检测计算机病毒是客观存在的,客观存在的事物总有它的特性,计算机病毒也不例外。当计算机系统或文件染有计算机病毒时,往往都会有一些表现现象。以下是计算机感染了病毒后一些常见的异常情况。(1)平时运行正常的计算机突然经常性无缘无故地死机或者非法错误,以前能正常运行–241–\n计算机信息安全的软件经常发生内存不足的错误。(2)操作系统无法正常启动,运行速度明显变慢。(3)打印和通信发生异常。(4)系统文件的时间、日期、大小发生变化。(5)运行Word,打开Word文档后,该文件另存时只能以模板方式保存。(6)磁盘空间迅速减少,基本内存发生变化。(7)网络驱动器卷或共享目录无法调用。(8)提示一些不相干的话,发出一段音乐,产生特定的图像。(9)硬盘灯不断闪烁。(10)鼠标自己在动,Windows桌面图标发生变化。(11)硬盘无法启动,数据丢失,系统文件丢失或被破坏。(12)文件目录发生混乱,部分文档丢失或被破坏,部分文档自动加密码。(13)修改Autoexec.bat文件,增加FormatC:一项,导致计算机重新启动时格式化硬盘。(14)网络瘫痪,无法提供正常的服务。通过对这些病毒传染时留下的蛛丝马迹的判别,我们就能检测到计算机病毒的存在。计算机病毒检测技术是指通过一定的技术手段判定出计算机病毒的一种技术。通常计算机病毒的检测方法有两种。1.手工检测手工检测是指通过一些软件工具(DEBUG.COM、PCTOOLS.EXE、NU.COM、SYSINFO.EXE等提供的功能)进行病毒的检测。这种方法比较复杂,需要检测者熟悉机器指令和操作系统,因而无法普及。它的基本过程是利用一些工具软件,对易遭病毒攻击和修改的内存及磁盘的有关部分进行检查,通过和正常情况下的状态进行对比分析,来判断是否被病毒感染。这种方法检测病毒,费时费力,但可以检测自动检测工具不认识的新病毒。2.自动检测自动检测是指通过一些诊断软件来判读一个系统或一个软盘是否有毒的方法。自动检测则比较简单,一般用户都可以进行,但需要较好的诊断软件。这种方法可方便地检测大量的病毒。但是,自动检测工具只能识别已知病毒,而且自动检测工具的发展总是滞后于病毒的发展,所以检测工具总是对相对数量的未知病毒不能识别。就两种方法相比较而言,手工检测方法操作难度大,技术复杂,它需要操作人员有一定的软件分析经验以及对操作系统有一个深入的了解。自动检测方法操作简单、使用方便,适合于一般的计算机用户学习使用。但是,由于计算机病毒的种类较多,程序复杂,再加上不断地出现病毒的变种,所以自动检测方法不可能检测所有未知的病毒。在出现一种新型的病毒时,如果现有的各种检测工具无法检测这种病毒,则只能用手工方法进行病毒的检测。其实,自动检测也是在手工检测成功的基础上把手工检测方法程序化后所得的。因此,手工检测病毒是最基本、最有力的工具。病毒感染正常文件或系统会引起各种变化,从这些变化中找出某些本质性的变化,作为诊断病毒的判据。广泛使用的主要检测病毒方法有:比较法、搜索法、分析法、感染实验法、软件模拟法、行为检测法。这些方–242–\n第13章计算机病毒及防治法依据的原理不同,实现时所需开销不同,检测范围不同,各有所长。我们给大家介绍其中的几种。1.比较法比较法用原始备份与被检测的引导扇区或被检测的文件进行比较。比较时可以靠打印的代码清单(比如DEBUG的D命令输出格式)进行比较,或用程序来进行比较(如DOS的DISKCOMP、FC或PCTOOLS等其他软件)。这种比较法不需要专用的查计算机病毒程序,只要用常规DOS软件和PCTOOLS等工具软件就可以进行。而且用这种比较法还可以发现那些尚不能被现有的查计算机病毒程序发现的计算机病毒。因为计算机病毒传播得很快,新的计算机病毒层出不穷,由于目前还没有做出通用的能查出一切计算机病毒,或通过代码分析,可以判定某个程序中是否含有计算机病毒的查毒程序,发现新计算机病毒就只有靠比较法和分析法,有时必须结合这两者来一同工作。使用比较法能发现异常,如文件的长度有变化,或虽然文件长度未发生变化,但文件内的程序代码发生了变化。对硬盘主引导扇区或对DOS的引导扇区做检查,比较法能发现其中的程序代码是否发生了变化。由于要进行比较,保留好原始备份是非常重要的,制作备份时必须在无计算机病毒的环境里进行,制作好的备份必须妥善保管,写好标签,并加上写保护。比较法的好处是简单、方便,不需专用软件。缺点是无法确认计算机病毒的种类名称。另外,造成被检测程序与原始备份之间差别的原因尚需进一步验证,以查明是由于计算机病毒造成的,或是由于DOS数据被偶然原因,如突然停电、程序失控、恶意程序等破坏的。这些要用到以后讲的分析法,查看变化部分代码的性质,以此来确认是否存在计算机病毒。另外,当找不到原始备份时,用比较法就不能马上得到结论。从这里可以看到制作和保留原始主引导扇区和其他数据备份的重要性。2.搜索法搜索法是用每一种计算机病毒体含有的特定字符串对被检测的对象进行扫描。如果在被检测对象内部发现了某一种特定字节串,就表明发现了该字节串所代表的计算机病毒。国外对这种按搜索法工作的计算机病毒扫描软件叫VirusScanner。计算机病毒扫描软件由两部分组成:一部分是计算机病毒代码库,含有经过特别选定的各种计算机病毒的代码串;另一部分是利用该代码库进行扫描的扫描程序。目前常见的防杀计算机病毒软件对已知计算机病毒的检测大多采用这种方法。计算机病毒扫描程序能识别的计算机病毒的数目完全取决于计算机病毒代码库内所含计算机病毒的种类多少。显而易见,库中计算机病毒代码种类越多,扫描程序能认出的计算机病毒就越多。计算机病毒代码串的选择是非常重要的。短小的计算机病毒只有一百多个字节,长的有上万字节的。如果随意从计算机病毒体内选一段作为代表该计算机病毒的特征代码串,可能在不同的环境中,该特征串并不真正具有代表性,不能用于将该串所对应的计算机病毒检查出来。选这种串做为计算机病毒代码库的特征串就是不合适的。另一种情况是代码串不应含有计算机病毒的数据区,数据区是会经常变化的。代码串一定要在仔细分析了程序之后才选出最具代表特性的,足以将该计算机病毒区别于其他计算机–243–\n计算机信息安全病毒的字节串。选定好的特征代码串是很不容易的,是计算机病毒扫描程序的精华所在。一般情况下,代码串是连续的若干个字节组成的串,但是有些扫描软件采用的是可变长串,即在串中包含有一个到几个“模糊”字节。扫描软件遇到这种串时,只要除“模糊”字节之外的字串都能完好匹配,则也能判别出计算机病毒。除了前面说的选特征串的规则外,最重要的是一条是特征串必须能将计算机病毒与正常的非计算机病毒程序区分开。不然将非计算机病毒程序当成计算机病毒报告给用户,是假警报,这种“狼来了”的假警报太多了,就会使用户放松警惕,等真的计算机病毒一来,破坏就严重了;再就是若将这假警报送给杀计算机病毒程序,会将好程序给“杀死”了。使用特征串的扫描法被查计算机病毒软件广泛应用。当特征串选择得很好时,计算机病毒检测软件让计算机用户使用起来很方便,对计算机病毒了解不多的人也能用它来发现计算机病毒。另外,不用专门软件,用PCTOOLS等软件也能用特征串扫描法去检测特定的计算机病毒。这种扫描法的缺点也是明显的。第一是当被扫描的文件很长时,扫描所花时间会很多;第二是不容易选出合适的特征串;第三是新的计算机病毒的特征串未加入计算机病毒代码库时,老版本的扫毒程序无法识别出新的计算机病毒;第四是怀有恶意的计算机病毒制造者得到代码库后,会很容易地改变计算机病毒体内的代码,生成一个新的变种,使扫描程序失去检测它的能力;第五是容易产生误报,只要在正常程序内带有某种计算机病毒的特征串,即使该代码段已不可能被执行,而只是被杀死的计算机病毒体残余,扫描程序仍会报警;第六是不易识别多维变形计算机病毒。不管怎样,基于特征串的计算机病毒扫描法仍是今天用得最为普遍的查计算机病毒方法。3.分析法一般使用分析法的人不是普通用户,而是防杀计算机病毒技术人员。使用分析法的目的如下。(1)确认被观察的磁盘引导扇区和程序中是否含有计算机病毒。(2)确认计算机病毒的类型和种类,判定其是否是一种新的计算机病毒。(3)搞清楚计算机病毒体的大致结构,提取特征识别用的字节串或特征字,用于增添到计算机病毒代码库供计算机病毒扫描和识别程序用。(4)详细分析计算机病毒代码,为制定相应的防杀计算机病毒措施制定方案。上述四个目的按顺序排列起来,正好是使用分析法的工作顺序。使用分析法要求具有比较全面的有关计算机、DOS、Windows、网络等的结构和功能调用以及关于计算机病毒方面的各种知识,这是与其他检测计算机病毒方法不一样的地方。要使用分析法检测计算机病毒,其条件除了要具有相关的知识外,还需要反汇编工具、二进制文件编辑器等分析用工具程序和专用的试验计算机。因为即使是很熟练的防杀计算机病毒技术人员,使用性能完善的分析软件,也不能保证在短时间内将计算机病毒代码完全分析清楚。而计算机病毒有可能在被分析阶段继续传染甚至发作,把软盘硬盘内的数据完全毁坏掉,这就要求分析工作必须在专门设立的试验计算机机上进行,不怕其中的数据被破坏。在不具备条件的情况下,不要轻易开始分析工作,很多计算机病毒采用了自加密、反跟踪等技术,使得分析计算机病毒的工作经常是冗长和枯燥的。特别是某些文件型计算机病毒的代–244–\n第13章计算机病毒及防治码可达10Kb以上,与系统的牵扯层次很深,使详细的剖析工作十分复杂。计算机病毒检测的分析法是防杀计算机病毒工作中不可缺少的重要技术,任何一个性能优良的防杀计算机病毒系统的研制和开发都离不开专门人员对各种计算机病毒的详尽而认真的分析。分析的步骤分为静态分析和动态分析两种。静态分析是指利用反汇编工具将计算机病毒代码打印成反汇编指令(程序清单)后进行分析,看计算机病毒分成哪些模块,使用了哪些系统调用,采用了哪些技巧,并将计算机病毒感染文件的过程翻转为清除该计算机病毒、修复文件的过程;判断哪些代码可被用作特征码以及如何防御这种计算机病毒。分析人员具有的素质越高,分析过程越快、理解越深。动态分析则是指利用DEBUG等调试工具在内存带毒的情况下,对计算机病毒做动态跟踪,观察计算机病毒的具体工作过程,以进一步在静态分析的基础上理解计算机病毒工作的原理。在计算机病毒编码比较简单的情况下,动态分析不是必须的。但当计算机病毒采用了较多的技术手段时,必须使用动、静相结合的分析方法才能完成整个分析过程。13.3.2计算机病毒的防治当计算机感染了病毒后,我们可以利用一些方法进行检测和消除。但是,计算机病毒一旦破坏了没有副本的文件,便无法医治。隐性计算机病毒和多态性计算机病毒更使人难以检测。在与计算机病毒的对抗中,如果能采取有效的防范措施,就能使系统不染毒,或者染毒后能减少损失。计算机病毒防范,是指通过建立合理的计算机病毒防范体系和制度,及时发现计算机病毒侵入,并采取有效的手段阻止计算机病毒的传播和破坏,恢复受影响的计算机系统和数据。计算机病毒防范工作,首先是防范体系的建设和制度的建立。没有一个完善的防范体系,一切防范措施都将滞后于计算机病毒的危害。计算机病毒防范体系的建设是一个社会性的工作,不是一两个人、一两家企业能够实现的,需要全社会的参与,充分利用所有能够利用的资源,形成广泛的、全社会的计算机病毒防范体系网络。计算机病毒防范制度是防范体系中每个主体都必须的行为规程,没有制度,防范体系就不可能很好地运作,就不可能达到预期的效果。必须依照防范体系对防范制度的要求,结合实际情况,建立符合自身特点防范制度。计算机病毒防治的关键是做好预防工作,即防患于未然。从用户的角度来看,要做好计算机病毒的预防工作,应从以下两方面着手。1.树立牢固的计算机病毒的预防思想解决病毒的防治问题,最关键的一点是要在思想上给予足够的重视。要采取“预防为主,防治结合”的八字方针,从加强管理入手,制订出切实可行的管理措施。由于计算机病毒的隐蔽性和主动攻击性,要杜绝病毒的传染,在目前的计算机系统总体环境下,特别是对于网络系统和开放式系统而言,几乎是不可能的。因此,以预防为主,制订出一系列的安全措施,可大大降低病毒的传染,而且即使受到传染,也可立即采取有效措施将病毒消除。–245–\n计算机信息安全2.堵塞计算机病毒的传染途径堵塞传播途径是防治计算机病毒侵入的有效方法。根据病毒传染途径,确定严防死守的病毒入口点,同时做一些经常性的病毒检测工作,最好在计算机中装入具有动态预防病毒入侵功能的系统,即可将病毒的入侵率降低到最低限度,同时也可将病毒造成的危害减少到最低限度。从技术的角度来看,病毒的防治技术总是在与病毒的较量中得到发展的。计算机病毒利用读写文件能进行感染,利用驻留内存、截取中断向量等方式能进行传染和破坏。预防计算机病毒就是要监视、跟踪系统内类似的操作,提供对系统的保护,最大限度地避免各种计算机病毒的传染破坏。总结起来,计算机病毒的技术防治措施如下。1.新购置的计算机硬软件系统的测试新购置的计算机是有可能携带计算机病毒的。因此,在条件许可的情况下,要用检测计算机病毒软件检查已知计算机病毒,用人工检测方法检查未知计算机病毒,并经过证实没有计算机病毒感染和破坏迹象后再使用。新购置计算机的硬盘可以进行检测或进行低级格式化来确保没有计算机病毒存在。对硬盘只在DOS下做FORMAT格式化是不能去除主引导区(分区表)计算机病毒的。软盘在DOS下做FORMAT格式化可以去除感染的计算机病毒。新购置的计算机软件也要进行计算机病毒检测。有些软件厂商发售的软件,可能无意中已被计算机病毒感染。就算是正版软件也难保证没有携带计算机病毒的可能性,更不要说盗版软件了。这在国内、外都是有实例的。这时不仅要用杀毒软件查找已知的计算机病毒,还要用人工检测和实验的方法检测。2.计算机系统的启动在保证硬盘无计算机病毒的情况下,尽量使用硬盘引导系统。启动前,一般应将软盘从软盘驱动器中取出。这是因为即使在不通过软盘启动的情况下,只要软盘在启动时被读过,计算机病毒仍然会进入内存进行传染。很多计算机中,可以通过设置CMOS参数,使启动时直接从硬盘引导启动,而根本不去读软盘。这样即使软盘驱动器中插着软盘,启动时也会跳过软驱,尝试由硬盘进行引导。很多人认为,软盘上如果没有COMMAND.COM等系统启动文件,就不会带计算机病毒,其实引导型计算机病毒根本不需要这些系统文件就能进行传染。3.单台计算机系统的安全使用在自己的机器上用别人的软盘前应进行检查。在别人的计算机上使用过自己的已打开了写保护的软盘,再在自己的计算机上使用前,也应进行计算机病毒检测。对重点保护的计算机系统应做到专机、专盘、专人、专用,封闭的使用环境中是不会自然产生计算机病毒的。–246–\n第13章计算机病毒及防治4.重要数据文件要有备份硬盘分区表、引导扇区等的关键数据应作备份工作,并妥善保管。在进行系统维护和修复工作时可作为参考。重要数据文件定期进行备份工作。不要等到由于计算机病毒破坏、计算机硬件或软件出现故障,使用户数据受到损伤时再去急救。对于软盘,要尽可能将数据和应用程序分别保存,装应用程序的软盘要有写保护。在任何情况下,总应保留一张写保护的、无计算机病毒的、带有常用DOS命令文件的系统启动软盘,用以清除计算机病毒和维护系统。常用的DOS应用程序也有副本,计算机修复工作就比较容易进行了。5.不要随便直接运行或直接打开电子邮件中夹带的附件文件,不要随意下载软件,尤其是一些可执行文件和Office文档。即使下载了,也要先用最新的防杀计算机病毒软件来检查。6.计算机网络的安全使用以上这些措施不仅可以应用在单机上,也可以应用在作为网络工作站的计算机上。13.3.3计算机感染病毒后的修复一旦遇到计算机病毒破坏了系统也不必惊惶失措,采取一些简单的办法可以杀除大多数的计算机病毒,恢复被计算机病毒破坏的系统。下面介绍计算机病毒感染后的一般修复处理方法。(1)首先必须对系统破坏程度有一个全面的了解,并根据破坏的程度来决定采用有效的计算机病毒清除方法和对策。如果受破坏的大多是系统文件和应用程序文件,并且感染程度较深,那么可以采取重装系统的办法来达到清除计算机病毒的目的。而对感染的是关键数据文件,或比较严重的时候,比如硬件被CIH计算机病毒破坏,就可以考虑请防杀计算机病毒专家来进行清除和数据恢复工作。(2)修复前,尽可能再次备份重要的数据文件。目前防杀计算机病毒软件在杀毒前大多都能够保存重要的数据和感染的文件,以便能够在误杀或造成新的破坏时可以恢复现场。但是对那些重要的用户数据文件等还是应该在杀毒前手工单独进行备份,备份不能做在被感染破坏的系统内,也不应该与平时的常规备份混在一起。(3)启动防杀计算机病毒软件,并对整个硬盘进行扫描。某些计算机病毒在Windows95/98状态下无法完全清除(如CIH计算机病毒),此时我们应使用事先准备的未感染计算机病毒的DOS系统软盘启动系统,然后在DOS下运行相关杀毒软件进行清除。(4)发现计算机病毒后,我们一般应利用防杀计算机病毒软件清除文件中的计算机病毒,如果可执行文件中的计算机病毒不能被清除,一般应将其删除,然后重新安装相应的应用程序。(5)杀毒完成后,重启计算机,再次用防杀计算机病毒软件检查系统中是否还存在计算机病毒,并确定被感染破坏的数据确实被完全恢复。(6)此外,对于杀毒软件无法杀除的计算机病毒,还应将计算机病毒样本送交防杀计算–247–\n计算机信息安全机病毒软件厂商的研究中心,以供详细分析。13.4软件防病毒技术13.4.1反病毒软件我国最早发现的病毒是在1989年,同年7月,公安部计算机管理监察局监察处病毒研究小组编写了反病毒软件KILL,这就是国内第一个反毒软件。当时的计算机病毒还主要依靠文件的拷贝来传递。但是,在互联网飞速发展的今天,计算机病毒找到了它的新媒质,一种新的病毒可以在数天之内迅速蔓延开,并造成巨大的损失。面对汹涌而来的计算机病毒大潮,计算机用户对计算机安全问题的需求变得十分紧迫,于是相应地诞生了许多杀毒软件产品。用户面对这些杀毒软件,又产生了新的困惑,不知从何选择。其实在选择杀毒软件之前,应该先了解杀毒软件应该具备什么功能。针对计算机病毒的几个特点以及目前计算机病毒发展的趋势,杀毒软件应该具备以下功能。(1)它应该能够查找并清除激活在内存中的病毒,使你不需要重新启动就可以查杀病毒。(2)查杀病毒的种类也是杀毒软件的一项重要指标。每天都有新的病毒诞生,而且一些旧有的病毒也在不断的产生变种,这就需要该软件可以发现其中的多数病毒。同时还存在另一个问题,就是杀毒软件必须频繁的升级,所以杀毒软件的更新快慢也是十分重要的指标。(3)好的杀毒软件应该带有紧急恢复功能,应该保护关键数据和备份系统文件。当病毒破坏系统导致启动失败后,用应急盘就可以解决问题。(4)实时对系统(包括软驱和光驱)和网络进行检测,当发现病毒后可以即时的报警,并将其查杀,也就是我们通常所说的防火墙功能。它还应该提供对邮件和下载文件的检查功能,全方位地保护你的系统。(5)具备有压缩还原技术和包裹还原技术,对Pklite、Exepack、Com2exe、Cpav等压缩加壳软件能够自动还原,能够解开ZIP、RAR、LHA等包裹文件,这样可以避免隐藏在更深层次的病毒入侵电脑。(6)杀毒软件应该具备一定的对未知病毒预测能力,利用代码分析等手段,能够检查出最新出现的病毒,因为病毒更新的速度非常之快,往往要比杀毒软件更新的快,这样就需要防患于未然。(7)可以查杀一些特殊方式的病毒,例如Trojan(特洛伊木马),可以识别出它们的各种变种,并处理后使它们失去破坏能力。还有一些我们经常遇到的宏病毒,尤其是经常使用Office的朋友,恐怕对它不会陌生,查杀宏病毒最重要的是杀毒后不会影响该软件宏功能的使用,并且不会破坏文档。在网上还有许多带有恶意的Java病毒或Activex控件等等,杀毒软件应该能够找到并关闭它们,甚至于需要删除相关联的文件。(8)一个好的杀毒软件,应该支持多个平台,可以支持Windows以及Linux等系统平台,还要支持Novell、UNIX等多种网络环境,能够在最大程度上保障Internet和局域网用户的安全。(9)最后,杀毒软件应该与其他应用软件同样具备良好的界面,简便的安装和容易上手–248–\n第13章计算机病毒及防治的功能,还有当它驻留在内存中时,尽量少的占用系统资源,不会影响用户的正常工作。13.4.2常用反病毒软件产品知道了一些关于病毒的常识后,让我们来看看国内市场上热卖的杀毒软件。下面我们来分别介绍一下。1.KV江民杀毒王2003江民新科技术有限公司(简称江民科技)成立于1996年,是目前国内最大的信息安全技术开发商与服务提供商之一。研发和经营范围涉及单机、网络反病毒软件、单机、网络黑客防火墙,邮件服务器防病毒软件等一系列信息安全产品。他们的主要产品就是KV系列杀毒软件,目前最新的版本就是KV江民杀毒王2003如图13.1所示。KV江民杀毒王2003版本除在原来KV系列杀毒软件已有的功能:查杀病毒、实时监视病毒、扫描内存病毒、查杀邮件病毒、监视邮件病毒、监视恶意网页等功能外,新功能如下。(1)与操作系统紧密结合:内嵌到“我的电脑”地址栏目中,查杀病毒不需再启动主程序。右键或点取工具条KV地址按钮可以直接查杀,真正做到与操作系统的融合。使用方便,简单易用,占用系统内存少。(2)“控制面板”风格式选择查杀目标:在主菜单上列出各种按照一定规则分类的查毒目标,单击即可查杀,做到使用KV江民杀毒王2003便捷、清晰、简单、直观。(3)扫描病毒引擎提供一种优化模式:在查杀病毒数据库和扫描引擎版本没有升级或者变化的情况下,已经被KV江民杀毒王扫描过.并确认无毒的文件(并且该文件没有变化的话)不再进行全文扫描检查,这样,首次查毒完成后,其后续的查毒飞快,提高了扫描查杀的效率,节约了时间。图13.1–249–\n计算机信息安全(4)增加了屏保扫描功能:充分利用机器的空闲时间来查杀病毒.同时能支持断点续扫。这也是节约用户的时间的一种“节能型”设计。(5)增加了NTFS文件格式的处理:在DOS系统下,直接查杀NTFS分区的病毒,解决了NTFS下的病毒查杀不彻底的问题。(6)实时监视:网络监视发现病毒信息,以不干扰用户当前操作的形式来通知用户,采用类消息的发送机制,界面更友好.人性化。(7)创建应急修复盘:提示用户插入应急盘,制作恢复系统软盘,使用KVD2003在DOS系统下来查杀病毒或者恢复系统功能。(8)内嵌扫描接口,最新支持OFFICEXP等微软系列字处理软件的宏病毒的查杀与实时监视。(9)新增加网页脚本扫描、网页脚本监控支持,清除保存在网页上的恶意脚本语言。(10)新增最流行下载软件的文件病毒查杀,相当于给您的下载软件增加了一道防护网。(11)增强支持定时扫描功能.定时下载智能升级功能.压缩文件中的病毒的查杀功能。(12)新增ZIP压缩包中的病毒的直接清除功能。2.瑞星2003北京瑞星科技股份有限公司成立于1991年11月,是经中华人民共和国公安部批准的,以研究、开发、生产及销售计算机反病毒产品和反“网络黑客”产品为主的高科技企业。公司最初建立时主要研制“瑞星防病毒卡”,是计算机界知名度最高的反病毒产品之一,为国内早期的防病毒事业做出了不可磨灭的贡献。瑞星公司出品了一系列杀毒软件,下面介绍瑞星2003版,如图13.2所示。它具有以下优点。图13.2–250–\n第13章计算机病毒及防治(1)首创智能解包还原技术,支持族群式变种病毒查杀采用瑞星独创的智能解包还原技术,解决了杀毒软件无法有效查杀因使用各种公开、非公开的自解压程序对病毒进行压缩打包而产生大量变种病毒的世界难题,彻底根治此类变种病毒造成的危害。(2)增强型行为判断技术,防范各类未知病毒瑞星首创的“行为判断查杀未知病毒”技术再次实现突破,不仅可查杀DOS、邮件、脚本以及宏病毒等未知病毒,还可自动查杀Windows未知病毒。在国际上率先使杀毒软件走在了病毒前面,并将防病毒能力拓展到防范Windows新病毒。(3)文件级、邮件级、内存级、网页级一体化实时监控系统通过对实时监控系统的全面优化集成,使文件系统、内存系统、协议层邮件系统及互联网监控系统的多层次实时监控有机融合成单一系统,各个子系统更好协调工作,使监控更有效脚本解释器的多层次实时监控完整地融合,有效降低系统资源消耗,提升监控效率,让你可以放心地打开陌生文件和网页、邮件。(4)杀毒引擎智能优化,大幅提升杀毒速度独具杀毒引擎智能优化功能,可自动优化扫描引擎结构,大幅提升查杀病毒速度。(5)主动式智能升级方式,无需再为软件升级操心上网用户再也不必为软件升级操心,主动式智能升级技术会自动检测最新的版本,只需轻松点一下鼠标,系统将自动为你升级。(6)硬盘数据保护系统,自动恢复硬盘数据采用超容压缩数据保护技术,无须用户干预,定时自动保护电脑系统中的核心数据,即使在硬盘数据遭到病毒破坏,甚至格式化硬盘后,都可以迅速恢复硬盘中的宝贵数据。(7)个性化界面风格,全面提高易用性采用最新流行的WindowsXP界面,可随时更换不同的风格和语言,充分体现瑞星软件的个性化与易用性。(8)问题自动上报瑞星杀毒软件2003版提供了自动问题上报功能,该功能是指瑞星程序在查杀病毒发生异常时,自动将此异常情况上报给瑞星公司,我们将竭诚为你检查分析发生此异常情况的原因。(9)邮件回发瑞星杀毒软件2003版的邮件监控具备了邮件回发的新功能,该新功能是指用户在发送带毒邮件或因网络故障,导致该邮件无法发送的情况下,瑞星邮件监控将会拦截该邮件并将其存放到瑞星目录下,待用户下次接收邮件时,瑞星邮件监控负责把此邮件回发到用户的收件箱,并告知用户无法发送此邮件的原因。(10)Windows共享文件杀毒瑞星杀毒软件成功地解决了正在运行的程序不能被修改的共享冲突难题,在染毒程序运行的情况下,也可以查杀程序文件中的病毒。(11)自动语言配置根据用户系统采用的默认语言,瑞星杀毒软件主程序能自动进行语言配置,以显示相应语言的界面。同时,瑞星杀毒软件2003版还实现了实时转换界面语言的功能,在菜单中进行语言选择后,无须下次启动主程序即可立即显示相应语言的界面了。–251–\n计算机信息安全(12)三重病毒分析过滤技术瑞星杀毒软件在秉承传统的特征值扫描技术的基础上,又增加了瑞星独有的行为模式分析(BMAT)和脚本判定(SVM)两项查杀病毒技术。检测内容经过三重检测和分析,既能通过特征值查出已知病毒,又可以通过程序分析出未知的病毒。三个杀毒引擎相互配合,从根本上保证了系统的安全。(13)实现在DOS环境下查杀NTFS分区瑞星公司以领先的技术,突破了WindowsNT/2000NTFS文件格式的读写难题,解决了在DOS下对NTFS格式分区文件进行识别、查杀的问题。瑞星杀毒软件可以彻底、安全地查杀NTFS格式分区下的病毒,免除了因NTFS文件系统感染病毒带来的困扰。(14)多引擎杀毒技术瑞星杀毒软件采用国际领先的VSTII病毒扫描引擎技术,该技术是一项多引擎技术,可快速、全面地查杀DOS、Windows3.x/9x/Me/NT/2000/XP等操作系统平台上的病毒。在公安部举行的杀毒软件评测中,瑞星杀毒软件名列第一,在很大程度上归功于此技术。(15)支持多种压缩格式瑞星杀毒软件支持DOS、Windows、UNIX等系统的几十种压缩格式,如ZIP,GZIP,ARJ,CAB,RAR,ZOO,ARC等,使得病毒无处藏身,并且支持多重压缩以及对ZIP、RAR、ARJ、ARC、LZH和UPX等多种压缩包内文件的杀毒。(16)瑞星安全助手瑞星安全助手可以在Office2000(及其以上版本)的文档在打开之前对该文件行查毒,将宏病毒封杀在宏启动之前。同时,瑞星安全助手还可以对IE5(及其以上版本)下载的控件在本地运行之前先行查毒,杜绝恶意代码通过IE下载的控件进行传播。3.金山毒霸2003北京金山软件有限公司创立于1988年,它已经成为我国最大的应用软件产品和服务提供商之一。金山品牌的产品已经覆盖到办公系统、信息安全、实用工具和游戏娱乐等诸多领域,创造出了WPSOffice、金山词霸、金山毒霸和剑侠情缘系列等知名产品。下面介绍金山毒霸2003,如图13.3所示。它具有以下优点。(1)闪电查毒。它完全为查毒速度做了优化,可以快速、彻底的查杀多种流行病毒。在普通配置的计算机上,“闪电查毒”扫描完一块40GB的硬盘只需要4分钟。(2)IE防火墙。是在互联网功能上的创新体现,包括金山毒霸forIE、恶意脚本过滤、OCX防毒、下载文件查毒和网页内容过滤5个部分,相当于一个以IE为操作系统的完整的反病毒软件。对于日常使用IE上网的用户来说,金山毒霸的IE防火墙能提供全面的病毒防护,可以覆盖他日常使用的全部功能,确保他的信息安全不受到侵害。(3)金山网镖2003。金山毒霸网络个人防火墙、IE防火墙,实时监控你的网络安全状态,为你提供信息安全“特快专递”,第一时间为你提供网络安全信息,让你面对黑客的攻击可以说“不”;(4)QQ、ICQ、MSN嵌入式防护程序。为用户网上交流的过程提供全方位的保护,确保你在“无毒”的网络时空畅所欲言,为你打造独具网络时代特色的查毒方式,你可以在IE中随时随地感受来自金山毒霸2003的呵护;–252–\n第13章计算机病毒及防治图13.3(5)系统漏洞修复工具。金山网镖系统漏洞检测程序可以检测你当前系统可能存在的安全漏洞隐患,为你指出问题所在,并且提供微软官方补丁程序下载地址,是你最好的系统安全顾问。同时,你还可以通过金山毒霸的智能升级程序从网络升级漏洞库,以保证检测程序为你的系统提供及时的安全能力检测。(6)硬盘数据修复工具。让你在简单的DOS工具菜单操作中体验硬盘修复工程师的感受。习题1.简述计算机病毒的定义、分类和特点。2.计算机病毒的破坏行为有哪些?3.简述计算机病毒的入侵途径。4.简述计算机病毒的四大作用机制。5.简述网络病毒的特点及电子邮件病毒的主要防范措施。6.简述检测计算机病毒的常用方法。7.简述计算机病毒的防治措施和感染病毒后的修复方法。8.杀毒软件应具备的功能有哪些?9.上机练习一:熟练使用“KV江民杀毒王2003”杀毒软件。10.上机练习二:熟练使用“瑞星(2003版)”杀毒软件。11.上机练习三:熟练使用“金山毒霸2003”杀毒软件。–253–\n第14章实际技能训练实训课程是一门实践性很强的课程。开设本章实训主要为配合前面讲述的计算机信息安全的相关理论知识,以此为基础进行一系列的实际安全训练和配置。在本章实训学习和实践过程中,学生以解决实际问题为主线,进行相关实际的信息安全配置和系统防范措施。本章实训的主要目的如下。(1)在实践过程中,使学生进一步巩固计算机信息安全课程所学知识,更加深入地了解计算机系统中所采取的安全措施、系统漏洞、黑客技术和防范措施等相关技术。(2)指导学生利用获取信息的手段进一步获取新知识,以解决实训过程中遇到的技术难点,从中提高自学能力。(3)按照信息安全的相关基本要求引导学生完成实训课题,以便学生了解信息系统安全和配置的几个重要环节。(4)提高学生的实际动手能力,使学生对网络中各个系统的安全配置更熟练,为学生从业打下良好的基础。(5)培养学生分工协作的团队精神。实训1——软件加壳脱壳和动态跟踪1.实训目的ò了解计算机软件安全技术的相关知识。ò掌握常用加壳/脱壳软件的基本操作。ò掌握常用的动态分析工具的安装、使用。2.实训环境òWindows98/Me/2000/XP。ò加壳工具——ASPack。ò脱壳和动态跟踪工具——TRW2000。–254–\n第14章实际技能训练3.实训内容ò下载和安装加壳工具——ASPack(http://www.aspack.com/downloads.html)。ò下载安装脱壳和动态跟踪工具——TRW2000(http://www.skycn.com/soft)。ò完成第3章中的练习5和练习6。ò在实训过程中,注意记录实训步骤。ò写出实训报告。实训2——备份软件1.实训目的ò掌握备份软件NortonGhost的基本操作。ò掌握SMARTBACKUP(智能备份)的安装、使用。2.实训环境òWindows98/Me/2000/XP。ò备份软件NortonGhost。òSMARTBACKUP(智能备份)。3.实训内容ò利用NortonGhost进行硬盘分区的备份和恢复。ò下载和安装SMARTBACKUP(智能备份)(http://www.skycn.com.soft)。ò使用SMARTBACKUP进行驱动程序、网络设置的备份和恢复。ò在实训过程中,注意记录实训步骤。ò写出实训报告。实训3——密码技术1.实训目的ò掌握密码技术中的相关算法。ò掌握用相关计算机语言编写密码程序。ò掌握密码技术的作用和保护信息资源的方法。2.实训环境òWindows98/Me/2000/XP。–255–\n计算机信息安全òVC++6.0或BC3.0。3.实训内容ò查找相关资料,熟悉维吉尼亚(Vigenere)算法。ò用计算机语言(例如C++语言)编写一个加密和解密程序,算法为维吉尼亚(Vigenere)算法。该程序可根据从键盘输入的密钥对明文文本文件进行加密及对生成的密文文本文件进行解密。ò写出实训报告。实训4——安全漏洞扫描1.实训目的ò理解扫描器的工作机制和作用。ò掌握利用扫描器进行主动探测、收集目标信息的方法。ò掌握使用漏洞扫描器检测远程或本地主机安全性弱点。2.实训环境òWindows98/Me/2000/XP,局域网环境。ò扫描器X-Scanner。3.实训内容ò下载和安装X-Scanner(http://www.xfocus.net)。ò使用X-Scanner对远程主机进行端口扫描、主机信息探测。ò对网段内的所有主机进行漏洞扫描。ò在实训过程中,注意记录实训步骤。ò写出实训报告。实训5——监听与嗅探1.实训目的ò理解网络监听的工作机制和作用。ò学习常用的网络监听工具,如NetXRay等监听程序的使用。2.实训环境ò要求有一个以域方式建立的WindowsNT局域网络,有一台主域服务器和若干–256–\n第14章实际技能训练Windows98工作站。ò每两个同学一组,每人各用一台计算机。3.实训内容ò下载和安装NetXRay程序。ò了解Windows98客户端登录到域服务器的密码认证机制。ò在服务器上建一些普通用户账号,并没有密码,可以在Windows98工作站上以域用户方式登录到WindowsNT中。ò实训以两个同学为一组进行,需要两台Windows98工作站,其中一位同学在Windows98工作站中以域用户登录WindowsNT服务器,另一位同学在Windows98工作站中执行监听程序,以监听第一位同学的域用户密码。ò在实训过程中,注意记录实训步骤。ò写出实训报告。实训6——防火墙1.实训目的ò掌握天网个人防火墙的配置方法。ò掌握防火墙的配置策略与实现。2.实训环境ò实验要求分组进行,两人一组,需要两台计算机。ò在服务器端安装Windows2000/98和Skynet_FireWall软件,开放局域网共享服务,在客户端安装Windows98。3.实训内容ò在无防火墙的情况下,使用Ping命令和通过共享资源使用服务器的资源。ò下载和安装SkynetFireWall软件。ò在有防火墙的情况下,使用Ping命令和通过共享资源使用服务器的资源。ò比较前面两种情况的结果,并查看防火墙日志。ò制定IP规则。ò为应用程序设置权限确定端口。ò查看和分析应用程序状态。ò在实训过程中,注意记录实训步骤。ò写出实训报告。–257–\n计算机信息安全实训7——网络入侵检测系统1.实训目的ò理解入侵检测基本原理和作用。ò掌握网络入侵检测系统Snort的安装、配置和体系结构。2.实训环境òLinux系统,局域网环境。òSnort软件。3.实训内容ò下载和安装Snort软件(http://www.snort.org)。ò以嗅探器模式运行,观察屏幕上的信息。ò以数据包记录器模式运行,察看日志文件。ò制定snort规则。ò以NIDS模式运行,观察规则匹配的结果。ò在实训过程中,注意记录实训步骤。ò写出实训报告。实训8——Windows2000的权限配置与安全审核1.实训目的ò进一步了解Windows2000操作系统安全配置的重要性。ò学习使用域用户管理器为用户建立和修改用户属性,同时可以设置其他账号安全属性。ò学习利用存取控制列表来控制用户对对象的访问权限。2.实训环境ò安装有Windows2000的服务器一台。ò与服务器联网的计算机一台。3.实训内容ò停掉Guest账号。ò限制不必要的用户数量,去掉duplicateuser账户、测试账户、共享账户等。–258–\n第14章实际技能训练ò创建两个管理员用账号,一个只有一般权限的账号来处理一些日常事物,另一个拥有Administrators权限的账号只在需要的时候使用。ò把Administrators账号改名。ò在Windows2000上使用域用户管理器为用户建立和修改用户及属性。ò同时设置其他账号安全属性,具体包括:设置工作站登录限制、设置时间登录限制、设置账号失效日期和设置用户登录失败次数等。ò使用Windows2000上的相关工具和配置方法来练习设置有关资源的权限。ò通过工作站以合法的用户账号登录到服务器上,查看用户的权限。ò在实训过程中,注意记录实训步骤。ò写出实训报告。实训9——IISWeb服务器安全1.实训目的ò了解WWW的安全问题和IIS安全配置、漏洞等问题。ò掌握IISWeb服务器安全配置方法。2.实训环境ò安装有Windows2000的服务器一台。ò安装IIS组件。3.实训内容ò解除NetBios与TCP/IP协议的绑定。ò禁用SMB。ò删除所有的网络共享资源。ò改NTFS的安全权限。ò只开放必要的端口,关闭其余端口。ò加强日志审核。ò只保留TCP/IP协议,删除NETBEUI、IPX/SPX协议。ò停掉没有用的服务,只保留与网站有关的服务和服务器某些必须的服务。ò停止默认的FTP站点、默认的Web站点,管理Web站点,在新的目录下新建WWW服务与FTP服务。ò删除不必要的IIS扩展名映射。ò设置IP拒绝访问列表。ò使用W3C扩充日志文件格式。ò在实训过程中,注意记录实训步骤。ò写出实训报告。–259–\n计算机信息安全实训10——E-mail安全1.实训目的ò了解电子邮件系统漏洞带来的危害。ò熟悉和掌握邮件加密软件的使用。2.实训环境òWindows98/Me/2000/XP。ò邮件加密软件PGP。3.实训内容ò下载和安装PGP软件(http://www.pgp.com/)。ò使用PGPkeys管理密钥环。ò密钥的生成、传播和废除。ò数字签名。ò验证签名。ò对文件加密与解密。ò在实训过程中,注意记录实训步骤。ò写出实训报告。实训11——杀毒软件的使用1.实训目的ò了解有关病毒和杀毒软件的一般知识。ò熟练掌握杀毒软件的使用。2.实训环境òWindows98/Me/2000/XP。ò瑞星2003。3.实训内容ò安装瑞星2003。ò做好瑞星2003的系统设置。ò在线升级。–260–\n第14章实际技能训练ò杀毒。ò查看病毒报告。ò卸载。ò在实训过程中,注意记录实训步骤。ò写出实训报告。–261–\n计算机信息安全附录本书中网络安全的技术文献主要从以下网站收集。安全焦点:http://www.xfocus.org/中联绿盟:http://www.nsfocus.com/网络卫士:http://www.netguard.com.cn/江民科技:http://www.jiangmin.com/金山毒霸:http://www.iduba.net/赛门铁克:http://www.symantec.com/冠群金辰:http://www.kill.com.cn/黑白网络:http://www.521hacker.com/heibai.htm中国鹰派:http://www.chinawill.com/绿色兵团:http://www.vertarmy.org/网络力量:http://www.isforce.org/看雪学苑:http://www.pediy.com/红客联盟:http://www.cnhonker.com/index.php万方数据:http://www.wanfangdata.com.cn/补天网:http://www.patching.net/index.asp搜毒网:http://www.soudu.net/小凤居:http://www.chinesehack.org/小榕的网站:http://www.netxeyes.com/天天安全网:http://www.ttian.net/天网安全阵线:http://sky.net.cn/Linux伊甸园:http://www.linuxeden.com/HelpNetSecurity:http://www.net-secufity.orgNetEye安全网站:http://neteye.neusoft.com/20CN网络安全小组:http://www.20cn.net/瑞星信息安全资讯网:http://www.rising.com.cn永远的UNIX技术资料的宝库:http://www.fanqiang.com/–262–\n第14章实际技能训练参考文献叶丹.网络安全实用技术.北京:清华大学出版社,2002周学广,刘艺,信息安全学.北京:机械工业出版社,2003刘荫铭,李金海,刘国丽等.北京:计算机安全技术清华大学出版社,2000袁津生,吴砚农.计算机网络安全基础.北京:人民邮电出版社,2002刘锋等.网络对抗.北京:国防工业出版社,2003李海泉,李健.计算机系统安全技术.北京:人民邮电出版社,2001杨义先.网络信息安全与保密.北京:北京邮电大学出版社,1999卢开澄等.计算机系统安全.重庆:重庆出版社,1999BRUCESCHNEIER.应用密码学.北京:机械工业出版社,2000张尧学等.计算机网络与Internet教程.北京:清华大学出版社,2001杨红颖,王向阳.Internet防火墙技术综述.计算机与信息技术,2000,8唐正军等.网络入侵检测系统的设计与实现.北京:电子工业出版社,2002王珊.数据库系统原理教程.北京:清华大学出版社,1998聂瑞华.数据库系统概论.北京:高等教育出版社,2001段钢.加密与解密(第二版).北京:电子工业出版社,2003帅青红,匡松.电子商务安全与PKI技术.成都:西南交通大学出版社,2001董玉格等.攻击与防护:网络安全与实用防护技术.北京:人民邮电出版社,2002杨晨光等.计算机网络安全.西安:西安电子科技大学出版社,2002袁家政.计算机网络安全与应用技术.北京:清华大学出版社,2002–263–
查看更多

相关文章

您可能关注的文档