用操作系统防止网页窜改的研究与实践

2019-07-19 02:28吴敏豪张元和张廷政陈茂林
现代职业教育·高职高专 2019年4期
关键词:缓冲区完整性攻击者

吴敏豪 张元和 张廷政 陈茂林

[摘           要]  近年来,随着因特网快速发展,网页服务器成为学习、教育、娱乐、信息交换、商业服务的重要平台。提出一个操作系统防止网页窜改的机制。攻击者即使使用网页服务器漏洞,如apache网页服务器缓冲区溢出,发动攻击,取得服务器的超级使用者权限之下仍无法直接窜改网页,除非攻击者重新启动新的操作系统,而此动作很可能会引起原有系统管理者的注意。对攻击者而言,操作系统防止网页窜改的机制能准确地阻挡攻击者的攻击。

[关    键   词]  操作系统;网页保护;网页窜改

[中图分类号]  TP393.092             [文献标志码]  A               [文章编号]  2096-0603(2019)10-0086-02

因特网的快速发展使网络服务已经成为目前应用最广的一种服务。随着网页的重要性与日俱增,网页窜改已经成为网络上很普遍的一种攻击网站的方式。网页窜改简单地说就是指未经授权地去修改一个网站的内容,是一种明显改变网页外观的攻击,大多数是因为企业的预算问题与资讯安全专业人员的不足。网页被窜改后,大多数企业的做法只是单纯地将网页复原,并没有增加其他额外的防护措施,这样无疑是将网站暴露在危险的环境中,随时都有可能再次被攻击。由于网页服务器是电子商务与大数据的重要平台,发展一套有效防止网页窜改攻击的方法便成为一个相当重要的议题。

一、前人研究

Davanzo等提出了一个框架(Goldrake),这一个框架则是使用传感器和警报来自动监控远程网页资源的完整性。但Goldrakes对检测网站的影响无法估计,因为数据集仅测得出11个合法网站和20个攻击破坏网站。Borgolte等介绍Meerkat是一个网站监控系统,可自动检测网站是否已被攻击破坏,这些功能专门从损伤和合法网站的屏幕截图中学习。Meerkat利用机器学习的最新进展,如堆栈自动编码器和深度神经网络,并将它们与计算器视觉技术相结合。Basnet等提出了一种基于信誉的启发式方法,通过从网页服务挖掘和提取URL上的元数据来自动检测网络钓鱼URL。他们将每个单独的URL编码为具有14个维度和使用的特征向量Logistic回归分类器,用于区分网络钓鱼和非网络钓鱼URL。

网页窜改的攻击事件在近年来有越来越严重的趋势,目前大多数的研究都是着重于网页内容的完整性评估,但是,由于完整性评估系统对实时在线的动态网页的处理能力较不好,所以仍然无法完全解决网页窜改的问题。我们借由观察操作系统内行程(process)之间的亲子关系来判断行程执行修改网页的动作是否合法,进而判断网页是否被攻击者窜改,这种方式不同于其他网页完整性评估的侦测方式,可以结合完整性评估的方法来补强系统安全上的强度。

二、操作系统防止网页窜改机制

目前,大多数的网页服务器都是以Linux操作系统搭配Apache网页服务器软件来架设的,所以,本篇论文以Linux操作系统加上Apache网页服务器软件的架构来实作。本篇论文所提出的方法适用于Apache网页服务器,并且能成功抵挡使用缓冲区溢出漏洞来窜改网页的攻击。

我们观察Apache网页服务器运作时,Linux操作系统内行程(process)之间的亲子关系(relationship)来判断行程执行的写入动作是否合法,如果是非法写入的动作,我们的系统就会取消执行的写入动作并且返回错误讯息;反之,则正常写入。

本篇论文我们使用Linux操作系统搭配Apache网页服务器软件来架设网页服务器,我们观察Apache网页服务器运作时,Linux操作系统内行程之间的亲子关系,Apache网页服务器启动时系统会先产生一个httpd行程,这个httpd行程接着会fork产生其他的httpd子行程,只要有使用者连入Apache网页服务器,就会由任意一个httpd子行程来为使用者提供服务。

Apache网页服务器启动时系统会先产生一个httpd行程,这个httpd行程在启动时会写入三个档案:httpd.pid、error_log、access_log,其中httpd.pid这个档案会记录httpd行程的行程ID(PID),error_log档案会记录apache执行时的一些异常情形,access_log则会记录用户存取网页的记录,hpptd子行程也会将错误讯息及联机记录写入error_log、access_log这两个档案当中。

如果想要调整httpd子行程的数量,可以在Apache的httpd.conf配置文件中,修改StartServer参数就可以自行设定启动Apache时所产生的httpd子行程数量,我们将StartServer参数设定为默认值5,也就是启动Apache时会产生5个httpd子行程。

正常的使用者联机进入网页服务器不会通过httpd这个行程来修改网页,即使像是PHP动态网页在处理网页数据时也不会直接由httpd相关行程来修改网页,因为PHP在产生网页时,只会将所需数据从数据库取出然后回传给client,并不会执行写入网页的动作。当网页中使用CGI程序时,httpd子行程才会fork出CGI程序来执行参数的处理,CGI程序处理完后会将数据回传给用户,但是也不会写入网页。

三、实验结果

操作系统防止网页窜改机制 Server架设于AMD Athlon 3000+ 2.0GHz CPU,1GMB System Memory,操作系统为Linux Fedora core5之机器上,所修改的Linux核心版本为2.6.18.2,所使用的服务器软件是Apache1.3.23。Client架设于Intel Pentium4 1.6GHz CPU, 512MB System Memory,操作系统为Linux Fedora core5之机器上,在防御测试项测试中,我们以一个有缓沖区溢出漏洞的Echo server行程来仿真有漏洞的Apache程序,并且对操作系统防止网页窜改机制系统主机发起攻击,攻击流程如下:(1)对操作系统防止网页窜改机制系统发动缓冲区溢出攻击;(2)在服务器端产生一个shell并且开启一个通讯端口;(3)攻击端经由开启的通讯端口联机进入服务器,接着以vi指令尝试修改网页。测试结果为,操作系统防止网页窜改机制成功地阻止攻击者修改网页,并且在系统输出错误讯息;相反,没有操作系统防止网页窜改机制保护的网页服务器,网页会被攻击者修改。在这个实验中,虽然我们只有针对网页窜攻击行为分析中的第一种攻击来做测试,但是由对服务器发动缓冲区溢出攻击,开启一个bin shell,再由shell产生一个子行程(vi/vim)来窜改网页。只要攻击者透过缓冲区溢出漏洞来窜改网页,那用来修改网页行程的祖先一定会包含root_httpd这个行程,因为操作系统防止网页窜改机制会检查写入网页的行程的祖先是不是包括root_httpd,所以只要攻击者透过httpd相关行程来窜改网页,操作系统防止网页窜改机制就可以挡下网页窜改攻击。

四、结论

网页窜改攻击目前已经对各企业造成很大的威胁,而且这种攻击有日益严重的趋势,但是,现有的解决方法无法完全解决网页窜改的问题。因此,本篇论文从操作系统核心方面着手,以一种不被一般大众可以接受的行为方式来侦测攻击,可以更有效率地防止网页窜改攻击,并且降低了误判(false positive)的情形发生,而且对系统效能也不会有太大的影响。我们的机制以不改变网站系统管理者原有的管理网页的方式,也就是说,我们的机制对使用者而言是完全透明的、感受不到的,但对攻击者而言,操作系统防止网页窜改机制能准确地阻挡攻击者的攻击。此外,操作系统防止网页窜改机制也可以结合现有的完整性评估方法来提高系统安全上的强度。

参考文献:

[1]Bartoli A, Medvet E. Automatic Integrity Checks for Remote Web Resources[J]. IEEE Internet Computing, 2006,10(6):56- 62.

[2]Borgolte K, Kruegel C, Vigna G. Meerkat: detecting website defacements through image-based object recognition[A].Usenix Confe-rence on Security Symposium[C]. USENIX Association, 2015:595-610.

[3]Basnet R B, Sung A H. Mining Web to Detect Phishing URLs[A]. International Conference on Machine Learning and Ap-plica-tions[C]. IEEE Computer Society, 2012:568-573.

◎编辑 陈鲜艳

猜你喜欢
缓冲区完整性攻击者
酶可提高家禽的胃肠道完整性和生产性能
防止调度自动化系统漏监视告警的一些措施
缓冲区溢出漏洞攻击及其对策探析
初涉缓冲区
本期导读
Linux系统下缓冲区溢出漏洞攻击的防范
谈书法作品的完整性与用字的准确性