论文部分内容阅读
互联网发展至今,已经覆盖了175个国家和地区的数亿台计算机,用户数量超过10亿。计算机已经深入到社会的各个领域,一个网络化的社会已经展现我们面前。然而光明和阴暗总是携手而来,在网络给人们带来巨大便利的同时,也带来了一些不容忽视的问题,其中,计算机病毒危害最为严重。 病毒无处不在,无孔不入,让无数网民体验到了病毒来袭时的疯狂,也见识到了操作系统的脆弱。在Windows操作系统大行其道的今天,黑客们找出了一个又一个的技术漏洞,这些漏洞成为危及操作系统安全的一大隐患。为了寻找相对的安全,不少企业开始放弃Windows操作系统,改用Linux这款号称绝对安全的操作系统。然而在实际应用中,用户再次体验到了Linux脆弱的一面―没有所谓的“绝对安全”。 任何安全威胁最终都是由计算机中的某个进程引起的。同样,对于计算机病毒也是如此,它通过派生恶意进程来进行破坏计算机的活动又或破坏合法程序运行等等,达到其目的。虽然,Linux自带有top、ps等进程管理工具,通过它们可了解当前系统中正运行的进程信息。但这些工具有其一定的局限性,它们不知道进程运行用到了哪些动态链接库以及内核模块,也不知道其打开的文件名和文件,更重要的是,它们无法判断当前运行的进程是否合法。 本文在研究Linux环境下进程运行机制和Windows安全软件的工作原理基础上,提出了一种Linux下的进程保护方案:预先收集一个较完整的进程白名单,保存其可执行文件的路径、md5值,动态链接库的关键信息。通过监控程序的扫描结果与白名单核对,及时发现可疑进程。同时基于进程拦截白名单在程序执行的初始阶段就对非法进程进行拦截。 由于大多数Linux后门程序与Linux内核有着一定的联系,对他们的检测有一定的难度,要想阻止他们的运行,必须在内核层对相关的内核模块进行保护以及阻止可疑模块的加载。这也是本方案设计的另一个方面。