0%

1.1渗透测试学习

什么是渗透测试

通过模拟恶意黑客攻击的方式,来评估计算机网络系统安全的一种安全测试与评估方法。

可以使用黑盒测试白盒测试灰盒测试三种方法。

1.1.1黑盒测试

完全模拟真实网络环境中的外部攻击者,采用流行的攻击技术与工具,有组织、有步骤地对目标组织进行逐步渗透和入侵,揭示目标网络中的已知或未知的漏洞,评估这些漏洞能否被利用,来获取控制权或者操作业务造成资产损失。

优点:有利于挖掘潜在的漏洞,脆弱环节和薄弱点

缺点:费时费力,需要操作者具有较高的能力

1.1.2白盒测试

也称内部测试,可以了解到目标环境的所有内部和底层信息,用最小的代价发现和验证系统中最严重的漏洞。无须进行目标定位和情报收集,通过正常渠道从被测试机构中取得各种资料。

优点:花费时间少、代价小

缺点:无法有效地测试客户组织的应急响应程序,无法判断安全防护计划对特定攻击的检测效率

1.1.3灰盒测试

是以上两种测试的组合,可以对目标系统进行更加深入和全面的安全审查。在外部渗透攻击的场景中,需要从外部逐渐渗透进目标网络,所拥有的网络底层拓扑和架构有助于选择更好的途径与方法,从而达到更好的效果。

1.2渗透测试流程

前期交互——-信息收集——–漏洞扫描———漏洞利用———编写报告

  1. 前期交互

    渗透测试之前,需要与渗透测试目标、渗透测试范围、渗透测试方式、服务合同进行商议,以达成一致

    2.信息收集

​ 使用各种公开的资源获取和目标测试相关的信息,可以使用各种 收索引擎,相关博客,论坛,也可以借助kali linux中的工具

​ 3.漏洞扫描

​ 通过网络对目标系统进行探测,向目标系统发送数据,将反馈数据与自带的漏洞特征库进行匹配,列举出目标系统上存在的安全漏洞

​ 4.漏洞利用

​ 在探测到漏洞之后,通过已有的漏洞利用程序对目标系统进行渗透。

​ 需要考虑目标系统的环境对漏洞利用程序的进行修改和额外的研究。考虑对目标系统地安全机制的逃逸,避免让目标系统的发现

​ 5.编写报告

​ 需要包括获取到的有价值的信息,探测和挖掘出的安全漏洞、成功攻击过程、对业务造成的影响和后果分析

​ 明确写出目标系统中存在的漏洞及漏洞的修补方法

1.3部分操作的危害性

1、占用系统资源

在渗透测试过程中,有部分操作将占有大量的系统资源,如DOS攻击、暴力破解操作、网络端口扫描等

如果对目标主机的服务密码实施暴力破解操作,依次尝试可以登陆的密码会占用大量的系统资源。

使用Namp -sT -p实施端口扫描的时候,会向1-65535端口依次发包,要求建立TCP连接,容易造成网络拥堵

使用Nmap -sS实施SYN半连接方式端口扫描,没有建立完整的连接过程,会被网络防火墙认为是攻击行为而触发网络警报

2、留下后门

对目标主机的漏洞利用并实施攻击后,可能会留下后门,需要及时清理后门防止不法分子的利用

卷积神经网络

全连接网络:不是相邻层之间没有连接

在语音识别方面取得成功,将语音识别错误率下降了五个百分点,一维信号处理

处理图像二维信号会出现问题,图像像素1000000像素点,全连接需要不小于4T内存,不能提供这么大的内存,只是第一个隐层,机器受不了这种运算

对于图像处理,利用图像的模型或者特点,简化每层的算法

图像模式的特性:1、鸢尾花仅出现在局部区域

并不是所有具有相似形态特征的

鸢尾花都位于图像的同一个位置

可能的做法:卷积:平移不变模式

定义一种提取局部特征的方法,可以有效响应待定的局部模式

用这种方法遍历整张图片

特征提取器遍历的位置上响应值很大大概率出现鸢尾花,提取其他内容也适用,只要特征提取器存在

2、大小改变,鸢尾花仍然可以有效区分

可能的做法:池化:下采样被检测物体的不变模式

在神经网络逐层累加的时候,可以对图像进行缩放

缩放到适当大小后,可以在特征提取中得到有效相应

一个模型五层,每层100个结点,实现分类和模式识别功能

如果用浅层的神经网络实现类似的功能,则会出现上百万个参数

尽量使用深层神经网络,用比较少的神经元节点实现更加复杂的模式识别

CNN的层级不同

处理图像分为两种:灰度图像和彩色图像

灰色是单通道图像,彩色图像是三通道图像

输入层中的 高通道数

输入结构是固定的

卷积层:卷积计算=特征提取

通过滤波器的模板提取垂直边缘,提取垂直线条特征

滤波器维度大,参数更加复杂

卷积网络学的就是滤波器中的参数

灰度图像使用单卷积核:单个特征的抽取

三维通道需要有三个垂直滤波器的模板

RGB图像上使用多卷积核:多个不同的特征提取

卷积隐层的堆叠

卷积核的个数=下一层数据的深度=下一卷积层卷积核的深度

卷积核的个数=提取特征的数量,超参数,可以自己调节

多层卷积:一层卷积得到的特征是局部的,层数越高,得到的特征约全局化

需要注意的参数:一次滑动的步长

Padding=valid,在55的图像中增加一圈0,变成77的,经过滤波器操作后都变成5*5的,保证输入和输出图像的分辨率一致

在周围合理补零可以使图像分辨率不损失

输入:W1H1D1

输出:W2H2D2

img

自己动手搭CNN

激活函数简述

往模型中加入非线性元素,能表示更大范围的函数

一般不在同一个网络中使用多种激活函数

指数运算效率低

更新梯度很小,后边的数据无法进行计算

要解决激活函数生成值区间太小的问题

出现了线性运算,效率高很常用

CNN的基本结构

输入层、卷积层、激活层、池化层、全连接层

一般意义上的池化:平均池化、最大池化

池化:采用下采样的方式,能够成倍地减少计算量,在长度和宽度上进行采样,不改变深度的特征,pooling

小 第  ー 要 第 ヤ を 簽 毅

全连接层:

将多层的特征映射伸直成一个一维的向量

采用全连接的方式将向量连接向输出层

最终目的是得到一个可以对不同类别进行区分的得分

输出层就是对应每个类别的得分

循环神经网络

语言处理技术、词向量、循环神经网络、应用与实践

自然语言处理四个层面:形式(本来面貌)、语义(表示理解)、推理(无中生有)和语用(弦外之音)

词法学:研究词的词素构成、词性

形态分析:分析词根、前缀、后缀、词尾

未登录词识别:分析新词

中文分词

词性标注

句法学:研究句子结构成分之间的相互关系和组成句子序列的规则

语义学:研究如何从一个语句中词的意义,以及这些词在该

语句的句法结构中的作用来推导出该语句的意义

语用学:研究在不同上下文的语句的应用,以及上下文对语句理解所产生的影响

词法分析:是对自然语言的形态进行分析,判断词的结构、类别和性质

主要任务包括:自动分词、命名实体识别、词性标注

中文分词的核心任务是要确定词的边界,将句子分解为最小意义的单元,即将中文字序列转化为词序列。

分词面临的主要问题:分词规范、歧义切分、未登录词识别

分词算法:基于规则的分词方法:简单易行、消解误差的能力较差

基于统计的分词方法:效果依赖于训练语料的规模和质量

基于理解的分词方法:需要大量的语言知识和信息

词性标注:为分词结果中每个单词标注正确的词性,确定每个词词性的过程:主要任务是消除词性兼类歧义

词性标注算法:基于规则的方法:根据词语的结构建立词性标注规则

基于机器学习的自动规则提取方法

基于统计模型的方法

综合方法

短语结构分析:对输入的单词序列判断其是否符合给定的语法,分析出合乎语法的句法结构 ,用树状结构表示,称为句法分析树

依存句法分析:通过分析语言单位成分之间的依存关系揭示其句法结构。主要识别句子中的主谓宾,并分析各成分之间的关系

依存句法分析:基于图的依存句法分析方法

基于转移的依存句法分析方法

多模型融合

语义分析:词汇级语义分析:理解某个词汇的含义

词义消除(结合上下文确认)、词表示(表示并学习一个词)

句子级语义分析:浅层、深层

文本分类:根据给定文档的内容或主题,自动分配预先定义的类别标签

文本聚类:根据文档之间的内容或主题相似度,将文档计划分为若干个子集

文本特征提取和降维:特征提取

特征转换、话题分析

文本分类模型:基于机器学习的分类、基于神经网络的方法

文本聚类模型:基于距离的聚类、基于概率模型的聚类

情感分析:根据文本所表达的含义和情感信息将文本划分为褒义、贬义等多种类型,是对作者倾向性和观点、态度的划分,也称倾向性分析

核心任务主要包含观点性及倾向性识别

情感分析:基于词典的情感分析方法:通过制定一系列的情感字典和规则,对文本进行拆句、分析及匹配词典、计算情感值进行文本的情感倾向判断

基于机器学习的情感分析方法:将情感分析作为一个分类问题来处理,基本流程与文本分类一致

实体识别与抽取:命名实体识别:识别文本中库有特定意义的实体:如人民、机构名、地名等专有名词

和开放域实体识别:给定某一类别的实体实例,从网页中抽取同一类别其他的实体实例,特点在于不限定实体类别,不限定目标文本

实体消歧:在非结构化文档中,由于书写风格和上下文需要,同一个命名实体可能包含多种形式的表达,同时文档中的一个名词可能从字面意思上对应多种命名实体

关系抽取:检测和识别文本中实体之间的语义关系,关系抽取的输出通常是一个三元组,实体一,关系类别、实体二

基于模板的方法:基于触发词、字符串、基于依存句法

监督学习:机器学习、深度学习

半监督、无监督学习

事件抽取:从非结构化文本中抽取时间信息,主要包括时间、地点、事件元素角色,并将其以结构化形式呈现出来的任务,主要任务包括:触发词和事件元素的提取等

自动文摘:利用计算机按照某类应用自动地将文本转换生成简短摘要的一种信息压缩技术

要求:信息量足、覆盖面广、冗余度低、可读性高

抽取式摘要、生成式摘要

信息推荐:协同过滤推荐、基于内容的推荐系统、基于知识的推荐系统

问答系统:按照答案的生成反馈机制,可划分为:

基于检索式的问答系统

基于生成式的问答系统

检索式自动问答:问句理解、信息检索、答案抽取

生成式问答系统:根据训练数据:抽取部分模型、生成部分模型

机器翻译:用计算机把一种语言翻译成另外一种语言

词向量概念:深度学习应用于自然语言处理之前,传统的词表达通常采用one-hot方式表达

缺点:向量维度取决于语料库中词数,导致维数灾难

向量之间相互独立看不出关联关系

词向量可以把one hot编码转化为稠密向量

词向量中语义上接近的词距离接近

语法上相近的词距离接近

词向量的应用:计算相似度:寻找相似词、信息检索查询扩展、知识推演

作为神经网络的输入:文本分类、情感分析、文档主题判别

句子/文档表示:有/无监督句子/文档表示

词向量学习模型–神经网络语言模型

语言模型就是判断给定字符串为自然语言的概率

若果概率大于某个阙值,就认为该字符串为自然语言

在用户态的最高权限是root

黑客需要能够自己挖掘漏洞,编写exploit

早期,黑客攻击的目标以系统软件居多,能直接获得root权限

基于web的攻击,只能让黑客获得较低权限的账户

客户端软件安全的代表是浏览器攻击

PHP语言只能靠着较好的代码规范来保证没有文件包含漏洞

Web攻击的思路也从服务器端转向了客户端,转向了浏览器和用户

白帽子选择的方法是客服某种攻击方法,而并非抵御单次的攻击

谁能在技术上领先,谁就能占据主动

安全问题的本质是信任的问题

对条件的信任程度,是确定对象是否安全的基础

把握信任条件的度,使其恰到好处,正是设计安全方案的难点所在

安全是一个持续的过程,防御技术在不断发展的同时,攻击技术也在不断地发展,两者之间是互相辩证,互相促进的关系

安全三要素分别是:机密性、完整性和可用性

机密性要求保护数据内容不能泄露,加密是实现机密性的要求的常见手段

完整性要求保护数据内容是完整的、没有被篡改的,常见的保证一致性的技术手段是数字签名

可用性要求保护资源是随需而得

拒绝服务攻击破坏的是安全的可用性

资产等级划分,是所有工作的基础,能够帮助关乎我们明确目标是什么,要保护什么

互联网安全的核心问题,是数据安全的问题

做资产等级划分需要明确公司最重要的资产是什么,他们最看重的数据是什么的

完成资产等级划分之后就要划分信任域和信任边界了

威胁分析,可能造成危害的来源叫威胁,可能会出现的损失叫风险

威胁分析就是把所有的威胁都找出来,比如说使用模型帮助我们去想哪些方面可能会存在威胁,这就是威胁建模

威胁可以是:冒充他人身份、修改数据或代码、否认做过的事情、机密信息的泄露、拒绝服务、未经授权许可

风险分析,影响风险高低的因素除了造成损失的大小,还需要考虑发生的可能性

DREAD模型和STRIDE模型都起辅助的作用,最终作出决策的还是人

设计安全方案,要想的是如何通过简单有效的方案解决遇到的安全问题,安全方案能够有效地抵抗威胁,但同时不能过度干涉业务的正常流程,也不能在性能上拖后腿

一个优秀的安全方案应该是这样:

能够有效地解决问题

用户体验好

高性能

低耦合

易于扩展与升级

设计安全方案的技巧:

设置黑名单、白名单:在制定防火墙的网络访问控制策略,网站只提供web服务,应只允许某些端口对外提供服务

在网站的生产环境服务器上,应该限制随意安装软件,需要制定统一的软件版本的规范

在选择使用白名单时,需要注意避免类似通配符的问题

最小权限原则要求系统只授予主体必要的权限,而不要过度授权

纵深防御原则:

要在各个不同的层面、不同的方面实施安全方案,避免出现疏漏,不同的安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情,在解决根本问题的地方实施针对性的安全方案

将不同层面设计的安全方案,将共同组成整个防御系统

纵深防御的第二层含义,理解威胁的本质,做出正确的应对措施

数据与代码分离原则

混淆了代码与数据的边界,导致安全问题的发生

使得攻击的方法无效,也可以算是成功的防御

不可预测性原则

采取的做法是让漏洞攻击方法失效,提高攻击门槛

不可预测性能有效地对抗基于篡改、伪造的攻击

往往用到加密算法、随机数算法、哈希算法、

定义一个功能是否是漏洞,只看后果,而不应该看过程

漏洞只是对破坏性功能的一个统称

0字节截断

同源策略,是一种约定,web是构建在同源策略基础上的,浏览器只是针对同源策略的一种实现

为了不让浏览器的页面发生混乱,浏览器提出了源这一概念,影响源的因素有:域名、子域名、端口、协议,对于当前页面来说,页面内存放的JAVASCRIPT文件的域并不重要,重要的是加载Javascript页面所在的域是什么

这些带src属性的标签每次加载的,实际上是由浏览器发起了一次GET请求,通过src属性加载的资源,浏览器限制了JAVASCRIPT的权限,使其不能读,写返回的内容

跨域访问方案的安全基础是信任javascipt无法控制该HTTP头,如果此信任的基础被打破,此方案也不再安全

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment