2019-2020-1学期 20192404 《网络空间安全专业导论》第十一周学习总结
第5章?应用安全
5.1?应用安全概述
早期应用系统结构:客户/服务器模式
这个模式具有一定的缺陷,对应用系统、资源等有一定影响。
目前的应用系统结构:三层客户/服务器结构
浏览器<—>Internet<—>Web应用服务器<—>中间件<—>数据库
黑客攻击Web应用服务器、中间件、数据库,;利用漏洞、在网页中植入恶意代码。
?常见的Web应用安全漏洞
5.2.1?SQL注入漏洞
SQL注入漏洞是Web层面最高危的漏洞之一。
SQL注入漏洞的形成原因就是:用户输入的数据被SQL解释器执行。
针对SQL注入漏洞,可以采用如下几种防护手段:
1.参数类型检测
参数类型检测主要面向+纯字符型的参数查询,可以用以下函数实现:
- int intval(mixed $var[,int $base=10]):通过使用指定的进制base转换(默认是十进制),返回变量var的integer数值。
- bool is_numeric(mixed $var):检测变量是否为数字或数字字符串,但此函数允许输入为负数和小数。
- ctype_digit:检测字符串中的字符是否都是数字,负数和小数检测不通过。
在特定情况下使用这三个函数,可限制用户的输入为数字型。在一些仅允许用户参数为数字的情况下非常适用。
2.参数长度检测
如果某处提交的内容都在一定的长度以内,那么严格控制这些提交点的字符长度,大部分的注入语句就没办法取得成功。
3.危险参数过滤
常见的危险参数过滤包括关键字、内置函数、敏感字符的过滤,其过滤方法主要有如下三种:
1)黑名单过滤:将一些可能用于注入的敏感字符写入黑名单中,如‘(单引号)、union、select等,也可使用正则表达式进行过滤,但黑名单可能会有疏漏。
2)白名单过滤:指接收已记录在案的良好输入操作,比如用数据库中的已知值校对。
3)GPC过滤:对变量默认进行addslashes(在预定义字符前添加反斜杠)。
4.参数化查询
参数化查询是指数据库服务器在数据库完成SQL指令的编译后,才套用参数运行,因此就算参数中含有有损的指令,也不会被数据库运行,仅认为它是一个参数。
参数化查询一般作为最后一道安全防线。
5.2.2?文件上传漏洞
1.文件上传漏洞的原理
一些文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过Web访问的目录上传任意PHP文件,并能够将这些文件传递给PHP解释器,从而可以在远程服务器上执行任意PHP脚本。
造成恶意文件上传的原因主要有三种:
1)文件上传时检查不严。
2)文件上传后修改文件名时处理不当。
3)使用第三方插件时引入。
2.文件上传攻击实例分析
3.文件上传漏洞常见防护手段
- 系统开发阶段的防御
- 系统运行阶段的防御
- 安全设备的防御
5.2.3?XSS
1.XSS的定义
跨站脚本攻击(Cross Site Scripting ,XSS)是指攻击者利用网络程序对用户输入过滤的不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
XSS是常见的Web应用程序安全漏洞之一。XSS属于客户端攻击,受害者是用户。(包括网站和服务器的管理人员)。
2.XSS漏洞攻击实例
3.XSS的分类
根据XSS存在的形式及产生的效果,可以将其分为一下三类:
(1)反射型XSS
反射型XSS将用户输入的数据直接或未经过完善的安全过滤就在浏览器中进行输出,导致输出的数据中存在可被浏览器执行的代码数据。
(2)存储型XSS
存储型XSS是指Web应用程序会将用户输入的数据信息保存在服务器端的数据库或其他文件形式中。网页进行数据查询展示时,会从数据库中获取数据内容,并将数据内容在网页中进行输出展示,因此存储型XSS具有较强的稳定性。
(3)基于DOM的XSS
基于DOM的XSS是通过修改页面DOM节点数据信息而形成的XSS。不同于反射型XSS和存储型XSS,基于DOM的XSS往往需要针对具体的JavaScript DOM代码进行分析,并根据实际情况进行XSS的利用。
4.XSS漏洞常见的防护手段
(1)过滤特殊字符
过滤特殊字符的方法又称作XSS Filter,其作用就是过滤客户端提交的有害信息,从而防范XSS攻击。
(2)使用实体化编码
在测试和使用的跨站代码中几乎都会用到一些常见的特殊符号。
5.2.4?CSRF
CSRF是指跨站请求伪造,也常常被称为“One Click Attack”或者“Session Riding”,通常缩写为CSRF或者XSRF。理解:攻击者盗用了你的身份,以你的名义进行某些非法操作。
1.CSRF的原理
要完成一次CSRF攻击,受害者必须依次完成两个步骤:
1)登录受信任网站A,并在本地生成Cookie。
2)在不登出A的情况下,访问危险网站B。
2.CSRF的三种不同危害方式
1)论坛等可交互的地方
2)Web攻击者
3)网络攻击者
3.CSRF漏洞的常见防护手段
(1)添加验证码
(2)验证referer
(3)利用token
5.2.5?远程代码执行漏洞
1.远程代码执行漏洞的原理
preg_replace函数,该函数的作用是执行一个正则表达式的搜索和替换。
使用preg_replace函数的好处在于此函数由于在业务系统中广泛使用,因此无法直接在PHP中进行禁用,在适用范围上比Eval、Assert好很多。
2.远程代码执行漏洞的防范
1)禁用高危系统函数
2)严格过滤关键字符
3)严格限制允许的参数类型
5.3?恶意代码
5.3.1?恶意代码的定义
恶意代码又称恶意软件,是能够在计算机系统中进行非授权操作的代码。
Version:1.0 StartHTML:000000209 EndHTML:000018617 StartFragment:000002669 EndFragment:000018531 StartSelection:000002669 EndSelection:000018521 SourceURL:https://www.cnblogs.com/lj2406/p/12051825.html 2019-2020-1学期 20192406《网络空间安全专业导论》第十一周学习总结 - 20192406lj - 博客园
5.3.2?恶意代码的特点
三个特点:
具有恶意破坏的目的、其本身为程序、通过可执行发生作用
5.3.3?恶意代码的分类
分类恶意代码的标准主要是代码的独立性和自我复制性。
5.3.4?恶意代码的危害
- 破坏数据
- 占用磁盘存储空间
- 抢占系统资源
- 影响计算机运行速度
5.3.5?恶意代码的案例
典型恶意代码原理与防范分析
1.WebShell介绍
WebShell文件通常是可执行的脚本文件,与操作系统中的木马类似,可以理解为是一种Web脚本形式编写的木马后门,一般用于远程控制Web服务器。WebShell往往以ASP、PHP、ASPX、JSP等网页文件的形式存在。
2.WebShell危害
攻击者在入侵一个Web应用服务器后,常常将这些脚本木马后门文件放置在服务器的Web目录中,然后攻击者就可以用Web页面的方式,通过脚本木马后门控制Web服务器,包括上传下载文件、查看数据库、执行任意程序命令等。
3.一句话WebShell案例
“一句话”就是通过向服务端提交一句简短的代码来达到向服务器插入Web脚本形式的木马并最终获得WebShell的方法。
4.防范方法
1. 服务器安全设置
(1)加强对脚本文件的代码审计
(2)Web服务器通过正则表达式、限制用户输入信息长度等方法对用户提交信息的合法性进行必要的验证、过滤;使用参数化的SQL查询来代替动态拼接的SQL注入语句,完善操作日志记录和日志记录。
(3)数据库是Web应用系统的重要组成部分,使用数据库系统自身的安全性设置访问数据库权限。
2.应用安全防护
(1)Web软件开发的安全
(2)FTP文件上载安全
(3)文件系统的存储权限
(4)不要使用超级用户运行Web服务
3.控制文件上传
(1)加强对脚本文件的代码审计
(2)将应用系统的重要文件放在不同的文件夹中,通过设置虚拟目录访问这些文件夹,尤其是上传文件,并合理设置这些文件夹的访问权限
5.4?中间件安全
5.4.1?中间件概述
中间件是一种独立的系统软件或服务程序,分布式应用程序借助这种软件在不同的技术之间共享资源。中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。
企业使用中间件具有一些优势
开发的简便、开发周期的缩短
减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入
将不同时期、在不同操作系统上开发应用软件集成起来,彼此之间像一个天衣无缝的整体协调工作。
5.4.2?中间件的分类
- 应用服务类中间件
这类中间件为应用系统提供一个综合的计算环境和支撑平台,包括对象请求代理(ORB)中间件、事务监控交易中间价、Java应用服务器中间件等。 - 应用集成类中间件
应用集成类中间件是提供各种不同网络应用系统之间的消息通信、服务集成和数据集成的功能,包括常见的消息中间件、企业集成EAI、企业服务总线以及相配套的适配器等。 - 业务架构类中间件
它包括业务流程、业务管理和业务交互等几个业务领域的中间件。
5.4.3?典型中间件安全案例
5.5?数据库安全
5.5.1?数据库概述
数据库是存储数据的“仓库”,是长期存放在计算机内、有组织、可共享的大量数据的集合。
数据库技术是计算机处理与存储数据的有效技术,其典型代表就是关系型数据库。
目前应用到Web系统当中的关系型数据库主要有SQL Server、MySQL、Oracle等。
5.5.2?数据库标准语言SQL
SQL是英文(Structured Query Language)的缩写,意思为结构化查询语言,是用于对存放在计算机数据库中的数据进行组织、管理和检索的一种工具。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。SQL被作为关系型数据库管理系统的标准语言,它是操作关系数据库的重要工具,是关系数据库的核心语言。
5.5.3?典型数据库安全案例
xp_cmdshell就是以操作系统命令行解释器的方式执行给定的命令字符串。
对于数据库的防护方法
需要加强像SA这样的账号的密码
对扩展存储过程进行处理
执行use master sp_dropextendedproc ‘xp_cmdshell‘去掉Guest账号,阻止非授权用户访问
加强对数据库登录的日志记录,最好记录所有登录事件
用管理员账号定期检查所有账号,看密码是否为空或者过于简单,如发现这类情况应及时弥补
第8章?舆情分析
8.1?舆情的概念
8.1.1?舆情与网络舆情
舆论作为一种重要的社会精神现象,很早就受到了政治家和哲学家的关注。
舆论是舆情的近亲,很多舆情的研究都以舆论为起点。舆情从字面上可理解为舆论的总体情况。
网络舆情是指在网络空间内。民众围绕舆情因变事项的发生、发展和变化,通过互联网表达出来的对公共政策及其制定者的意见。
8.1.2?舆情分析的目的和意义
舆情分析对政府和企业管理均具有重要的意义。
- 有些网络舆情可能影响政府形象,进行舆情监测和分析,能够及时地了解事件及舆论动态,对错误、失实的舆论进行正确的引导。
- 政府通过舆情监测和分析,能够掌握社会民意,通过了解社会各阶层成员的情绪、态度、看法、意见以及行为倾向,有助于对事件做出正确的判定。
- 对企业来说,有效地监测和分析舆情,及时地处理企业在网络上的相关影响,特别是负面影响显得尤为重要。
8.1.3?网络舆情的特点
- 表达的直接性
- 舆情信息在数量上具有海量性
- 舆情信息在内容上具有随意性和交互性
- 传播的迅速性
- 产生的突发性
- 舆情信息在时间上具有实时性和继承性
- 情绪的非理性
- 舆情信息在发展上具有偏差性
- 人们在面对一个受关注事件的时候,会经历几个阶段:
- 关注前期
- 发展期
- 爆炸期
- 冷静期
- 冷却期
8.2?网络舆情的分析方法
网络舆情分析方法包括检索方法与分析方法两个部分。数据检索是网络舆情分析的准备阶段,研判是分析的核心技术环节。
8.2.1检索方法
检索方法:机器检索和人工检索。
机器检索是借助信息检索工具(如搜索引擎)在网络上抓取与给定关键词相关的信息,借助累加器、网址指向判断等简单的程序给出信息的来源和信息的浏览量,并可以按照用户要求进行排序和筛选(例如,按时间顺序排列和按来源筛选)。
人工检索并不是指完全依靠人工实现信息管理,而是借助开放性工具(如商业搜索引擎)完成网络舆情分析工作。这里的“人工”主要是相对于单一机器检索而言,指以人工操作模拟搜索引擎的工作原理与方式。
舆情分析中的检索方法有以下特点:
- 实际操作中自主研发的检索工具使用频率不高,普通商业搜索引擎的使用率较高。
- 机器检索需要事先设定一个目录。
- 机器检索负责数据的粗检索,人工检索负责数据的精细检索。
- 检索的起点是关键词或者排行榜,检索的内容是信息的属性,包括转发量、点击量、评论量、传播关键点。
8.2.2?研判方法
网络舆情的研判主要关注舆情发生的动因、核心诉求、传播路径和传播影响力,并判断舆情的传播走势和影响。要完成这两项任务,一是需要分析思路,二是需要理论支持。
它的分析研判主要包括定量研判分析和定性研判分析两种。
定量研判分析包括:
- 舆情按区域统计分析
- 舆情按时间
- 舆情按年龄
- 舆情按性别
- 舆情按行业
- 舆情按性质
- 舆情按密度
定性研判分析包括:
- 舆情可信度统计研判分析
- 舆情价值:无价值、潜在价值、一般价值、重大价值、特大价值五个等级。
- 舆情等级:(严重程度),不严重、一般、严重、非常严重、特别严重;紧急程度等级,长期(可以以年为单位)、短期(月)、一般(周)、紧急(天)、立即。
- 舆情历史关联
- 舆情趋势预测
- 舆情转预警预测
8.2.3?典型的舆情分析方法
1.双层分析法
双层分析法包括传播层分析和动因层分析。
(1)传播层分析
传播者的身份特征对生产传播内容和调整传播策略具有重要的意义,因此需要进行传播者分析。
(2)动因层分析
治本还需解病因,才能真正改善社会公共治理和企业的形象,所以有必要进行动因层分析。
2.语义统计分析方法
基于语义分析的内容识别方法是舆情分析的重要方法之一。
3.情感倾向分析方法
倾向性分类主要有基于语义词典的方法和基于机器学习的无监督的方法。
4.基于Web的文本挖掘技术的分析方法
关联规则挖掘、序列模式挖掘、聚类分析和自动分类技术。
8.3?舆情分析应用:网络舆情分析系统
8.3.1?基本架构
网络舆情分析系统通常具有下列功能:
- 热点话题、敏感话题识别
- 倾向性分析
- 主题跟踪
- 趋势分析
- 突发事件分析
- 报警系统
- 统计报告
大数据环境下舆情系统一般由网络舆情数据采集、数据预处理、数据聚类和舆情分析和结果呈现等模块组成。
- 数据采集模块
- 数据预处理模块
- 数据聚类模块
- 舆情分析子系统
- 系统管理人员根据需要为各种组及用户分配各种的使用权限。
- 管理主要实现对系统操作的记录,管理人员可以查看所有用户的操作的记录以及其他相关操作。
8.3.2?信息采集
网络爬虫是相对成熟的一种自动采集网页信息的方式,适用于网络舆情监控和分析系统。
8.3.3?网络资源分析
对网络舆情数据进行分析并发现话题,是舆情分析的重要工作。
话题是一个核心事件或活动以及与之直接相关的事件或活动。
一般话题发现的研究方法可分为两类:一,寻找适合话题发现的聚类算法或者对已有的聚类算法进行改造;二,挖掘新的话题特征来提高检测的效果。
话题发现分为回顾式话题发现和在线新话题发现。
舆情分析的另一个任务是感知人们的观点、态度倾向等主观信息。
8.3.4?网页预处理
正则表达式是由某些字符和特殊符号构成的字符串表达式,它描述了某种语句的形式结构规则,非常适合用来提取页面信息。
信息过滤技术是根据用户的设定在抓取的网页内容中过滤掉不需要的部分,留下有用信息并将其保存到指定的位置。
信息挖掘
Web信息挖掘主要由四个步骤构成:
- 定位Web信息源
- 数据的选择与预处理
- 有效模式的挖掘
- 模式的验证分析
8.3.6?归档管理
在系统数据库中一般划分为5个数据表,分别为站点信息表、文档信息表、话题信息表、话题发现结果表和情感分析结果表。
8.3.7?舆情统计
网络计量学包括所有使用情报计量和其他计量方法对网络通信有关问题的研究。
8.4?舆情分析应用:网络舆情监测系统
网络舆情监测系统借助互联网技术调查社会民情,能降低人工调查的成本,提供更加及时、
全面的数据,分析舆情趋势。
网络舆情监控要做到:
1)依托公开管理的职能,切实掌握网络情况,积极建立健全系统的信息数据库。
2)对于网络上的热点新闻、事件以及人物,在实现网络监控的同时,视情况可进行网下的深入调研。
3)充分利用计算机技术与网络技术,对网络舆情监控系统的信息进行深层挖掘,切实掌握维稳工作所涉及的各类网络舆情信息,注重與情的有效引导。
8.4.1?网络舆情监测系统的产生
利用网络舆情监测系统,可以从海量的互联网资源中挖掘出舆情信息动态。
8.4.2?网络舆情监测系统的构成
网络舆情监测系统涉及的技术包括网络爬虫、数据挖掘、文本聚类与分类、语义抽取。网络舆情监测系统大致可划分为以下几个模块:信息采集模块、正文提取模块、文本聚类模块、文本分类模块和情感分析模块。
8.4.3?网络舆情监测系统的作用
- 及时、全面地收集舆情
- 分析舆情
- 监测结果将成为重要决策依据