(计算机系统结构专业论文)对象存储系统安全检测技术的研究.pdf_第1页
(计算机系统结构专业论文)对象存储系统安全检测技术的研究.pdf_第2页
(计算机系统结构专业论文)对象存储系统安全检测技术的研究.pdf_第3页
(计算机系统结构专业论文)对象存储系统安全检测技术的研究.pdf_第4页
(计算机系统结构专业论文)对象存储系统安全检测技术的研究.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(计算机系统结构专业论文)对象存储系统安全检测技术的研究.pdf.pdf 免费下载

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

文档简介

华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 i 摘摘 要要* 对象存储系统(object-based system, obs)采用了对象接口,整个系统由元数 据服务器 (matadata server, mds) 、 对象存储设备 (object-based storage device, osd) 和客户端(client)三部分构成。mds 负责元数据管理,osd 负责数据的存储,分 离了数据的存储和管理。通过网络,客户端可以直接访问存储在 osd 上的对象。存 储系统直接地面对了来自网络的安全威胁和恶意攻击。 对象存储系统安全一般通过访问控制、身份认证、ipsec 技术等来保障,这些都 属于用户访问安全性。而对象存储系统中,用户访问安全性和运行的系统环境安全 性是近年来研究的热点,也是难点之一。然而,对于开源的 linux 系统来说,威胁 无处不在。文件系统是 linux 系统的核心,它的安全性关系到整个系统的安全性, 而 rootkit 是文件系统最大的威胁,因此,需要通过检测 linux 系统中是否有 rootkit 来判断 linux 系统的安全,从而确定 osd 的安全性。 设计是在开源项目 chkrootkit 基础上进行了改进,以满足项目的实现需求,同时 还提出了一种自动恢复已遭破坏系统的算法。详细设计了检测 rootkit 的方法,主要 是通过检测最后登录日志 lastlog 的二进制文件来判断是否有入侵,并在开源项目 chkrootkit 的基础上实现了初步安全检测。 通过对 adore-ng 的检测,结果证明 chkrootkit 能很好地实现设计目标。 关键词:关键词:对象存储设备,rootkit,安全检测 *本文研究项目受 973 项目 2004cb318201,国家自然科学基金 60703046 、60873028 资助。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 ii abstract* object-based storage(obs) system uses objects as storage interface, the entire system consists of the metadata server (mds), object-based storage device (osd) and clients. mds is responsible for metadata management and datas are stored on osd, which separates data storage and management. clients can access data stored on osd via the network, which causes obs meets network threats and malicious attacks directly. to insure the security of object-based storage device though access control, authentication, ipsec technology, these all belong to user access security. in recent years, the issue of the user access security and operation system security of obs are becoming hot spots. but, the threat is everywhere for open-source linux. file system is the core of linux, its security can determine the security of the entire system, and the rootkit is the greatest threat for file system, so we detection rootkit of linux, in order to insure the osd security. this project is based on the open-source project of chkrootkit, we improve some functions to meet the demand for the realization of our design, additionally, we present a algorithms of automatic recovery the compromised system, however, itll be implemented in future. in this paper, we design the detail of the rootkit detection method, mainly determine whether there is any invasion through detecting lastlog which last login binary log file of users, and the preliminary security detection is implemented based on chkrootkit open source project. as detectiong adore-ng example,the result shows that improved chkrootkit can detecte the rootkit perfectly. key words: object-based storage device, rootkit, security detection * this work was supported by the national basic research program of china (973 program) under grant no.2004cb318201, the national science foundation of china no.60703046 and no.60873028. 独创性声明独创性声明 本人声明所呈交的学位论文是我个人在导师的指导下进行的研究工作及取得的 研究成果。据我所知,除文中已标明引用的内容外,本论文不包含任何其他人或集 体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文 中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或者部分内容编入有关数据库进行 检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密,在 年解密后适用本授权书。 本论文属于 不保密 (请在以上方框内打“” ) 学位论文作者签名: 指导老师签名: 日期: 年 月 日 日期: 年 月 日 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 1 1 绪论绪论 1.1 课题背景课题背景 近年来,随着信息技术的普及,数据存储量每年约以 80%的速度持续增长。关 于信息增长的速度,图灵奖获得者 jim gray 提出了一个经验定律1:网络环境下每 18 个月产生的数据量等于有史以来的数据量之和。由于数据量的持续增长,数据存 储已经成为了一个关键的问题。专家们断言,目前的信息技术已经进入了以存储为 核心的发展阶段。 信息化建设的迅猛发展,各行各业的信息进入到存储系统中,存储系统逐渐成 为各企事业单位运行的基础设施,人们对数据存储的依赖性越来越强,特别是一些 关系到企业生存的重要数据的安全问题越来越严重。这些严峻的现实问题对存储系 统的存储容量、存储的性能以及存储安全提出了越来越高的要求。 idg 公司对美国发生过灾难的公司的情况进行了统计,其中 55%的公司立即倒 闭,29%的公司两年后倒闭。在震惊世界的“9.11”恐怖袭击事件中,由于入驻世贸 中心的公司数据瞬间被摧毁,造成公司无法继续运营。 一系列的灾难事件对信息系统的破坏逐步引起了人们对存储安全的重视,而存 储安全检测技术是保护数据安全的重要手段之一。 1.2 对象存储系统概述对象存储系统概述 基于对象存储2,3(obs)使用对象作为访问接口,对象由数据、属性和元数据 组成,obs 最直接的效果是存储空间管理从存储应用中分离出来,在将存储管理的 元数据放在元数据服务器上,而数据的存储下移到存储设备后,对象消除了元数据 和存储应用间的依赖关系,使得不同存储应用间的数据共享切实可行。 对象是字节的逻辑集合,它存储在存储设备上,可以按照预先定义好的方法存 取,除包含数据外,对象中还可以包含数据的属性,属性描述了数据的特征。在对 象上还可以定义安全策略,以阻止非授权用户的存取。 obs 的最早研究可追溯到 1980 的两个面向对象操作系统, 一个是卡内基梅隆大 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 2 学(cmu)的 hydra os,另一个是 intel 的 imax-432 os。这两个操作系统最先使用 可变长的对象存储文件、进程状态等多种数据。1980 年,麻省理工大学(mit)第 一次在他们的 swallow 项目中实现了分布式对象存储,成为该领域的先驱。 obs 获得的实质性进展源于卡内基梅隆大学并行数据实验室(parallel data lab, pdl)的附网安全磁盘(network-attached security disks, nasd)项目4,5。nasd 的基本思想是将处理器集成到磁盘驱动器,使它具有一定的智能,能够独立管理其 自身的安全、存储和网络通信。 国外已经在对象存储概念的基础上研究开发新型的分布式文件系统。工业界开 发了基于对象的文件系统,其中比较著名的有 cluster file systems 公司的 lustre、 panasas 公司的 activescale 文件系统6,ibm 的 zfs7和 storage tank8以及 antara 原 型系统9, intel 的 iscsi/osd 参考原型10等。 在学术界, university of california santa cruz(ucsc)的存储系统研究中心(ssrc)一直致力于 obs 研究工作,已开发了 obs 的原型系统 ceph11,该系统在 metadata 管理方面采用 lazy hybrid (lh)12,将 元数据进行分区管理。元数据服务器采用 cluster 方式,以支持高效、灵活、可扩展 的元数据管理。每一个 ceph osd 使用 ebofs(extent and b-tree based object file system)13存储数据,数据在存储设备间的分布采用类 hash 分布函数 crush14实 现,通过跨容错域分离对象的复件,crush 实现了对象存储设备的容错和可扩展。 ceph 的目标是支持 10000 个客户机的并发访问,100gb/sec 的吞吐量,2 pb 的系统 总容量。 尽管对象存储系统这种数据路径和控制路径相分离的结构提高了存储系统的性 能和可扩展性,但也带了安全隐患,通过开放的网络,客户端可以直接访问存储设 备上的对象,存储设备失去了系统的保护,必须自己应对来自网络的安全威胁和恶 意客户的攻击。对象存储的安全机制必须保障对象的传输安全和逻辑安全,目前基 于对象的智能存储技术正在成为国内外的研究热点,obs安全技术也在不断发展之 中。 1.3 obs 体系结构体系结构 基于对象存储系统主要包括元数据服务器(mds)、和对象存储设备15,16(osd)和 客户端17(client),三者通过网络互连,具有良好的可扩展性。互连网络可以使用普 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 3 通的 ip 网络,也可以采用 fc(fiber channel)、infiniband18等高速网络通道。obs 的 体系结构如图 2.119所示。 互连网络 (ip, ib, fc.) 客户端 客户端 客户端 元数据 服务器 对象存储设备 应用程序 应用程序 应用程序 图 1.1 obs 体系结构图 osd 上的数据被多个客户端直接共享访问, 其数据的一致性20,21必须得到保证, 为此,必须增加系统的并发控制机制22。 元数据服务器管理与上层文件系统有关的元数据,协调客户端与 osd 之间的交 互23,24,主要提供下列功能:(1) 文件、目录的元数据管理;(2) 安全策略;(3) osd 负载均衡;(4) cache 一致性维护。 客户端上运行客户端文件系统cfs(client file system,cfs), cfs是obs给linux 环境下用户使用的一个界面,运行在 vfs 之下,符合基本 posix 语义25,因此,已 有的应用程序可以不做任何的修改就可以使用,保证了系统的兼容性和可移植性。 从功能设计的角度来看,cfs 主要提供以下几个功能:(1) 用户安全管理;(2) 快速 文件、对象映射;(3) 并发控制;(4) qos 需求配置。 对象存储设备(osd)是一种智能的设备,包含磁盘,处理器,ram 内存和网 络接口。osd 是对象存储体系结构的基础,为数据存储体系结构提供了以下几个重 要功能:(1) 数据存储;(2) 智能布局;(3) 安全性;(4) qos 支持26。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 4 1.4 osd 的安全技术的安全技术 目前,网络存储系统中数据的保密性、完整性、可用性是研究的热点。同时, 避免因为引入安全保证而占用大量系统计算资源、降低存储系统性能是采用任何安 全技术都必须考虑的问题。osd 主要所采用的安全技术如下: 1.访问控制 访问控制27是指主体依据某些控制策略或权限对客体本身或其资源进行的不同 授权访问。访问控制的基本任务是防止非法用户对资源的访问以及合法用户对资源 的非法使用,它保证主体对客体的所有直接访问都是经过授权的。访问控制包括三 个要素,即主体,客体和控制策略: (1)主体:指一个提出请求或要求的实体,它是主动的发起者,是可以对其他 实体施加动作的主动实体。主体的含义非常广泛,可以是用户、用户组,也可以是 用户使用的计算机终端、读卡机等设备,还可以是应用程序或进程。 (2)客体:是接受其他实体访问的被动实体,客体的含义也和广泛,凡是可以 被操作的信息、资源、对象都可以认为是客体。在信息社会中,客体可以是信息、 文件、记录等,也可以是网络上的硬件设施、无线通信中的终端,甚至一个客体可 以包含另外一个客体。 (3)控制策略:是主体对客体的操作行为集和约束条件集,简单地讲,控制策 略是主体对客体的访问规则集,这个规则集直接定义了主体可以作用于客体的行为 和客体对主体的条件约束。 访问控制策略主要包括: 强制访问控制 (mandatory access control,mac)、自主访问控制(discretionary access control,dac)和基于角色 的访问控制(role-based access control,rbac)。目前,研究的重点是建立面向存 储特征的访问控制策略,以实现数据的高效、安全存储。 2.身份认证 身份认证28(id authentication)是证实被认证对象是否属实及其身份是否有效 的一个过程。 身份认证可以分为单向认证、双向认证、第三方认证和公钥认证等形式,以口 令认证为例说明这几种形式: (1)单向认证:当客户 a 需要服务器 s 的服务时,客户 a 必须被服务器认证, 这就是单向认证。通常是用户将它的 id 和口令等身份的证明发送给服务器,服务器 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 5 对收到的 id 和口令进行验证。 (2)双向认证:双向认证是一种相互认证,其过程是在单向认证的基础上增加 反方向的认证,即服务器身份被用户认证。在双向认证的情况下,如果有 n 个用户 或服务器,每个用户均可与其他用户通信,则每个用户都应有能力认证其他用户并 且被其他用户认证,这时每个用户需要存储 n-1 个用户的认证数据,用户增加、减少 或者更改口令都需要进行大规模地调整,因此不太常用。 (3)第三方认证:第三方认证是更可靠的认证。在这种形式下,由第三方存储 全部用户的口令,并且只负责存储和验证口令。每个用户或者服务器都向可靠的第 三方发送 id 和口令,以进行认证。 (4)公钥认证:利用密码技术进行认证实最可靠的认证方法。随着公开密钥密 码体制的出现,利用公开密钥密码技术进行用户认证得以实现。由于私钥、公钥成 对出现且不可互推,因此私钥的持有者可以证实自己的身份。 3. ip security 加密技术 ip security29(ipsec)是一种用于加密和验证 ip 信息包的标准协议。ipsec 提供 了两种加密通讯手段:一是 ipsec tunnel:整个 ip 封装在 ipsec 报文,提供 ipsec-gateway 之间的通讯;二是 ipsec transport:对 ip 包内的数据进行加密,使用 原来的源地址和目的地址。transport 模式只能加密每个信息包的数据部分(即:有 效载荷),对文件头不作任何处理;tunnel 模式会将信息包的数据部分和文件头一 并进行加密,在不要求修改已配备好的设备和应用的前提下,让网络黑客无法看到 实际的通讯源地址和目的地址, 并且能够提供专用网络通过internet加密传输的通道。 因此, 绝大多数用户均选择使用 tunnel 模式。 用户需要在接收端设置一台支持 ipsec 协议的解密设备,对封装的信息包进行解密。 1.5 osd 安全性概述安全性概述 对象存储设备的安全性可以从两个方面考虑: 一是用户访问安全性; 另一个是运 行的系统环境安全性。 1.5.1 用户访问安全性用户访问安全性 1.访问控制管理 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 6 通过设置访问控制列表, 对设备的身份合法性进行控制, 限制非法设备接入 obs 网络中访问资源, 目前主流的 iscsi 存储系统都可支持基于 ip 地址的访问控制列表。 2.使用用户身份验证机制 在用户接入网络时完成必要的身份认证,还可以通过灵活的 mac、ip、交换机 端口任意组合绑定,有效的防止非法用户访问 obs 网络。此外,iscsi 交换机还可 通过支持 dud(disconnect unauthorised device)认证(通过 mac 地址学习数目限 制和 mac 地址与端口绑定实现)、支持用户分级管理和口令保护、端口隔离、mac 地址黑洞、支持防止 dos(denial of service)攻击等功能进一步提高 obs 网络的安 全级别。 此外,诸如问询-握手身份验证协议(challenge-handshake authentication protocol,chap)之类的身份验证协议,将会通过匹配用户名和登陆密码,来识别 用户的身份。由于密码不以纯文本的形式在网络中传输,从而避免了掉包和被拦截 的情况发生,所以该协议赢得了许多网络管理员的信任。远程身份验证拨入用户服 务(remote authentication dial-in user service,radius)协议能够将密码从 iscsi 目标设备上转移到中央授权服务器上,对终端进行认证、授权和统计。 3.保护好存储设备管理界面 保护好存储设备的管理界面是极其必要的。网络黑客或企业内部人员只要能使 用存储设备管理程序,就能够重新分配存储器的赋值,更改、偷窃甚至摧毁数据文 件。 因此, 用户应该将管理界面隔离在安全的局域网内, 如利用防火墙和 vpn、ips、 seccenter、udm 等更高级别的安全和管理软件,并设置复杂的登录密码甚至采用生 物识别技术来保护管理员账户。 4.对通过网络传输的数据包进行加密 ipsec 虽然是一种强大的安全保护技术, 却会严重地降低网络系统的性能。 另外, ipsec 比较适合“点对点接入”。由于客户端使用不方便,对访问请求缺乏细粒度的 权限管理,ipsec 技术在“远程接入”方面不太适合。 5.加密磁盘数据 加密磁盘上存放的数据,也是非常必要的。加密任务可以在在客户端(如:加 密的文件)、网络(如:pki 加密解决方案),或者在存储子系统上完成。目前,多 数用户都倾向于简便易用的客户端加密方案。 大多数企业级操作系统 (包括 windows 和 linux 在内),都可以嵌入基于文件系统的加密技术,在数据被传送到网络之前 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 7 实施加密,可以确保它在网上传输时和远端存储时都处于加密状态。当然,也可以 考虑将加密过程放到网络中或是交由基于磁盘阵列的加密措施来处理。 6.及时备份 值得一提的是新一代的磁盘阵列都具有的多种数据备份、 保护功能, 这些功能往 往可以通过设置管理策略实现自动的数据备份、保护工作。作为最后的补救措施, 这些措施可以在存储设备前端的各种安全机制失效的情况下,保证还有至少一份可 靠的数据备份。 1.5.2 osd 运行的系统环境安全运行的系统环境安全 由于 osd 主要运行在 linux 操作系统下, 故本文主要考虑 linux 系统的安全性。 文件系统的安全是整个 linux 系统安全的最主要的问题,而考虑到文件系统的安全 必须提到 rootkit30。由于现在的因特网以及操作系统存在很多的安全漏洞,连接在 因特网上的计算机很容易受到各种各样的攻击,其中被广泛使用的一种技术就是 rootkit。 rootkit 是计算机安全领域的一个术语, 它是由有用的小型程序组成的工具包, 使得攻击者能够保持访问计算机上具有最高权限的用户“root”。换句话说,rootkit 是能够持久或可靠地、 无法检测地存在于计算机上的一组程序和代码, 在上述 rootkit 定义中,关键词是“无法检测”。rootkit 所采用的大部分技术和技巧都用于计算机 上隐藏代码和数据,例如,许多 rootkit 可以隐藏文件和目录,rootkit 的其他特性通 常用于远程访问和窃听,例如:用于嗅探网络上的报文。当这些特性结合起来后, 它们会给安全带来毁灭性的打击。 很多应用软件仍然存在漏洞,攻击者利用这些漏洞获得系统访问权。此外,为 了隐藏他们的活动,注入攻击工具包,替换或修改系统中的二进制文件,用木马程 序替换系统库函数,修改内核数据结构提供隐藏。这些工具包称为的 rootkit。rootkit 的威胁更是因为许多检测工具检测不到攻击者的行为。 1.6 主要研究内容主要研究内容 由于对象存储系统的用户访问安全性方面的技术已相当成熟,而忽视了运行的 系统环境的安全性,rootkit 主要是威胁运行 osd 的 linux 系统的安全,本文也重点 考虑 rootkit 的安全隐患。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 8 如何检测 osd 运行的系统环境的安全性是本文的主要研究内容,包括一种自动 恢复遭到破坏系统的算法。 本文的后续章节如下组织: 第二章介绍了 rootkit 常见的攻击方法和对 osd 安全性进行分析。 第三章首先从 rootkit 攻击方法出发,寻找一些检测 rootkit 的方法,然后又提出 一种自动恢复破坏了的系统的算法,最后介绍了具体检测 rootkit 的实现方法。 第四章介绍了在实验室平台上对上述检测方法进行测试。 第五章对全文进行总结并对展望未来的工作。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 9 2 rootkit 常见攻击方法与常见攻击方法与 osd 安全分析安全分析 2.1 rootkit 攻击过程攻击过程 rootkit 基本上都是由几个独立的程序组成31的,一个常见的 rootkit 主要包括以 下几部分: (1)网络嗅探器,用于获得网络上传输的用户名和密码等信息。 (2)特洛伊木马,例如:inetd 或者 login,为攻击者提供后门。 (3)能实现隐藏攻击者的目录和进程的程序,让管理员短时间内无法察觉。 (4)还包括一些日志清理工具,例如:zap、zap2 或者 z2,攻击者使用这些清 理工具删除 wtmp、utmp 和 lastlog 等日志文件中有关自己行踪的记录。 (5)一些复杂的 rootkit 还可以向攻击者提供 telnet、shell 和 finger 等服务。 另外,还包括一些攻击者用来清理/var/log 和/var/adm 目录中其它文件的一些脚 本。 rootkit 的攻击过程如下: (1)收集目标系统信息:攻击者在攻击某个系统之前,需要收集目标系统有哪 些漏洞、使用什么类型操作系统、有哪些用户账号等相关信息。 (2)获得根用户(root)访问权限:攻击者在收集了目标系统的足够信息,检测 到了目标系统的漏洞后,就会对目标系统发起攻击。在这一阶段,攻击者需要获得 目标系统的根用户访问权限,他可能先获得一般用户访问权限,然后再利用目标系 统的本地漏洞提高到根用户访问权限;另一种更好的方式是直接利用 ftp 和 telnet 等 网络服务的漏洞获得根用户访问权限。 (3)在目标系统上安装 rootkit:攻击者在获得根用户访问权限后,攻击者就可 以在目标系统上安装 rootkit,来隐藏攻击行为,创建各种后门,以方便再次登录。 (4)控制目标系统:攻击者在目标系统上安装 rootkit 后,就可以长期控制目标 系统,对其进行各种攻击,而且不被目标系统的管理员察觉。例如:利用目标系统 攻击其它系统,使目标系统拒绝提供某些服务等。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 10 2.2 用户模式用户模式 rootkit 攻击方法攻击方法 2.2.1 替换应用程序和系统文件替换应用程序和系统文件 最常见的用户模式 rootkit 基本上基于应用层,可称作 application rootkit。其工作 的基本方法是:用 rootkit 中含有特洛伊木马(trojan) 的替代程序来替换系统中正常 的应用程序与系统文件。已被替换的系统文件会提供后门给攻击者进行攻击,隐藏 攻击者的痕迹,攻击者做的任何活动都不会储存在记录文件中。 linux 下的用户模式 rootkit 最重要的组件就是带有后门的执行文件, 替换掉操作 系统中现有的相应文件即可。当用户要登录一个系统时,要么通过 telnet 进行连接, 系统运行/bin/login 程序;要么使用 ssh 登录,ssh 后台程序运行/usr/sbin/sshd。系统 使用 login 或者 sshd 执行文件来获取和检查用户的认证信息,例如对于 login 来说就 是用户 id 和密码,对于 sshd 来说就是特定配置的公钥。一旦用户提供了认证信息, login 或者 sshd 程序就检查系统的密码文件、用户的 ssh 信任状等信息来判断它们 是否正确。如果没有问题,那么用户验证完毕,得以进入系统。 此类 rootkit 的攻击实现方式如图 2.1 所示,rootkit 使用一个修改处理过的 /bin/login(带有根权限后门密码)来替换系统原有的/bin/login,而修改过的 login 带 有根(root) 权限后门密码;这样攻击者通过输入根权限后门密码,就能够进入系统。 就算管理员更改了系统密码或者把密码清空,我们仍能够使用后门密码以根用户身 份登录。 替换了的 login 替换了的 ps 替换了的 ifconfig 系统内核 图 2.1 传统 rootkit 的攻击实现方式 在侵入 linux 系统后,入侵者通常会进行一系列的后续攻击动作,如隐藏攻击 程序的目录和进程、 通过网络嗅探器收集重要数据 (安装后门) 、 修改日志等, 而 linux 中也会有些系统命令程序会监视这些动作,比如 ls、find、ps、netstat、ifconfig 等, 为了隐藏入侵者的行踪,rootkit 会同样替换一下这些系统文件,通常被它替换的系 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 11 统程序有 login,ifconfig,su,find,du,ls,netstat,ps 等。假设攻击者取代或修改 各个组成部分的核心,许多用户模式程序,如ps , ls或lsof ,使用内核以执行一 些任务,当管理员运行ls命令列出的内容目录,内核模式系统调用被调用,攻击者 可以修改此内核部分隐藏一些文件或程序。 现在这类 rootkit 的工具很多,基本都是用一些处理过的系统文件来代替原来的 系统文件,像 linux rootkit iv 等一些 rootkit 工具。 2.2.2 修改系统日志文件修改系统日志文件 系统日志文件是 linux 系统上最重要的文件之一,因为它们可能会揭示隐蔽的 问题。日志文件的重要作用主要体现在三个方面:首先,日志文件可以帮助管理员 追查各种系统故障的根源和了解在自己的系统上正在发生的事情;其次,日志可以 充当系统事件和安防事件的早期预警机制;最后,日志是管理员重演事件过程所不 可缺少的,不管是为了判断自己的系统是否已经遭到入侵,对入侵活动展开事后调 查,还是为了了解系统在正常运行时是什么样子,这些都离不开对相关事件的重演。 日志的重要性不言而喻,应制定一个日志策略。一个好的日志策略至少应解决 以下几个方面的问题。第一,日志集中管理机制的建立,集中管理日志的主要好处 一是便于它们的收集、整理和分析使用,二是可以防止敏感信息发生意外丢失或者 被其他人蓄意篡改或删除;第二,为日志提供备份,日志文件同样是重要的数据, 同样需要备份和归档;第三,日志文件的保护,一定要严格限制无关人员访问操作 系统的日志文件,这些文件往往包含着各种口令或其他敏感信息,一定要不定期的 检查日志文件是否有异常情况;第四,日志文件的保存期,把日志文件压缩成档案 永久地保存并非不现实,压缩后的日志文件要比它们原来占用的空间要小很多,没 有理由不压缩准备长期保留的日志文件。 日志对于安全来说,非常重要,它们记录了系统每天发生的各种各样的事情, 可以通过它们来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主 要的功能有:审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等。在 linux 系统中,有三个主要的日志子系统: 连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp 和/var/run/utmp, login 等程序更新 wtmp 和 utmp 文件,使系统管理员能够跟踪谁在何时登录到系统。 进程统计:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 12 (pacct 或 acct)中写一个记录,进程统计的目的是为系统中的基本服务提供命令使 用统计。 错误日志:由 syslog 执行,各种系统守护进程、用户程序和内核通过 syslog 向 文件/var/log/messages 报告值得注意的事件,另外有许多 unix 程序创建日志,像 http 和 ftp 这样提供网络服务的服务器也保持详细的日志。 常用的日志文件如下: access-log:记录 http/web 的传输 acct/pacct:记录用户命令 aculog:记录 modem 的活动 btmp:记录失败的记录 lastlog:记录最近几次成功登录的事件和最后一次不成功的登录 messages:从 syslog 中记录信息(有的链接到 syslog 文件) sudolog:记录使用 sudo 发出的命令 sulog:记录使用 su 命令的使用 syslog:从 syslog 中记录信息(通常链接到 messages 文件) utmp:记录当前登录的每个用户 wtmp:一个用户每次登录进入和退出时间的永久记录 xferlog:记录 ftp 会话 utmp、 wtmp 和 lastlog 日志文件是多数 unix 日志子系统的关键保持用户登 录进入和退出的记录。有关当前登录用户的信息记录在文件 utmp 中,登录进入和退 出记录在文件 wtmp 中,最后一次登录文件可以用 lastlog 命令查看。数据交换、关 机和重启也记录在 wtmp 文件中,所有的记录都包含时间戳。这些文件(lastlog 通常 不大)在具有大量用户的系统中增长十分迅速。 每次有一个用户登录时,login 程序在文件 lastlog 中察看用户的 uid。如果找到 了, 则把用户上次登录、 退出时间和主机名写到标准输出中, 然后 login 程序在 lastlog 中记录新的登录时间。在新的 lastlog 记录写入后,utmp 文件打开并插入用户的 utmp 记录,该记录一直用到用户登录退出时删除。utmp 文件被各种命令文件使用,包括 who、users 和 finger。 login 程序打开文件 wtmp 附加用户的 utmp 记录。当用户登录退出时,具有更新 时间戳的同一 utmp 记录附加到文件中。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 13 2.3 内核模式内核模式 rootkit 攻击方法攻击方法 内核模式32rootkit 对于不同类型的操作系统,攻击者可采用不同的方法对内核 进行修改,在许多种修改 linux 操作系统内核的方法中,最为简单方便的方法是利 用系统本身的加载内核模块33( loadable kenrel module,lkm)的功能,因此大多数的 内核模式 rootkit 通过利用 lkm 动态地更新内核来提供新功能,加入新的模块扩展 内核,同时对内核和其他使用内核的所有程序拥有了完全访问权限。 可加载内核模块lkm是linux内核为了在低内存占用量和多功能高灵活度之间 取得平衡而提供的机制。使用该机制后,内核的大部分功能模块平时以文件的形式 存储在磁盘上,内核需要哪个模块就将其动态地载入内存并与内核其他部分有机连 接,不需要该模块后再动态卸载。内核使用一个 module 结构(其中包括模块名等信 息)管理一个 lkm 模块,并使用一个 module_list 单向链表将所有模块的 module 结 构链接起来。装载新模块时该模块的 module 结构加到链表头。链表的末尾节点代表 内核本身,它的模块名为空。 内核模式 rootkit 使入侵者能获得对系统底层的完全访问权,攻击者可操作利用 内核。与传统的用户模式 rootkit 不同,内核模式 rootkit,修改了内核结构和代码, 在内核层欺骗应用程序,而不用修改应用程序本身, (例如 linux 的 bin /login 并不会 被修改) ,普通的完整性检测不能发现它们。而且,内核模式 rootkit 不仅仅只会进行 执行重定向,许多内核模式 rootkit 还支持对攻击者的目录与进程的隐藏。如图 2.2 所示,这种方式与传统的 rootkit 通过替换 ps,ls 等程序来实现进程和文件的隐藏不 同,内核模式 rootkit 通过对内核的修改来实现对 ps,ls 等程序的欺骗,隐蔽性更高。 另外内核模式的 rootkit 还能对网络数据流量和网络接口混杂模式等进行隐藏,使用 户将得不到真实的系统情况。 操作系统为在用户态运行的进程与硬件设备(如 cpu、磁盘、打印机等)进行 交互提供了一组接口。linux 系统通过向内核发出系统调用(system call)实现了用 户态进程和硬件设备之间的大部分接口,linux 内核模式的 rootkit ,或其他类型的 恶意代码,是直接安装在内核代码的内存空间,它们修改内核的结构,以便过滤数 据和隐藏。过滤这个数据有必要采取控制某些核心部件,例如系统调用,中断处理 程序等。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 14 正常的 login 正常的 ps 正常的 ifconfig 系统内核更改的内核模块 图 2.2 内核模式 rootkit 的攻击原理 在本节中,我们描述了内核模式 rootkit 的不同的攻击方法。攻击者使用 rootkit 首先要拥有系统的 root 权限,linux 内核模块(lkm)提供了一种将 rootkit 植入内 核的方法。lkm 允许动态扩展操作系统,也可以修改内核数据结构。一旦引入的 rootkit 修改内核数据结构,如系统调用表,任务列表等,就可以实现模块隐藏。通 过分析现有的 rootkit,其主要的攻击方法如下: 1.进程隐藏 2.监听系统调用 (1)修改系统调用表 (2)重定向系统调用 3.修改中断描述符表 2.3.1 进程隐藏进程隐藏 通过修改当前运行在系统中的进程的数据结构来隐藏进程34。据观察,内核使 用不同的数据结构来显示系统中正在执行的进程和进程调度列表35,36,37, rootkit 利用 这一特点,在显示进程列表时能够隐藏恶意进程。linux 操作系统中,在 task_struct 结构中定义了进程描述符,在 task_array 结构中,包含一个指向每个进程描述符的指 针和一个双链表。 2.3.2 监听系统调用监听系统调用 入侵者选择系统调用35,36,37有两个原因:因为这是最简单的方法来控制或损害系 统,并且还因为系统调用是非常强大的。系统调用是操作系统最基本的功能,例如: 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 15 它们被用来读取和写入数据和文件,它们被用来得到一个获得各种设备,运行可执 行文件等。并不是所有的系统调用都会被入侵者修改,只是存在一些经常被调用的 系统调用会被修改,如表 2.1 所示。 表 2.1 经常被修改的系统调用 系统调用的名称 简要描述 系统调用 id sys_read 读取文件 3 sys_write 写入文件 4 sys_open 创建或打开文件 5 sys_getdents/sys_getdents64 列出目录内容(包括/proc) 141/220 sys_socketcall socket 管理 102 sys_query_module 查询加载模块 167 sys_setuid/sys_getuid 管理 uid 23/24 sys_execve 执行二进制文件 11 sys_chdir 改变目录 12 sys_fork/sys_clone 创建进程 2/120 sys_ioctl 控制设备 54 1.修改系统调用处理程序的入口地址 系统调用表中包含每个系统调用的处理程序38的地址,当执行一个系统调用, 就会利用这个系统调用表跳转到执行相应服务要求的代码。rootkit 可以修改系统调 用表中某个特定服务的入口地址,使处理器执行恶意代码,替换的系统调用函数可 以用做隐藏文件和进程等各种功能。内核模式 rootkit 修改系统调用表前后的情形如 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 16 下: 系统调用表 表项2 . sys_fork sys_read 表项1 图 2.3 攻击系统调用表之前 系统调用表 表项2 . 新sys_fork 新sys_read 表项1 原sys_read 原sys_fork 图 2.4 攻击系统调用表之后 在某个系统上安装了这种内核模式 rootkit 后,如果应用层调用某个系统调用, 若这个系统调用函数入口地址被 rootkit 替换,就会执行 rootkit 替换的函数。 2.重定向系统调用 这种类型的 rootkit 把系统调用中断处理程序(system_call)中使用的系统调用表 (sys_call_table)重定向到内核空间中一个新的系统调用表,新的系统调用表中包含一 些 rootkit 定义的系统调用函数地址,也可能包含一些原来的系统调用函数地址。内 核模式 rootkit 重定向系统调用表39前后的情形如图 2.5、2.6 所示。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 17 系统调用中断 处理程序 system_call 系统调用跳转表地址 sys_call_table 0 x80 . 中断描述表 . 系统调用表 表项1 表项2 . 图 2.5 重定向系统调用表之前 系统调用中断 处理程序 system_call 系统调用跳转表地址 sys_call_table 0 x80 . 中断描述表 . 系统调用表 表项1 表项2 . 新系统调用跳转表

温馨提示

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

评论

0/150

提交评论