第六章软件安全技术6.1引言软件安全(SoftwareSecurity)就是使软件在受到恶意攻击的情形下依然能够继续正确运行及确保软件在授权范围内被合法使用的思想。主要内容软件的自身安全(防丢失、篡改)软件的存储安全(防窃取、破坏)软件的通信安全(确保数据信息的完整性)软件的使用安全(防盗版)软件的运行安全(防漏洞)许多关键基础设施取决于软件的安全铁路电网航空化工关于软件安全的相关报道关于软件安全的相关报道“心脏流血”全球警告WindowsXP退役带来安全隐患普通杀毒软件无法抵御6.1引言出现软件故障现象的原因“任何软件,不论它看起来是多么安全,其中都隐藏漏洞”影响软件安全的技术趋势无处不在的网络增加了攻击途径,降低了攻击难度增长的系统复杂性滋生了软件安全漏洞内置的可扩展性难以防范恶意代码的嵌入,且安全分析难度增加Windows操作系统复杂性6.2漏洞6.2漏洞6.2漏洞什么是漏洞从广泛的意义上看,漏洞是在硬件、软件、协议的具体实现或系统安全策略以及人为因素上存在的缺陷,它可以使黑客能够在未经系统的许可者授权的情况下访问或破坏系统。是一切攻击行为和事件的起源。6.2漏洞漏洞的分类按形成原因分:程序逻辑结构漏洞程序设计错误漏洞开放式协议造成的漏洞人为因素造成的漏洞按发现的先后顺序:已知漏洞未知漏洞0day漏洞6.2漏洞程序逻辑结构漏洞程序的逻辑设计不合理典型:Windows2000用户登录的中文输入法漏洞合法的程序用途被利用典型:WinRAR的自解压功能判断是否合法或是否有授权?系统或程序入口需要用户名、口令或最高权限者授权获得操作或使用权限否是入口辅助(输入法等)本地输入法漏洞6.2漏洞程序代码设计错误漏洞编程人员在使用C和C++语言编写程序时在技术上的疏忽或程序员的代码安全意识不高造成的漏洞。EliasLevy(笔名为AlephOne)的论文SmashingtheStackforFunandProfit典型:缓冲区溢出漏洞和内存越界漏洞缓冲区溢出漏洞当一个程序允许输入的数据大于已分配的缓冲区大小时,缓冲区溢出就会发生。有些语言具有直接访问应用程序内存的能力,如果未能处理好用户的数据就会造成缓冲区溢出。C和C++是受缓冲区溢出影响的两种最常见的编程语言。缓冲区溢出造成的后果小到系统崩溃,达到攻击者获取应用程序的完全控制权。1988年,第一个Internet蠕虫—Morris蠕虫就是对finger服务器攻击,造成缓冲区溢出,几乎导致Internet瘫痪。缓冲区溢出漏洞Morrisfinger蠕虫的成因:charbuf[20];gets(buf);另一个缓冲区溢出例子:charbuf[15];charprefix[]=“http://”;charpath[]=“hstc.edu.cn”;strcpy(buf,prefix);strcat(buf,path,sizeof(path));6.2漏洞开放式协议造成的漏洞TCP/IP协议的最初设计者在设计该通信协议时只考虑到了协议的可行性和实用性,而没有考虑到协议的安全性。嗅探网络数据包拒绝服务攻击修改HTTP数据包的载荷以上传一个网页木马6.2漏洞人为因素造成的漏洞设置了过于简单的口令(弱口令)无意行为丢失口令非法操作了系统资源访问控制不合理管理员安全配置不当,允许不应进入网络的人进入网络等因对待工作消极滞后了安装安全补丁6.2漏洞已知漏洞已经被人发现了(安全组织、黑客和黑客组织的研究人员、厂商)已经知道它的危害程度对高危漏洞已经知道它的利用方法安全机构发布了相应的安全补救措施软件提供商一般提供了安全补丁6.2漏洞未知漏洞特点:还没有被发现,但是客观存在可能造成的影响一颗不知何时会引爆的定时炸弹6.2漏洞0day漏洞特点:已经被发掘出来,只在小范围传播可能造成的影响软件开发商:可能不会向外界公布或是只公布一个简单的信息,并有可能在不公开的情况下更新漏洞程序盈利型黑客:不会向外界公布漏洞信息,用来谋求利益安全组织或研究型黑客:会向外界公布漏洞和详细信息并提供临时解决方案,使漏洞变成已知漏洞6.2漏洞0day漏洞演变过程6.2漏洞几种已知的Windows漏洞本地输入法漏洞Telnet信息泄露漏洞TCP/IP漏洞Server服务远程缓冲区溢出漏洞IIS重定向漏洞InternetExplorer浏览器漏洞PowerPoint远程执行任意代码漏洞6.3操作系统的安全设置操作系统的重要性计算机系统运行的基础用户与计算机系统的交互界面和环境一座安全屏障,入侵者首要目标各种应用系统成败的关键既要防止操作系统本身的隐患和不安全漏洞,也要防止对操作系统的滥用、破坏和窃取服务6.3操作系统的安全设置用户权限管理用户权限分成:登录权限、操作权限权限是针对资源而言的安全标识符SecurityIdentifier,SIDSID具有唯一性,绝对不会重复产生Regedit:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList6.3操作系统的安全设置用户权限管理权限的四项基本原则拒绝优于允许原则(解决冲突)权限最小化原则(保障资源安全)权限继承性原则(实现“自动化”)权限累加原则(灵活性)磁盘配额(NTFS格式)可设置不同用户拥有不同的磁盘配额。两个级别:磁盘配额限制、磁盘配额警告6.3操作系统的安全设置审核策略设置审核日志用来记录用户执行的各项操作安全审核对于任何企业系统来说都极其重要,因为只能使用审核日志来说明是否发生了违反安全的事件。日志包括事件日志,记录了系统上发生的事件安全日志,记录了审核事件6.3操作系统的安全设置注册表安全设置注册表是存储计算机的配置信息的数据容器它是中央分层数据库注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的。在缺省情况下,所有基于Windows的计算机的注册表在网络上都是可以被访问到。保护注册表,防范远程攻击6.3操作系统的安全设置TCP/IP筛选在“内核”模式下工作通过与IPSec筛选器及“路由和远程访问”数据包筛选一起使用,可以对TCP/IP站访问控制方案进行分层。可控制入站和出站的TCP/IP访问主机安全加固(水桶原则)网络设备加固、网络结构调整、服务器系统加固、数据库加固、安全产品优化6.4应用系统的安全软件分析技术静态分析技术从反汇编出来的程序清单上分析,从提示信息入手进行分析。常用工具:W32Dasm、IDA、HIEW等动态分析技术利用动态分析工具一步一步地单步执行软件。常用工具:Soft-ICE、TRW2000等6.4应用系统的安全常用的软件保护技术时间限制共享软件一般都有时间上的限制,如试用30天等。序列号方式软件的试用期过后,利用加密算法,根据用户的私人信息连同信用卡号码计算出一个注册码。KeyFile保护是一种利用文件来注册的保护方式。6.4应用系统的安全常用的软件保护技术功能限制的程序一般是DEMO版或菜单中部分选项呈灰色。CD-check程序在启动时判断光驱中的光盘上是否存在特定的文件,而在运行过程中一般不再检查。加密狗技术加密狗通过在软件执行过程中和加密狗交换数据来实现加密。6.5网络安全协议一般的网络通信协议都没有考虑安全性需求,这就带来了互联网许多的攻击行为,导致了网络的不安全性常用的网络安全协议Kerberos认证协议安全电子交易协议SET安全套接层协议SSLIP层安全协议IPSec6.5网络安全协议Kerberos认证协议①②③④⑤⑥6.5网络安全协议安全电子交易协议SET持卡人商家清算银行支付网关认证中心6.5网络安全协议安全套接层SSL请稍等…你好!你好!(潮州话)“我想订总统套房。”可以跟你说句悄悄话吗?我会说上海话、四川话、潮州话可以啊。我会说山东话、潮州话、广西话……就说潮州话吧6.5网络安全协议安全套接层SSL6.5网络安全协议虚拟专用网VPN指在公用网络中建立(虚拟的)专用的数据通信网络的技术。技术特点安全保障服务质量保证可扩充性和灵活性可管理性6.5网络安全协议虚拟专用网VPNVPN技术认证技术——验证数据的完整性和用户认证(SSL)加密技术——数据加密(IPSec)密钥交换与管理——IKE(互联网密钥交换)、SKIP(互联网简单密钥管理)作业简述漏洞的定义及其分类简述保障软件安全的几种方法查阅资料,说明安全电子协议SET实现安全通信的过程。讨论XP2014年4月8日,Windows宣布“退役”,你认为这将对信息的安全造成什么影响?登录Moodel教学平台,选择计算机信息安全与管理课程,对该话题发表你的观点。补充简单文件共享会打开许多NetBIOS漏洞关闭简单文件共享:在“我的电脑”中,“工具”→“文件夹选项”,点击“查看”选项,取消“使用简单文件共享(推荐)”补充FAT32把FAT32文件系统转换成NTFS将文件系统转换成NTFScmd命令窗口中,执行convertvolume/fs:ntfs(其中volume是驱动器的盘符)补充Guest帐户可以访问计算机,但受到限制。黑客会利用Guest帐户禁用Guest帐户WinXPPro:“控制面板”→“管理工具”→“计算机管理”→“本地用户和组”→“用户”,双击Guest帐户,选中“帐户已停用”WinXPHome:先执行Netuserguestpassword命令,然后进入“控制面板”→“用户设置”,设置Guest帐户的密码补充补充Administrator帐户建立另一个拥有全部权限的帐户,然后停用Administrator帐户设置足够复杂的密码在WinXPHome中,修改一下默认的所有者帐户名称。补充补充交换文件即虚拟内存(pagefile.sys)要求机器在关机的时候清除系统的页面文件(交换文件)regedit在注册表中找到HKEY_local_machine\system\currentcontrolset\control\sessionmanager\memorymanagement,然后创建或修改ClearPageFileAtShutdown,把这个DWORD值设置为1补充补充转储文件系统在遇到严重问题时,会把内存中的数据保存到转储文件。禁止创建转储文件“控制面板”→“系统”→“高级”→“启动和故障恢复”,将“写入调试信息”这一栏设置成“(无)”。HKEY_local_machine\software\Microsoft\WindowsNT\CurrentVersion\AeDebug,把Auto值改成“0”。补充补充补充多余的服务NetMeetingRemoteDesktopSharing,RemoteDesktopHelpSessionManager,RemoteRegistry,……关闭不需要的服务“控制面板”→“管理工具”→“服务”,右键点击不需要的服务名称并选择“属性”菜单,在“常规”选项卡中把“启动类型”改成“手动”,再点击“停止”按钮补充补充远程协助/桌面禁用此功能设置组策略(gpedit.msc),“计算配置”→“管理模板”→“系统”→“远程协助节点”禁止用户请求远程协助禁止用户在这台计算机上向别人提供远程协助帮助注意:组策略的设置将会覆盖其他任何的系统属性中远程选项卡的设置。补充补充补充媒体的自动播放默认情况下,WindowsXP会自动运行光驱中插入的所有光盘。禁用媒体的自动播放设置组策略(gpedit.msc),“计算配置”→“管理模板”→“系统”,双击“关闭自动播放”,点击启用按钮,在下拉菜单中选择“所有驱动器