第五章 应用安全
5.1 应用安全概述
为了克服由于传统用户/服务器模型的这些缺陷给系统应用带来的影响,一种新的结构出现了,这就是三层客户/服务器结构。
三层客户/服务器结构构建了一种分隔式的应用程序,由三个层次共同组成应用系统。在这种结构中,用户使用标准的浏览器(如微软的IE)通过Internet和HTTP协议访问服务方提供的Web应用服务器,Web应用服务器分析用户浏览器提出的要求,如果是页面要求,则直接用HTTP协议向用户返回要浏览的页面。如果有数据库查询操作的请求,则将这个需求传递给服务器和数据库的中间件,由中间件向数据库系统提出操作请求,得到结果后再返回给Web应用服务器,Web应用服务器把数据库操作的结果形成HTML页面,再返回给浏览器。
5.2 常见的Web应用安全漏洞
5.2.1 SQL注入漏洞
SQL注入漏洞是Web层最高危的漏洞之一。
针对SQL注入漏洞,可以采用以下函数实现:
1.参数类型检测
- int intval(mixed $var[,int$base = 10]
- bool is_numeric(mixed $var)
- ctype_digit
2.参数长度检测
3.危险参数过滤
- 黑名单过滤
- 白名单过滤
- GPC过滤
4.参数化查询
5.2.2 文件上传漏洞
1.文件上传漏洞的原理
造成恶意文件上传的原因主要有三种:
- 文件上传时检查不严
- 文件上传后修改文件名时处理不当
- 使用第三方插件时引入
2.文件上传攻击实例分析
步骤1:上传正常图片和WebShell
步骤2:修改文件扩展名绕过上传检测
步骤3:获得WebShell权限
3.文件上传漏洞常见的的防护手段
- 系统开发阶段的防御
- 系统运行阶段的防御
- 安全设备的防御
5.2.3 XSS
1.XSS的定义
跨站脚本攻击是指攻击者利用网站程序对用户输入过滤的不足,输入可以先是在页面上对其它用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
2.XSS漏洞攻击实例
3.XSS的分类
- 反射性XSS
- 存储型XSS
- 基于DOM的XSS
4.XSS漏洞常见的防护手段
- 过滤特殊字符
- 使用实体化编码
5.2.4 CSRF
CSRF是指跨站请求伪造。可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义进行某些非法操作,也就是说,CSRF能够使用用户的账户发送邮件、获取敏感信息,甚至盗走财产。
1.CSRF的原理
受害者必须完成两个步骤:
- 登录受信任网站A,并在本地生成Cookie
- 在不登出A的情况下,访问危险网站B
2.CSRF的三种不同危害方式
- 论坛等可交互的地方
- Web攻击者
- 网络攻击者
3.CSRF漏洞的常见防护手段
- 添加验证码
- 验证referer
- 利用token
5.2.5 远程代码执行漏洞
1.远程代码执行漏洞的原理
2.远程代码执行漏洞的防范
- 禁用高危系统函数
- 严格过滤关键字符
- 严格限制允许的参数类型
5.3 恶意代码
5.3.1 恶意代码的含义
恶意代码又称恶意软件,是能够在计算机系统中进行非授权操作的代码。
5.3.2 恶意代码的特点
- 恶意代码的编写大多是出于商业或探测他人资料的目的。
- 恶意代码通常是一段可执行的程序。
- 恶意代码的编写通常是攻击者通过危害他人而达到获取利益的目的。
5.3.3 恶意代码的分类
- 逻辑炸弹
- Rootkit
- 木马
- 病毒
- 蠕虫
- Zombie
- WebShell
其中蠕虫和Zombie是独立的恶意代码,病毒、蠕虫和Zombie是具有自我复制能力的代码。
5.3.4 恶意代码的危害
- 破坏数据
- 占用磁盘空间
- 抢占系统资源
- 影响计算机运行速度
5.3.5 恶意代码案例
5.3.6 典型恶意代码原理与防范分析
1.WebShell介绍
2.WebShell危害
攻击者可以用Web页面的方式,通过脚本木马后门控制web服务器,包括上传下载文件、查看数据库、执行任意程序命令等。
3.一句话WebShell案例
- 一句话木马服务端
- 一句话木马客户端
4.防范方法
- 服务器安全设置
- 应用安全防护
- 控制文件上传
5.4 中间件安全
5.4.1中间件概述
企业使用中间件具有如下优势:
- 具体来说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了工作上的负担。
- 中间件带给应用系统的不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了技术上的负担。
- 其次,中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发应用软件集成起来。
5.4.2 中间件的分类
1.应用服务类中间件
2.应用集成类中间件
3.业务架构类中间件
5.4.3 典型中间件安全案例
该漏洞产生原因由以下几种:
- 在Java编写的Web应用与Web服务器期间,Java通常会发送大量的序列化对象。
- HTTP请求中的参数、cookies以及Parameters。
- RMI协议,被广泛使用的RMI协议完全基于序列化。
- JMX用于处理序列化对象。
- 自定义协议,用来接收与发送原始的Java对象。
- 在序列化过程中使用ObjectOutputStream类的writeObject()方法,在接受数据后一般又会采用ObjectInputStream类的readObject()方法进行反序列化读取数据。
5.5 数据库安全
5.5.1 数据库概述
5.5.2 数据库标准语言SQL
5.5.3 典型数据库安全案例
对于数据库的防护方法如下:
- 首先,需要加强像SA张扬的账户的密码。
- 对扩展存储过程进行处理。
- 执行use master sp_dropextendedproc 'xp_cmdshell'去掉Guest账号,阻止非授权用户访问。
- 加强对数据库登录的日志记录。
- 用管理员身份定期检查所有账号。
第八章 舆情分析
8.1 舆情的概念
8.1.1 舆情与网络舆情
8.1.2 舆情分析的目的和意义
1.有些舆情可能影响政府的形象,进行舆情监测和分析,能够及时了解到事件以及舆论动态,对错误、失实的舆论进行正确的引导。
2.政府通过舆情监测和分析,能够掌握社会民意,通过了解社会各阶层成员的情况、态度、看法、意见以及行为倾向,有助于对事件做出正确的判定。
3.对企业来说,有效的舆情监测和分析,及时的处理企业在网络上的相关影响,特别是负面影响显得尤为重要。
8.1.3 网络舆情的特点
- 表达的直接性
- 舆情信息在数量上具有海量性
- 舆情信息在内容上具有随意性和交互性
- 传播的迅速性
- 产生的突发性
- 舆情信息在时间上具有实时性和继承性
- 情绪的非理性
- 舆情信息在发展上具有偏差性
- 根据对一系列网络事件的分析,我们发现,人们在面对一个受关注事件的时候,会经过几个阶段:
- 关注前期
- 发展期
- 爆炸期
- 冷静期
- 冷却期
8.2 网络舆情的分析方法
8.2.1 检索方法
舆情分析中的检索方法具有以下特点:
- 实际操作中自主研发的检索工具使用频率不高,普通商业搜索引擎的使用率较高。
- 机器检索需要事先设定一个目录。
- 机器检索负责数据的粗检索,人工检索负责数据的精细检索。
- 检索的起点是关键词或者排行榜,检索的内容是信息学的属性,包括转发器、点击量、评论量、传播关键点。
8.2.2 研判方法
1.定量研判包括:
- 舆情按区域统计分析
- 舆情按时间统计分析
- 舆情按年龄统计分析
- 舆情按性别统计分析
- 舆情按行业统计分析
- 舆情按性质统计分析
- 舆情按密度统计分析
2.定性研判分析包括:
- 舆情可信度统计研判分析
- 舆情价值统计研判分析
- 舆情等级统计研判分析
- 舆情历史关联统计研判分析
- 舆情趋势预测统计研判分析
- 舆情转预警预测统计研判分析
8.2.3 典型的舆情分析方法
1.双层分析法
- 传播层分析
- 动因层分析
2.语义统计分析方法
3.情感倾向分析方法
4.基于Web的文本挖掘技术的分析方法
8.3 舆情分析应用:网络舆情分析系统
8.3.1 基本架构
1.网络舆情分析系统通常具有以下功能:
- 热点话题、敏感话题识别
- 倾向性分析
- 主题跟踪
- 趋势分析
- 突发事件分析
- 报警系统
- 统计报告
2.舆情系统的构成:
- 数据采集模块
- 数据预处理模块
- 数据聚类模块
- 舆情分析子系统
- 系统管理人员根据需要为各种组及用户分配各种的使用权限,一个组里的用户具有相同的权限,便于同组人员管理
- 管理主要实现对系统操作的记录
8.3.2 信息采集
8.3.3 网络资源分析
8.3.4 网页预处理
8.3.5 信息挖掘
Web信息挖掘主要由四个步骤构成,描述如下:
- 定位Web信息源
- 数据的选择与预处理
- 有效模式的挖掘
- 模式的验证分析
8.3.6 归档管理
8.3.7 舆情统计
8.4 舆情分析应用:网络舆情监测系统
网络舆情监控要做到:
- 依托公开管理的职能,切实掌握网络状况,积极建立健全系统的信息数据库。
- 对于网上的热点新闻、事件以及人物,在实现网络监控的同时,视情况可进行网下的深入调研。
- 充分利用计算机技术与网络技术,对网络舆情监控系统的信息进行深层挖掘,切实掌握维稳工作所涉及的各类网络的舆情信息,注重与情的有效引导。
8.4.1 网络舆情检测系统的产生
8.4.2 网络舆情监测系统的构成
- 信息采集模块负责从互联网网站上采集网页信息,为网络舆情检测系统提供原始数据,是整个系统最基础的部分。
- 正文提取模块的主要功能是从采集到的网页中提取正文信息。
- 文本聚类模块对采集到的文本进行聚类,将文本细分为不同的类别,并统计各个类别中的文本数据,为进一步分析做好准备。
- 文本分类模块对聚类后的各个类别中的文本进行分类,统计各类文本数据的支持和反对情况,为进一步的情感分析和决策提供数据支持。
- 情感分析模块主要实现对同一类别中的文本进行情感区分,分析同一类别的网站上发表言论的网民对相应事件的态度。
8.4.3 网络舆情监测系统的作用:
- 及时、全面的收集舆情
- 分析舆情
- 监测结果将成为重要的决策依据