信息安全课件_第1页
信息安全课件_第2页
信息安全课件_第3页
信息安全课件_第4页
信息安全课件_第5页
已阅读5页,还剩1039页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息安全概述主要内容信息安全的概念信息安全的发展历史信息安全的目标信息安全的研究内容信息安全的概念信息(information)是经过加工(获取、推理、分析、计算、存储等)的特定形式数据,是物质运动规律的总和。信息安全是指信息网络的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,信息服务不中断。信息安全涉及的知识领域信息安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。

信息安全的发展历史信息安全的发展经历了如下几个阶段:古典信息安全辐射安全计算机安全网络安全信息安全安全性攻击被动攻击攻击者在未被授权的情况下,非法获取信息或数据文件,但不对数据信息作任何修改

搭线监听、无线截获、其他截获、流量分析破坏了信息的机密性主动攻击包括对数据流进行篡改或伪造

伪装、重放、消息篡改,破坏了信息的完整性拒绝服务,破坏了信息系统的可用性信息安全的目标机密性:Confidentiality,指保证信息不被非授权访问。完整性:Integrity,指信息在生成、传输、存储和使用过程中不应被第三方篡改。可用性:Availability,指授权用户可以根据需要随时访问所需信息。信息安全性质之间的关系信息安全的目标是致力于保障信息的这三个特性不被破坏。构建安全系统的一个挑战就是在这些特性中找到一个平衡点,因为它们常常是相互矛盾的。因此,三个特征是可以独立,也可以有重叠。其它信息安全性质可靠性:是指系统在规定条件下和规定时间内、完成规定功能的概率。不可抵赖性:也称作抗否认性,是面向通信双方(人、实体或进程)信息真实统一的安全要求,它包括收、发双方均不可抵赖。可审查性:使用审计、监控、防抵赖等安全机制,使得使用者(包括合法用户、攻击者、破坏者、抵赖者)的行为有证可查,并能够对网络出现的安全问题提供调查依据和手段。可控性:是对信息及信息系统实施安全监控。管理机构对危害国家信息的来往、使用加密手段从事非法的通信活动等进行监视审计,对信息的传播及内容具有控制能力。信息安全的研究内容信息安全的研究范围非常广泛,其领域划分成三个层次信息安全基础理论研究信息安全应用技术研究信息安全管理研究

信息安全基础研究密码理论数据加密算法消息认证算法数字签名算法密钥管理安全理论身份认证、授权和访问控制、安全审计和安全协议信息安全应用研究安全技术防火墙技术、漏洞扫描和分析、入侵检测、防病毒等。平台安全物理安全、网络安全、系统安全、数据安全、用户安全和边界安全。信息安全管理研究安全策略研究包括安全风险评估、安全代价评估、安全机制的制定以及安全措施的实施和管理等。

安全标准研究主要内容包括安全等级划分、安全技术操作标准、安全体系结构标准、安全产品测评标准和安全工程实施标准等。

安全测评研究主要内容有测评模型、测评方法、测评工具、测评规程等。

网络与信息安全

系统安全:Linux系统安全内容Linux系统介绍Linux内核Linux文件系统Linux的网络结构Linux攻防技术一次针对Linux的入侵过程Linux操作系统背景最初由LinusBenedictTorvalds于1991年开发的1994年3月发布第一个正式版本内核升级模式稳定的内核,第二个数字为偶数,例如2.2.14开发的内核,第二个数字为奇数,例如2.1.14Linux系统特点兼容UNIX:API兼容,管理命令和各种工具源码开放支持各种硬件平台,支持多CPULinux平台上存在大量的应用软件,以及应用开发工具Linux内核多用户,多任务,分时,软实时处理不是微内核系统,但具有某些微内核特征Intel版本:i386的保护模式,特权级内核态(0)和用户态(3)中断和系统调用——两种特权级的切换PCB:进程控制块,常驻内存进程是最基本的调度单元进程是动态的,每一个进程都有一个进程控制块没有专门的调度进程,内核中有一个schedule函数完成调度任务进程在调度过程中有多种状态进程调度:状态转换图TASK_RUNNINGHoldingCPUTASK_UNINTERRUPTIBLETASK_INTERRUPTIBLETASK_ZOMBIETASK_STOPPEDdo_fork()schedule()时间片到do_exit()申请资源未果申请资源未果跟踪系统调用所申请资源有效时收到SIG_KILL或SIG_CONT后所申请资源有效或者收到信号时Linux的系统调用编程接口,与POSIX兼容,C语言函数集合实现形式与DOS的INT21H相似Linux使用int80h函数名“sys_xxx”比如系统调用fork的相应函数sys_fork()系统调用号和系统调用表系统调用都转换为Int80h软中断所有的系统调用只有一个入口system_call出口:ret_from_sys_callLinux内存管理在i386机器上,每个进程有独立的4G虚存空间32位线性地址——利用硬件的分页机制内核的代码段和数据段被映射到3G以上的空间中用户态下的代码实际可申请的虚存空间为0-3GB每个进程用两套段描述符来访问内存,分别用来访问内核态和用户态下的内存空间在用户态下,代码不可能访问3G以上的地址空间,如果要访问内核空间,必须通过系统调用或者中断Linux对虚存的管理使用vma(virtualmemoryarea)机制在进程数据结构中,指定了用户空间的上界,在系统调用时,用户指定的指针不能超过此上界,但是内核代码可以重新设定此上界页交换机制:缺页中断、页面换入Linux的段选择符情况Linux的模块机制可动态装载的内核模块(lkm)一组命令:insmod/rmmod/lsmod/modprobe/…关于模块机制可以让核心保持比较小的尺寸动态装载,避免重新启动模块机制常常用于设备驱动内核模块一旦加载之后,与原有的核心代码同等可动态装载的内核模块的一些缺点可能会导致一定的性能损失,和内存开销代码不规范的模块可能导致核心崩溃如果调用系统核心功能时,参数错误,同样会有问题Linux的模块机制原理insmod装载模块Linux内核中有一个模块链表首先通过一个特权级系统调用来找到核心的输出符号然后将模块读入虚拟内存,并利用来自核心的输出符号,修改其未解析的核心例程和资源的引用地址再次使用特权级系统调用来申请足够的空间来容纳新的核心模块,并拷贝到此内存空间中每个模块必须包括初始化例程和注销例程,insmod将调用初始化代码,并执行一个特权级系统调用将模块的初始化与注销例程地址传递给核心rmmod卸载模块当一个模块不再被引用的时候,它可以被卸载核心调用注销例程,释放相应的核心资源从模块链表中移除,它所占用的核心内存被回收内核中的ROOTKIT通过LKM机制,可以在系统内核中插入木马模块一个典型的以Linux2.2.x为基础的rootkit——knark使用insmodknark.o就可以加载到内核中一旦加载了knark后门之后可以改变netstat的输出结果可以改变运行进程的UID和GID可以不用SUID就能够获得root访问权限……还有其他的ROOTKITS,比如adore内核ROOTKITS的对策根据每个rootkit的特征进行检测,然后设法删除预防为主,安装内核检测系统,比如LIDSLinux文件系统Linux支持多种文件系统,包括ext、ext2、hpfs、vfat、ntfs、…通过虚拟文件系统VFS,Linux操作系统可以支持不同类型的文件系统文件系统类型管理文件系统类型的注册途径:在编译内核时确定在文件系统作为模块装入时登记nextnext=0nextfile_systemfile_system_type虚拟文件系统(VFS)是物理文件系统与服务之间的一个接口层,只存在于内存中定义了关于各种特殊文件系统的公共接口——抽象性Super_block、inode、文件操作函数入口把所有的文件系统映射到同一个层次结构中,通过super_block与inode中的关联关系来实现,如下图所示处理面向文件系统的通用操作把针对文件系统的操作映射到相关的物理文件系统许多复杂的cache机制,提高了文件系统的访问效率VFSinodecacheVFSdirectorycacheBuffercache……rooti_mounti_sbs_coverds_mountedext2文件系统这是Linux系统专用的文件系统文件也是分块存储,以块为整单位数据块三次间接块二次间接块一次间接块12个直接块数据块数据块数据块数据块数据块...组0组1组Ns_blockfs描述符块位图inode位图inode表数据块数据结构ext2_super_blockext2_inode:内含一个32位的文件访问控制表和一个32位的目录访问控制表Linux文件系统的安全性Linux文件系统安全模型与两个属性相关文件的所有者(ownership)文件所有者的id文件所有者所在用户组的id访问权限(accessrights)10个标志第1个标志:d(目录),b(块系统设备),c(字符设备),.(普通文件)第2-4个标志:所有者的读、写、执行权限第5-7个标志:所有者所在组的读、写、执行权限第8-10个标志:其他用户的读、写、执行权限用chmod修改权限:字符方式和数字方式Linux文件的安全性SUID程序正常情况下,一个程序在运行的时候,它的进程将属于当前用户但是,对于SUID程序,它的进程不属于启动用户,而是属于该程序的所有者用户通常,SUID/SGID程序中的bug往往是入侵的基础mount和fstab命令用mount装载文件系统的时候,可以使用一些选项控制文件系统的安全性,对于装载FAT系统比较有意义。umash=Nuid=Ngid=NLinux文件系统安全性权限管理的不灵活只能对所有者、所有者所在组和其他用户分配权限,无法做到进一步的细致化POSIXACLsforLinux软件包内核补丁,可以做到用ACL来管理权限需要重新编译内核,下载补丁:http://acl.bestbits.at两个命令:setfacl、getfacl真正删除文件工具wipeLinux用户管理用户文件/etc/passwdShadowpassword:/etc/shadow此文件只对root可读让用户拥有单独的组,而不是加入到共享的users组中groupadd创建用户:useradd改口令:passwd管理口令的有效期chageLinux中crypt口令加密方案crypt()是一个口令加密函数,它基于DES算法。我们可以认为这是一个单向加密操作函数原型:char*crypt(constchar*key,constchar*salt);*salt是两个字符,每个字符可从[a-zA-Z0-9./]中选出来算法UNIX标准算法使用DES加密算法,用key对一个常量进行加密,获得一个13字节的密文编码输出,其中包括salt的两个字符[fromRedHatLinux6.2]Salt的作用同样的口令产生不同的密文增加了穷举空间建议使用更为安全的MD5算法Linux中Kerberos认证协议的支持建立KDC下载和安装Kerberos5配置Kerberos启动服务管理Kerberoskadmin,管理Kerberos数据库使用Kerberoskinit,获得一个ticketklist,列出所有的ticketskpasswd,修改口令kdestroy,删除一个ticket使用支持Kerberos的网络应用,例如ftp,telnet,等PAM(PluggableAuthenticationModules)一种可插入的认证机制针对一个服务,指定一些认证相关的动作,放到/etc/pam.conf文件中,或者放到/etc/pam.d/下与服务同名的配置文件中每一行包含一个模块类型、一个控制级别、一个模块:servicemodule-typecontrol-flagmodule[args]例如passwdpasswordrequiredpam_cracklib.sotype=userretry=3passwdpasswordrequiredpam_pwdb.souse_authtokPAM结构图logintelnetftp……用户认证管理(auth)帐户管理(account)会话管理(session)口令管理(password)PAM配置文件管理员PAMAPIUNIX认证Kerberos认证S/Key认证PAMSPIPAM核心库系统服务PAM服务模块……Linux内核安全性Linux内核机制存在的一些潜在缺陷超级用户的特权可能会被滥用系统文档不安全系统内核可以比较容易地插入模块内核中,进程不受保护Linux对网络的支持Linux从UNIX继承了在网络方面的优势Linux自身的发展也是与Internet息息相关的介绍内容Linux网络层次Linux协议栈Linux网络配置内核防火墙Linux中网络的层次结构BSDSocketsINETSocketsTCPUDPIPPPPSLIPEthernetARPUserKernelNetworkApplicationsSocketInterfaceProtocolLayersNetworkDevicesAppletalkIPXBSDSocket一个通用的接口ApartofVFSinodeAsocketcanbeoperatedjustthesameasafilebysystemcallread(),write(),lseek()…一个套接字描述一个通讯连接的一端,两个通讯程序中各自有一个套接字来描述它们自己那一端。每一类型的套接字有它自己的通信寻址方法。Linux支持下列套接字地址族或域UNIXUnix域套接字INETInternet地址族支持通过TCP/IP协议的通信AX25AmateurradioX25IPXNovellIPXAPPLETALKAppletalkDDPX25X25对BSDsocket进行准确操作要依赖于它下面的地址族Client/ServerCommunicationClient1.Createasocket2.Bindanaddr3.Listentheclient4.CreateasocketServer

ConnectAcceptSendRecvINETSocketBSDsocket层从已注册的INETproto_ops数据结构中调用INET层socket支持例程来为它执行工作。BSDsocket层把socket结构传到INET层。为了不把BSDsocket与TCP/IP的特定信息搞混,INETsocket层使用它自己的数据结构:sock,它与BSDsocket结构相连。建立BSDsocket:地址族,socket类型,协议将地址与INETsocket绑定

绑定操作在INETsocket层内处理,下面的TCP和UDP协议层提供一些支持。绑定的地址在sock结构中的recv_addr和saddr字段。例如,fd=socket(AF_INET,SOCK_STREAM,0)下层网络设备接收的包必须通过正确的INET和BSDsocket才能被处理。因此,UDP和TCP维护了一些hash表用来在输入IP消息内查找地址并将它们导向正确的socket/sock对。INETSocket(续)在INETSocket上建立连接UDP:IP地址和端口号TCP:建立虚联接监听INETSocketUDP:改变socket的状态TCP:建立一个新的sock结构,加到两个hash表中并激活tcp_bound_hash表和tcp_listening_hash表。接收连接请求只用于TCP协议阻塞和非阻塞状态socket()sys_socket()socket()sock_create()inet_create()get_fd()returncheckprotocol,type,familynet_families[family]->create(sock,protocol)createsocketstructuretcp_v4_init_sock()sk->prot->init()INETinet_create()IPXipx_create()UNIXunix_create()LinuxBSDSocketDataStructure

files_structcountclose_on_execopen_fsfd[0]fd[1]fd[255]filef_modef_posf_flagsf_countf_ownerf_opf_inodef_versioninodesocksockettypeprotocoldata(sk)typeprotocolsocketSOCK_STREAMSOCK_STREAMAddressFamilysocketoperationsBSDSocketFileOperationslseekreadwriteselectioctlclosefasyncINETsocketBSDsocketIP层Socket缓存sk_buff每一个包到来之后,都被放到一个sk_buff中sk_buff是一个数据结构,包含一些与该包有关的信息在包和sk_buff之间是一对一的关系sk_buff大小按16字节的倍数分配空间接收IP包将接收的数据转换成sk_buff结构。这些sk_buff则被网络驱动加入到了backlog队列中。如果backlog队列太长,则丢弃接收的sk_buff。发送IP包建立sk_buff加上各种头。IP用路由表为目的IP地址解析路由IP分片PacketsinLinuxkernel2.2sys_write()sock_write()inet_sendmsg()tcp_v4_sendmsg()

tcp_do_sendmsg()

tcp_send_skb()

tcp_transmit_skb()ip_queue_xmit()

ip_output()

ip_finish_output()dev_queue_xmit()hard_start_xmit()sys_read()sock_read()inet_recvmsg()tcp_recvmsg()

tcp_v4_recv()ip_local_deliver()

ip_rcv()

net_bh()Netif_rx()Block_input()

ei_receive()

ei_interrupt()outputinput接收数据包的过程首先是硬件接收到数据包然后,硬件产生中断驱动程序把数据从硬件拷贝到一个sk_buff中调用netif_rx()把数据包放到系统全局的backlog队列中通知net_bh()在适当的时候net_bh()执行net_bh()试图发送所有的数据包,然后从backlog队列中移除,送到适当的包处理器,例如ip_rcv()ip_rcv()可能会调用ip_local_deliver()或ip_forward()ip_local_deliver()会导致调用tcp_v4_rcv()tcp_v4_rcv()将数据放到某个socket的队列中当socket的进程读数据时,tcp_recvmsg()被调用如果socket进程阻塞在读操作上,则进程将被唤醒OnNetworklevel…Ip_rcv()RoutetableIp_forward()DemasqIp_output()RoutetableIp_local_deliver()inputforwardoutputTransportlevelDatalinklevelmasq网络设备工作原理图网络设备驱动数据结构面向对象的方法structdevice可见部分和隐藏部分。可见部分是由外部赋值隐藏部分的域段仅面向系统内部,它们可以随时被改变初始化主要工作是检测设备的存在、初始化设备的device结构及在系统中登记该设备。

两种方式:模块初始化模式&启动初始化模式网络接口管理表:dev_base模块初始化模式网络设备驱动的职责提供初始化功能支持启动初始化模式:网络设备的检测及初始化函数支持模块初始化模式:网络设备的初始化函数,供register_netdev调用;还需提供init_module和cleanup_module函数提供该网络设备的打开和关闭操作(ifconfig命令使用)提供该网络设备的数据传输函数,负责向硬件发送数据包,供dev_queue_xmit调用;提供该网络设备的中断服务程序,处理数据传输完毕的善后事宜和数据的接收。当物理网络设备有新数据到达或数据传输完毕时,将向系统发送硬件中断请求,该函数用来响应中断请求Linux网络配置Linux用daemon程序来提供网络服务有些服务直接由daemon程序一直运行有些服务通过inetd提供Inetd它的职责是监听大范围内的网络端口,根据进来的请求动态启动相应的服务daemon——节约资源在Linux上,其实大多数inetd服务并不是必需的,虽然,这些服务本身有一定的安全认证能力,但是为了安全起见,应该关闭这些服务如何配置inetd?编辑inetd.conf

每行格式:<service_name><sock_type><proto><flags><user><server_path><args>通过/etc/services文件,可以查到每个service的端口和协议类型停止inetd进程,并重新启动inetd.conf配置文件/etc/services配置文件只影响inetd启动的网络服务,由其他脚本(例如rcN.d)启动的服务可能不受影响TCPwrappers在Linux中为/usr/sbin/tcpd,用法TCPwrapper使得系统可以在请求登录或者输入口令之前拒绝进来的连接TCPwrapper的两个配置文件/etc/hosts.deny——满足条件则拒绝/etc/hosts.allow——满足条件则允许配置规则:service:host(s)[::action]两个工具tcpdchk,检查配置文件有没有错误,是否与其他文件冲突tcpdmatch,模拟规则是否如期起作用日志、syslogdsyslogd是一个专门用于记录日志信息的服务配置文件/etc/syslog.conf可以记录本地日志,也可以记录远程的日志信息可以指定把什么样的日志消息记录到哪个文件中Linux的内核防火墙协议栈在IP层上调用三个函数,防火墙的功能将在这三个函数中实现:ip_rcv():接收ip_forward():转发ip_output():发送三条规则链Input链Output链Forward链Linux内核支持的NATLinux内核防火墙的发展从ipfwadm->ipchains->netfilterNetfilter是2.4内核中实现网络安全功能的通用框架在框架中,定义了5个钩子在每个钩子上可以挂接多个模块Iptables模块挂接在LOCAL_IN、FORWARD、LOCAL_OUT上提供多种功能包过滤防火墙地址转换NAT网络状态检测……Pre-routeForwardRoutePost-RouteLocal-inRouteLocal-out针对Linux的攻防技术Linux平台上有大量的黑客工具,而且往往以源码方式发布,所以,学会编译和使用这些工具,可以在攻击对抗中发挥作用探查信息用nmap可以查到Linux的版本信息改变Linux的协议栈行为,可以掩盖这些信息许多早期的标准TCP/IP服务,可以暴露系统的内部信息,比如finger,还有一些基于RPC的服务尽量关闭不必要的服务一些服务的欢迎界面,比如ftp、telnet服务修改这些服务的配置信息口令破解如何获得Linux的口令文件口令文件的格式是公开的口令文件passwd中,如果口令移到了shadow中,则没有口令信息有一些工具能够获得shadow文件的副本破解程序Crack——猜口令JohntheRipper——字典攻击,也可以穷举攻击XIT——字典攻击,DOS程序……对策使用shadow,MD5使用强口令失败多次之后,帐号锁定结合其他的认证技术日志记录Linux数据驱动攻击目标:获得root权限两种类型缓冲区溢出攻击通过缓冲区溢出,植入恶意代码,获得一个shell,可以是远程的shell,也可以是本地的输入验证攻击对于输入没有合理地检查,导致执行破坏性的代码(命令或者脚本等)在Web服务中比较多见,缺乏对于输入数据的语法检查对策:加强编程中的安全意识。由用户输入的脚本代码,或者在脚本代码中要用到用户输入的数据,则一定要检查输入数据不会危害整条语句Linux的X及其他针对X的攻击X的功能太强大,一旦获得X的服务器访问控制权,则可以为所欲为X的认证机制基于主机的认证,脆弱基于token交换的认证对策:关闭X服务其他攻防技术木马技术网络监听技术NFS不安全性检查SUID程序的安全性日志记录……一次针对Linux的入侵过程(一)1.收集信息

一般ftp服务器都使用了linux系统,所以用ftp搜索器寻找

一次针对Linux的入侵过程(二)进一步探查目标一次针对Linux的入侵过程(三)2.漏洞扫描

一次针对Linux的入侵过程(四)3尝试进入Wu-ftp2.6.0(1)是一个有漏洞的版本,首先使用ftp攻击,

wuftpdgod是一个针对redhatlinux的wu-ftp2.6.0的siteexec漏洞的攻击脚本

一次针对Linux的入侵过程(五)前面的入侵企图没有成功原因是该服务器上没有开放上载权限,没有可写目录。尝试另外一个漏洞:rpc.statd缓冲区溢出。Statdx2是一个针对此漏洞攻击的脚本,但是要求提供准确的字符串地址。否则一次攻击过后如果不成功可能会使对方的rpc.statd进程终止,无法进行第二次攻击尝试。如何获得这个地址:找一台自己控制的主机,这台主机的系统版本必须和目标主机相同。将攻击脚本传到该主机上。以root身份运行,如下图所示一次针对Linux的入侵过程(六)执行脚本statdx2一次针对Linux的入侵过程(七)再次对目标主机进行远程攻击成功!获得rootshell,输入命令ls一次针对Linux的入侵过程(八)4.装上后门把后门程序放在一个ftp站点上,让目标主机去下载

命令ls命令ftp命令mv执行后门加一个帐号一次针对Linux的入侵过程(九)5销毁证据/痕迹销毁证据和消灭痕迹是有区别的销毁证据是指不让对方找到证据进行追踪。方法很简单:删除消灭痕迹是指不让对方感觉到被入侵:

做法是,有选择地删除一些记录,而且删除的动作也不能被记录。以上动作主要留下的记录在:/var/log/messages、/var/log/secure、/var/log/wtmp、/var/spool/ftpd等。可以删除之,如右图所示参考资料Sourcecode:

LinuxSourcecode(release2.2)in/usr/src/linuxdirectory书“黑客大曝光”(第二版),清华出版社Linx系统安全基础(SamsTeachYourselfLinuxSecurityBasicsin24Hours),人民邮电出版社,2002PracticalUNIX&InternetSecurity(2e),O’ReillyWebsites网络与信息安全

系统安全:Windows系统安全内容Windows安全结构Windows的网络结构Windows攻防技术一次针对Windows2000的入侵过程Windows安全性设计目标一致的、健壮的、基于对象的安全模型满足商业用户的安全需求一台机器上多个用户之间安全地共享资源进程,内存,设备,文件,网络安全模型服务器管理和保护各种对象客户通过服务器访问对象服务器扮演客户,访问对象访问的结果返回给服务器Windows

2000Architecture

用户管理:帐户(accounts)和组(groups)帐户(useraccounts)定义了Windows中一个用户所必要的信息,包括口令、安全ID(SID)、组成员关系、登录限制,…组:universalgroups、globalgroups、localgroupsAccountIdentifier:Securityidentifier(SID)时间和空间唯一S-1-N-Y1-Y2-Y3-Y4Somewell-knownSIDs字符串形式和二进制形式的SIDWindowsNT安全组件(TCB)ReferencemonitorAccessvalidationrequestsAuditgenerationrequestsKernelmodeusermodeLocalsecuritypolicydatabaseLocalSecurityAuthorityAuditLogfileAuthenticationServiceAccountdirectoryServicesUserAccountDatabaseWinlogonAdministraticeToolsAuditmessagessecuritypolicyLocalSecurityAuthorityLocalSecurityAuthority:AprotectedsubsystemofMicrosoft®Windows

NT/Windows®

2000thatauthenticatesandlogsusersontothelocalsystem.Inaddition,LSAmaintainsinformationaboutallaspectsoflocalsecurityonasystem,collectivelyknownastheLocalSecurityPolicyofthesystem.两个概念LSAAuthenticationModelLSALogonSessions:从logon成功到logoffSecurityAccessToken是对一个进程或者线程的安全环境的完整描述包括以下主要信息用户帐户的SID所有包含该用户的安全组的SIDs特权:该用户和用户组所拥有的权利Owner

DefaultDiscretionaryAccessControlList(DACL)……这是一个基本的安全单元,每个进程一个ObjectSecurity所有对对象的访问都要通过安全子系统的检查系统中的所有对象都被保护起来文件、目录、注册表键内核对象同步对象私有对象(如打印机等)管道、内存、通讯,等对象的安全描述符(securitydescriptor)OwnerSIDGroupSIDsDiscretionaryACLAuditSystemACLObjectSecurityAccessControlListmanipulationAccessCheckAuditGenerationSecuritytokenUserGroupsPrivilegesUserYprocessAccessobjectXSecurityReferencemonitorSecuritydescriptorOwnerDACLSACLUserYUserXACLACEACEAccessmaskUserY…AccessmaskAccessdeterminationNTFSfileobjectsecurityTokenUserxxxNTFS1.打开一个可写的文件fileSD2.从文件中得到SDAccessCheck3.是否允许?Yes/No4.返回文件句柄WindowsExplorerFile,Properties,SecurityFileAccess基于policy的安全性AuditingCategories:Success/FailureeventsLogonandLogoff、FileandObjectAccess、UseofUserrights、UserandGroupManagement、SecurityPolicyChanges、Restart,Shutdownsystem、ProcessTrackingPrivilegesAllowspecialabilitiesoverandaboveaccessrightsFinegrained:OnePrivilege=oneAbilityWindowsNThas23definedprivileges,suchas:Backupfilesanddirectories,changethesystemtimeLogonRightsLogononLocally(Forinteractivelogon)Accessthiscomputerfromnetwork(forremotelogon)Logonasaservice(startserviceprocessesunderspecificserviceaccount)Logonasabatchjob(submitjobstobatchqueues)Authentication:WinlogonProcessingWinlogonModelDistinctdesktopsEverysystemisauthenticated(windowstation)WinlogonArchitectureWinlogonGINADLLMultiplenetwork

providersWinlogonGINANP登录界面一些跟Winlogon有关的概念InitializingWinlogon首先注册CTRL+ALT+DELSAS(secureattentionsequence)然后在WinSta0windowstation内创建三个desktopsWinlogondesktopApplicationdesktopScreen-saverdesktopWinlogon的状态Logged-OutStateLogged-OnStateWorkstation-LockedStateWinlogon和GINA的职责ServicesprovidedbyWinlogonAdministrative:保护WindowstationanddesktopEventnotification:SASRecognitionUserinterfaceNotifynetworkproviders(ofpasswordchange)ServicesprovidedbyGINASASmonitoringShellactivationanddisplaymessagesAuthorization:determineiflockworkstationisallowedWinlogon图示WinlogonLSAAuthPkg用户登录界面AccountDBGINANetlogonWin32ShellNetlogonAuthPkgAccountDBAD/DCCTRL+ALT+DELLSA(LocalSecurityAuthority):InteractiveAuthentication&NoninteractiveAuthenticationDomainCredentialsDomainCredentials

DomaincredentialsareusedbyoperatingsystemcomponentsandauthenticatedbytheLocalSecurityAuthority(LSA).Typically,domaincredentialsareestablishedforauserwhenaregisteredsecuritypackageauthenticateslogondataprovidedbytheuser.Thelogoncredentialsarecachedbytheoperatingsystemsothatasinglesign-ongivestheuseraccesstoavarietyofresources.Thesecretpartofdomaincredentials,thepassword,isprotectedbytheoperatingsystem.Onlycomponentsrunningin-processwiththeLSAcanreadandwritedomaincredentials.Applicationsarelimitedtowritingdomaincredentials.Windows安全性的其他方面NetworkconnectionsecurityAuthentication、integrity、privacySecuredistributedapplicationsAuthenticatedRPCDCOMsecurityClientServerRPCruntimeSSPSSPRPCruntimeWindowsRegistry(注册表)注册表是一个很大的层次结构数据库,包含了大量的Windows配置信息,对于Windows的安全也是至关重要。一旦攻击者能够修改注册表信息,则系统安全会受到严重的威胁WindowsNT/2000中的每个注册表键都是受保护的对象用RegEdt32可以远程访问注册表Windows2000中,注册表和活动目录(activedirectory)的关系注册表是活动目录的一个部分写照兼容性Windows2000中的活动目录(ActiveDirectory)Windows2000支持两个目录服务DNS,扩展——找到域控制器活动目录——访问域中对象的信息活动目录一个数据库访问协议——LDAP信息的命名和组织方式LDAP://CN=smith,OU=users,OU=receivables,DC=us,DC=qwickbank,DC=com

活动目录的安全性客户的身份认证——默认使用Kerberos作为认证协议对信息的访问——每个对象和对象的属性都有自己单独的ACL表,从而实现精细的访问控制活动目录的维护实现快速的数据库搜索——索引和全局目录(GC,globalcatalog)复制机制——站点的概念,基于USN(更新序列号)的复制机制……一组管理工具两个重要的安全服务KerberosPKIWindows2000中几个证书存储区SAM数据库SAM:SecurityAccountsManager,包含有本地系统或者所控制域上所有用户的用户名和密文形式的密码这是攻击者最感兴趣的部位获取sam数据库,然后进行破解在系统运行期间,sam数据库是上锁的获取sam的手段从另一个文件系统进行拷贝从关键文件的备份中获取压缩之后的sam文件在线提取密码散列值从网络上进行监听破解工具无论是字典破解,还是穷举攻击,往往很奏效两种手段结合起来使用使用syskey保护Windows2000中的网络结构NDISTDI:Transport

DriverInterfaceNetworkAPIInterprocesscommWindows2000中的IPSecNetBIOSoverTCP/IP介绍NetBIOSNetBIOS(网络基本输入/输出系统):最初由IBM开发,MS利用NetBIOS作为构建LAN的上层协议NetBIOS使得程序和网络之间有了标准的接口,方便应用程序的开发。并且可以移植到其他的网络中NetBIOS位于OSI模型的会话层,也位于TCP/IP之上NetBIOS有两种通讯模式会话模式。一对一进行通讯,LAN中的机器之间建立会话,可以传输较多的信息,并且可以检查传输错误数据报模式。可以进行广播或者一对多的通讯,传输数据大小受限制,没有错误检查机制,也不必建立通讯会话NetBIOSoverTCP/IP,支持三种服务名字服务会话服务数据报服务NetBIOS名字服务NetBIOS名字被用来标识网络上的资源。程序开始和结束会话都要使用这些名称。我们可以为一台机器配置多个程序,每个程序都有唯一的NetBIOS名称NetBIOS名字至多可以有16个字母或数字。当然,该名字在整个资源路由网络里必须唯一。一台使用NetBIOS的机器在网络上工作之前,必须先注册NetBIOS名称当一台机器激活的时候,先广播自己的名字,如果它广播成功,并且没有与别的机器重名,则注册成功。过程如下:登录时,机器广播自己的名字6到10次,确保其他网络成员收到信息如果其他的机器也使用了同样的名字,则它发布自己的广播,包括它正在使用的名字,于是,请求注册的机器停止如果其他的机器没有反对它的加入,则注册成功NetBIOS名字服务(续)NetBIOS名字服务允许名字中包含16个字母数字,但Windows只允许15个字母,第十六个为NetBIOS后缀。NetBIOS后缀用在MicrosoftNetworking软件中,区别安装的功能,登记的设备和服务。名字有两种类型:Unique(U)、Group(G)用nbtstat–Aip-address可以查看已经注册的名字NetBIOS名字解析由NetBIOS名字到IP地址的解析过程DNS名字解析是静态的,NetBIOS是动态的名字解析的方式本地网络广播本地主机缓冲NetBIOS名字服务器客户要首先登记自己的NetBIOS名字预定义文件lmhosts通过DNS和hosts文件解析NetBIOS会话服务和数据报服务会话服务为应用程序提供一种面向连接的、可靠的双向通讯机制Client/Server结构双方协作建立一个会话:一方调用Listen命令,另一方调用Call命令Listen命令指定双方的名字结束会话:任何一方发出Hang-Up命令数据报服务是无连接的,不可靠的如果发送的目标是组名,则组中所有的成员都可以收到Send_Datagram命令和Receive_Datagram命令如果NetBIOS收到数据,但却没有Receive_Datagram命令在等待,数据将被丢弃Send_Broadcast_Datagram命令和Receive_Broadcast_Datagram命令关于NetBIOS端口分配137端口是NetBIOS名称UDP,138端口是NetBIOS数据报UDP,139端口是NetBIOS会话tcpWindows2000中,445端口也提供同样的功能NetBIOS和WINSWINS是名字服务它是实现NetBIOS名字解析的一种方式(P-node)NetBIOS实现名字解析方式:B-node,P-node,M-node,H-modeWindowsNT/2000中的nullsessionWindows2000中,nullsession是系统内置的一个功能Windows的网络资源共享,通过445端口和139端口Null会话是同服务器建立的无信任支持的会话。Null会话也需要提供一个令牌,但是,令牌中不包含用户信息,但是有一个SID,所对应的用户名为AnonymousLogon(在用户列表中能看得到)Null会话的用途:有一些系统功能需要用到nullsessionNullSession的条件通过139端口或者445端口系统打开IPC$共享Nullsession的对策注册表修改:HKLM\SYSTEM\CurrentControlSet\Control\LSA中的RestrictAnonymous=2做法:netuse\\Ip-address\IPC$“”/u:””net命令用nethelp可以查看net命令的使用指导netuse用于将计算机与共享的资源相连接,或者切断计算机与共享资源的连接netview用于显示一个计算机上共享资源的列表netstart/stop/pause用来启动/终止/挂起一个服务,也可以列出已经启动的服务其他NetcomputerNetgroupNetlocalgroupNetuserNetsendNetprintNetshareNettime……Windows平台上的共享资源在Windows平台上,共享资源既是一个暴露信息的地方,也是受攻击的入侵点文件资源的共享打印服务的共享IPC$也是一个共享资源在网络环境下,又离不开共享功能功能与风险共存对策使用隐藏共享设置好权限控制Windows9x/ME它本身就不是一个安全的操作系统主要的危险直接连接到共享资源上远程访问注册表安装后门服务程序利用现有服务程序的漏洞拒绝服务本地系统的不安性重新启动口令的不安全WindowsNTWindowsNT是一个安全操作系统虽然已经发现了大量的漏洞但是总算补丁来得很及时两个显著的安全性特点操作系统本身并不提供远程运行代码的能力对于控制台的交互登录权力仅限于少数帐号安全现状对于WindowsNT的大量攻击都是通过应用服务器进行的(比如IISWebServer)。尽快升级到Windows2000WindowsNT的administrator帐号这是攻击者最期望得到的权限手段远程密码猜测找到一个共享点,使用netuse命令行Nat工具从NT的认证协议(LanMan、NTLM)着手防护禁止NIC得NetBIOS功能帐户的管理策略:设定lockout功能、强制使用强口令失败类型的审计总是需要的WindowsNT的远程攻击远程BufferOverflows系统本身的bufferoverflows漏洞并不多拒绝服务特权升级往系统注入代码(getadmin工具)对于执行权限的控制(比如Web相关的文件)Trojan木马可执行注册表键得到了NT的Administrator之后巩固权力针对SAM获取SAM破解SAM针对LSA自动登录功能键盘记录器Sniffers远程控制和后门如何在NT上远程执行代码利用scheduleservice利用启动注册表键HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion下RunRunOnceRunOnceExRunServicesWindows2000原来的产品号为NT5继承了NT4的许多特性在安全性方面应该增强许多,至少把已有的大量漏洞都堵上了但是,在引入新的强大功能的同时,也必然引入新的漏洞,特别是一些复杂的功能活动目录作为一个全局的信息仓库容易成为暴露信息的焦点还要考虑兼容性认证协议的变化,NTLM->Kerberos文件系统的增强,增强的NTFSIPSec的全面支持,提供了方便的配置界面新的安全工具:组策略提供了大量新的服务,带来了危险特别是TerminalService加强审核功能Windows的管理策略友好的界面,不安全的口令使用安全的口令了解缺省配置的不安全关闭不必要的服务和端口兼容性和安全性的平衡打开跟安全有关的日志功能,并且经常备份和检查用一些安全工具进行自我保健应用系统的不安全性也可以摧毁底层的安全防线紧跟Microsoft的补丁一次针对Windows2000的入侵过程(一)1.探测选择攻击对象,了解部分简单的对象信息。这里,针对具体的攻击目标,随便选择了一组IP地址,进行测试,选择处于活动状态的主机,进行攻击尝试;针对探测的安全建议对于网络:安装防火墙,禁止这种探测行为对于主机:安装个人防火墙软件,禁止外部主机的ping包,使对方无法获知主机当前正确的活动状态一次针对Windows2000的入侵过程(二)2.扫描使用的扫描软件这里选择的扫描软件是SSS(ShadowSecurityScanner),目前的最高版本是5.3.1,SSS是俄罗斯的一套非常专业的安全漏洞扫描软件,能够扫描目标服务器上的各种漏洞,包括很多漏洞扫描、端口扫描、操作系统检测、账号扫描等等,而且漏洞数据可以随时更新。(呵呵,使用的是盗版软件,数据更新功能好像无效。

)扫描远程主机

开放端口扫描

操作系统识别

SSS本身就提供了强大的操作系统识别能力,也可以使用其他工具进行主机操作系统检测。

主机漏洞分析

扫描结果:端口扫描可以看出几个比较知名的端口均处于打开状态,如139、80等

尝试使用Unicode漏洞攻击,无效。可能主机已经使用了SP进行补丁或未开放远程访问权限

扫描结果:操作系统识别

结果显示该主机操作系统为Windows2000,正是我们期望的操作系统类型扫描结果:漏洞扫描SSS可对远程主机进行漏洞检测分析,这更方便了我们了解远程主机的状态,选择合适的攻击入口点,进行远程入侵

该主机存在的漏洞较多,我们可以确定选择该主机作为攻击对象。另外,主机的帐号密码使用的是“永不过期”方式,我们可以在下面进行帐号密码的强行破解

一次针对Windows2000的入侵过程(三)3.查看目标主机的信息在完成对目标主机的扫描后,我们可以利用WindowsNT/2000对NetBIOS的缺省信赖,对目标主机上的用户帐号、共享资源等进行检查。事实上,在利用SSS进行扫描的过程中,SSS已经向我们报告了众多有效的信息。这里,我们再利用Windows2000的IPC空会话查询远程主机

一次针对Windows2000的入侵过程(四)4.渗透IIS攻击尝试利用IIS中知名的Unicode和“Translate:f”漏洞进行攻击,没有成功。目标主机可能已修复相应漏洞,或没有打开远程访问权限Administrator口令强行破解

目标主机是一台个人主机,绝大部分情况下,均使用Administrator帐号进行登陆,且个人防范意识较差的话,选择的密码一般都较简单,如“主机名”、“11111”、“12345”之类的简单密码(方便自己的快速登陆)。所以考虑利用NetBIOS会话服务(TCP139)进行远程密码猜测。

这里我们使用NAT(NetBIOSAuditingTool)进行强行破解:构造一个可能的用户帐户表,以及简单的密码字典,然后用NAT进行破解。成功Administrator口令破解情况一次针对Windows2000的入侵过程(五)5.巩固权力现在我们得到了Administrator的帐户,接下去我们需要巩固权力添加一个迷惑性的帐户,并加入administrators组,将来通过新帐户进入装载后门装载后门一般的个人主机为防范病毒,均会安装反病毒软件,如NortonAnti-Virus、金山毒霸等,并且大部分人也能及时更新病毒库,而大部分的木马程序在这类软件的病毒库中均被视为Trojan木马病毒。所以,这为我们增加了难度。除非一些很新的程序或自己编写的程序才能够很好地隐藏起来我们使用NetCat作为后门程序进行演示安装后门程序(一)利用刚刚获取的Administrator口令,通过Netuse映射对方驱动器

安装后门程序(二)然后将netcat主程序nc.exe复制到目标主机的系统目录下(便于隐藏),可将程序名称改为容易迷惑对方的名字,如rundl132.exe、ddedll32.exe等

利用at命令远程启动NetCat,供我们远程连接使用。还添加了每日运行计划,供以后使用

安装后门程序(三)远程NetCat服务程序启动后,我们可以在本地进行远程连接,运行命令(在远程主机上),这时,我们已经完全控制了这台机器了一次针对Windows2000的入侵过程(六)6.清除痕迹我们留下了痕迹了吗用eventviewer看一看没有成功看看它的日志文件无安全日志记录通过入侵过程来看Win2k的防范尽量安装防火墙软件,并对安全规则库定期进行更新

及时更新操作系统厂商发布的ServicePack补丁程序

停止主机上不必要的服务,各种服务打开的端口往往成为黑客攻击的入口

使用安全的密码,最起码不要直接使用常见的单词、数字串以及可能暴露的主机信息(比如主机名、用户名等)如果没有文件和打印机共享要求,最好禁止139和445端口上的空会话

经常利用netsession、netstat查看本机连接情况,并利用TaskManager查看本机运行的进程,及早发现异常情况

可以利用一些安全工具(如LockDown、BlackICE等)提供的本机程序安全管理功能,监控本机程序的异常状态(主动连接外部陌生的地址),增强主机对木马程序的监控能力

……参考资料书“黑客大曝光”(第二版),清华出版社“HackersBeware”,中文版《黑客——攻击透析与防范》,电子工业出版社DavidChappell,UnderstandingMicrosoftWindows2000DistributedServices,中文版(清华大学出版社,潘爱民译),2001Web站点/library/default.asp,或者MSDN-Library

安全评价标准主要内容可信计算机系统评价标准通用评估准则CC我国信息系统安全评价标准计算机系统的提供者需要对他们的产品的安全特性进行说明,而用户则需要验证这些安全特性的可靠性。国际上有多种为计算机安全系统构筑独立审查措施的安全评价体系,其内容和发展深刻地反映了对信息安全问题的认识程度。14.1可信计算机系统评价标准1985年12月美国国防部公布了评价安全计算机系统的六项标准。这套标准的文献名称即为“可信计算机系统评价标准”(TrustedComputerSystemEvaluationCriteria,简记为TCSEC),又称为橘皮书。14.1.1TCSEC的主要概念1.考核标准(1)安全策略(SecurityPolicy)(2)标识(Identification)(3)标记(Marking)(4)可记账性(Accountability)(5)保障机制(Assurance)(6)连续性保护(ContinuousProtection)2.主要概念安全性可信计算基(TCB)自主访问控制(DiscretionaryAccessControl,DAC)强制访问控制(MandatoryAccessControl,MAC)隐蔽信道3.系统模型主体审计信息访问监控器监控器数据基:(用户权限表、访问控制表)客体14.1.2计算机系统的安全等级TCSEC将可信计算机系统的评价规则划分为四类,即安全策略、可记账性、安全保证措施和文档根据计算机系统对上述各项指标的支持情况及安全性相近的特点,TCSEC将系统划分为四类(Division)七个等级1.D安全级最低级别,一切不符合更高标准的系统,统统归于D级。2.C1安全级只提供了非常初级的自主安全保护,称为自主安全保护系统,现有的商业系统往往稍作改进即可满足要求。3.C2安全级称为可控安全保护级,是安全产品的最低档次很多商业产品已得到该级别的认证。达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色4.B1安全级 又称为带标记的访问控制保护级,其在C2级的基础上增加了或加强了标记、强制访问控制、审计、可记账性和保障等功能。B1级能够较好地满足大型企业或一般政府部门对数据的安全需求,这一级别的产品才被认为是真正意义上的安全产品。满足此级别的产品前一般多冠以“安全”(Security)或“可信的”(Trusted)字样B类安全包含三个级别:B1、B2、B3级,他们都采用强制保护控制机制。B2安全级称为结构化保护级。该级系统的设计中把系统内部结构化地划分成明确而大体上独立的模块,并采用最小特权原则进行管理。目前,经过认证的B2级以上的安全系统非常稀少。B3安全级又称为安全域保护级。该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。A1安全级又称为可验证设计保护级,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。14.2通用评估准则CCCC(CommonCriteriaforInformationTechnologySecurityEvaluation)标准是国际标准化组织ISO/IECJTC1发布的一个标准,是信息技术安全性通用评估准则,用来评估信息系统或者信息产品的安全性。14.2.1CC的主要用户CC的主要用户包括消费者、开发者和评估者。1.消费者消费者可以用评估结果来决定一个已评估的产品和系统是否满足他们的安全需求。2.开发者CC为开发者在准备和参与评估产品或系统以及确定每种产品和系统要满足安全需求方面提供支持。3.评估者当要做出TOE及其安全需求一致性判断时,CC为评估者提供了评估准则。14.2.2CC的组成CC分为三个部分1.简介和一般模型: 正文介绍了CC中的有关术语、基本概念和一般模型以及与评估有关的一些框架,附录部分主要介绍保护轮廓(PP)和安全目标(ST)的基本内容。2.安全功能要求:按“类-族-组件”的方式提出安全功能要求,提供了表示评估对象TOE安全功能要求的标准方法。3.安全保证要求:定义了评估保证级别,建立了一系列安全保证组建作为表示TOE保证要求的标准方法。CC的三个部分相互依存,缺一不可。14.2.3评估保证级别EAL评估保证级别是评估保证要求的一种特定组合(保证包),是度量保证措施的一个尺度,这种尺度的确定权衡了所获得的保证级别以及达到该保证级别所需的代价和可能性。在CC中定义了7个递增的评估保证级1.EAL1:功能测试EAL1适用于对正确运行需要一定信任的场合2.EAL2:结构测试 要求开发者递

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论