2019-2020-1学期 20192428 《网络空间安全专业导论》第十一周学习总结
第5章 应用安全
Web应用安全,数据库安全,中间件安全和恶意代码
Web应用安全:SQL注入,文件上传,XSS,CSRF和远程代码执行
恶意代码:病毒,木马和其他恶意代码进行分类,分别阐述上述恶意代码的危害,原理及发展。
5.1 应用安全概述
早期的应用系统采用的客户/服务器模式是一种双层的结构
缺点:一旦客户的业务逻辑改变,将引起应用程序的修改以及后台数据库组件的修改,耗费大量资源
三层客户/服务器结构构建了一种分隔式的应用程序,由三个层次共同组成应用系统。
攻击者会利用Web应用系统,中间件或者数据库的漏洞进行攻击,得到Web应用服务器或者数据库服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据。
5.2 常见的Web应用安全漏洞
Web应用安全漏洞类型的原理,攻击过程和防范方法等基本常识。
5.2.1 SQL注入漏洞
SQL注入漏洞的形成原因:用户输入的数据被SQL解释器执行。
参数类型检测
int intval
bool is numeric
ctype digit
参数长度控制
成功执行的SQL注入语句的字符数量通常非常多,严格控制这些提交点的字符长度
危险参数过滤
常见的危险参数过滤包括关键字,内置函数,敏感字符的过滤,其过滤方法主要有如下三种:
黑名单过滤
白名单过滤
GPC过滤
参数化查询
参数化查询是指数据库服务器在数据库完成SQL指令的编译后,才套用参数运行,因此就算参数中含有有损的指令,也不会被数据库运行,仅认为它是一个参数。
5.2.2 文件上传漏洞
文件上传漏洞的原理
一些文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致攻击者可上传任意PHP文件,并能够将这些文件传递给PHP解释器,从而可以在远程服务器上执行任意PHP脚本。
此脚本可以是后缀为PHP,ASP,JSP脚本,也可以是篡改后缀后的这几类脚本。
造成恶意文件上传的原因:
1)文件上传时检查不严
2)文件上传后修改文件名时处理不当
3)使用第三方插件时引入
文件上传攻击实例分析
上传正常图片和WebShell
修改文件扩展名绕过上传检测
获取WebShell权限
文件上传漏洞常见的防护手段
1)系统开发阶段的防御
2)系统运行阶段的防御
3)安全设备的防御
5.2.3 XSS
XSS的定义
跨站脚本攻击(XSS):攻击者利用网站程序对用户输入过滤的不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料,利用用户身份进行某种动作或者对访问者进行病毒侵害的一 种攻击方式
XSS属于客户端攻击,受害者是用户。
XSS漏洞攻击实例
XSS的分类
1)反射型XSS
黑客通过诱骗或加密变形,将存在恶意代码的链接发给用户,只有用户点击以后才能使得攻击成功实施
2)存储型XSS
黑客将包含恶意代码的数据信息直接写入文章或文章评论中,所有浏览文章或评论的用户都会在他们客户端浏览器环境中执行插入的恶意代码。
3)基于DOM的XSS
需要针对具体的JavaScript DOM代码进行分析,并根据实际情况进行XSS的利用。
XSS漏洞常见的防护手段
XSS的原理:注入一段能够被浏览器解释执行的代码,并且通过各类手段使得这段代码“镶嵌”在正常网页中,有用户在正常访问中触发。
1)过滤特殊文字
2)使用实体化编码
5.2.4 CSRF
跨站请求伪造(CSRF):攻击者盗用你的身份,以你的名义进行某些非法操作。
CSRF的原理
1)登录受信任网站A,并在本地生成Cookie
2)在不登出A的情况下,访问危险网站B
关闭浏览器不能结束一个会话
CSRF的三种不同危害方式
1)论坛等可交互的地方
2)Web攻击者
3)网络攻击者
CSRF漏洞的常见防护手段
1)添加验证码
2)验证referer
推荐使用referer来监控CSRF行为
3)利用token
5.2.5 远程代码执行漏洞
远程代码执行漏洞的原理
远程代码执行漏洞的防范
1)禁用高危系统函数
2)严格过滤关键字符
3)严格限制允许的参数类型
5.3 恶意代码
5.3.1 恶意代码的定义
恶意代码:又称为恶意软件,是指额能够在计算机系统中进行非授权操作的代码。
5.3.2 恶意代码的特征
恶意代码通常是一段可以执行的程序,能够在很隐蔽的情况下嵌入另一个程序,通过允许别的程序而自动运行,从而达到破坏被感染将计算机的数据,程序以及对被感染计算机进行信息窃取的目的。
5.3.3 恶意代码的分类
逻辑炸弹
Rookit
木马
病毒(具有自我复制能力)
蠕虫(独立,自我复制)
Zombie(独立,自我复制)
WebShell
5.3.4 恶意代码的危害
1)破坏数据
2)占用磁盘存储空间
3)抢占系统资源
4)影响计算机运行速度
5.3.5 恶意代码案例
5.3.6 典型恶意代码原理与防范分析
WebShell介绍
WebShell危害
一句话WebShell案例
一句话木马服务端
一句话木马客户端
防范安全
1)服务器安全设置
加强对脚本文件的代码审计
Web服务器通过正则表达式,限制用户输入信息长度等方法对用户提交信息的合法性进行必要的验证,过滤
使用数据库系统自身的安全性设置访问数据库权限
2)应用安全防护
Web软件开发的安全
FTP文件上载安全
文件系统的存储权限
不要使用超级用户运行Web服务
3)控制文件上传
加强对脚本文件的代码审计
设置虚拟目录,并合理设置这些文件夹的访问权限
5.4 中间件安全
5.4.1 中间件概述
中间件:独立的系统软件或服务程序,分布式应用程序借助这种软件在不同的技术之间共享资源
1)屏蔽了底层操作系统的复杂性,简单,统一的开发环境
2)减少了系统的维护,运行和管理的工作量
3)将不同时期,在不同操作系统上开发应用软件集成起来
5.4.2 中间件的分类
中间件包括:交易中间件,消息中间件,集成中间件等
三大类:应用服务类,应用集成类,业务架构类
应用服务类
为应用系统提供一个综合的计算环境和支撑平台,包括对象请求代理中间件,事务监控交易中间件,Java应用服务器中间件等
对象管理结构,对象请求代理是这个模型的核心组件,它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。
交易中间件,适用于联机交易处理系统,主要功能是管理分布于不同计算机上的数据一致性,保障系统处理能力的效率与均衡负载。
应用集成类中间件
应用集成类中间件是提供各种不同网络应用系统之间的消息通信,服务集成和数据集成的功能。
消息中间件:利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
企业应用整合是指企业内部不同应用系统之间的互连,以便通过应用整合实现数据在多个系统之间的同步和共享。
业务架构类中间件
业务架构类中间件包括业务流程,业务管理和业务交互等几个业务领域的中间件。
业务流程是处理业务模型的重要方法。
业务管理是对业务对象的建模和业务规则的定义,运行和监控的中间件平台。
业务交互的中间件平台提供组织的合作伙伴,员工和客户通过Web与移动设备等交互工具,实现个性化的用户体验。
5.4.3 典型中间件安全案例
漏洞产生原因
在Java编写的Web应用于Web服务器间,Java通常会发送大量的序列化对象
HTTP请求中的参数,cookies以及Parameters
RMI协议,被广泛使用的RMI协议完全基于序列化
JMX用于处理序列化对象
自定义协议,用来接收与发送原始的Java对象
在序列化中使用的方法,在接收数据时采用同样的方法进行反序列化读取数据。
5.5 数据库安全
5.5.1 数据库概述
数据库中的数据按照一定数据模型进行组织,描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享
5.5.2 数据库标准语言SQL
SQL:结构化查询语言,用于对存放在计算机数据库中的数据进行组织,管理和检索的一种工具。
SQL语言的主要功能:同各种数据库建立联系,进行沟通。
5.5.3 经典数据库安全案例
数据库的防护方法
1)加强拥有最高权限的账号的密码,尽量使用能满足要求的一般账号
2)对扩展存储过程进行处理,删除一般用不到的存储过程
3)阻止非授权用户访问
4)加强对数据库登录的日志记录,最好记录所有登录事件
5)用管理员账号定期检查所有账号,看密码是否为空或者过于简单,如发现此类情况应及时弥补。
第八章 舆情分析
8.1 舆情的概念
8.1.1 舆情与网络舆情
很多舆情的研究都以舆论为起点
舆情包括网络舆情与社会舆情两部分
网络舆情是指在网络空间内,民众围绕舆情因变事项的发生,发展和变化,通过互联网表达出来的对公共政策及其制定者的意见。
8.1.2 舆情分析的目的和意义
舆情是在一定的社会空间,围绕特定社会热点事件产生,发展和变化,社会上大多数的民众对事件处理对策,过程和结果产生的态度,是绝大多数公众对社会现象和社会问题所表现出来的态度,情绪和意见的集合。
1)有些网络舆情可能影响政府形象,进行舆情监测和分析,能够及时地了解事件及舆论动态,对错误,失实的舆论进行正确的引导。
2)政府通过舆情监测与分析,能够掌握社会民意,通过了解社会各阶层成员的情绪,态度,看法,意见以及行为倾向,有助于对事件做出正确的判定。
3)对企业,有效地监测和分析舆情,及时地处理企业在网络上的相关影响,特别是负面影响显得尤为重要。
8.1.3 网络舆情的特点
网络舆情表达快捷,信息多元,方式互动,具备传统媒体无法比拟的优势:
1)表达的直接性
2)舆情信息在数量上具有海量性
3)舆情信息在内容上具有随意性和交互性
4)传播的迅速性
5)产生的突发性
6)舆情信息在时间上具有实时性和继承性
7)情绪的非理性
8)舆情信息在发展上具有偏差性
9)关注阶段(关注前期、发展期、爆炸期、冷静期、冷却期)
8.2 网络舆情的分析方法
网络舆情的分析方法包括检索方法与分析方法两个部分
数据检索是网络舆情分析的准备阶段,研判是分析的核心技术环节
8.2.1 检索方法
现有的网络舆情检索方法主要包括机器检索与人工检索两类
机器检索:借助信息检索工具在网络上抓取与给定关键词相关的信息,借助累加器,网址指向判断等简单的程序给出信息的来源和信息的浏览量,并可以按照用户要求进行排序和筛选。
搜索引擎包括索引处理和查询处理两个部分。
搜索引擎的核心是索引,即目录。
人工检索并不是指完全依靠人工实现信息管理,而是借助开放性工具完成网络舆情分析工作。
网络舆情分析要素包括话题的热度,热点的新闻和微博,事件发展的时间轴和重要节点,文本倾向分析和媒体观点摘录。
检索方法的特点
1)实际操作中自主研发的检索工具使用频率不高,普通商业搜索引擎的使用率较高
2)机器检索需要事先设定一个目录
3)机器检索负责数据的粗检索,人工检索负责数据的精细检索
4)检索的起点是关键词或者排行榜,检索的内容是信息的属性,包括转发量,点击量,评论量,传播关键点
8.2.2 研判方法
网络舆情的研判主要关注舆情发生的动因,核心诉求,传播路径和传播影响力,并判断舆情的传播走势和影响。
分析思路
理论支持
网络舆情信息作为社会信息的重要来源,它的分析研判主要包括定量研判分析和定性研判分析两种
定量研判分析功能实现对特定种类的舆情在区域。时间,年龄,性别,行业以及密度分布上的统计分析。
定性研判分析功能指出该类舆情的真伪,可信度,价值观,以及给出情报产品的严重等级和紧急程度等级。
定量研判分析包括:
1)舆情按区域统计分析
2)舆情按时间统计分析
3)舆情按年龄统计分析
4)舆情按性别统计分析
5)舆情按行业统计分析
6)舆情按性质统计分析
- 舆情按密度统计分析
定性研判分析
1)舆情可信度统计研判分析
2)舆情价值统计研判分析
3)舆情等级统计研判分析
4)舆情历史关联统计研判分析
5)舆情趋势预测统计研判分析
6)舆情转预警预测统计研判分析
8.2.3 典型的舆情分析方法
双层分析法
双层分析法包含传播层分析和动因层分析
1)传播层分析
传播渠道的变异分析
信息互动存在两种模式,一是从微博讨论到网络新闻门户传播,再到传统媒体跟进;二是从传统媒体报道到网络新闻门户转载,再到微博讨论。
2)动因层分析
治本还需了解病因,才能真正改善社会公共治理和企业的形象,所以有必要进行动因层分析
语义统计分析方法
语义文法的优点是能够直接从解析结果中获取句子的语义信息。
基于语义文法的网络舆情精准分析方法可操作性强,系统执行效率高,满足对不同结构,不同处理粒度的网络舆情文本的处理需求,具有通用性。
情感倾向分析方法
与传统的文本分类不同,文本的情感倾向性分析关注的不是文本本身的内容,而是能否自动分析出文本内容所表达的情感和态度。
根据文本的内容判断出作者的情感倾向,挖掘文本内容蕴含的各种观点,喜好等非内容信息。
基于Web的文本挖掘技术的分析方法
基于Web的文本挖掘的技术主要包括关联规则挖掘,序列模式挖掘,聚类分析和自动分类技术。
关联规则挖掘可挖掘出隐藏在数据之间的相互关系,即给定一组属性和一个记录集合,通过分析记录集合,推导出属性间的相关性。
序列模式挖掘侧重点在于分析数据间的前后序列关系,对网络舆情在其产生,发展,消亡的过程中表现出的特征进行序列模式分析,发现特征集之间的隐含的顺序关系,从而预测热点事件将来的发展趋势。
聚类分析在文本挖掘中已经应用得相当广泛,它以某种相似性度量为标准,将未标注类别的文本分成不同的类别。
自动分类技术是文本挖掘的关键技术,是将一个对象划分到事先定义好的类中,分类的准则是预先设定好的。通过关联分析和序列分析追踪舆情源头,有效地辅助发现并预警不良信息,及时制止舆情的进一步突变,起到辅助决策支持的作用。
8.3 舆情分析应用:网络舆情分析系统
由于网络上的信息量巨大,仅依靠人工的方法难以应对网上海量信息的收集和处理,需要加强相关信息技术的研究,形成一套自动化的网络舆情分析系统。
8.3.1 基本架构
1)热点话题,敏感话题识别
2)倾向性分析
3)主题跟踪
4)趋势分析
5)突发事件分析
6)报警系统
7)统计报告