网安行业知识普及-1:基础知识扫盲

4 阅读12分钟

网络安全领域的核心思维框架

1.1 攻防对抗思维

网络安全本质上是一场攻击者与防御者之间的持续博弈。这个思维贯穿所有领域

  • 攻击者视角:如何找到漏洞?如何绕过防御?如何长期潜伏?
  • 防御者视角:如何发现攻击?如何修复漏洞?如何预防入侵?

1.2 纵深防御思维

常见的访问路径:

网络层防火墙 → 主机层防护 → 应用层安全 → 数据层加密 → 监控审计

1.3 边界模糊思维

传统的内网/外网边界已经模糊。移动办公、云服务、第三方接入让边界无处不在,也意味着威胁无处不在

网络安全的三大核心领域

领域核心问题典型角色
系统与网络安全如何保护网络和系统不被入侵安全运维 网络安全工程师
应用安全如何让写的代码没有漏洞?安全开发、代码审计师
恶意软件与逆向分析恶意代码做了什么?怎么分析它?病毒分析师、逆向工程师

领域一 系统与网络安全

3.1 核心概念:漏洞

漏洞是系统在设计上、实现或配置上的缺陷,可被攻击者利用来破坏系统安全

漏洞的生命周期

发现 -> 披露 -> 补丁发布 -> 修复

漏洞的分类

  • 0day漏洞:厂商不知道,没有补丁 → 最危险
  • 1day/N-day漏洞:已公开,有补丁,但很多人没打 → 最常用
  • CVE漏洞:已经公开到网上的漏洞

那么从0day漏洞到变成CVE漏洞的流程就是:

潜伏期:漏洞存在于代码中,但未被任何人发现

0day期(秘密利用期):攻击者或者少部分人发现了这个漏洞,并且没有发布到网上,利用此漏洞秘密进行攻击,厂商不知道,公众不知情,并且没有补丁。

披露期(从秘密到公开的过渡):漏洞被发现者知晓,比如厂商发现了这个漏洞,但是还没有公布到网上,此时漏洞还不是CVE,处于灰色时期。任何发现漏洞的人都可以将漏洞私下报给厂商,让厂商能够开发补丁,这就是负责任的披露。

CVE漏洞:在厂商发补丁,或者报给厂商一段时间,厂商迟迟不修复以及一些其他原因,发现者会向一个叫MITRE的组织申请编号,公布漏洞的所有技术细、影响范围,此时漏洞就变成了CVE漏洞,所有人都可以在公开数据库查到漏洞细节。

漏洞常见编号的分类

  1. CVE: 美国MITRE公司管理,为漏洞提供唯一、标准的国际标识符,示例:CVE-2021-44228,全球通用,仅提供基本索引信息。
  2. CNNVD:中国信息安全测评中心管理,国家级漏洞库,示例:CNNVD-202103-192,内容详细,保护漏洞分析、修复方案等。
  3. CNVD:国家计算机网络应急技术处理协调中心管理,联合各方力量,侧重漏洞的收集验证、预警发布和应急处置,协调厂商修复。

3.2 核心概念:攻击链

攻击者入侵一个目标的典型步骤,理解这个链条就知道防御该从哪里下手

阶段攻击者行为防御重点
1. 侦察收集目标信息(IP、域名、人员)减少信息暴露
2. 武器化制作攻击载荷(恶意文档、漏洞利用代码)文件沙箱检测
3. 投递发送钓鱼邮件、放上有毒U盘邮件网关、员工意识
4. 漏洞利用触发漏洞,获得初始权限补丁管理、应用防护
5. 安装植入后门、木马端点检测
6. 命令与控制建立C2通道,远程控制网络流量监控
7. 目标行动窃取数据、横向移动、破坏权限管控、审计

3.3 核心概念:ATT&CK框架

官网:attack.mitre.org

这是目前业界最权威的攻击技术知识库,由MITRE公司维护。它将攻击者的各种技术手段系统地分类整理。

  • 防御方可以用它来检查自己的防御覆盖了哪些攻击技术
  • 攻击方可以用它来规划攻击路径
  • 安全产品会用ATT&CK技术编号来标注自己检测了什么

3.4 核心概念:APT

APT(高级持续性威胁,Advanced Persistent Threat)= 国家/组织背景 + 高技术 + 长期潜伏 + 定向目标

  • 不是一种技术,而是一类攻击行动的统称
  • 是网络安全领域最高层级的对手
  • 常用0day漏洞和我们下面要说的各种对抗技术

如果说0day漏洞是黑客手中的“秘密武器”,CVE是这些武器的“公开档案”,ATT&CK是记录黑客“作战手法”的百科全书,那么**APT(高级持续性威胁)**就是运用所有这些手段的、最有组织、最有耐心的“顶尖犯罪集团”。

常见APT组织:

  • APT28 (Fancy Bear):被普遍认为与俄罗斯有关,主要针对政府、军队、媒体进行攻击,曾介入多国选举。
  • Lazarus Group (拉撒路集团):与朝鲜有关的组织,以攻击金融机构闻名,最轰动的“战绩”包括入侵孟加拉国央行,试图窃取近10亿美元,以及2017年的WannaCry勒索病毒事件。
  • APT3 (Gothic Panda):被普遍认为与中国有关的组织,主要针对国防、航空航天、科技领域进行情报窃取。

领域二 应用安全

4.1 核心概念:OWASP Top 10

开放Web应用安全项目发布的Web应用最危险的10类漏洞,每3-4年更新一次。这是每个开发者都应该了解的清单。

排名漏洞类型简单解释
1失效的访问控制用户可以访问不该访问的资源
2密码学失效使用了弱加密或没加密
3注入SQL注入、命令注入等
4不安全设计架构层面的缺陷
5安全配置错误默认密码、调试接口开着
6脆弱和过时的组件用了有漏洞的依赖
7身份识别失败认证机制有问题
8软件和数据完整性失败依赖被篡改、反序列化漏洞
9安全日志和监控缺失被入侵了都不知道
10服务端请求伪造(SSRF)服务器请求了不该请求的地址

4.2 核心概念:SAST、DAST、SCA

以不同的方式来进行源代码的安全检测

工具类型全称工作方式类比Java开发相关
SAST静态应用安全测试看源代码找漏洞代码审查机器人SonarQube、Fortify
DAST动态应用安全测试模拟攻击运行中的应用外部渗透测试OWASP ZAP、Burp Suite
SCA软件成分分析分析依赖库的安全性检查引入的第三方包OWASP Dependency-Check

4.3 核心概念:SDL/DevSecOps

安全开发生命周期开发安全运维一体化的合称。

核心思想:安全不应该是在最后才加的,而应该贯穿整个开发流程

  • 需求阶段:做威胁建模,想清楚系统可能被怎么攻击
  • 设计阶段:安全架构评审
  • 开发阶段:IDE插件实时检查、代码规范
  • 测试阶段:SAST/DAST/SCA扫描
  • 发布阶段:安全配置检查
  • 运维阶段:运行时防护、监控

领域三:恶意软件与对抗技术

5.1 核心概念:恶意软件分类

类型特点例子
病毒感染其他文件,需要宿主程序传播文件感染型病毒
蠕虫自我复制,通过网络自动传播Conficker
木马伪装成正常软件,诱骗用户运行盗号木马
勒索软件加密文件,索要赎金WannaCry
后门提供远程控制通道各种远控木马
Rootkit隐藏自身存在,深度潜入系统内核级Rootkit

5.2 核心概念:反侦察技术

反侦察技术指的是,恶意软件为了不被检测和分析,所使用各种手段来绕过的技术

反调试

  • 目的:不让安全人员用调试器跟踪
  • 手法:检测是否有调试器附加(IsDebuggerPresent)、检查执行耗时
  • Java视角:JVM层面的调试检测(虽然不常见)

反虚拟机

  • 目的:检测是否运行在分析环境
  • 手法:检查MAC地址(00:0C:29是VMware)、检查硬件设备名、尝试VMware后门指令
  • 检测库pafish(开源的反虚拟机检测工具)演示了各种检测技术

反沙箱

  • 目的:检测是否在自动化分析系统里
  • 手法:检查最近打开的文件是否为空、检查鼠标是否长时间没动、Sleep函数实际等待时间检测

反分析的综合应用

恶意软件启动
    ↓
检测虚拟机? → 是 → 退出或装睡
    ↓
检测沙箱? → 是 → 表现正常
    ↓
检测调试器? → 是 → 隐藏行为
    ↓
执行真正恶意逻辑

5.3 核心概念:代码保护技术

恶意软件如何隐藏自己的代码?

混淆

  • 名称混淆calculateTotalPricea
  • 控制流混淆:把顺序执行改成永无止境的switch-case
  • 字符串加密"http://evil.com" → 一堆乱码,运行时解码

加密

  • 加壳:真正的恶意代码是加密的,外面包一个很简单的解密代码
  • 多态:每次传播时,解密代码都改变
  • 变形:每次传播时,恶意代码本身也被重写,但功能相同

加壳的过程:

原始恶意代码 → 加密 → 密文 + 解密器 → 生成加壳后的文件
程序运行时 → 解密器运行 → 解密出真正代码 → 执行

5.4 核心概念:指纹检测与清除

指纹:能唯一识别一个对象(设备、软件、用户)的特征集合,所以指纹检测,一般是基于指纹检测库,运用针对不同如:WEB资产、二进制类型这样的检测软件,进行检测的

指纹检测 = 收集、分析、识别指纹的过程

  • 安全方:识别恶意软件、发现未知资产
  • 攻击方:信息收集,决定用什么漏洞去攻击

指纹清除 = 移除、修改、隐藏指纹的过程

  • 攻击方:清除日志、修改恶意软件特征(免杀)
  • 普通用户:指纹浏览器防止追踪
  • 红队:隐藏C2服务器,避免被蓝队发现

检测与清除的关系

检测库提供情报:你长什么样、哪里与众不同
清除技术执行行动:根据情报修改、隐藏特征
没有检测库,清除就是盲目的

核心角色与职责

角色核心职责需要的能力与Java开发的关系
安全开发写安全的代码、开发安全工具编程、安全编码规范最接近你现在的位置
代码审计审查别人代码有没有漏洞编程、漏洞原理需要深入理解漏洞
渗透测试模拟攻击,发现漏洞漏洞利用、网络知识需学习攻击方法
安全运维维护安全设备、响应告警网络、系统、日志分析偏运维方向
安全研究挖掘漏洞、分析恶意软件逆向、底层原理技术要求最高
安全产品经理设计安全产品安全知识、产品思维技术背景有优势

后续更新计划

第一阶段:打好基础

目标:建立安全思维,理解核心概念

  1. 学习Web安全基础
    • 理解OWASP Top 10的每个漏洞原理
    • 动手实验:用Damn Vulnerable Web Application(DVWA,一个包含常见漏洞的Web应用)练习
    • 工具:Burp Suite基础使用
  2. 理解你之前问到的所有概念
    • 反调试/反沙箱/反虚拟机(是什么、为什么)
    • 混淆/加密(原理、例子)
    • APT/0day(定义、影响)
    • 指纹检测/清除(概念、关系)

第二阶段:结合开发优势

目标:将Java开发经验转化为安全优势

  1. Java安全专项
    • Java安全编码规范(尤其是防止注入、XSS)
    • Java常见漏洞:反序列化漏洞原理、Shiro漏洞、Log4j漏洞
    • 理解你用的框架(Spring全家桶)的安全机制和常见坑
  2. 学习SAST工具
    • 理解静态分析原理
    • 用SonarQube扫描你自己的项目,看能发现什么问题
  3. 学习SCA工具
    • OWASP Dependency-Check
    • 分析你的项目依赖,看看有没有已知漏洞的组件

第三阶段:深入一个方向

目标:选择一个领域深入,成为专家

  • 如果喜欢开发:走安全开发/DevSecOps方向
  • 如果喜欢攻击:走渗透测试/红队方向
  • 如果喜欢分析:走恶意软件分析/逆向方向
  • 如果喜欢底层:走二进制安全/漏洞挖掘方向

实用资源推荐

学习平台

  • 国内:FreeBuf、先知社区、看雪论坛
  • 国外:PortSwigger Web Security Academy(免费,非常好)、HackTheBox、TryHackMe

工具推荐

  • Web安全:Burp Suite、OWASP ZAP
  • 代码安全:SonarQube、OWASP Dependency-Check
  • 二进制分析:IDA Pro(收费)、Ghidra(免费开源)
  • 指纹识别:observer_ward、WhatWeb、Wappalyzer

经典书籍

  • 《白帽子讲Web安全》
  • 《Web应用安全权威指南》
  • 《恶意代码分析实战》(如果你对二进制感兴趣)

值得关注的技术概念

  • ATT&CK框架:了解攻击技术分类
  • Kill Chain:理解攻击阶段
  • DevSecOps:了解安全如何融入开发流程