本篇Blog承接 面试复习归纳(技术服务、网络安全、运维与云计算)
参考阅读请查看如上Blog中提到的,本篇主要对技术方面做一个补充与说明
BGP:边界网关协议
1、不同于IGP,即不在于自动发现拓扑;用于在不同AS之间传递并选择最佳路由和控制路由的传播
什么是自治系统?
自治系统:autonomous system。它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(ASN)。
AS自治系统----0-65535 其中1-64511公有 64512-65535私有
2、基于TCP封装,保证可靠,端口号179,本地端口随意
路由更新时,BGP只发送更新的路由,大大减少了BGP传播所占用的带宽
3、设计上防环
AS内:BGP在AS内学到的路由不再通告给AS内的BGP邻居;即IBGP之间水平分割;我根本就不传,即设计上防环
AS内并不是BGP工作的重心,即内部的防环是根据IBGP间完全不传递路由来完成的
如何解决:
- 全互联(不现实)
- 路由反射器
- EBGP联邦
AS间:传进来的路由若携带我的AS号,那么直接丢弃;即AS_Path
4、丰富的路由策略,可以对对实现灵活的过滤和选择
5、防止路由震荡机制
增量更新:仅触发无周期
6、扩展性:type length value类型、长度、值
总结:高级的距离矢量型协议,路径型
传的是路由表,大量的属性来控制选路
Open报文—>用于协商BGP参数
邻居关系的建立,正常仅收发一次即可;
存在hold time (180s) router-id生成规则同OSPF一致=手工-环回最大地址-物理接口最大地址
Update —>交换路由信息
更新包 路由信息 目标网络号+属性(大量的不同参数,便于干涉选路)
Keeplive —>保持邻居关系
周期保活 60s 实际保活的是TCP的会话,自然保活到了BGP的邻居关系
Notification —>差错通知
报错 错误信息产生时,出现提示 比如AS号配置错误
Route-Refresh—>用于在改变路由策略后请求对等体重新发送路由信息
BGP的工作过程
条件:IP可达 IGP工作完成,路由可达之后BGP才能工作
1、启动配置完成后,peer间进行TCP会话的建立,3次握手完成邻居会话建立后;
2、BGP使用open报文建立邻居关系,生成邻居表;正常open报文收发一次即可;
3、之后BGP使用update来进行路由条目的共享;所有的信息可靠性由TCP保障;
4、接收到update消息后,BGP将条目存储于BGP表中;–本地发出接收到的所有BGP路由信息
默认将最优路径加载于路由表中;
5、路由共享结束后,BGP正常仅keeplive周期保活即可,若条目变化进行触发更新;
Active是TCP重连接与TCP连接失败的情况
连接重试时间:32s
数据库
in—>策略–>loc表–>out
对等体之间的交互原则
IBGP水平分割
从IBGP对等体获得的路由,只发布给EBGP对等体;
这其实就是AS内部的防环,即完全不转发,把事做绝
EBGP全转发,即给EBGP邻居也给IBGP邻居
1、将EBGP邻居学习路由传递给IBGP邻居时,下一跳不发生变化(导致下一跳不可达)
下一跳不可达导致路由不能优选
2、将IBGP邻居学习到的路由传递给EBGP邻居时,下一跳发生改变 下一跳属性改成更新源地址
只将BGP的最优路由发布给对等体
只发生更新的BGP路由
IBGP与IGP的同步
为了解决数据层面的路由黑洞,在还没有MPLS-VPN的时代有两种解决方案
1、全互联 缺点:不靠谱,低端路由器起不了BGP
2、路由引入,即将BGP引入到IGP中 同步机制
什么是同步?
IGP、BGP中都存在的路由,在之前的BGP中如果发现某条路由我BGP有,IGP没有,我就不敢将此路由变成最优路由;当MPLS-VPN杀出来后,就必须关闭同步,因为MPLS-VPN是建立了一条隧道,与同步与否毫无关系
公认必遵:来源(Oringin)、防环(AS_Path)、下一跳(Next_Hop)
所有BGP路由器都必须识别,且必须存在于Update消息中
如果缺少这种属性,路由信息就会出错
从哪来、到哪去、去的时候哪些路不能走
公认任意:本地优先值(Local_Pref)
所有BGP路由器都可以识别,但不要求必须存在于Update消息中
即就算缺少这类属性,路由信息也不会出错
可选过度:community
在BGP对等体之间具有可传递性的属性
BGP路由器可以不支持此属性,但它仍然会接收这类属性,并传递给其他对等体
可选非过度:MED、Originator_ID、Cluster_List
如果BGP路由器不支持此属性,则相应的这类属性会被忽略,不会传递给其他对等体
Origin
Origin用于BGP路由引入的防环,可以阻止起源于BGP的路由引入给其他路由协议产生的环路问题,能够形成OSPF那样的一种水平分割,10-150
起源类型 IGP>EGP>Incomplete。 起源属性 i优于e优于?; 可在控制层面任意接口修改
network 宣告本地路由表中的任意路由 i 0
egp 早期的ebg协议学习的路由重发布到BGP协议中 e 1
import 将本地通过其他协议学习的路由重发布到BGP协议中 ? 2
PreVal
协议首选项,仅本地有效,不传递,默认0,大优
优选 Preferenge_Value值最高的路由(私有属性,仅本地有效)。入向调用,不传递;大优
Cisco叫weight,权重,思科私有
AS_Path
优选 AS_Path短的路由。 EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;最前端号码为最新经过的AS号;注意:本地不携带,EBGP邻居传递时才会携带
allow-asloop 允许包含拥有自己AS号的路由进来
subritute-as 允许包含对方AS号的路由出去
底层用的是换号来解决的
Next_Hop
1、将EBGP邻居学习路由传递给IBGP邻居时,下一跳不发生变化(导致下一跳不可达)
下一跳不可达导致路由不能优选
分为如下两种场景
从EBGP邻居传递给IBGP
将自己的路由传递给IBGP邻居
2、将IBGP邻居学习到的路由传递给EBGP邻居时,下一跳发生改变 下一跳属性改成更新源地址
Local_Pref
优选本地优先级 (Local_Prefereace)最高的路由。 最常干涉IBGP关系的选路;只在IBGP邻居关系间传递;用于限制离开本AS的流量;大优
进来的路由的选路 对内import 不能对外,因为传不出去,只在IBGP间传播,可以对IBGPexport
应用场景:
1、IBGP的import、export
2、EBGP的import
MED
对于来自同一AS的路由,优选MED(多出口的鉴别属性)值小的。 最常用于干涉EBGP选路的属性,干涉别人对我的选路
MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为cost)
出去的路由的选路 对外export
应用场景:
可以对内,也可对外;但是只能用于两个AS间的传递,需要比较也可以,开启一个开关即可
compare-different-med
1、优选 Preferenge_Value值最高的路由(私有属性,仅本地有效,默认0)。入向调用,不传递;大优
Cisco叫weight,权重,思科私有
2、优选本地优先级 (Local_Prefereace)最高的路由。 最常干涉IBGP关系的选路;只在IBGP邻居关系间传递;用于限制离开本AS的流量;默认100,大优
3、本地起源;(起源于本地最优先,Next-hop为 0.0.0.0 )手动聚合>自动聚合>network>import>从对等体学到的。
4、优选 AS_Path短的路由。 EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;最前端号码为最新经过的AS号;
5、起源类型 IGP>EGP>Incomplete。 起源属性 i优于e优于?; 可在控制层面任意接口修改
network 宣告本地路由表中的任意路由 i 0
egp 早期的ebg协议学习的路由重发布到BGP协议中 e 1
import 将本地通过其他协议学习的路由重发布到BGP协议中 ? 2
6、对于来自同一AS的路由,优选MED(多出口的鉴别属性)值小的。 最常用于干涉EBGP选路的属性
MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为cost)
7、优选从 EBGP学来的路由(EBGP>IBGP)。
8、优选AS内部IGP的Metric最小的路由。
9、优选 Cluster_List最短的路由。
10、优选Orginator_ID最小的路由。
11、优选Router_ID最小的路由器发布的路由。
12、优选具有 较小IP地址的邻居学来的路由。
如何控制选路?遵循三步走原则
1、前缀列表抓路由
2、指定策略改属性
3、对邻居调用,分清除入向和出向
为PN (Virtual Private Network)是指依靠Internet服务提供商ISP (Internet Service Provider)和网络服务提供商NSP (Network ServiceProvider)在公共网络中建立的虚拟专用通信网络
1.员工在家或出差,需要连入公司总部内网办公
2.分支机构需要和总部进行通信,企业数据比较敏感,直接在公网传输容易泄漏商业机密
为PN常用技术:隧道、加解密、身份认证
常见的加密算法
常见的 对称加密 算法主要有 DES、3DES、AES、IDEA等
常见的 非对称算法 主要有 RSA、DSA、ECC等
散列算法 主要有 SHA-1、MD5 等。
DH算法:用非对称加密算法来传递对称加密算法的密钥
对称加密用的是一把密钥
非对称加密用公钥加密,私钥解密
(1)数据传输采用对称加密算法;
(2)对称加密的密钥通过非对称加密算法进行加解密。
身份认证:CA 证书授权中心
传统为PN
缺点:每新增一个为PN站点都需要新增一台专用的PE设备,代价过于昂贵
而且没有解决为PN客户之间地址空间重叠的问题。
MPLS:多协议标签交换
1.支持多种网络层协议
2.基于标签交换进行数据转发
标签交换转发效率优于传统数据包交换(已不明显)
传统交换技术:
1.进程转发,基于数据包的转发方式
2.快速转发,基于流量(缓存)的转发方式
3.cef转发,基于拓扑的转发方式
FIB表(CEF表) 转发信息库
工作过程
进:查看FIB(看有没有路由) LFIB(看有没有标签)
中间只查 LFIB(中间设备完全处在MPLS域中,则只查看标签转发信息库)
出:只查FIB(因为次末跳弹出了所以是没有路由的,只查看路由表)
倒数第一跳路由器向倒数第二跳路由器发送一个label 3 空标签,使倒数第二跳路由器提前弹出标签
总结:
压/弹标签是需要路由表的
传的时候是不需要路由表的
弹完标签要查询路由表来找到目的地址
启动MPLS
1、控制层面有LDP/TDP协议(tag),根据FIB表分配标签,生成LIB
LIB:标签信息库,存放的是到达某一网段的所有标签信息,有自己的与远端给的
2、LIB与FIB结合生成LFIB
LFIB:标签转发信息库,存放的是到达目标网段的进出标签(自己的标签的是入,IGP协议的最佳下一跳路由器是出)
LSR:标签交换路由器,标签交换(swap) 运行了MPLS的路由器
E-LSR:边界标签交换路由器,标签压入(impose)和弹出(pop) 边界的运行了MPLS的路由器
LSP:标签交换路径 从源到目标的标签替换过程(路径)
LIB:标签信息库
LFIB:标签转发信息库
MPLS-为PN
在同一台PE设备上为不同的为PN建立单独的路由这样冲突的的路由就被隔离开来;
为不同的为PN路由添加不同的标识,以示区别。这些标识可以作为BGP属性进行传递;RT
由始发路由器打上标记,接收路由器在收到带标记的的数据包时,根据标记转发给正确的为PN
为PN Routing Table称谓VRF(为PN Routing and Forwarding table) VRF:虚拟路由转发
RD 仅本地有效
RT BGP的扩展团体属性,仅导入导出时用于识别
目的:解决数据层面的路由黑洞
lMPLS为PN路由的传递过程将分为四个阶段介绍:
CE与PE之间的路由交换;
VRF路由注入MP-BGP的过程;
公网标签的分配过程;
MP-BGP路由注入VRF的过程
控制层面:路由条目的生成;一条路由条目根据AD、metric是否足够小来决定能否加表
数据层面:按照路由条目转发数据包;数据包来到路由器上,路由器查表,看从哪个口转发
怎样匹配路由表?
1、与操作
将目的IP与所有的网络掩码进行"与操作"的结果若跟此掩码对应的网络号一致 则可以进行数据转发
2、最长匹配
使用最长的掩码进行数据转发
3、递归查找
动态方式学习到的路由是下一跳法;此时以下一跳IP为目的IP继续进行三步走;这么一个过程就叫做递归查找
**IPSec:**是一组基于网络层的,安全通信协议族。IPSec不是具体指哪个协议
IPSec 为PN:是基于IPSec协议族构建的在IP层实现的安全虚拟专用网。通过在数据包中插入一个预定义头部保证安全。
认证头协议AH(Authentication Header) 、 封装安全载荷协议ESP(Encapsulating Security Payload)、因特网密钥交换协议IKE(Internet Key Exchange)
AH和ESP这两个安全协议用于提供安全服务,IKE协议用于密钥交换
ESP:50、AH:51
两种工作模式
两个通信保护协议
AH不对数据进行加解密
IKE协商、密钥交换
五元组:加密算法、认证方式、DH组算法、验证算法、SA存活期
SA三元组:安全参数索引、目的IP、AH 或ESP
用IPSec保护一个IP包之前,必须先建立安全联盟(SA);通过IKE协商自动化建立安全关联(SA)
第一阶段
建立一个安全的通道,IKE SA
第二阶段
通过第一阶段的安全通道协商具体的SA,即IPSec SA,用于最终的数据传输
协商:加密、Hash、安全协议、封装模式、存活时间
功能:
1.协商安全参数来保护数据连接。
2.周期性的对数据连接更新密钥信息。
**主模式:**传递自己的出口IP地址做身份标识
三次交换
1、SA交换(策略协商);为后面的认证做好准备
2、密钥交换(DH交换);提供一个密钥资源
3、对等体验证(ID交换与验证);加密传输
6次数据交互
第1、2个包重点在于策略的协商,这是为后面能在一个安全的环境之下协商IPSEC SA策略打下基础,为了加密保护
在3、4个包重点在于通过DH算法计算出第一阶段认证的密钥,会让两端的VPN设备产生一对相同的密钥
在5、6个包里就用前面的认证密钥进行相互认证,成功后,第二阶段协商IPSEC SA策略的安全通道立即打开,
**野蛮模式:**用户名或IP等作为双方身份标识
三次交换
1、建议SA、发起DH交换
2、接收SA
3、认证;加密传输
3次数据交互
SA载荷、策略协商、密钥交换
增加了hash载荷
身份验证,加密传输
注意: 包含身份信息的消息未被加密, 所以和主模式不同,野蛮模式不提供身份保护
主模式 | 野蛮模式 | |
---|---|---|
消息交互 | 交互6个消息 | 交互3个消息 |
身份ID | 以IP地址作为身份ID,自动生 成本端身份ID和对端身份ID | 可以以多种形式(IP,字符串等)手动或自动的生成本端和对端的身份ID |
域共享密钥 | 只能基于IP地址来确定 预共享密钥。 | 基于ID信息(主机名和IP地址)来确定预共享密钥。 |
安全性 | 较高 前4个消息以明文传输,最后 两个消息加密,对对端身份 进行了保护 | 较低 前两个消息以明文传输,最后一个消息进行加密,不保护对端身份 |
速度 | 较慢 | 较快 |
两个数据库
安全策略数据库SPD(Security Policy Database)
安全关联数据库SAD(Security Association Database)
优点:
1、支持两端都为非固定IP的公网环境---通过webagent实现
a.总部将自己的IP地址告诉webagent服务器
b.分支询问webagent服务器总部的iP地址
c.webagent服务器向分支进行回应
2、对权限管控更加的细致
目前大多数VPN产品都没有一种简单的机制来保证VPN的内网安全
根据不同的应用场景应用不同的为PN;正所谓术业有专攻嘛
文件上传、包含漏洞
XSS
CSRF
反序列化
缓存区溢出
SQL注入
CSRF
DDoS 分布式拒绝服务
1、限制MIME类型;
MIME (Multipurpose Internet Mail Extensions)(多功能网际邮件扩充协议) 是描述消息内容类型的因特网标准,在HTTP中,MIME类型被定义在Content-TypeHeader中,每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。
JPEG图形 .jpeg .jpg image/jpeg
超文本标记语言文本 .html text/html
绕过:Burp来代理,并更改其请求头的Content-TypeHeader 内容类型
2、限制文件后缀名
不能为php、html、bat、jsp等
绕过:在图片中挂马
解决:过滤恶意木马、防火墙等过滤方式
注入一句话木马
webshell
小马:一句话木马也称小马,即整个shell代码只有一行,一般是系统执行函数
大马:代码里和功能都比小马多,一般会进行二进制编码加密码,防止被安全防火墙/入侵系统检测到
说明:request是在网页端输入变量访问,POST是使用类似中国菜刀的工具进行连接,是C/S架构
漏洞分析:
网页开发者为了把网站需要的php程序用正则表达式包含进来的话,include *.php include *
本地文件包含LFI ( Local File Inclusion )当被包含的文件在服务器本地时,就形成本地文件包含
远程文件包含RFI ( Remote File Inclusion )当被包含的文件在第三方服务器时,叫做远程文件包含
注意:
图片并不是单纯的一句话木马,那样的话中国菜刀是不能进爆破的,要将图片执行并生成webshell,从而执行恶意的木马
操作步骤:
1、制作带木马的图片
2、上传图片文件
3、执行文件包含,即执行一句话木马生成后门
4、菜刀、蚁剑连接webshell
安全级别
1、将http://与https://使用str_replace()换成了空字符 饶过:写两个http://
2、限制文件包含的名字,写死的代码,不利有后期的扩展 绕过:更改木马程序的名称为限制的即可
Cross Site Scripting:CSS(跨站脚本攻击、与层叠样式表叫法冲突,所以叫XSS)
通过注入恶意的html/javasciipt代码到用户浏览的网页上,当用户浏览这些网页时,就会自动执行这些恶意代码,相当于控制了用户的web客户端;
没有对用户提交数据进行转义处理或者过滤不足的缺点
XSS主要原因:
过于信任客户端提交的数据!
XSS主要分类:
反射型xss攻击( Reflected XSS)又称为非持久性跨站点脚本攻击,它是最常见的类型的XSS。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性XSS包含一个带XSS攻击向量的链接( 即每次攻击需要用户的点击)。
存储型XSS (Stored XSS)又称为持久型跨站点脚本,存储在网站数据库,当一个页面被用户打开的时候执行。每当用户打开浏览器,脚本执行。
持久的XSS相比非持久性XSS攻击危害性更大,因为每当用户打开页面,查看内容时脚本将自动执行
攻击方法:
1、发现存在XSS漏洞
2、获取用户的cookie
3、利用
如何绕过防御(过滤,替换)
1.判断是否存在XSS攻击的可能
2.判断可输入内容在标签内还是属性内
3.判断闭合
4.判断是否过滤某些字符
1、大小写
2、转义
3、内嵌
4、替换
自动化软件:BeEF
攻击者盗用了用户的身份,以用户的名义进行非法操作
CSRF和XSS的区别
xss是需要获取到用户的cookie,再进行攻击
csrf是不需要获取用户cookie,而是由用户来执行恶意代码,而攻击者并没有实际参与到过程中
序列列化
序列化就是把⼀个变量转换为可存储或可传输⽂本结构的过程
反序列列化
在合适的时候把序列化后的文本结构转化为原来的变量
php在序列化的函数为Serialize,将对象转换为字符串保存对象中的量量及变量值。
php的反序列化函数为unserialize,将序列化后的字符串转换为对象
配合PHP的魔法函数进行使用
原因:
1. 表面原因是c语言等没有设计好函数,java没有这些问题(不直接操作内存)
2. 人为原因:程序员的安全意识,编程经验,编程技巧
3. 本质原因:栈空间数据既有数据也有代码,这个是冯.诺依曼体系的问题 控制、运算、存储、IO
总结:
1.利用栈溢出来控制代码的执行结构,使其跳转至想要到达的位置
2.填满缓冲区,要满到返回地址的地方
a.建栈底 EBP
b.将栈顶拉到栈底 ESP
c.拉高栈顶 栈顶与栈底中间压入需要执行的指令
3.对于C这种直接操作内存的代码有效,且对于编译环境与操作系统版本有关
在owasp年度top 10 安全问题中,注入高居榜首。
1、通过构建特殊的SQL语法里的一些组合作为输入,主要原因是程序没有细致地过滤用户输入的数据
2、通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
手段:利用系统数据库配合联合查询获取数据库相关信息,库、表、列
SCHEMATA表:提供了关于数据库的信息 schema_name 所有库名
COLUMNS表:给出了表中的列信息 table_schema 所有库名 table_name 所有表名
TABLES表:给出了关于数据库中的表的信息
注入步骤
1.判断交互方式 get/post/http head
2.预判数据库执行语句
3.判断提交数据的闭合方式 利用and 1=1 --+
4.构造语句打破闭合
5.构造联合查询判断输出位 通过order by 判断列数 建议使用二分法
6.愉快的爆库、表、列
分类
报错型 需要的数据通过报错进行输出显示
盲注型
布尔型盲注 不断的利用函数的组合猜需要的数据,可以用脚本来执行
时间型盲注 sleep() 时间注入的核心函数
绕过
大小写变形(混写)
编码 hex,urlencode
注释 `/*or*/`
过滤替换
截断
自动化工具:sqlmap
防火墙是一种计算机硬件和软件的结合的访问控制技术。
产生:私网与公网的边界,用于保护私网的完全
功能:访问控制、用户认证、入侵检测和攻击防御
传统(包过滤):只检查报头;基于源目IP、Port、协议类型来进行判断,局限性;工作在3-4层
应用代理:检查应用层的数;工作在7层,但是检测效率低,配置运维难度极高,可伸缩性差
状态检测防火墙:对TCP建立的防御;应用层控制较弱,不检查数据区;工作在2-4层
IDS/IPS(入侵检测/防御系统):IDS只能对网络环境进行检测,但却无法进行防御,IPS主要是针对已知威胁进行防御
防病毒网关(AV)——基于网络侧识别病毒文件:判断数据包是否携带病毒信息
Web应用防火墙(WAF)——专门用来保护web应用:判断http中的requset、reponse报文;7层
下一代防火墙(NGFW)——升级版的UTM
包含功能:FW、IDS、IPS、AV、WAF
工作范围:2-7层
吞吐量:同时处理的最大数据量
延迟:整个数据包通过防火墙的时间间隔
丢包率:在连续负载的情况下,防火墙由于资源不足,应转发但是未转发的百分比
深信服的AF防火墙
事前预知、事中防御、事后检测
优点
1、智能的AI杀毒引擎
2、智能联动
3、简单、有效
本人第二次技术面被问到的
1、说一下安全
2、说下webshell
3、说下御剑
4、说下sqlmap
5、说下云计算
6、说下CDN
7、说下防火墙