这次是想梳理梳理网络与安全中的一些基本概念和涉及的东西,不得不说这是一个非常大的框架,涉及的东西是在是太多,一方面是自己查缺补漏一下,另一方面是清晰一下脉络。为了不显得那么杂乱,简单将其分为三个小部分:网络通信,网络资源与网络安全。(该篇文章不会描述具体的内容,仅是归纳一下已知的关键的点,因为是临时整理所以还有很多没想到的,随时会补充)
网络通信
网络通信是网络中最基本的数据传输,两个网络设备均是通过该手段进行信息交互。
基本的网络通信模型师OSI七层模型,而现在用的则是TCP/IP四层模型,它将其中复杂的分层合并,并使用TCP/IP协议作为自己的核心。TCP/IP模型分为应用层、传输层、网络层和接口层,其中提供了供定位通信主机的IP地址,端口号和MAC地址,程序的数据则是在应用层传输。
说到通信必不可少的则是路由器,路由器方便的实现了区域的管理和目标主机的查找,其中的路由表和路由算法至关重要。还有两个对应的用于获取目标IP物理地址的ARP地址解析协议,用于根据网址获取目标IP的DNS域名解析协议。
有一句话是怎么说的来着:"通信皆Socket",Socket套接字是转门为通信而生的接口,这对于做通信来讲还是很有意思的。
网络资源
我们访问网络资源使用的主要是浏览器,记得看到过一个统计,九成多的人是通过浏览器上网。我们使用url统一资源定位符定位网络上的资源,url上还涉及url编码和base64编码等。浏览器解析和渲染网页,最终呈现在浏览器中。
我们浏览器和服务器传递文档的协议是HTTP协议,为了增强安全性发展出了HTTPS协议,该协议是处于网络中的应用层,其中包含了多个字段用于控制文档的传输和获取。但他们是基于无状态的请求响应模型,为此大多数的做法是使用Token令牌记录用户登录状态,网络通信中通常是在url参数或cookie中记录此信息。
网络文档的主体大多是由HTML语言编写,HTML是一种标记语言,通过各种标签配合CSS层叠样式表实现文档的布局和调整。为了完成一些动态的功能,通常文档中还有使用javascript和PHP等脚本语言编写的功能函数,他们提供了一些常用的函数功能等。现成的网络框架是在是很多,这个确实没怎么接触过。
对于很多提供搜索、登录等功能的网络,数据库是网站中一个非常关键的部分,可以使用SQL语句实现信息的增删改查。对于基本的操作可以使用微软的Access或SQL数据库学习。
网络爬虫是一个非常有意思的东西,python等语言中均提供了有关的库(例如bs4库),操作步骤一般为下载文档-匹配标签-提取内容。
网络安全
网络安全的三个基本要素是机密性,完整性,可用性,后期则追加了可审计和不可抵赖性。
所有网络安全的跟本是用户可以输入任意数据,据说白名单的方式比黑名单可以更有效的保护安全。
当前的排名特别靠前的漏洞是:
- 缓冲区溢出攻击,使用Shellcode注入程序,覆盖关键地址,有一些比较高级的技巧如ret2libc,ROP和分段等。Shellcode通常有汇编语言编写,为规避检测产生了多态Shellcode。
- SQL注入则是将查询语句拼接到输入字符串或数据中,恶意的获取目标数据库信息。
- XSS则是巧妙的将恶意代码插入网页,常见的就是博客啊,留言板,数据库之类的。
其余的还有很多,信息泄露,目录遍历,文件上传,CSRF,权限问题等,现在超级火的就是SQL 注入 XSS CSRF,很多网站都存在或多或少的问题。
与利用网站漏洞不同,DDOS攻击依靠的就是人海战术,通过消耗服务器资源得到攻击目的。DDOS攻击也是现在非常流行且危害比较大的,惊叹能达TB级别的攻击。
内网渗透可以更深层次的入侵和控制外网主机所在的局域网,但是这是一门十分有技巧的活,这个具体也还没有基础太多,就不细说了。