计算机网络
计算机网络体系结构
- 【应用层】:负责各种不同应用之间的协议,如浏览器的HTTP协议、电子邮件的STMP协议等。
- 【传输层】:负责可靠传输的TCP协议、高效传输的UDP协议
- 【网络层】:负责寻址(准确找到对方设备)的IP协议
- 【网络接口层】:负责将数字信号在物理通道(网线)中准确传输
应用层 – HTTP、DNS
Q:HTTPS 过程?
① 客户发送它支持的算法列表以及一个不重数。不重数就是在协议的生存期只使用一次的数,用于防止重放攻击,每个 TCP 会话使用不同的不重数,可以使加密密钥不同,重放记录无法通过完整性检查。
② 服务器从该列表中选择一种对称加密算法(例如 AES),一种公钥加密算法(例如 RSA)和一种报文鉴别码算法,然后把它的选择、证书,一个不重数返回给客户。
③ 客户通过 CA 提供的公钥验证证书,成功后提取服务器的公钥,生成一个前主密钥 PMS 并发送给服务器。
④ 客户和服务器独立地从 PMS 和不重数中计算出仅用于当前会话的主密钥 MS,然后通过 MS 生成密码和报文鉴别码密钥。此后客户和服务器间发送的所有报文均被加密和鉴别。
【1】 一文看懂HTTPS、证书机构(CA)、证书、数字签名、私钥、公钥
传输层 – TCP、UDP
长度:从0-31,所以每一行为32位,占4个字节。至少占5行,
TCP报文头:最小20个字节,最大60字节
UDP 报文头:8字节
网络层 – IPv4、IPv6
寻址、路由
【Q】:ipv4和6的区别,以及6的作用
【A】: 【1】 什么是IPv6? - 华为
最显著区别——IP地址长度:IPv4 为 32 位,IPv6 为 128 位。
IPv6以其简化的报文头格式、充足的地址空间、层次化的地址结构、灵活的扩展头、增强的邻居发现机制将在未来的市场竞争中充满活力。
数据链路层 – MAC
区别
【HTTP】 - 【HTTPS】
HTTP 超文本传输协议,由客户程序和服务器程序实现,客户程序和服务器程序通过交换 HTTP 报文进行会话。HTTP 定义了这些报文的结构以及报文交换的方式,当用户请求一个 Web 页面时,浏览器向服务器发出对该页面中所包含对象的 HTTP 请求报文,服务器接收请求并返回包含这些对象的 HTTP 响应报文。
.
HTTP over SSL,在 HTTP 传输上增加了 SSL 安全套接字层,通过机密性、数据完整性、身份鉴别为 HTTP 事务提供安全保证。SSL 会对数据进行加密并把加密数据送往 TCP 套接字,在接收方,SSL 读取 TCP 套接字的数据并解密,把数据交给应用层。HTTPS 采用混合加密机制,使用非对称加密传输对称密钥保证传输安全,使用对称加密保证通信效率。
【TCP】 - 【UDP】
① TCP 是面向连接的,发送数据前必须先建立连接,发送某些预备报文段;UDP 无连接,发送数据前不需要建立连接。
② TCP 连接是点对点的,只能是单个发送方和单个接收方之间的连接;UDP 支持一对一、一对多和多对多通信。
③ TCP 提供可靠的交付服务,通过 TCP 传送的数据无差错、不丢失、不重复,按序到达;UDP 使用尽最大努力交付,不保证可靠性,主机不需要维持复杂的连接状态。
④ TCP 是面向字节流的,TCP 不保证接收方的数据块和发送方的数据块具有对应大小的关系,但接收方的字节流必须和发送方的字节流完全一样。应用程序必须有能力识别收到的字节流,把它还原成应用层数据;UDP 面向报文,对应用层报文添加首部后就交付 IP 层。
⑤ TCP 有拥塞控制;UDP 没有拥塞控制,网络拥塞不会降低源主机的发送速率,这对某些实时应用很重要,如视频会议。
【IP】 - 【MAC】
Media Access Control Address(MAC)
最重要的区别在于,
IP地址划分时基于地理区域,换了不同地方,即便是同一台硬件设备,IP地址一定不一样,可以理解为和地理位置有关;
而MAC地址不依赖于地理区域,换了不同地方,只要还是同一台硬件设备,MAC地址就不会变,它只和硬件设备有关。
.
1、对于网络中的一些设备,路由器或者是PC及而言,IP地址的设计是出于拓扑设计出来的,只要在不重复IP地址的情况下,它是可以随意更改的;而MAC地址是根据生产厂商烧录好的,它一般不能改动的,一般来说,当一台PC机的网卡坏了之后,更换了网卡之后MAC地址就会变了。
2、长度不同,IP地址的长度为32位,而MAC地址为48位。
3、寻址协议层不同。IP地址应用于OSI模型的网络层,而MAC地址应用在OSI模型的数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。
4、分配依据不同。IP地址的分配是基于我们自身定义的网络拓扑,MAC地址的分配是基于制造商。一个是主观的,而另一种是可观的。
【Cookie】 - 【Session】
① cookie 只能存储 ASCII 码,而 session 可以存储任何类型的数据。
② session 存储在服务器,而 cookie 存储在客户浏览器中,容易被恶意查看。
③ session 的运行依赖 session id,而 session id 存在 cookie 中,叫做 JSESSIONID。如果浏览器禁用了 cookie ,同时 session 也会失效(可以通过其它方式实现,比如在 url 中传递 session_id)。
.
【1】 会话技术:Cookies和Session详解
客户端会话技术 —— Cookie
服务器会话技术 —— Session
拥塞控制
网络中对资源的需求超过可用量的情况就叫拥塞,当吞吐量明显小于理想吞吐量时就出现了轻度拥塞。拥塞控制就是减少注入网络的数据,减轻路由器和链路的负担,这是一个全局性问题,涉及网络中的所有路由器和主机,而流量控制是一个端到端的问题。
TCP 的拥塞控制算法包括了慢启动、拥塞避免和快恢复。慢启动和拥塞避免是 TCP 的强制部分,差异在于对收到的 ACK 做出反应时拥塞窗口增加的方式,慢启动比拥塞避免增加得更快。快恢复是推荐部分,对 TCP 发送方不是必须的。
.
慢启动:拥塞窗口 cwnd 以一个 MSS 最大报文段开始,每当传输的报文段首次被确认就增加一个 MSS。因此每经过一个 RTT 往返时间,拥塞窗口就会翻倍,发送速率也会翻倍。结束慢启动的情况:① 发生超时事件,发送方将 cwnd 设为 1,重新开始慢启动,并将慢启动阈值设置为 cwnd/2。② 当拥塞窗口达到慢启动阈值时就结束慢启动而进入拥塞避免模式。③ 如果检测到三个冗余的 ACK,TCP 就会执行快重传并进入快恢复状态。
拥塞避免:一旦进入拥塞避免状态,cwnd 值大约是上次拥塞时的 1/2,距离拥塞并不遥远。因此 TCP 不会每经过一个 RTT 就将 cwnd 翻倍,而是较为保守地在每个 RTT 后将 cwnd 加 1。发生超时事件时,拥塞避免和慢启动一样,将 cwnd 设为 1,并将慢启动阈值设置为 cwnd/2。
快恢复:有时个别报文段丢失,但网络中并没有出现拥塞,如果使用慢启动会降低传输效率。这时应该使用快重传来让发送方尽早知道出现了个别分组的丢失,快重传要求接收端不要等待自己发送数据时再捎带确认,而是要立即发送确认。即使收到了乱序的报文段也要立即发出对已收到报文段的重复确认。当发送方连续收到三个冗余 ACK 后就知道出现了报文段丢失的情况,会立即重传并进入快恢复状态。在快恢复中,会调整慢启动阈值为 cwnd/2,并进入拥塞避免状态。
IDS / IPS
入侵检测
IDS(入侵检测系统):终端入侵检测系统(HIDS),网络入侵检测系统(NIDS)
IPS(入侵防御系统)
异常检测
- 属性图异常检测
- 基于GNN的异常检测
- 基于图的异常检测:介绍了2018年的3篇顶会论文
(利用相似性度量检测图结构中结点的异常)
(检测的是动态图,且检测对象是整个宏观图结构)
(检测对象是动态图上的异常结点) - AIOps异常检测:清华大学裴丹教授,《基于机器学习的智能运维》。
- 干货 !时间序列异常检测
网络安全
【1】 实习 - 数据中心
Q:沙箱是什么,有什么作用?
A:沙盒(英语:sandbox)是一种安全机制,将程序或进程限制在一个安全的、受保护的环境中运行,以避免对系统造成损害。沙盒可用于隔离网络服务、操作系统级别的进程以及应用程序。
安全性:沙盒提供了一个受控制和受保护的环境,使得恶意软件等可以被隔离在沙盒中,而不会对主机或其他软件造成危害。
可测试:沙盒提供了一种方法,可以在受控制的环境中测试新的或未知的软件,避免潜在的风险,同时对软件进行更全面的测试和评估。
过滤控制:沙盒可以限制对指定内容的访问,例如互联网上的某些网站、或者特定的文件和目录。这可以有助于减少不必要的风险,确保数据安全。
主机安全,渗透测试、权限提升、后门分析、安全加固
【1】 渗透测试——权限提升
【2】 后渗透阶段总结(提权+信息收集+内外渗透+后门)
天翼云笔试 - Q1:渗透测试的流程
信息收集:nmap
漏洞探测(挖掘):telnet、ssh、vnc、远程桌面连接服务(3389)
漏洞验证(利用):自动化验证(msf)
提升权限
清除痕迹:清除如添加的测试账号、上传的测试文件等
天翼云笔试 - Q2:nmap使用中常见端口、对应服务、技术手段
nmap是一款常用的端口扫描工具,可帮助用户检测网络上开放的服务和漏洞。TCP扫描/UDP扫描。
- 数据库端口:
9200/TCP,Elastic Search,未授权访问、代码执行漏洞、拒绝服务攻击
6379,Redis,未授权访问
5432,PostgreSQL,弱口令、高权限命令执行
3306,MySQL,弱口令、暴力破解
1521,Oracle,弱口令、暴力破解- 远程管理端口
22,ssh,弱口令、暴力破解、用户名枚举
23,telnet,弱口令、明文传输
3389,RDP,暴力破解
5632,Pancywhere,弱口令、暴力破解
5900,VNC,弱口令、暴力破解- Web中间件 / 服务端口
1090/1099,RMI,反序列化远程命令执行漏洞
7001,Weblogic,弱口令、SSRF、反序列化漏洞
8000,jdwp,jdwp远程命令执行漏洞
8080,Tomcat,弱口令、示例目录
8080,Jboss,未授权访问、反序列化- 常见协议
21,FTP,配置不当、明文传输、第三方软件提取
25,SMTP,匿名发送邮件、弱口令、SMTP用户枚举
53,DNS,DNS域传送漏洞、DNS欺骗、DNS缓存投毒
161,SNMP,默认团体名 / 弱口令访问
443,SSL,OpenSSL心脏出血
2375,Docker,未授权方式
数据库安全
Q:XSS、SQL的防御措施
容灾备份
其他
安全术语扫盲
字符串匹配:介绍了六个算法——BM、Horspool、Sunday、KMP、KR、AC算法。文末还有好些链接详尽介绍。