用户登录  |  用户注册
首 页毕业论文毕业设计下载定做交易过程截图支付宝在线支付
当前位置:完美毕业网毕业设计下载计算机毕业设计网络工程

基于Apache的Web应用防火墙的设计与实现

联系方式:点击这里给我发消息QQ212181988
官方主页:www.biye114.com
图片预览: ;论坛转帖
插件情况:
售后服务:请联系客服QQ:212181988
一键分享拿折扣:
  • 好的评价 如果您觉得此软件好,就请您
      0%(0)
  • 差的评价 如果您觉得此软件差,就请您
      0%(0)

软件简介

 摘要:随着网络时代的发展,Web 应用已经融入到日常生活中的各个方面,已成为了主流的网络业务载体。然而,在其越来越为丰富的同时,Web 服务器也逐渐成为主要攻击目标。一系列 Web 安全应用层攻击频繁发生。对付这些发生在应用层的攻击,普通的网络防火墙因工作在网络更低层,已无法发挥其有效作用。而 Web 应用防火墙是一个有效的防御工具。基于这样的网络安全环境,本文主要针对 Web 应用防火墙进行调研、设计与开发。其主要目的在于减缓当前的网络安全威胁带来的损失和问题。
首先,本文主要介绍了 Web 安全现状,分析了当前主流的应用层攻击,如 SQL 注入等。其次,对 Web 应用防火墙进行可行性分析,确定了其项目可行性。而后,基于
Web 应用防火墙的整体架构,本文分析和总结出其功能需求,并进行概要设计和详细设计,将系统分为设备信息、日志记录、网络监控、设备管理、Web 防护五大具体功能模块。在系统架构上,因此本系统基于 Apache 模块开发。同时该系统利用了 ModSecurity开源规则,对其进行重新的分类与测试,完成了所有的功能信息整理。在论文的最后,通过 WebGoat 模拟攻击,对 Web 应用防火墙作性能测试,并对其各方面的性能作出具体分析评估。
在该系统中,本人参与了该系统的需求分析、详细设计以及代码实现等工作,主要参与了防御规则的处理,以及日志记录模块,网络监控模块,设备管理模块和 Web 防护模块的开发。
目前,该系统完成了基本功能的开发,正在进行安全认证阶段,即在测试阶段结束之后,将系统交由国家信息安全中心进行审核。通过后,系统将被颁发 WAF 认证证书,而后将投入使用。

关键词:应用层攻击;Web 应用防火墙;Apache 服务器;ModSecurity;防御规则


ABSTRACT

ABSTRACT:
In the Internet era, web applications have been involved in all aspects of people’s life which succeed in being the main online business carrier. However, as a result, web servers have been the main target to attack online. A series of web application layer attacks frequently occur. However, traditional stateful firewall can't provide enough protection against the attack aimed at the application layer for it works at a lower layer of the network. Nowadays, the solution to preventing malicious attacks on websites is to develop a web application firewall (WAF) to detect and mitigate anomalous malicious websites traffic. Out of the above circumstances, research works of this paper concludes the researches, requirement analysis, detailed design on WAF, which aims to bridge the gap between website creation availability and web security by develop a WAF solution with better performance and high quality.
First of all, this paper introduces web security situation as well as analyzes popular application layer attacks like SQL injection. Secondly, it offers feasibility analysis to make sure it feasible. Then, based on the framework of WAF, this paper analyzes and concludes the fucntion requirements, general design and detailed design. Meanwhile it separates function
modules to five ones—device information, log documentation, network monitoring, system
monitoring, and web protection. As for system framework, the system is designed to be
developed based on Apache server. Finally, it introduces how the rulesets from ModSecurity are reclassified and used in WAF. In the end of the paper, testing methods through WebGoat’s virtual attacks are introduced as well as the analysis of testing results.
The author participates in the requirement analysis, system design and implementation, meanwhile responsible for the development of processing of rules,log documentation,system monitoring,device monitoring and web protection modules.
To date, the Web application firewall based on Apache modules has realized the basic functions and is in the process of WAF security certification. After being offered the certification by China Information Security Certification Center, the WAF will be used on line.
KEYWORDS:application-layer attack; web application firewall; Apache; ModSecurity;
defense rules


目 录

中文摘要 I
ABSTRACT II
目 录 III
1绪论 7
1.1项目背景及意义 7
1.1.1项目背景 7
1.1.2项目意义 7
1.2项目可行性分析 8
1.2.1市场需求分析 8
1.2.2Web 应用安全漏洞分析 8
1.2.3对现有系统的比较分析 10
1.2.4可行性总结 10
1.3项目的难点及特色 11
1.3.1项目难点 11
1.3.2项目特色 11
1.4作者的主要工作 11
1.5论文组织结构 12
1.6本章小结 12
2系统相关技术介绍 13
2.1Apache 模块 13
2.2ModSecurity 规则引擎 13
2.3AngularJS 语言 14
2.4Laravel 框架 14
2.5Python/PyMongo 14
2.6本章小结 15
3WAF 底层防御介绍 16
3.1防御流程开发基础 16
3.1.1Apache 模块设计 16
3.1.2模块间协作关系 18
3.2攻击防御原理 18
3.3攻击防御规则介绍 19
3.3.1规则语法 19
3.3.2规则处理流程 20
3.4WAF 部署模式 21
3.4.1反向代理模式 21
3.4.2路由透明代理模式 21
3.4.3网桥透明代理模式 22
3.4.4端口镜像模式 22
3.4.5部署模式总结 22
3.5本章小结 23
4系统需求分析 24
4.1系统整体功能概述 24
4.2功能性需求分析 25
4.2.1设备信息模块 25
4.2.2日志记录模块 25
4.2.3网络监控模块 27
4.2.4设备管理模块 28
4.2.5Web 防护模块 29
4.3非功能性需求分析 31
4.4本章小结 31
5系统概要设计 32
5.1整体架构设计 32
5.2系统中间层设计 32
5.2.1交互设计 33
5.2.2中间层包设计 33
5.3数据库设计 34
5.3.1前台数据库 MySql 35
5.3.2后台数据库 MongoDB 35
5.4WAF 硬件部署设计 38
5.5本章小结 39
6系统详细设计 40
6.1防御规则处理设计 40
6.1.1规则信息提取 40
6.1.2规则处理和防御 40
6.2日志记录模块 41
6.2.1日志信息生成设计 42
6.2.2日志信息存储设计 43
6.2.3日志数据格式 45
6.3网络监控模块 46
6.3.1访问监控类设计 46
6.3.2数据流程设计 47
6.3.3访问信息数据格式 49
6.4设备管理模块 49
6.4.1用户管理设计 49
6.5Web 防护模块 51
6.5.1服务器策略 51
6.5.2安全策略 54
6.6本章小结 55
7系统实现 56
7.1防御规则处理实现 56
7.1.1规则信息提取 56
7.1.2规则处理和防御 57
7.2日志记录模块实现 58
7.2.1日志信息生成 58
7.2.2日志信息存储 59
7.2.3日志操作界面 61
7.3网络监控模块实现 63
7.3.1访问监控 63
7.4设备管理模块实现 65
7.4.1登录与管理实现 65
7.4.2界面实现 66
7.5Web 防护模块 67
7.5.1服务器策略 67
7.5.2安全策略 69
8系统测试 71
8.1功能测试 71
8.1.1测试思路 71
8.1.2测试用例 71
8.2非功能测试 73
8.2.1测试方案 73
8.2.2测试流程 73
8.2.3测试结果及分析 74
9总结与展望 75
参考文献 76
致 谢 77

1绪论

本课题将针对基于 Apache 的 Web 应用防护墙进行研究,其主要目的在于减缓当前的网络安全威胁带来的损失和问题。它涉及网络安全领域和 Web 应用层的处理。本章为文章绪论部分,对项目的背景及意义、项目可行性分析、项目难点及特色进行了总结介绍,并概述了作者主要工作以及论文整体组织结构。

1.1项目背景及意义

1.1.1项目背景

随着网络时代的发展,WEB 应用已经融入到日常生活中的各个方面,例如淘宝等网上购物,银行应用,证券交易,新闻、高校等各类门户网站等。WEB 应用已然成为了主流的网络业务载体。然而,在 WEB 应用越来越为丰富的同时,WEB 服务器以其强大的计算能力、处理性能及蕴含的较高价值逐渐成为主要攻击目标。SQL 注入、网页篡改、网页挂马等安全事件,频繁发生。
据美国国防部统计,美国武器装备软件可靠性整整比一个硬件低一个数量级。软件故障约占总体故障的 60%-70%。在我国,网络安全已纳入国家总体安全观[1]。2014年 2 月,习近平主持召开中央网络安全和信息化领导小组第一次会议。他强调,“没有网络安全就没有国家安全,没有信息化就没有现代化。”由此可见,巩固网络安全是信息时代的重要任务之一。与此同时,企业等用户也越来越注重自身网络和产品的安全问题,以保护企业或组织的切身利益。由 WhiteHat 的 Security Statistics Report 2015 的数据显示,86%的企业 Web 应用存在着巨大的安全隐患[2]。
在这样的背景下,产生了针对应用层、对网络进行安全防御的 Web 应用防火墙(Web Application Firewall, 简称:WAF),本项目的项目类型即为 Web 应用防火墙(WAF)。

1.1.2项目意义

该项目名为 WABOT(卫博),为一套基于 Apache 的 WEB 应用防护系统(WAF),具有较高的可配置性和拓展性。总体来说其意义如下:
基于 Apache 的 Web 应用防火墙代表了一类新兴的信息安全技术,用以解决诸如防火墙一类的传统设备无法解决的 Web 应用安全问题。与传统防火墙不同,WAF 工作在


应用层,因此对 Web 应用防护具有先天的技术优势。基于对 Web 应用业务和逻辑的深刻理解,Web 应用防火墙对来自 Web 应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类网站站点进行有效防护,减缓当前网络环境的安全问题。

1.2项目可行性分析

1.2.1市场需求分析

据 CSI/FBI 的信息安全研究报告表明,遭受攻击的系统虽然 98%部署了网络防火墙等传统防护手段,但仍然有 52%来自外部的攻击成功。IDC 的报告表明,传统的网络防火墙在应用层保护方面的能力非常薄弱,需要新型的应用安全防护设备与之互补。

图 2-1 当前安全现状统计分析图
此外,根据 Gratner 数据分析,目前安全投资中,只有 10%投入到如何保障应用安全方面,但 75%的攻击来源于此,安全防护方面投入的失衡,是造成当前 Web 应用频频被攻陷的一个重要因素。因此,对于 Web 应用安全的防护将是未来市场的一个必不可少的需求。

1.2.2Web 应用安全漏洞分析

如今,WEB 应用接受用户输入的方式多种多样,用户传来的数据传入敏感后端的方式也多种多样。而这些恰好导致存在许多应用攻击的潜在突破口。例如 web 应用的某


行代码存在缺陷,也可能会使组织的内部系统受到攻击。因此,必须在应用程序内部进行防御,这样才有可能阻挡住这些内部攻击。
注入攻击
注入攻击有 SQL,OS 和 LDAP 注入等。很多的开发者在编码过程中,忽略了对输入数据的合法性的行判断,从而造成了应用程序的安全隐患。用户可以将输入数据隐藏成数据库查询语句,根据服务器的返回结果,获得一些后台数据库的机密数据,这就是
SQL 注入攻击。如同为一个用户登陆时的 SQL 注入攻击实例。
图 2-2 SQL 注入攻击示例
跨站脚本攻击(XSS)
应用程序包含或者携带不可信的脚本或可执行程序时,并没有进行合适的验证或者绕过了已有的验证,就将其发送给浏览器的时候,跨站脚本攻击就发生了。XSS 攻击会使得受害者在浏览器上被迫执行恶意脚本,从而劫持用户会话,破坏网站或者将用户转向恶意站点等。
最典型的例子就是:攻击者常在某论坛网站上留言含有恶意脚本的帖子,当其他用户浏览这个帖子时,恶意脚本就会执行,从而造成攻击。



图 2-3 XSS 跨站脚本攻击示意图


其他攻击
还有一些攻击例如伪造跨站请求(CSRF),安全性误配置,未验证的重定向和传递等。这些问题是防火墙、IPS 等传统的安全技术所不能解决的。解决这些问题的有效手段,就是要针对性地布置 Web 应用防护系统,从应用层进行攻击防御。

1.2.3对现有系统的比较分析

网络防火墙:目前大多数网站企业采用了防火墙作为第一道安全防线。但由于网络防火墙的安全控制层次在网络以及传输层,通常也只是对访问请求的源地址、目的地址和端口号进行监测防护,因而只能进行较为初步的安全检测控制。而对于恶意的 SQL注入攻击、跨站点脚本攻击或病毒等高层次的攻击手段,则无能为力。
IPS(Intrusion Prevention System 入侵防御系统):IPS 是在网络防火墙的技术基础上发展而来的入侵防御系统,以串联方式接入网络,能够有效阻断入侵连接。它主要针对系统型的攻击作检测拦截。但 IPS 的分析方式和特征都是基于网络协议的,主要集中在系统层面上[3]。因此,无法对应用层的攻击进行有效防御和阻拦。
梭子鱼 WAF:是目前为止国外最成功的 WAF 产品,合作公司达 800 家。它提供了双向扫描功能机制。对于 HTTP 请求来说,梭子鱼 Web 应用防火墙提供表单参数、URL、报头及 cookie 等各种安全扫描,以及提供应用层防护等等。应对 HTTP 响应时,梭子鱼
Web 应用防火墙通过对响应头、HTML 内容进行过滤,确保敏感和私密信息不被泄露。

1.2.4可行性总结

综上所述,目前对于 Web 应用层的防护技术,其市场需求非常大;Web 应用安全漏洞的问题也日趋严重且亟待被控制。此外,在已存在的技术中,显然传统的网络防火墙技术甚至是 IPS 技术都不能满足目前网络应用层安全需求。梭子鱼 WAF 产品是非常值得本系统借鉴的产品。但其价格不菲,且更适用于大型应用。因此本系统设计为 Web应用防火墙(WAF),它将针对普通 Web 服务器作出功能需求,尽最大可能降低成本,从而使得本 Web 应用防火墙产品更加优化。
此外,现在市场上 WAF 产品可以按形态划分为三种:硬件、软件及云服务 WAF。由于功能及性能方面的缺陷,软件 WAF 逐渐被淘汰。而云服务 WAF 近两年才刚刚兴起,产品市场也都尚未达到成熟。相比之下,硬件 WAF 通过几年的市场研究与应用,其技术比较成熟,功能也相对完善,是目前市场中的主流形态 WAF。


1.3项目的难点及特色

本节主要介绍该系统在设计和开发过程中的难点,以及该系统所具有的特色。

1.3.1项目难点

1.实现的问题——本系统功能繁多,任务重,实现的工作量和开发人员的限制将是难点之一;
2.效率问题——当规则众多的时候,如何进行优化和提升效率;
3.测试问题——当规则繁多的时候,如何进行 WAF 的防护功能测试,如何快速高效的进行测试;
4.实际应用的问题——如何在不同场景下选择网桥模式、路由模式或反向代理模式等部署模式,这需要大量的脚本试验和使用经验;
5.测试问题——测试任务繁重,且需要寻找最合适的测试工具进行自动化测试。

1.3.2项目特色

本系统设计的 Web 应用防火墙主要有以下几个特点:
1.工作在应用层,对 HTTP 有本质的理解:能够完整地解析 HTTP,包括报文头部、参数及负载等。且支持各种 HTTP 编码;提供严格的 HTTP 协议验证、HTML 限制;支持各类字符集编码;具备 response 过滤能力。
2.提供应用层规则:市场上的 Web 应用因功能不同、种类繁多,往往是定制化的。传统的针对已知漏洞的规则已经不再有效。而 WAF 专门提供了针对应用层的防护规则,且具备检测攻击和抵抗攻击的能力,如检测 SQL 注入攻击并阻止访问等。
3.本系统将已经开源的攻击规则库重新进行攻击分类,且通过不断测试,记录更为详尽的规则功能。使得访问攻击的信息更明确,规则更加有效,从而提升了防御能力。

1.4作者的主要工作

本人在该实习中,主要从事 Web 开发工作。应用软件工程所学知识,本人对该系统进行了需求定义和需求分析。在需求分析基础上,进行了系统的详细设计以及代码开发、测试等阶段。在项目前期,本人主要负责系统前端的框架搭建和交互开发,之后则主要在中间层和后台进行系统功能的开发和实现。在该项目中,本人主要负责的是防御规则处理,日志记录模块,网络监控模块,设备管理模块以及 Web 防护模块的开发。


1.5论文组织结构

本文共分为九章,具体结构如下:
第 1 章为绪论。包括项目的背景、开发意义、项目可行性分析、项目的重点及特色以及作者的主要工作。
第 2 章为系统开发中所用到的关键技术的介绍。其中包括对 Apache 模块、
ModSecurity 规则引擎、AngularJS 技术、Laravel 框架概述以及 Python 等技术的概述。第 3 章介绍了 Web 应用防火墙的基本防御原理。该模块为整个系统的底层模块,
介绍了系统在何时进行应用层防御,以及防御检测规则的结构和运行流程,和 Web 应用防火墙的各类部署模式原理等。
第 4 章介绍了系统的需求分析。主要介绍了系统的整体需求和各模块的功能需求,以及非功能性需求。
第 5 章介绍了系统的概要设计,包括整体架构设计、中间层设计以 WAF 硬件部署设计等。
第 6 章是系统的详细设计。通过类图等对本人主要负责模块的系统开发作出进一步的设计。
第 7 章介绍了各模块的具体实现以及结果展示。
第 8 章介绍系统的测试思路、测试方法以及测试结果。
第 9 章为总结与展望。本章将对全文进行总结,并对系统的进一步完善提出展望。

1.6本章小结

本章首先对项目的一些相关信息进行了介绍,包括项目的背景、意义、项目的难点和特色,同时对项目的可行性进行了分析。得出结论:本系统最终将实现一个硬件 Web应用防火墙(WAF)产品,该产品名为 WABOT(卫博),在进行完软件部分的开发之后,将购买合适的 WAF 硬件,并将所有代码部署,通过设计好的网络部署方式,来进行 Web 服务器在应用层的防护工作。


2系统相关技术介绍

本章将主要介绍系统在开发过程中所采用的相关技术,包括 Apache 模块、
ModSecurity 规则引擎、AngularJS 语言等。本章对上述技术的概念、使用范围以及该系统采用此技术的原因进行了介绍。

2.1Apache 模块

Apache 服务器由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它的特性之一是充分理解 HTTP 会话。而 Web 应用防火墙工作在应用层,需要一个可对 HTTP 作出具体理解和响应的平台。与此同时,Apache 支持二次开发,它拥有许多模块,可被静态或动态加载。用户开发的独立模块也可以在 Apahce 启动过程中,被加载运行。因此本系统基于 Apache 进行模块开发。而 Apache 中存在很多内核数据结构。若想在 Apache 平台上作开发,需要了解 Web 服务器运行的基本单元和 Apache 的内核结构,尤其是服务器、TCP 连接和 HTTP 请求。

2.2ModSecurity 规则引擎

ModSecurity 模块是本文设计的 Web 应用防火墙的核心,是一个标准的 Apache 模块。ModSecurity 是开源的,且能够进行入侵检测和阻止的引擎。它可以作为 Appache服务器的一个模块或单独的应用来运行,旨在增强 Web 应用程序的安全性和保护 Web应用程序避免遭受来自已知和未知的攻击[4]。
同时,作为一款强大的引擎,ModSecurity 也有着它独到的几大优势:充分的 HTTP流量记录,实时的流量监控和攻击检测,对攻击的防御和对漏洞的及时修补,灵活的规则引擎,出色的可移植性等。
本文设计的 Web 应用防火墙将ModSecurity 作为Apache 服务器的一个模块来使用,同时为了丰富 Web 应用防火墙的功能,也对 ModSecurity 的源码做出了补充和修改,比如添加黑白名单功能等。
ModSecurity 模块本身不具备对 Web 应用的防御功能,但在被加入了一系列的防御规则之后,防火墙的作用将体现出来,这也是基于 Apache 的 Web 应用防火墙的防护原理和系统核心,具体防护规则将在详细设计中进行分析介绍。


2.3AngularJS 语言

AngularJS 是一种前端 JavaScript 框架,可通过 <script> 标签添加到 HTML 页面。利用 AngularJS,可以扩展 HTML 的语法,以便清晰、简洁地表示应用程序中的组件。
AngularJS 有以下几个特性:
一是 AngularJS 特有的双向数据绑定特性。假设 Model 是 web 应用中的事实模型,传统来说,当应用中的 Model 发生变化,开发人员需手动处理 DOM 元素以及将属性反映到这些变化中。Model 的变化和 DOM 中元素变化相互影响,开发人员对这些互动的解析非常复杂。而 AngualarJS 能够同步 Model 和 DOM 元素等的变化,大大减少了手动处理代码变化的复杂度。
二是模版。在 AngularJS 中,一个模版就是一个 HTML 文件,使得 HTML 的内容扩展了,为开发人员创建了一个紧密的工作流,例如 ng-repeat。
三是 MVC。AngluarJS 吸收了传统 MVC 基本原则,Model,view,Controller 能够完美分层并交互,使得开发过程更加高效明了。
这些特性都使得网页开发变得方便简捷。这也是该系统选择 AngularJS 作为前端 JS
语言的原因。

下载地址

点击此处→注册会员上传设计赚钱
以上是大纲和介绍,如需要完整的资料请在线购买.

软件评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

下载说明

* 本站所有资料均已审核通过,内容原创保密,标准格式,质量保证
* 无需注册,点击在线购买后即可获取该套毕业设计(论文)完整
* 支付后请联系在线客服QQ:212181988发送资料
  • 官方微信