Web 网络安全纵观与前景分析
在此之前,欢迎关注波比网络 培训、环境、资料、考证
波比网络 官方公众号:blbinet
波比网络工作室 官方公众号:blbistudio
获取技术支持访问:https://www.blbi.cn/form/1/select
技能大赛各赛项交流群:https://www.blbi.cn/threads/40/
更多正式赛题源文件访问:https://www.blbi.cn
NISP、CIPS、PTE证书可咨询各大群群主
前置讲解
该阶段我们分如下部分讲解,具体参考即可:
- Web 安全基础理念
- 网络安全学习方法参考
- 网络安全思想
- Web 安全就业前景分析
- 网络安全词汇讲解
0x01 Web 安全基础理念
1.Web 应用程序的发展历程
早期的 Web 应用程序基本以静态页面呈现(HTML,CSS),没有动态的操作方法,无法与用户完成动态交互,对待所有用户均以平等
比如这张图:
从过去到现在,Web 应用程序发展十分的迅速,如今强大的 Web 应用程序层出不穷,以框架,以后台,以动态交互,以安全限制等操作为主
但是Web应用程序的发展也带来了新的重大安全威胁。应用程序各不相同,所包含的漏洞也各不相同。许多应用程序是由开发人员独立开发的,还有许多应用程序的开发人员对他们所编写的代码可能引起的安全问题只是略知一二。为了实现核心功能,Web应用程序通常需要与内部计算机系统建立连接。这些系统中保存着高度敏感的数据,并能够执行强大的业务功能。15年前,如果需要转账必须去银行,让银行职员帮助你完成交易。而今天,你可以访问银行的Web应用程序,自己完成转账交易。进入Web应用程序的攻击者能够窃取个人信息,进行金融欺诈或执行针对其他用户的恶意行为。
2.Web 应用程序常见功能
创建Web应用程序的目的是执行可以在线完成的任何有用功能。近些年出现的一些Web应用程序的主要功能有:
-
购物(Amazon);
-
社交网络(Facebook);
-
银行服务(Citibank);
-
Web搜索(Google);
-
拍卖(eBay);
-
博彩与投机(Betfair);
-
博客(Blogger);
-
Web邮件(Gmail);
-
交互信息(Wikipedia)。
…
3.Web 安全核心问题:用户可提交任意输入 🔺🔺🔺🔺🔺
正是因为这种操作形式导致了我们常见的一些 Web 安全漏洞:
例如 SQL 注入,XSS,CSRF,SSRF,命令注入,文件包含等等漏洞
均一用户可提交任意输出而产生,当然程序员编写的代码也可能不符合安全规范,未作过滤,如今的安全防护形式均以代码层面操作,以过滤和防护WAF 等操作防护这类恶意输入
与多数分布式应用程序一样,为确保安全,Web应用程序必须解决一个根本的问题。由于应用程序无法控制客户端,用户几乎可向服务器端应用程序提交任意输入。应用程序必须假设所有输入的信息都是恶意的输入,并必须采取措施确保攻击者无法使用专门设计的输入破坏应用程序干扰其逻辑结构与行为,并最终达到非法访问其数据和功能的目的。
-
用户可干预客户端与服务器间传送的所有数据,包括请求参数、cookie和HTTP信息头。可轻易避开客户端执行的任何安全控件,如输入确认验证。
-
用户可按任何顺序发送请求,并可在应用程序要求之外的不同阶段不止一次提交或根本不提交参数。用户的操作可能与开发人员对用户和应用程序交互方式做出的任何假设完全不同。
-
用户并不限于仅使用一种Web浏览器访问应用程序。大量各种各样的工具可以协助攻击Web应用程序,这些工具既可整合在浏览器中,也可独立于浏览器运作。这些工具能够提出普通浏览器无法提交的请求,并能够迅速生成大量的请求,查找和利用安全问题达到自己的目的。
绝大多数针对Web应用程序的攻击都涉及向服务器提交输入,旨在引起一些应用程序设计者无法预料或不希望出现的事件。以下举例说明为实现这种目的而提交的专门设计的输入。
- 更改以隐藏的HTML表单字段提交的产品价格,以更低廉的价格欺诈性地购买该产品。
- 修改在HTTP cookie中传送的会话令牌,劫持另一个验证用户的会话。
- 利用应用程序处理过程中的逻辑错误删除某些正常提交的参数。
- 改变由后端数据库处理的某个输入,从而注入一个恶意数据库查询以访问敏感数据。
4.是否使用 SSL 安全套接层协议就不会遭受攻击 🔺
SS L是一种出色的技术,可为用户浏览器和 Web 服务器间传输的数据提供机密性与完整性保护功能。它有助于防止信息泄露,并可保证用户处理的 Web 服务器的安全性。但 SSL 并不能抵御直接针对某个应用程序的服务器或客户端组件的攻击,而许多成功的攻击都恰恰属于这种类型。特别需要指出的是,SSL 并不能阻止上述任何漏洞或许多其他使应用程序受到威胁的漏洞。无论是否使用 SSL,大多数 Web 应用程序仍然存在安全漏洞。
勿庸置疑,==SSL 无法阻止攻击者向服务器提交专门设计的输入。应用程序使用SSL仅仅表示网络上的其他用户无法查看或修改攻击者传送的数据。==因为攻击者控制着 SSL 通道的终端,能够通过这条通道向服务器传送任何内容。如果前面提到的任何攻击成功实现,那么不论其在 FAQ 中声称其如何安全,该应用程序都很容易受到攻击。
0x02 网络安全学习方法参考
对于学习方法,我只能给出自己的经验和网上综合一些,能够给予大家一些微量帮助,还望大家能够总结出一套属于自己思想的学习方法
- 没事多逛逛安全博客
- 没事多看看一些安全博客文章,涨涨自己的眼界
- 每天至少学习 4 个小时网络安全,不管有多忙坚持
- 没事多逛逛 github
- 总结出一套属于自己的笔记宝库
- 多多挑战自己不要对自己没自信,遇到问题迎难而上,多多实践,比如 CTF 挑战,靶机渗透测试
- 没事干就敲 python,php,golang,Java (起点高,不推荐上来就学)
0x03 网络安全核心思想
网络是国家安全一个非常重要的方面,对网络安全进行维护,对民生的发展以及社会的稳定来说十分有利,并且对网络安全进行维护的根本目标是对国家利益进行维护,这也就是对广大的人民群众和工人阶级的利益进行维护。
我们简单说:学习网络安全,必须拥有一颗保护他人的心,保护他人的网络安全而非践踏他人隐私。
0x04 Web 安全就业前景分析
1.各大职业招聘条件
2.薪水分析
0x05 网络安全常用词汇
关于这些常用词汇,没必要死记硬背,有些不知道的将这个表格保存在自己笔记中,不知道就参考一下
word | explanation |
---|---|
regex | 正则表达式简称 |
privilege escalation | 特权提升:旨在低系统权限上的提升 |
Proof of Concept(POC) | 概念验证:验证某一漏洞是否存在的代码 |
Exploit(EXP) | 漏洞利用代码 |
Payload | 中文 ’ 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令。 |
Shellcode | 简单翻译 ’ shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名。 |
File inclusion | 文件包含 |
Expression | 逻辑(表达式) |
scheme | 协议 |
request | 请求(回答) |
response | 响应 |
parameter (缩写:params ) | 参数 |
query | 查询 |
recursive | 递归 |
issue | 问题 |
AES | 高级加密标准,也称为 Rijndael。NIST的加密规范,使用对称密钥算法 |
APT | 高级持续威胁。具有特定目标的熟练且积极进取的攻击者 |
ASLR | 地址空间布局随机化。通过随机化程序代码、变量和链接库在内存中的位置,使利用缓冲区溢出攻击变得更加困难的功能 |
authentication | 认证:验证身份属于该人,例如,使用密码或身份证 |
authorisation | 授权:允许声明身份的过程对资源执行操作 |
AV | 防毒软件:旨在检测和删除恶意软件的程序 |
backdoor | 后门:绕过正常访问方法的专用秘密方法 |
bastion | 堡垒机:具有最小表面积的强化主机,通常用于远程访问无法使用 VPN 的网络 |
bitcoin | 比特币:一种密钥派生函数,常用于全盘加密主密钥或密码存储 |
blacklist | 黑名单:被拒绝访问的实体列表 |
buffer overflow | 缓冲区溢出:一种攻击类型,其中写入内存的数据量大于提供的缓冲区,因此数据被写入相邻的内存导致意外的程序行为 |
CA | 证书颁发机构。颁发数字证书的第三方,表明证书上的实体拥有其公钥/私钥对以及相关的域名或业务实体 |
cache poisoning | 一种将虚假数据引入缓存的攻击。缓存可以用于数据库、http 或任何其他实现缓存的服务 |
CAPTCHA | 验证码 |
checksum | 校验和:从一段数据或文件派生的一个位或一系列整数,用于验证数据没有改变。例如,确保数据包在传输过程中没有损坏,或者检查两个文件是否可能相同 |
CIO / CISO | 首席信息(安全)官 |
cipher | 用于加密或解密数据的算法。加密的消息通常称为 ciphertext ,未加密的消息称为plaintext |
CISSP | 认证信息系统安全专家。行业认证 |
clickjacking | 点击劫持:常见如钓鱼 |
CMS | 内容管理系统。Wordpress 和 Drupal 是流行的内容管理系统的例子 |
CORS | 跨域资源共享。安全地允许从不同域下载 Web 资源的规范 |
cross-site scripting | See XSS |
cryptography | 密码学 |
CSRF | 跨站点请求伪造。针对已经通过 Web 应用程序身份验证的用户的攻击,在他们不知情的情况下代表他们发送请求 |
CTF | 常见漏洞和暴露。软件或产品中的安全漏洞的公开列表,每个都有唯一的识别号。见https://cve.mitre.org/ |
CVSS | 通用漏洞评分系统。一种开放标准,用于给漏洞打分以量化其严重性 |
daemon | 守护进程:在后台运行的系统进程,而不是交互式用户会话 |
DDoS | 分布式拒绝服务。一种DoS攻击,其中服务被来自多个来源的流量所淹没,使得这种攻击更难以阻止 |
DES/3DES | 数据加密标准。由AES取代。NIST 已取消 DES 作为标准 |
DGA | 域生成算法。为恶意软件提供新域以绕过域阻止 |
DMA attack | 直接内存访问。一种使用 DMA 绕过 CPU 和操作系统级别保护的攻击,允许 IO 设备直接写入内存 |
DMARC | 基于域的消息身份验证、报告和一致性。旨在打击电子邮件标头欺骗的策略,发件人可以在其中发布是否使用 DKIM 或 SPF,以及如果验证失败,收件人应如何处理邮件 |
DNS cache poisoning | DNS 缓存中毒:也称为 DNS 欺骗。一种将虚假记录引入 DNS 解析器缓存的攻击,允许攻击者用指向恶意内容的 IP 地址替换合法 IP 地址 |
DOS | 拒绝服务。阻止合法用户访问资源的攻击 |
GPG | Gnu 隐私卫士。用于加密和签署数据的 OpenPGP 标准的实现。另见PGP |
hash | 一种单向函数,它接受任意大小的数据,然后返回一个固定大小的hash value ,通常缩短为hash . 从输出中,不可能推导出输入。示例是 MD5 或 SHA1 |
fuzzing | 模糊测试:以自动化方式注入随机输入的过程,以尝试在软件中采用可能导致漏洞的意外分支路径 |
Heartbleed | OpenSSL 中的一个错误,这是一个广泛使用的实现传输层安全协议的库。Heartbleed 允许远程攻击者读取进程内存,可能导致系统受损 |
honeypot | 一种诱饵系统,旨在分散、诱捕或收集有关攻击者的信息 |
IAM | 身份和访问管理 |
IDS | 入侵侦测系统。监控网络中可能表明未经授权访问的异常流量 |
IoC | 妥协指标。表明发生了未经授权的访问或感染的工件(文件名、哈希、IP 地址等) |
IPsec | 互联网协议安全。一组协议,用于对通过 IPv6 发送的数据包进行身份验证和加密。稍后添加了 IPv4 支持 |
ISAC | 信息共享和分析中心。促进收集和共享有关威胁的信息的中央组织 |
Kerberos | 一种身份验证协议,客户端从包含授权数据的域控制器接收时间戳和加密票证。然后在建立连接时将此票证提交给服务器。它用于通过受信任的第三方验证用户和服务,而无需通过网络发送密码 |
kill chain | 一种取自军方的模型,用于描述攻击的各个阶段 |
Kubernetes | 用于计划、监控、负载平衡和自动化容器化部署的平台即服务软件 |
LDAP | 量级目录访问协议。通过 TCP/IP 访问和更新信息目录的协议。Active Directory 的核心组件 |
LFI | 本地文件包含漏洞 |
LMS | 学习管理系统。促进教育课程交付的软件。示例包括 Blackboard Learn、Moodle 和 Instructure Canvas |
LTS | 长期支持。比正常支持时间更长的稳定版本的软件 |
Mach-O | 基于 Mach 内核的系统的可执行文件格式,例如 iOS、MacOS 和 watchOS。另见ELF和PE |
malicious actor | 试图获得未经授权的访问或对计算机系统产生负面影响的一方 |
malspam | 垃圾邮件用作恶意软件的传递方式,可以作为附件,也可以通过电子邮件中包含的链接 |
malware | “恶意软件”的合成词。任何具有恶意意图的软件。 |
man-in-the-middle | 中间人攻击:一种攻击类型,攻击者截获通信并在目标接收者之间进行中继。从那里,攻击者能够读取或可能更改正在发送的内容 |
Meltdown | 崩溃:一个 CPU 硬件漏洞,可能导致未经授权的进程通过利用竞争条件从内存中读取。另见幽灵 |
MIME | 多用途互联网邮件扩展。一种标准电子邮件格式,可添加附件和非 ASCII 字符等功能 |
MISP | AusCERT 用于分发 IoC 信息的开源威胁情报共享平台 |
MSIN | 成员安全事件通知 |
NAC | 网络访问控制。仅允许受信任的端点设备访问网络资源的策略 |
nameserver | 解析域名查询的服务器。另请参阅DNS |
NBN | 全国宽带网络。一个在澳大利亚推广有线和无线电网络以向互联网服务提供商批发销售的项目 |
NFS | 网络文件系统。允许客户端计算机通过网络访问文件的协议 |
NIST | 美国国家标准与技术研究所。制定标准并维护国家漏洞数据库的美国政府组织。 |
NOC | 网络运营中心。管理和监控网络的中心位置 |
NTLM | 适用于 Windows 计算机的已弃用网络身份验证协议,以及 Active Directory 中使用的密码哈希格式 |
OAuth2.0 | 与 OIDC 一起使用的授权框架,以提供允许第三方身份提供者的单点登录系统 |
OCSP | 在线证书状态协议。用于发现 X.509 证书的吊销状态的协议。(不要与 OSCP 混淆) |
OIDC | 开放 ID 连接。与 OAuth 配对的身份验证标准 |
OPSEC | 运营安全。一个军事术语,用于描述对看似无害的信息的限制,但恶意行为者可以使用它来破坏安全性 |
OSCP | 进攻性安全认证专家。Offensive Security 的渗透测试认证 |
OSINT | 开源情报。从公开来源收集信息。与开源软件无关 |
OTP | 一次性密码。仅对一个登录会话有效的密码 |
OWASP | 开放 Web 应用程序安全项目。促进提高软件安全性的非营利组织 |
PAC | 特权帐户证书。客户端Kerberos 票证的一部分,用于传递授权数据,例如组成员身份和密码凭据 |
PBKDF2 | 一种密钥派生函数,具有比散列函数更高的 CPU 工作因子,增加了暴力攻击成功所需的时间。被 bcrypt、scrypt 和 argon2 取代 |
PE | 可移植的可执行文件。Windows 本机可执行格式,也用作 EFI 应用程序的可执行格式。另见ELF和Mach-O |
PCI DSS | 支付卡行业数据安全标准。所有组织在存储或处理信用卡数据时都必须遵循的标准 |
penetration testing | 渗透测试:一种模拟真实攻击的授权测试,用于评估系统的安全性 |
PGP | 很好的隐私。实现 OpenPGP 标准的加密软件。参见GPG |
phishing | 网络钓鱼:试图诱骗用户向欺诈网站提供凭据的攻击 |
PII | 个人身份信息。根据《澳大利亚隐私法》(1988 年),个人信息是“关于已识别个人或可合理识别的个人的信息或意见,无论是否真实,也无论是否以物质形式记录。” https://www.oaic.gov.au/privacy-law/privacy-act/ |
PoC | 概念证明 - 证明漏洞可利用的有效利用 |
POODLE | Padding Oracle on Downgraded Legacy Encryption。一种中间人攻击 SSLv3.0 |
principle of least privilege | 每个用户和进程都应以完成工作所需的最少权限运行的安全原则 |
privilege escalation | 特权升级:获得比授予权限更多的用户帐户访问权限 |
procmon | Windows 进程监视器。监控注册表和进程活动的后台软件 |
rainbow table | 彩虹表:预先计算的哈希表及其相应的输入,以压缩格式存储,用于快速查找和紧凑存储 |
ransomware | 勒索软件:恶意软件会加密您的文件并持有解密密钥以勒索赎金。请参阅[勒索软件] |
RAT | 远程访问木马。一种恶意软件,攻击者随后可以通过网络联系木马以获取击键、凭据、日志或控制受感染的系统 |
RCE | 远程代码执行。攻击者能够通过网络连接在受感染系统上运行任意代码 |
reCAPTCHA | 来自 Google 的专有验证码 |
salt | 盐:描述随机数据的密码学术语,在散列之前添加到值以防止字典和查找表攻击 |
same-origin policy | 同源策略:除非协议、主机和端口相同,否则不允许文档访问另一个文档的 DOM 的策略 |
SAML | 安全断言标记语言。一种用于身份验证和授权服务的 xml 格式标准,允许将补充数据发送到远程服务,而无需访问其他身份系统 |
SANS | SysAdmin 审计网络安全研究所。安全培训和认证提供商 |
SCCM | 系统中心配置管理器。来自 Microsoft 的软件,用于管理计算机和移动设备群的配置和库存 |
scrypt | 加密:一种基于密码的密钥派生函数,需要大量内存才能解决,使得暴力攻击代价高昂 |
secure boot | 安全启动:一项 UEFI 功能,可确保设备仅使用 OEM 加密验证的软件启动 |
side channel attack | 测信道攻击:任何类型的利用实现细节的攻击,而不是密码学的弱点。例如,监控缓存访问、计时计算执行时间、分析电源使用情况或计算期间发出的声音 |
SIEM | 安全信息和事件管理。用于实时监控、警报、记录和分析网络事件的设备或软件工具 |
sinkhole | DNS sinkhole 是配置为阻止某些 URL 正确解析的 DNS 服务器 |
SMB | 服务器消息块,也称为 CIFS(通用 Internet 文件系统),一种用于共享文件、打印机和其他网络资源的协议 |
SOCKS | 通过代理服务器在客户端和服务器之间转发流量而不修改数据包的协议 |
spear-phishing | 鱼叉式网络钓鱼:专门针对个人或公司的网络钓鱼尝试 |
Spectre | 影响对分支预测执行推测执行的 CPU 的漏洞。攻击者可能会使用边信道攻击来利用推测执行来发现机密数据。另请参阅 |
SPF | 发件人政策框架。在 DNS 中声明哪些 IP 地址为其域发送邮件的协议。这允许电子邮件验证并有助于防止欺骗 |
spoof | 欺骗:欺骗性地模仿合法服务 |
SQLi | SQL注入。一种攻击类型,可以发送 SQL 查询以意外方式从数据库中读取、更新或删除信息 |
SSO | 单点登录。一种访问控制过程,允许用户仅通过一个身份验证服务对多个应用程序进行身份验证 |
steganography | 隐写术:在另一个文件中隐藏数据 |
STIX | 结构化威胁信息表达。共享威胁信息的标准格式 |
Stuxnet | 震网蠕虫,工控安全中的一种病毒:一种针对 SCADA 系统的著名蠕虫,导致 2010 年伊朗铀浓缩厂的离心机发生故障 |
TAXII | 可信的情报信息自动交换。共享威胁信息的协议 |
threat modeling | 威胁建模:识别潜在威胁、确定优先级和规划缓解措施的过程 |
Tor | 访问用于私人通信的覆盖网络的软件。Tor 的洋葱服务可以发布未被搜索引擎索引的网站 |
TOTP | 基于时间的一次性密码。与HOTP相同的算法,但用时间值替换事件计数器 |
U2F | 通用的第二个因素。一种开放式身份验证标准,允许从令牌(例如 USB 或 NFC 设备)注册公钥以进行用户身份验证 |
use after free | 一种软件错误,其中内存在释放给分配器后被重新使用。这可能导致软件崩溃或代码执行 |
vulnerability | 攻击者可以利用的软件或系统配置中的特定弱点 |
whaling | 一种针对高管和管理层的网络钓鱼 |
web proxy | 代理:用于访问 Internet 的中间服务器 |
whitelist | 白名单:允许访问的实体的显式列表。黑名单的反面 |
whois | 提供有关注册域名信息的查询协议。见RFC3912 |
whole disk encryption | “全盘加密”。基于软件的磁盘加密会加密磁盘上的所有内容,除了分区表,有时还有引导加载程序,具体取决于实现。硬件磁盘加密能够加密整个磁盘,包括分区表 |
WIDS | 无线入侵检测系统。用于 WLAN的IDS |
XSS | 跨站脚本。将恶意脚本注入受信任网站的常见攻击 |
XXE | XML 外部实体。一种针对解析 XML 的应用程序的攻击。错误配置的解析器将扩展外部链接以包含在返回的文档中 |
,除了分区表,有时还有引导加载程序,具体取决于实现。硬件磁盘加密能够加密整个磁盘,包括分区表 | |
WIDS | 无线入侵检测系统。用于 WLAN的IDS |
XSS | 跨站脚本。将恶意脚本注入受信任网站的常见攻击 |
XXE | XML 外部实体。一种针对解析 XML 的应用程序的攻击。错误配置的解析器将扩展外部链接以包含在返回的文档中 |
zero day | 0 day :一个新发现的漏洞。也可以写成“0天攻击” |