20189320《网络攻防》第十周作业

一、冯·诺依曼体系结构的理解

(一)冯·诺依曼体系结构

       冯·诺依曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构,是一种实现通用图灵机的计算设备,以及一种相对于并行计算的序列式结构参考模型。
       

  • 数据流:从输入设备出发,把数据传递给存储器。存储器把数据交给运算器,运算器把算好的结果交给存储器,最后把数据交给输出设备。
  • 指令流:存储器向控制器发送指令。实质上是地址。
  • 控制流:由控制器发送给存储器,控制输入设备、存储器、输出设备。

(二)冯·诺依曼体系结构的组成

       由上图可以看出,冯·诺依曼体系结构有五大部分组成:

  • 存储器:用来存放数据和程序。
  • 运算器:主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中。
  • 控制器:主要用来控制和指挥程序和数据的输入运行,以及处理运算结果。
  • 输入设备:用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等。
  • 输出设备:可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等。

(三)冯·诺依曼体系结构的特点

       1.计算机硬件由存储器、运算器、控制器、输入设备和输出设备五大部分组成。
       2.计算机处理的数据和指令一律用二进制数表示。
       3.顺序执行程序。即计算机运行过程中,把要执行的程序和处理的数据首先存入主存储器(内存);计算机执行程序时,将自动地并按顺序从主存储器中取出指令一条一条地执行。

二、图灵机的理解

(一)图灵机的经典构成图

       
       逻辑结构上图灵机有四个部分组成:输入集合、输出集合、内部状态、固定的程序指令。

  • 一个无限长的存储带,带子有一个个连续的存储格子组成,每个格子可以存储一个数字或符号。
  • 一个读写头,读写头可以在存储带上左右移动,并可以读、修改存储格上的数字或符号。
  • 内部状态存储器,该存储器可以记录图灵机的当前状态,并且有一种特殊状态为停机状态。
  • 控制程序指令,指令可以根据当前状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作(左移还是右移),并改变状态存储器的值,令机器进入一个新的状态或保持状态不变。

(二)图灵机的基本思想

       图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,它把运算过程看作下列两种简单的动作:
       1.在纸上写上或擦除某个符号
       2.把注意力从纸的一个位置移动到另一个位置
       而在每个阶段,人要决定下一步的动作,依赖于:
       1.此人当前所关注的纸上某个位置的符号
       2.此人当前思维的状态

(三)图灵机的基本组成

       

(四)冯·诺依曼体系结构与图灵机的区别和联系

       冯·诺依曼体系结构是一种实现通用图灵机的计算设备。图灵机是一个计算机的理论模型,本质上是状态机,而冯·诺依曼体系结构是图灵机的实现。
       冯·诺依曼计算机与图灵机的区别是"数字编程"和"物理编程"的区别。图灵机是抽象理论计算机,冯·诺依曼计算机是实际计算机的抽象。

三、“程序=指令+数据”的理解

       程序是指令、数据及其组织形式的描述。其中,指令是计算机执行程序的基础单位。通常在汇编中一条指令包括操作码和操作数,操作码决定要完成的操作,操作数指定参加运算的数据及其所在的单元地址。
       从本质上来说,指令就是对应地址的数据及其要对其执行的操作。

四、安全问题

(一)缓冲区溢出

       缓冲区溢出是计算机程序中存在的一类内存安全违规类漏洞,在计算机程序向特定缓冲区内填充数据时,超出了缓冲区本身的容量,导致外溢数据覆盖了相邻内存空间的合法数据,从而改变程序执行流程破坏系统运行完整性。
       缓冲区溢出攻击发生的根本原因,可以认为是现代计算机系统的基础架构——冯·诺依曼体系存在本质的安全缺陷,即采用了“存储程序”的原理,计算机程序的数据和指令都在同一内存中进行存储,而没有严格的分离。这一缺陷使得攻击者可以将输入的数据,通过利用缓冲区溢出漏洞,覆盖修改程序在内存空间中与数据区相邻存储的关键指令,从而使程序执行恶意注入指令的攻击目的。
       实践:seed缓冲区溢出实验

(二)XSS攻击

       XSS是一种经常出现在Web应用中的计算机安全漏洞,它允许恶意Web用户将代码植入到提供给其它用户使用的页面中,比如HTML代码和客户端脚本。
       与代码注入类似,XSS攻击的根源同样是Web应用程序对用户输入内容的安全验证与过滤不够完善。而与代码注入不同的是,XSS攻击的最终攻击目标不是Web服务器,而是访问这些Web服务器的用户。
       实践:XSS攻击实验

(三)SQL注入攻击

       SQL注入攻击是利用Web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。SQL注入攻击的原理是向Web应用程序提供的用户输入接口(如一个动态页面的输入参数、表单的输入框等等)输入一段精心构造的SQL查询命令,使得注入代码得以执行完成非预期的攻击操作行为。
       实践:SQL注入攻击实验

(四)三种攻击的共同点

       通过对比可以看出,上述三种攻击都是通过某种方式在目标机中注入恶意代码,然后执行恶意代码以达到攻击的目的。

  • 缓冲区溢出:将输入的数据覆盖修改程序在内存空间中与数据区相邻存储的关键指令。
  • XSS攻击:新型的“缓冲区溢出攻击“,本质也是利用缓冲区溢出来实现的。
  • SQL注入攻击:通过向Web应用程序提供的用户输入接口输入一段精心构造的SQL查询命令。

(五)统一的防范方法

       加强安全验证与过滤机制,进行严格的检查,对输入数据和边界数据进行更安全的检测。

posted @ 2019-05-05 21:16  20189320朱晓辰  阅读(251)  评论(0编辑  收藏