20212306张阳

导航

 

2021-2022-1学期20212306《网络空间安全导论》第十二周学习总结

5.1 概述

一种分隔式的应用程序,由三个层次共同组成应用系统。
页面请求→用HTTP协议向用户返回要浏览的页面
数据库查询操作请求→由中间件向数据库系统提出操作请求,得到结果返回给Web应用服务器,Web应用服务器把数据库操作的结果形成HTML页面,返回给浏览器。

5.2 常见的Web应用安全漏洞

(一) SQL注入漏洞

原因:用户输入的数据被SQL解释器执行
防护手段
●参数类型检测

●参数长度检测

●危险参数过滤

常见的危险参数:关键字、内置函数、敏感字符

过滤方法:

(1)黑名单过滤
※什么是正则表达式?

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

  1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”)

  2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
    (2)白名单过滤
    (3)GPC过滤
    比如一个 Web服务器为 IIS6.0,Web 语言为 asp 的网站,假定开发者使用了黑名单过滤,过滤了asp、asa、cer等文件格式,那么可以尝试以下几种方式来绕过:
    大小写,比如 AsP、cER等.
    被忽略的扩展名,IIS6.0 会把 cdx 格式的文件当成 asp 来解析.
    配合解析漏洞,上传 asp;jpg 格式文件 .
    如果 Web服务器开启了其他语言的支持,比如可以解析 php 文件 , 那么可以上传 php 格式的木马 .
    利用 Windows 系统自动去除.和空格的特性 , 如上传扩展名 asp. 格式的文件来绕过.
    通过以上几个例子可以看出 , 黑名单过滤的可靠性并不高,白名单过滤相对来说较为可靠.
    白名单与黑名单的机智恰恰相反,黑名单是定义不允许上传的扩展名,白名单则是定义允许上传的扩展名,虽然采用白名单可以防御未知风险,但是不能完全依赖白名单,因为白名单不能完全防御上传漏洞,例如各种解析漏洞等,白名单仅仅是防御上传漏洞的第一步.通常会结 合其他验证方式来使用,虽然不能完全防御文件上传漏洞,但也基本上规避了绝大部分风险.

●参数化查询

参数化查询是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数来给值,这个方法目前已被视为最有效可预防SQL注入攻击 的攻击手法的防御方式。
在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SQL指令的一部份来处理,而是在数据库完成 SQL 指令的编译后,才套用参数运行。
因此就算参数中含有恶意的指令,由于已经编译完成,就不会被数据库所运行。
有部份的开发人员可能会认为使用参数化查询,会让程序更不好维护,或者在实现部份功能上会非常不便;然而,使用参数化查询造成的额外开发成本,通常都远低于因为SQL注入攻击漏洞被发现而遭受攻击,所造成的重大损失。

(二) 文件上传漏洞

本质是将恶意文件或者脚本上传到服务器。
原理:一些文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过Web访问的目录上传任意PHP文件;并能将文件传递给PHP解释器,从而可以在远程服务器上执行任意脚本。
原因:
◆文件上传时检查不严
※截断符
在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束。利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞。
0x00,%00,/00 之类的截断,本质都是一样的,只是不同表现方式而已。
◎文件上传后修改文件名时处理不当
◎使用第三方插件时引入
※什么是第三方插件?
为了扩展一个软件的其它功能开发的软件或代码,由软件调用,比如浏览器的FALSH播放插件,翻译插件等等。

防护手段
●开发阶段:客户端、服务器端对用户上传的文件名和文件路径等项目分别进行严格的检查。
●运行阶段
●安全设备的防御:对漏洞的上传利用行为和恶意文件的上传过程进行检测。

(三) XSS

定义:跨站脚本攻击(Cross Site Scripting)是指攻击者利用网站程序对用户输入过滤的不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取数据。

XSS属于客户端攻击,受害者是用户。
※URL
统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上用于指定信息位置的表示方法。
原理:注入一段能够被浏览器解释执行的代码,并通过各类手段使得这段代码“镶嵌”在正常网页中,由用户在正常网页中触发。

类型
(1)反射型XSS:输出端中存在可被浏览器执行的代码数据
(2)存储型XSS:
(3)基于DOM的XSS:修改页面DOM节点数据信息形成的XSS,修改页面DOM节点数据信息形成的XSS。

防护手段
●过滤特殊字符
●使用实体化编码:让浏览器能区分这些字符是被用作文字显示而不是代码执行

(四) CSRF

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF,是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。
攻击者利用cookie盗用了用户的身份,以用户的名义进行了某些非法操作。
完成一次CSRF攻击,受害者必须依次完成两个步骤:
(1)登录受信任网站A,并在本地生成Cookie。

※Cookie

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。

(2)在不登出A的情况下,访问危险网站B。(CSRF攻击篡夺用户的会话Cookie)

“如果不满足以上两个条件中的一个,就不会受到CSRF的攻击”。但可能发生以下情况:

(1)用户登录了一个网站后,打开一个tab页面并访问另外的网站。

(2)用户关闭浏览器了后,本地的Cookie没有立刻过期,上次的会话没有结束。

(3)上图中所谓的攻击网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站。

危害方式

◎论坛等可交互的地方

◎Web攻击者

◎网络攻击者

防护手段

●添加验证码:攻击者不能接收服务器给用户返回的申请

●验证referer:验证请求来源方式

●利用token:

(五) 远程代码执行漏洞

原理

由于开发人员编写源码,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。
防护
●禁用高危系统函数
●严格过滤关键字
●严格限制允许的参数类型

5.3 恶意代码

(一) 概念
(二) 典例
危害

攻击者可以用Web页面的方式,通过脚本木马后门控制web服务器;可以上传下载文件、查看数据库、执行任意程序命令等。

5.4 中间件

中间件是一种独立的系统软件或服务程序,分布式应用程序借助这种软件在不同的技术之间共享资源。
中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。
中间件不仅实现互联,还能实现应用之间的互操作。
优势
屏蔽底层操作的复杂性
简便开发,缩短开发周期;减少系统维护的工作量;减少计算机总体费用投入
将不同时期、在不同操作系统上开发应用软件集成起来
应用服务类中间件
为应用系统提供一个综合的计算环境和支撑平台,包括对象请求代理(ORB)中间件、事务监控交易中间价、Java应用服务器中间件等。
应用集成类中间件
提供各种不同网络应用系统之间的消息通信、服务集成和数据集成的功能,包括常见的消息中间件、企业集成EAI、企业服务总线以及相配套的适配器等。
消息中间件:利用高效可靠的信息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。

业务架构类中间件
●业务流程:处理业务模型的重要方法。

●业务管理:对业务对象的建模和业务规则的定义、运行、监控的中间件平台。

●业务交互:提供交互工具,实现个性化的用户体验。

5.5 数据库安全

数据库是“按照数据结构来组织、存储和管理数据的仓库”,是长期存放在计算机内、有组织、可共享的大量数据的集合。

数据库是以按照一定数据模型进行组织、描述和存储,具有尽可能小的冗余度、较高的独立性和易扩展性,并为各种用户共享。

SQL:结构化查询语言

数据库查询:用户查询数据时,通过SQL语言发出请求,数据库系统根据请求进行处理并检索所需求的数据,再返回给用户。

5.6 内容中心网络及安全

5.6.1 内容中心网络架构

内容中心网络架构的主要构成可以分为以下几类:内容信息对象、命名、路由、缓存和应用程序编程接口。
内容信息对象
命名
路由
缓存
应用程序编程接口

5.6.2 面向内容中心网络的攻击分类

内容中心网络将安全模型从保护转发路径更改为保护内容使其可以为所有网络节点使用,因此内容中心网络攻击可以分为命名、路由、缓存和其他攻击。
命名相关攻击
路由相关攻击
缓存相关攻击
其他攻击

posted on 2021-12-26 22:50  20212306张阳  阅读(60)  评论(0编辑  收藏  举报