目录
第1章 信息安全导论
信息安全技术概论
了解信息安全技术架构
信息安全的两个主要视点
国外:面向属性的信息安全框架(CIA)
国内:面向应用的信息安全框架---实体/物理安全,运行安全,数据/信息安全,管理/人员安全
物理安全:对网络与信息系统物理装备的保护。主要涉及网络与信息系统的机密性、可用性、完整性等属性
所涉及的主要技术:
- 加扰处理、电磁屏蔽---防范电磁泄露
- 容错、容灾、冗余备份、生存性技术---防范随机性故障
- 信息验证---防范信号插入
运行安全:对网络与信息系统的运行过程和运行状态的保护。主要涉及网络与信息系统的真实性、可控性、可用性等
主要涉及的技术:
- 风险评估体系、安全测评体系---支持系统评估
- 漏洞扫描、安全协议---支持对安全策略的评估与保障
- 防火墙、物理隔离系统、访问控制技术、防恶意代码技术---支持访问控制
- 入侵检测及预警系统、安全审计技术---支持入侵检测
- 反制系统、容侵技术、审计与追踪技术、取证技术、动态隔离技术---支持应急响应
- 网络攻击技术,Phishing、Botnet、DDoS、木马等技术
数据安全:对信息在数据收集、处理、存储、检索、传输、交换、显示、扩散等过程中的保护,使得在数据处理层面保障信息依据授权使用,不被非法冒充、窃取、篡改、抵赖,主要涉及信息的机密性、真实性、完整性、不可否认性等
主要涉及的技术:
- 对称与非对称密码技术及其硬化技术、VPN等技术---防范信息泄密
- 认证、鉴别、PKI等技术---防范信息伪造
- 完整性验证技术---防范信息篡改
- 数字签名技术---防范信息抵赖
- 密钥共享技术---防范信息破坏
内容安全:对信息在网络内流动中的选择性阻断,以保证信息流动的可控能力。主要涉及信息的机密性、真实性、可控性、可用性等
主要涉及的技术:
- 文本识别、图像识别、流媒体识别、群发邮件识别等---用于对信息的理解与分析
- 面向内容的过滤技术(CVP)、面向URL的过滤技术(UFP)、面向DNS的过滤技术等---用于对信息的过滤
内容安全着眼点是依据内容来对安全问题进行判断,但需要通过技术方式来解决,内容安全技术本质是对数据的攻击技术。国际社会经常将反网络病毒、反垃圾邮件问题列入内容安全的范畴
信息对抗:对信息有效内容真实性的隐藏、保护与分析。主要涉及信息有效内容的机密性、完整性等
所涉及的主要技术:
- 数据挖掘技术---发现信息
- 隐写技术、水印技术---保护信息
- 即时通、MSN等协议的分析技术---对特定协议的理解
- VoIP识别技术---对数字化语音信息的理解
- 音频识别与按内容匹配---锁定音频目标进行
信息隐藏是典型的信息内容对抗,主要目的为信息的隐藏与发现、信息的干绕与提取,利用信息获取、数据挖掘、情报分析发现信息,如果不能掩盖一个信息,那就淹没这个信息
信息安全的层次划分
三级信息安全框架
信息安全的基本要素
信息安全四要素:CACA(机密性 可用性 可控性 真实性)
信息安全的诱因与威胁
网络不安全的根本原因:冯.诺依曼结构---数字计算机的数制采用二进制、计算机应该按照程序顺序执行、软件=数据+程序
网络不安全的直接原因:自身缺陷(如协议本身会泄漏口令、连接可成为被盗用的目标、服务器本身需要读写特权、密码保密措施不强、业务内部可能隐藏着一些错误的信息、有些业务设置复杂很难完善地设立) + 开放性(业务基于公开的协议、远程访问使得各种攻击无需到现场就能得手、连接是基于主机上的社团彼此信任的原则) + 黑客攻击
常见攻击分类:
- 口令破解:攻击者可通过获取口令文件,然后运用口令破解工具获得口令,也可通过猜测或窃听等方式获取口令
- 连接盗用:在合法的通信连接建立后,攻击者可通过阻塞或摧毁通信的一方来接管已经过认证建立起来的连接,从而假冒被接管方与对方通信
- 服务拒绝:攻击者可直接发动攻击,也可通过控制其它主机发起攻击使目标瘫痪,如发送大量的数据洪流阻塞目标
- 网络窃听:网络的开放性使攻击者可通过直接或间接窃听获取所需信息
- 数据篡改:攻击者可通过截获并修改数据或重放数据等方式破坏数据的完整性
- 地址欺骗:攻击者可通过伪装成被信任的IP地址等方式来骗取目标的信任
- 社会工程:攻击者可通过各种社交渠道获得有关目标的结构、 使用情况、安全防范措施等有用信息,从而提高攻击成功率
- 恶意扫描:攻击者可编制或使用现有扫描工具发现目标的漏洞,进而发起攻击
- 基础设施破坏:攻击者可通过破坏DNS或路由信息等基础设施使目标陷于孤立
- 数据驱动攻击:攻击者可通过施放病毒、特洛伊木马、数据炸弹等方式破坏或遥控目标
网络安全的任务:保障各种网络资源稳定、可靠地运行,受控、合法地使用
信息安全的任务:机密性、完整性、抗否认性、可用性
内容安全的任务:依据内容对文化安全问题进行判断,通过技术问题解决文化安全问题
信息对抗的任务:内容隐藏、内容挖掘
第2章 网络信息主动获取与处理
搜索引擎体系结构
- 爬行和抓取:搜索引擎用来爬行和访问页面的程序称为蜘蛛,蜘蛛程序发出页面访问请求后,服务器返回HTML代码,蜘蛛程序把收到的代码存入原始页面数据库。为了提高爬行和抓取速度,搜索引擎会使用多个蜘蛛并发分布爬行。蜘蛛访问任何一个网站时,都会先访问网站根目录下的robots.txt 文件(如果 robots.txt 文件禁止搜索引擎抓取某些文件或目录,蜘蛛将遵守协议,不抓取被禁止的网址)。为了抓取网上尽量多的页面,搜索引擎蜘蛛会跟踪页面上的链接,从一个页面爬到下一个页面。由于网站及页面链接结构异常复杂,蜘蛛需要采取一定的爬行策略(深度优先和广度优先)才能遍历网上所有页面。在实际工作中,蜘蛛的带宽资源、时间都不是无限的,也不可能爬完所有页面。实际上最大的搜索引擎也只是爬行和收录了互联网的一小部分,所以要尽量抓取重要页面。为了避免重复爬行和抓取网址,搜索引擎建立一个地址库(记录已经被发现但还没有抓取的页面,以及已经被抓取的页面),蜘蛛按重要性从待访问地址库中提取URL,访问并抓取页面,然后把这个URL从待访问地址库中删除,放进已访问地址库。蜘蛛抓取的数据存入原始页面数据库,原始页面数据库中的页面数据与用户浏览器得到的HTML是定全一样的,每个URL都有一个独特的文件编号,蜘蛛在爬行和抓取文件时进行一定程度的复制内容检测。
- 预处理:提取文字---提取文字就是从HTML 文件中去除标签、程序,提取出可以用于排名处理的网页页面文字内容(即可见的文字),除了可见文字,搜索引擎也会提取出一些特殊的包含文字信息的代码(如 Meta 标签中的文字、图片的替代文字、Flash 文件的替代文字等);中文分词---搜索引擎存储和处理页面及用户搜索都是以词为基础,搜索引擎首先必须从提取的文字中分辨哪几个字组成一个词,哪些字本身就是一个词。中文分词的方法有两种∶基于词典匹配(将待分析的一段汉字与一个事先造好的词典中的词条进行区配,在待分析汉字中扫描到词典中已有的词条则匹配成功或者说切分出一个单词,按照扫描方向可分为正向匹配和逆向匹配。按匹配长度优先级的不同可分为最大匹配和最小匹配,两者可以混合产生多种匹配方法)和基于统计(分析大量文字样本,计算出字与字相邻出现的统计概率,几个字相邻出现越多,越可能形成一个单词。基于统计的优势是对新出现的词反应更快速,也有利于消除歧义)。此外,还要去停止词(页面内容中都会有一些出现频率高的词,却对内容没有任何影响如助词、感叹词,在处理页面之前搜索引擎会去掉这些停止词,使处理的数据主题更为突出、减少无谓的工作量)和消除噪声(绝大部分页面上有一部分内容对主题也没有什么贡献,比如版权声明文字、广告等,这些都属于噪声。搜素引擎需要识别并消除这些噪声,方法是根据HTML 标签对页面分块,区分出页头、导献、正文、页脚、广告等区域,消噪后剩下的才是页面主体内容);去重---识别和删除重复的内容,基本方法是对页面特征关键词计算指纹(即从页面主体内容中选取最有代表性的一部分关键词然后计算这些关键词的数字指纹)。去重算法不止于页面级别,而是进行到段落级别,混合不同文章、交叉调换段落顺序也不能使转载和抄袭变成原创;正向索引---经过文字提取、分词、消噪、去重后,搜索引擎得到的就是独特的、能反映页面主体内容的、以词为单位的内容。接着搜索引擎室引程序就可以提取关键词,按照词把页面转换为一个关键词组成的集合,同时记录每一个关键词在页面上出现的频率、次数、格式、位置等。搜索引擎把页面及关键词形成词表结构存储进索引库。正向索引是把页面文件分成由多个关键词组成的主体内容并存储进索引数据库中形成对应关系,但是不能直接用于排名,搜索引擎会将正向索引数据库重新构造为倒排索引(即把文件对应到关键词的映射转换为关键词到文件的映射),当用户搜索某个关键词时,排序程序在倒排索引中定位到这个关键词,就可以马上找出所有包含这个关键词的文件
- 排名:搜索词处理---中文分词把搜索词转换为以词为基础的关键词组合去停止词把搜索词中的停止词去掉指令处理在关键词之间使用“与”逻辑拼写错误矫正用户如果输入了明显错误的字或英文单词拼错,提示用户正确的用字或拼法整合搜索触发某些搜索词会触发整合搜索,而这些搜索词也需要在搜索词处理阶段计算;文件匹配---搜索词经过处理后,得到的是以词为基础的关键词集合。文件匹配阶段就是找出含有所有关键词的文件。关键词通过与倒排索引所得的数据中主键进行匹配,就能找出包含这些关键词的所有文件;初始子集的选择---找到包含所有关键词的匹配文件后,还不能进行相关性计算,因为找到的文件经常会有几十万几百万,甚至上千万个搜索引擎也并不需要计算这么多的相关性而只要计算最重要的一部分页面就可以了。要选出用于最后相关性计算的初始页面子集的选择,必须依靠其他特征而不是相关性,其中最主要的就是页面权重。当匹配数目巨大时,搜索引擎不会对这么多页面进行计算而必须选出页面权重较高的一个子集再对子集中的页面进行相关性计算;相关性计算---影响相关性的主要因素有:关键词常用程度,越常用的关键词对搜索词的意义贡献越小,搜索引擎对搜索词串中的关键词根据常用程度进行加权。不常用的词加权系数高,常用词加权系数低词频及密度,搜索词在页面中出现的次数多,密度越高,说明页面与搜索词越相关关键词位置及形式,关键词出现在比较重要的位置说明页面与搜索词越相关关键词距离,切分后的关键词完整匹配地出现,说明与搜索词最相关。如果切分后的关键词没有完整匹配,但这几个关键词出现的距离近一些,也被认为相关性稍微大一些链接分析及页面权重,页面之间的链接和权重关系也影响了关键词与搜索词的相关性,其中最重要的是锚文字;排名过滤及调整---选出匹配文件子集、计算相关性后,大体排名就已经确定了。搜索引擎可能还有一些过滤算法,对排名进行轻微调整,其中最重要的就是施加惩罚;排名显示---所有排名确定后,排名程序调用原始页面的标题标签、说明标签等数据显示在页面上;搜索缓存---用户搜索的关键词有很大一部分是重复的,搜索引擎会把最常见的搜索词存入缓存,用户搜索时直接从缓存中调用,而不必经过文件匹配和相关性计算,提高了排名效率,缩短搜索反应时间;查询及点击日志---搜索用户的IP地址、搜索的关键词、搜索时间,以及点击了哪些结果页面,搜索引擎都记录形成日志
扩展:深度优先---指的是蝴蛛沿着发现的链接一直向前爬行,直到前面再也没有其他链接,然后返回到第一个页面沿着另一个链接再一直往前爬行;广度优先---指蜘蛛在一个页面上发现多个链接时,不是顺着一个链接一直向前而是把页面上所有第一层链接都爬一遍,然后再沿着第二层页面上发现的链接爬向第三层页面。注:深度优先和广度优先通常是混合使用,既可以照顾到尽量多的网站也能照顾到一部分网站的内页。重要页面---1. 网站和页面权重(质量高、资格老的网站被认为权重比较高,则该页面被爬行的深度比较高,所有会有更多内页被收录)2. 页面更新度(如果页面内容经常更新,蜘蛛就会更加频繁地访问这种页面,页面上出现的新链接也自然会被蜘蛛更快地跟踪,抓取新页面)3. 导入链接(无论是外部链接还是同一个网站的内部链接,要被抓取就必须有导入链接进入页面,否则蜘蛛根本没有机会知道页面的存在。高质量的导入链接经常使页面上的导出链接爬行度增加)4.与首页点击距离(离首页点击距离越近,页面权重越重,被蜘蛛爬行的机会越大)。地址库中URL来源---人工录入的种子网站、蜘蛛抓取产生的待访问地址库、搜索引擎网页提交表格提交进来的网址。复制内容检测---蜘蛛遇到权重很低的网站大量转载或抄袭内容时很可能不再爬行。如果在日志文件中发现了蜘蛛但页面从来没有被收录,则这可能就是原因
网络爬虫技术
检查URL是否被访问过
- URL用fingerprint (如MD5)来记录,减少内存开销
- 利用访问的时空局部性--Cache
- 海量数据的高效率查找表:B-tree、Bloom filter
Bloom Filter算法
检测是否重复网页
一致性哈希
一致性哈希算法优势:一致性哈希算法能尽可能减少了服务器数量变化所导致的缓存迁移,能够在一定程度上改善缓存的雪崩问题,它能够在移除/添加一台缓存服务器时,尽可能小地改变已存在的key映射关系,避免大量key的重新映射,解决了普通余数Hash算法伸缩性差的问题,可以保证在上线、下线服务器的情况下尽量有多的请求命中原来路由到的服务器
网页排序---PageRank
核心思想:如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高;如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高
排名泄露问题:如果存在网页没有出度链接则会产生排名泄露问题,经过多次迭代后,所有网页的PR值都趋向于0
排名下沉问题:若网页没有入度链接,经过多次迭代后,该点的PR值会趋向于0
排名上升问题:互联网中一个网页只有对自己的出链或者几个网页的出链形成一个循环圈。那么在不断地迭代过程中,这一个或几个网页的PR值将只增不减
PageRank数值计算难点:计算机容量限制;收敛问题
索引技术
一个搜索引擎需要知道的几件事:自动下载尽可能多的网页、建立快速有效的索引、根据相关性对网页进行公平准确的排序
信息检索模型概述
定义:表示文档、用户查询以及查询与文档的关系的框架
布尔模型
模型描述:文档D---一个文档被表示为关键词的集合;查询式Q---查询式被表示为关键词的布尔组合,用 “与、或、非”连接起来,并用括弧指示优先次序;匹配F---一个文档当且仅当它能够满足布尔查询式时才将其检索出来,检索策略基于二值判定标准;算法R---根据匹配框架F判定相关
优点:查询简单,容易理解;通过使用复杂的布尔表达式,可以很方便地控制查询结果;布尔模型可以通过扩展来包含排序的功能,即“扩展的布尔模型”;相当有效的实现方法;经过某种训练的用户可以容易地写出布尔查询式
缺点:不支持部分匹配,而完全匹配会导致太多或者太少的结果文档被返回;很难控制被检索的文档数量;很难对输出进行排序;很难进行自动的相关反馈
正排索引:计算方式自行了解
倒排索引:倒排索引有两部分组成---词汇表和位置表,大致步骤:在词汇表中查找用户中查询包含的词汇,对词典二元查找、找到该词;查找并取出所有查询词在位置表中的地址列表;根据各查询词的地址列表计算需检索文档的或段落的标识符。计算方式自行了解
向量空间模型
模型描述:文档D---泛指文档或文档中的一个片段;索引项t---指出现在文档中能够代表文档性质的基本语言单位(如字、词等),也就是通常所指的检索词,这样一个文档D就可以表示为D(t1,t2,…,tn),其中n就代表了检索字的数量;特征项权重Wk---指特征项tn能够代表文档D能力的大小,体现了特征项在文档中的重要程度;相似度S---指两个文档内容相关程度的大小
词项权重(TFIDF)计算:根据词项在文档(tf)和文档集(idf)中的频率计算词项的权重
- tfij = 词项j在文档i中的频率
- dfj = 词项j的文档频率= 包含词项j的文档数量
- idfj = 词项j的反文档频率= log2 (N/ dfj ),N: 文档集中文档总数,反文档频率用词项区别文档
优点:术语权重的算法提高了检索的性能;部分匹配的策略使得检索的结果文档集更接近用户的检索需求;可以根据结果文档对于查询串的相关度通过Cosine Ranking等公式对结果文档进行排序
缺点:标引词之间被认为是相互独立;随着Web页面信息量的增大、Web格式的多样化,这种方法查询的结果往往会与用户真实的需求相差甚远,而且产生的无用信息量会非常大;隐含语义索引模型是向量空间模型的延伸
扩展的布尔模型
基于本体论的信息检索模型
过程:用户向信息检索系统提出检索申请;信息检索系统产生一个界面与用户交互,界面接收用户提出的查询关键字后,系统查询本体库,从中找出出现该关键字的各个领域,然后将其领域以及在该领域下的关键字的含义罗列给用户;用户此时可根据自己的意图,在界面上确定所需查找的领域及含义;系统将经过本体规范后的请求交给全文搜索引擎进行检索;全文搜索引擎检索后返回给用户检索信息
好处:解决从查询语言到检索语言之间转换过程中出现的语义损失和曲解等问题;保证在检索过程中能够有效地遵循用户的查询意图,获得预期的检索信息
第3章 网络信息被动获取与处理
平台架构
网络流监控模式
-
串联监控模式:一般是通过网关或者网桥的模式来进行监控
-
旁路监控模式:一般是指通过交换机等网络设备的“端口镜像”功能来实现监控
-
旁路部署起来比较灵活方便,不会影响现有的网络结构,串行需要对现有网络结构进行变动
-
旁路模式对原始传递的数据包不会造成延时,不会对网速造成任何影响。而串联模式是串联在网络中的,那么所有的数据必须先经过监控系统,通过监控系统的分析检查之后,才能够发送到各个客户端,所以会对网速有一定的延时
-
旁路监控设备一旦故障或者停止运行,不会影响现有网络的正常原因。而串联监控设备如果出现故障,会导致网络中断,导致网络单点故障
-
数据获取:旁路需要交换机支持端口镜像才可以实现监控数据管控:旁路模式采用发送RST包的方式来断开TCP连接,不能禁止UDP通讯。对于UDP应用,一般还需要在路由器上面禁止UDP端口进行配合,而串联模式不存在该问题
旁路监测技术
- 数据分流:分光器、路由交换、HUB
- 数据汇聚
- 报文抓取:性能影响因素---系统调用、数据拷贝、计算校验和、网卡中断
- 协议还原
- 内容抽取
Linux系统中进程通信方法
LIBPCAP-LIBNET-LIBNIDS
TCP/IP协议与以太网通讯
关系:以太网在一二层提供物理上的连线,使用48位的MAC地址;TCP/IP工作在上层,使用32位的IP地址,两者间使用ARP和RARP协议进行相互转换
载波监听:指在以太网中的每个站点都具有同等的权利,在传输自己的数据时,首先监听信道是否空闲,如果空闲,就传输自己的数据,如果信道被占用,就等待信道空闲
冲突检测:为了防止发生两个站点同时监测到网络没有被使用时而产生冲突。以太网采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据
以太网广播通讯:所有的通讯都是广播的,通常在同一个网段的所有网络接口都可以访问在物理媒体上传输的所有数据。每一个网络接口都有一个唯一的硬件地址,这个硬件地址也就是网卡的MAC地址,大多数系统使用48比特的地址,这个地址用来表示网络中的每一个设备,一般来说每一块网卡上的MAC地址都是不同的。在正常的情况下,网络接口应该只响应这样的两种数据帧---与自己硬件地址相匹配的数据帧、发向所有机器的广播数据帧。
数据的收发是由网卡来完成的,网卡接收到传输来的数据,网卡内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收。认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。CPU得到中断信号产生中断,操作系统就根据网卡的驱动程序设置的网卡中断程序地址调用驱动程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理
Linux网络数据包监测技术
libpcap 提供的接口函数主要实现和封装了与数据包截获有关的过程
Libpcap,即数据包捕获函数库,基于BPF系统。该库提供的C函数接口可用于捕获经过网络接口(只要经过该接口,目标地址不一定为本机)的数据包,采用libpcap可以捕获本地网络数据链路层上的数据
Linux网络数据包组装与发送技术
Linux网络数据流解析技术
libnids主要功能包括监视流经本地的所有网络通信、捕获网络数据包、IP碎片重组、TCP数据流重组以及端口扫描攻击检测和异常数据包检测等
使用范围:入侵检测系统;网络协议分析;网络嗅探(网络监视)
TLS加密概述
字符串匹配算法
模式匹配算法分类
单模式匹配
BF:从左向右,依次比较,每次移动一个字符位置,比较方向可以任意选定,无预处理阶段
KMP:根据前缀模式可以使模式向前推进若干字符位置(依前缀模式长度而定),而不只是一个字符,避免了重复比较,同时也实现了文本指针的无回朔
BM:速度最快的算法,从最右端自右向左扫描。在不匹配(或完全匹配)时,用两个预先计算的函数bad character和good suffix 来确定指针在正文中移动的距离
总结算法原理:
- 如果正在比较的主串中的字符在模式串中不存在,并且也不存在部分匹配,那么应右移的位置数等于模式的长度
- 如果正在比较的主串中的字符在模式串不存在,但存在部分匹配,则右移的位置数等于模式串长度减去部分匹配的字符个数
- 如果正在比较的主串中的字符出现在模式串中,则右移的位置数应为从模式串的最右端到模式串中该字符的距离
多模式匹配
AC算法-有限状态机