登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

ICS威胁感知系统的设计与实现毕业论文

 2020-02-23 06:02  

摘 要

关键词:ICS威胁感知;MVC;Java;Spring Boot;angularJS

Abstract

With the high development of science and technology, the integration of information technology and industrial production is deepening. The industrial control system has been attacked more and more frequently, and the safety of industrial control system has gradually attracted the attention of enterprises and relevant scientific and technological personnel. It is important to note that in view of the industrial control system and attack methods of attack patterns emerge in endlessly, even produced advanced persistent threat, the general defense does not have effective defense effect.

In this paper, the whole demand analysis of ICS threat perception system is carried out, and the purpose of user demand, system development and the feasibility of this system are clarified. The system is developed based on B/S mode, and the system function is planned, designed and developed according to the principle of modular design. The system adopts MVC three-layer mode, mainly using Java language development, and the front end USES angularJS thymeleaf, and springboot mybatis is used in the background, mysql is used in the database, and IDEA is used for development tools.

During the development of the system, the system function and database design have been improved gradually. In terms of development, we should follow alibaba's development standard to facilitate future expansion and maintenance. Each functional module is highly encapsulated, which is beneficial to the expansion and deletion of system functions. In addition, the key information must have log printing, which is also important for the maintenance of system operation.

Key Words: ICS threat perception;MVC;Java;Spring Boot;angularJS

目 录

第1章 绪论 1

1.1 系统开发背景 1

1.2 系统研究的意义 1

1.3 技术简介 1

1.4 详细介绍 2

1.4.1 Spring Boot简介 2

1.4.2 augularJS简介 2

1.4.3 Mybatis简介 2

1.4.4 MySQL简介 2

1.4.5 Thymeleaf简介 3

第2章 可行性分析 4

2.1 可行性研究的任务 4

2.1.1 技术可行性研究 4

2.1.2 经济可行性 4

2.1.3 系统的运行可行性 4

2.1.4 法律可行性 4

2.2 可行性研究过程 4

2.2.1 复查系统规模和目标 4

2.2.2 研究目前正在使用的系统 4

2.2.3 新系统的逻辑模型 5

2.2.4 开发计划 5

2.3 系统流程图 5

2.4 数据字典 6

2.4.1 数据字典的用途 6

2.4.2 系统的数据字典如下所示 6

2.5 成本/效益分析 8

第3章 需求分析 9

3.1 需求分析的任务 9

3.1.1 系统的综合要求 9

3.2 系统功能分析 10

3.2.1 功能分析 10

3.2.2 性能需求 12

3.2.3 可用性 12

3.2.4 安全性 12

3.2.5 可维护性 12

3.2.6 可转移 12

3.3 实体-联系图 12

3.3.1 数据对象 12

3.3.2 数据库关系图设计 13

3.3.3 数据属性 15

3.5 数据规范化 16

3.6 状态转换图 17

3.6.1 状态 17

3.6.2 事件 17

3.6.3 状态图 17

第4章 概要设计 19

4.1 设计过程 19

4.1.1 选择合理的方案 19

4.1.2 功能分解 19

4.2 设计原理 20

4.2.1 模块化 20

4.2.2 模块独立 21

4.3 开发环境的设计 21

4.4 设计优化 21

第5章 系统实现 22

5.1 页面展示 22

5.1.1 用户登录页面 22

5.1.2 管理系统首页 22

5.1.3 模拟威胁监测页面 23

5.1.4 情报采集页面 23

5.1.5 模拟漏洞挖掘页面 24

5.1.6 模拟协议解析页面 24

5.2 代码实现 25

5.2.1 公共部分代码实现 25

5.2.2 其它功能模块实现代码 27

第6章 系统测试 29

6.1 测试目的 29

6.2 测试的步骤 29

6.2.1 登陆测试 29

6.2.2 情报采集测试 30

6.2.3 情报采集查询功能测试 31

第7章 个人总结 32

参考文献 33

致谢 34

绪论

系统开发背景

工业控制系统具有大数据量、高速率传输的要求,因此催生了当前在商业领域风靡的以太网与控制网络的结合。这股工业控制系统网络化浪潮又将诸如嵌入式技术、多标准工业控制网络互联、无线技术等多种当今流行技术融合进来,从而拓展了工业控制领域的发展空间、带来新的发展机遇,同时也带来了诸如安全等新的问题。控制系统的结构从最初的CCS(计算机集中控制系统),到第二代的DCS(分散控制系统),发展到现在流行的FCS(现场总线控制系统)。关键的工业流程和基础设施,诸如石油、化工、电力、交通、通信等,这些关系到国计民生的重要地方,随时都面临着安全威胁。为了防止网络攻击,工业控制系统需要一种有效和切实可行的机制,包括人员、规程和技术。当前已经出现了很多对ICS威胁感知的研究成果,但新的安全威胁也一直在持续产生。

1.2 系统研究的意义

在工业生产越来越发达、越来越智能、越来越高效的今天,工业控制系统存在于工业生产的方方面面,甚至于我们生活的方方面面。因此,工业控制系统是一个非常重要的领域,工业控制系统的安全防护也越来越成为一个重要的问题。几乎每一个工业生产过程、每一个工业行业,都离不开工业控制系统和安全防护。作为一个刚刚进入行业的it从业人员,特别需要通过创造一个成型的产品来实践自己的技术、验证自己的能力,因此我选择了ICS威胁感知作为主题来开发一个探索工业控制系统威胁来源、安全防护、系统管理的系统,一次表明我确实具备从事it行业的能力。同时通过这个系统的开发,我也能够学习一些新技术、积累一些开发经验。后续直至部署和维护过程,我能完整践行一遍软件项目开发的全部过程。

1.3 技术简介

(1)框架Spring Boot :java J2EE开方面的经典框架的最新发展,引入了大量自动化功能、节省了大量手工配置;

(2)angularJS:一个非常流行的前端框架,提供大量指令和模块用于简化用户交互、分页、数据传递等代码的编写;

(3)Mybatis:经典的半自动化的持久层框架,提供xml配置式SQL语句编写,简化与数据库代码的编写;

(4)MySQL:经典的、开源的、免费的关系型数据库,既可用于对性能要求高的互联网公司、也可用于个人开发者开发、学习、研究;

(5)Thymeleaf:代替传统的jsp的一种模板引擎,指令风格与html相似,无需在页面中写java代码即可结合后台数据生成页面;

1.4 详细介绍

1.4.1 Spring Boot简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。从最根本上来讲,Spring Boot是一些库的集合,它能够被任意项目的构建系统所使用。简便起见,该框架也提供了命令行界面,它可以用来运行和测试Boot应用。Springboot内置了tomcat容器,因此无需安装tomcat,开发者也可以直接运行springboot项目。Springboot支持非常多的企业级扩展,入redis、MongoDB、Mybatis、springSecurity等。

Springboot可以做到完全不用XML配置方式,所有DI、AOP和其它配置均通过注解实现。Springboot简化了maven配置、简化了DI、AOP配置,提供生产就绪型功能,如指标,健康检查和外部配置。

1.4.2 angularJS简介

AngularJS 诞生于2009年,由Misko Hevery 等人创建,后被Google收购。是一款优秀的前端JS框架。AngularJS有诸多特性,最为核心的是:MVW(Model-View-Whatever)、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。AngularJS 是一个 JavaScript框架。它是一个以 JavaScript 编写的库。它可通过 lt;scriptgt; 标签添加到HTML 页面。AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML。AngularJS 是以一个 JavaScript 文件形式发布的,可通过 script 标签添加到网页中。AngularJS适合于以CRUD为主要操作的web应用,而不适合于想网页游戏等DOM操作频繁的应用。

1.4.3 Mybatis简介

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

MyBatis 最强大的特性之一就是它支持动态语句功能,也就是说,是用特殊的语法和标签,能够自动检查生成的SQL语句是否合法、使SQL语句自动消除、补充、不合适的前缀。

1.4.4 MySQL简介

MySQL是一种典型的关系型数据库。它开源、免费、功能齐全、可扩展性好。它支持多种存储引擎。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

1.4.5 Thymeleaf简介

Thymeleaf是一个模板引擎[5]。它的优点是,在有网络和无网络的环境下都可以运行,既可以让美工在浏览器中直接看到页面的静态效果,也可以让后台开发人员在浏览器中看到添加了动态数据的效果。另外,它是Spring Boot推荐的模板引擎。

可行性分析

2.1 可行性研究的任务

2.1.1 技术可行性研究

本系统后台开发语言使用java、后台MVC框架使用springboot、持久层框架使用mybatis,前端语言使用使用html、css、js、前端框架使用layui angularjs,数据库使用mysql,web容器使用springboot内置的tomcat。这些用到的技术以前全部都实践过,所以技术上来说是完全可行的。

2.1.2 经济可行性

作为毕业设计来说,规划中这是一个非常小的系统,以自己的笔记本电脑就可以跑起这个系统,开发工作量上来说、一个人两个月完全可以完成全部开发。所以经济可行性上不论是硬件、还是人力成本都是不存在问题的。

2.1.3 系统的运行可行性

该系统在开发阶段完全可以直接在springboot内置tomcat容器中运行,测试阶段或发布之后不论是继续使用内置tomcat还是独立tomcat都可以。可以部署在自己笔记本上,也可以部署在购买的云服务器上,虽然因为域名关系只能同一局域网访问,但运行起来是完全没有问题的。

2.1.4 法律可行性

该网站不会绑定已备案的域名、不会对外网提供访问服务、不做商业用途,所以法律上来说完全不会有任何问题。

2.2 可行性研究过程

2.2.1 复查系统规模和目标

根据个人规划,该系统是一个单用户系统,功能比较齐全、但不会做的太过细致和繁复,所以系统规模完全在一个人可以承受的范围内。系统目标也很明确,就是开发一个完整的ICS后台管理系统。

2.2.2 研究目前正在使用的系统

通过研究网上一些后台管理系统,再结合ICS威胁感知系统自身的特点,可以大致确定本系统应该如何去进行开发。前端页面部分,一个是前端大致框架可以借鉴这些后台管理系统,在一个前端使用的技术都是成熟的、已掌握的技术。需要注意的问题可能是网上的后台管理系统都比较粗糙,用户体验需要优化。另一个就是,这些后台管理系统都比较封闭,不会与互联网进行交互,而ICS是需要从网上采集信息的,这个是不同的地方。

2.2.3 新系统的逻辑模型

对于这个ICS威胁感知系统,常见的后台管理系统功能是绝对必不可少的,但是也应注意,威胁事件监测、情报采集、协议解析等功能是这个系统需要实现的,这也是这个系统页面展示的数据的来源。

2.2.4 开发计划

个人定的开发计划是,先将与页面表现无关的功能如威胁事件监测、第三方情报采集、协议解析、漏洞挖掘等功能完成,这样既可以生成大量数据、也方便进行前端页面开发,第二步才是进行前端页面开发,如数据展示、提供功能入口等。

2.3 系统流程图

纵向上该系统按MVC架构分层,横向上该系统按功能模块分层。纵向上每一上层依赖下一层调用下一层、而下一层既不依赖也不调用上一层,上层不能跨层调用下层。横向上来说,模块并为独立部署,但每一个模块都是一个独立的线程,除非有必要,一个模块尽量不直接依赖另一个模块。

图2.1 服务器后台管理流程图

图2.2 前端系统流程图

2.4 数据字典

2.4.1 数据字典的用途

数据字典在开发中的作用是:作为分析阶段的工具。在数据库字典中建立的对应关系,可以消除很多误解。

2.4.2 系统的数据字典如下所示

2.5 成本/效益分析

成本上来说主要是要花费大量时间进行需求分析、系统概要设计、编码、系统详细设计、测试、bug修改、部署等。这会耗费相当多的时间。硬件方便基本没有成本。收获的话,主要是复习、实践了以前学习过的一些知识和技能,对于软件工程思想有一些更深的体会,对知识、技能的掌握更加熟练。同时完整的实践了一遍一个软件从立项到部署运维阶段的全部过程。这是一种收获。

需求分析

3.1 需求分析的任务

3.1.1 系统的综合要求

1. 功能要求

本系统的功能分为两大块,一块是威胁监测、信息采集、漏洞挖掘、协议解析等用来产生数据,另一块是web页面展示这些产生的数据。展示分为首页综合统计、威胁监测展示、信息采集展示、漏洞挖掘展示和协议解析展示。

2. 性能要求

本系统目前是一个单用户系统,以springboot框架自身的优化程度,完全能自动实现用户流畅的访问体验。至于后台部分,信息采集因为要与远程web服务器交互,所以不一定能保证太高的成功率。不过这也不是关键问题,因为信息采集是免费的,所以可以多采集几次。

3. 可靠性和可用性需求

可用性是完全能够满足的。本系统不存在高并发、大访问量的问题,数据库也不是分布式的、不存在数据同步的问题。至于可靠性,正常情况下、系统不会产生任何是自身崩溃宕机的数据,如果有、那么通过异常处理也会在测试阶段处理好。

4. 约束

本系统只有少量的约束关系,主要约束关系存在于数据库表之中。漏洞表跟漏洞详情表之间存在主外键关联,协议表和canopen、modbus表之间存在主外键关联。表之间的约束我没有设置键,而是从代码逻辑上保证关联关系存在。

5. 接口需求

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图