网络安全的学习路线是怎么样的?
最近看到网上有很多人在问诸如:“怎样成为网络安全工程师”等相关问题,这可能与近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,网络信息安全工程师随之成为炙手可热的职业。关于职业前景的详细分析
首先,我们来看看网络安全工程师的定义:指遵照信息安全管理体系和标准工作,防范黑客入侵并进行分析和防范,通过运用各种安全产品和技术,设置防火墙、防病毒、IDS、PKI、攻防技术等。同时进行安全制度建设与安全技术规划、日常维护管理、信息安全检查与审计系统帐号管理与系统日志检查等的人员。
从这个定义中,我们能清楚的看到从事网络安全工作需要掌握的技能。这些知识和技能不是一朝一夕就能修成正果的。需要注意的是:计算机知识与网络安全息息相关,学校学习的计算机基础知识是进阶到网络安全学习的基石,因为网络安全工程师是网络安全众多分支中的一条路径,所以,必须要把计算机知识这个根基打牢,这样,后期在学习或应用中,才能在网络安全众多分支中自如切换。所以,首先要打击一下急于求成的心态,抛弃那些标榜“宝典”、“诀窍”、“XX天从入门到精通”的书籍或教程,踏踏实实的学习每一项理论和技能才是正道。
进入正题,接下来,我们来分享一下如何由浅入深、循序渐进的get网络安全技能。
一、百思莫解之菜鸟篇
对于刚接触网络安全的门外汉,无论是自学还是上课都有一个大前提,就是读大量的书,掌握安全基本知识。因为网络安全涉及的知识面广、术语多、理论知识多,需要我们投入很多时间和精力来学习,掌握网络安全基本知识,安全的概念和定义、常见的安全标准等。以下几本书至少应该读一遍,一开始你可能会感觉理论部分看得云里雾里的,但是坚持啃下来,在今后的学习中你会发现,这部分的积累非常重要。
参考书:《CIW:安全专家全息教程》《计算机系统安全》《计算机网络安全导论》《winsock网络编程经络》
二、茅塞顿开之小白篇
掌握了必要的理论,就要开始展开技能方面的学习了。具体的技能与之前的理论结合起来,你会有茅塞顿开的感觉。这部分的学习主要包括:解密与加密、协议层安全。
解密与加密
软件的加密与解密是一个迷人的研究领域,它几乎可以与任意一种计算机技术紧密结合——密码学、程序设计语言、操作系统、数据结构。没有加密技术,任何网络安全都是一纸空谈,加密学的应用贯穿了整个网络安全的学习过程中。
先了解一下计算机中的程序。高级语言编写的程序,会编译成机器语言在CPU中执行,如Visual C++等。由于机器语言与汇编语言是一一对应的,因此可将机器语言转化成汇编语言,这个过程称之为反汇编。而汇编语言可能读性是比较好的,这样就可分析程序流程,解析其功能了,这个过程就是解密(俗称破解)。也就是说,解密的基础是建立在汇编语言级别上的,因此想涉足这一领域的朋友,汇编语言一定得学好。等汇编学好了,建议再掌握Win32编程。
学习解密与加密是很累的,需要花费大量的时间,而且会经常碰壁,三五天毫无进展是极为平常的事情,除了勤奋+执着,没有别的秘诀。但掌握这方面技术可以通过跟踪软件,提高自己的调试技能,了解他人程序思路,写出更好的程序。
参考书:《Windows程序设计》《Windows环境下32位汇编语言程序设计》《密码学》《密码工程实践指南》《秘密学导引》《Windows95 系統程式设计大奧秘》《windows高级编程指南》《Windows2000编程技术内幕》《Win32系统编程—Windows 2000应用程序开发指南》
协议层安全
协议层安全主要涉及和TCP/IP分层模型有关的内容,包括常见协议的工作原理和特点、缺陷、保护或替代措施等等。系统学习TCP/IP方面的知识有很多原因。要适当地实施防火墙过滤,安全管理员必须对于TCP/IP的IP层和TCP/UDP层有很深的理解、黑客经常使用TCP/IP堆栈中一部分区或来破坏网络安全等。所以你也必须清楚地了解这些内容。
参考书:《TCP/IP详解 卷1:协议》《用TCP/IP进行网际互联第一卷原理、协议与结构》
三、驾轻就熟之高手篇
掌握了以上基础知识和技能,你就不再是网络安全小白了,下一阶段的学习会让你成为网络安全高手,对理论做到触类旁通,对技术做到驾轻就熟。高手的技能修炼主要包括两部分:Windows安全(攻击与防御)和Unix/Linux安全(攻击与防御)。
Windows安全(攻击与防御)
因为微软的Windows NT操作系统已被广泛应用,所以它们更容易成为被攻击的目标。
对于Windows安全的学习,其实就是对Windows系统攻击与防御技术的学习。而Windows系统安全的学习内容将包括:用户和组、文件系统、策略、系统默认值、审计以及操作系统本身的漏洞的研究。
参考书:《黑客攻防实战入门》《黑客大曝光》《狙击黑客》
Unix/Linux安全(攻击与防御)
随着Linux的市占率越来越高,Linux系统、服务器也被部署得越来越广泛。Unix/Linux系统的安全问题也越来越凸显出来。作为一个网络安全工作者,Linux安全绝对占有网络安全一半的重要性。但是相对Windows系统,普通用户接触到Linux系统的机会不多。Unix/Linux系统本身的学习也是他们必须饿补的一课!
参考书。《Red Hat Linux 9桌面应用》《Red Hat Linux 9系统管理》《Red Hat Linux 9网络服务》《Red Hat Linux安全与优化》《Unix 黑客大曝光》
四、豁然开朗之达人篇
掌握了Windows安全和Unix/Linux安全,你一定迫不及待的想搞定防火墙技术和入侵监测系统(IDS)。到了这个阶段,你会发现网络安全非常有趣,学习的过程就是满足好奇心的过程,而完成了这一部分的学习后,你就可以成为一名合格的网络安全工程师了。
防火墙技术
防火墙技术是网络安全中的重要元素,是外网与内网进行通信时的一道屏障,一个哨岗。除了应该深刻理解防火墙技术的种类、工作原理之外,作为一个网络安全的管理人员还应该熟悉各种常见的防火墙的配置、维护。
至少应该了解以下防火墙的简单配置:
1)常见的各种个人防火墙软件的使用;
2)基于ACL的包过滤防火墙配置(如基于Windows的IPSec配置、基于Cisco路由器的ACL配置等;
3)基于Linux操作系统的防火墙配置(Ipchains/Iptables);
4)ISA配置;
5)Cisco PIX配置;
6)Check Point防火墙配置;
7)基于Windows、Unix、Cisco路由器的VPN配置。
参考书:《网络安全与防火墙技术 》《Linux防火墙》《高级防火墙ISA Server 2000》《Cisco访问表配置指南》《Check Point NG安全管理》《虚拟专用网(VPN)精解》
入侵监测系统(IDS)
防火墙不能对所有应用层的数据包进行分析,会成为网络数据通讯的瓶颈。既便是代理型防火墙也不能检查所有应用层的数据包。
入侵检测是防火墙的合理补充,它通过收集、分析计算机系统、计算机网络介质上的各种有用信息帮助系统管理员发现攻击并进行响应。可以说入侵检测是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监测,从而提供对内部攻击、外部攻击和误操作的实时保护。
到了达人阶段,相信你已经跃跃欲试,想要凭借自己的所学做出点成绩了。但是,理论的学习固然重要,但最后还是要落实到实践,一个精通理论而不熟悉技术和产品的人不可能成为合格的网络安全工程师。
如果没有机会实践,比较好的方法是多分析成功案例。初入网络安全行业的工程师不会有太多的案例上手,弥补这块短板的方式就是研究别人的成功案例,从案例分析中汲取技术、技能,掌握方案设计思路,熟悉相关产品,尽快提高在高压环境下现场解决问题的能力。
另外,推荐两个关注网络安全和技术的网站:http://freebuf.com、https://pentesterlab.com。这里有最新网络安全资讯、技术分享,也许还能在这里遇到志同道合的人,
网络安全工程师作为技术与市场之间的最佳“纽带”,未来可选择的职位很丰富。虽然网络安全工程师的工作既辛苦又难做,但恰恰最锻炼一个人的意志与能力。如果能够坚持下来,成为白帽黑客指日可待。
最后,当你学习网络安全时遇到瓶颈了该怎么办?借用TK主教的一段话:
从事任何方向的技术研究,不知道该干什么的时候,就问自己四个问题:
•这个方向上最新进展是什么? 都知道吗?
•这个方向上最著名的专家有哪些?他们的研究都看过吗?
•这个方向上最著名的技术社区有哪些?精华帖都看过一遍吗?
•这个方向上最重要的文章、工具有哪些?文章都看过吗?工具都分析过吗?
对于每一个从事网络安全的人来说,庞大的网络都如宇宙般浩瀚无垠,而作为这个联通世界的巨网的保卫者,我们当心存敬畏。
最后,一句话送给立志于网络安全领域的奋斗者们: Do not go gentle into that good night,“面对浩瀚的宇宙,没有心里的爱和勇敢,我们就真的太渺小了。”——《星际穿越》
相关文章:
网络安全的学习路线是怎么样的?
最近看到网上有很多人在问诸如:“怎样成为网络安全工程师”等相关问题,这可能与近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,网络信息安全工程师随之成为炙手可热的职业。关于职业前景的详…...

QT学习07:五种按钮控件
文章首发于我的个人博客:欢迎大佬们来逛逛 文章目录 抽象类:QAbstractButtonQPushButtonQToolButtonQCommandLinkButtonQRadioButtonQCheckBoxQButtonGroup 抽象类:QAbstractButton 是所有按钮类的祖先。 QAbstractButton的信号:…...

chatgpt赋能python:Python如何截图运行结果
Python如何截图运行结果 介绍 Python是一种高级编程语言,非常流行。它具有许多有用的功能和库,使其成为许多开发人员的首选编程语言之一。但是,当您运行Python程序并需要与他人共享结果时,您可能需要截图运行结果。在本文中&…...
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用JPEG图像压缩功能(C#)
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用JPEG图像压缩功能(C#) Baumer工业相机Baumer工业相机BGAPISDK和JPEG图像压缩功能的技术背景Baumer工业相机通过BGAPISDK使用JPEG图像压缩功能1.引用合适的类文件2.使用BGAPISDK设置堡盟相机JPEG图像压缩模…...
RT-Thread FAL组件
目录 1、FAL介绍2、使用FAL2.1 下载FAL软件包2.2 FAL移植2.2.1 定义flash设备2.2.2 定义flash设备表&分区表2.2.3 加入到mdk工程3、MSH测试1、FAL介绍 FAL(Flash Abstraction Layer) Flash抽象层,是对Flash及基于Flash的分区进行管理、操作的抽象层,对上层统一了Flash及分…...

【git切换分支/tag】git stash保存暂不提交的更改
目录 问题git stash使用方法git stash pop 还原修改 git stash使用、修改指定tag的代码 其他git指令 问题 情景:分支1上开发新功能,临时切换到其他分支或tag上修改bug。 1、直接切换:如果没有冲突,分支1的修改会带到要切换的分支…...

【爬虫】4.5 实践项目——爬取当当网站图书数据
目录 1. 网站图书数据分析 2. 网站图书数据提取 3. 网站图书数据爬取 (1)创建 MySQL 数据库 (2)创建 scrapy 项目 (3)编写 items.py 中的数据项目类 (4)编写 pipelines_1.py …...

Socket 编程:基础概念辨析
文章目录 参考Socket APIBSD UNIX 操作系统BSD UNIX 与 Socket API Socket套接字套接字地址套接字 VS 套接字地址套接字的表示方法 TCP 套接字与 UDP 套接字TCP 套接字监听套接字连接套接字 UDP套接字 TCP 服务器端与 TCP 客户端通信的基本流程服务器端客户端 参考 项目描述刘…...
git lfs下载指定文件git lfs pull --include=“*.bin“
git lfs pull --include"*.bin"...
JavaScript 数组 函数
目录 1.数组的概念 2.创建数组 2.1 数组创建的方式 2.2利用new 创建数组 2.3 利用数组字面量创建数组 2.4 数据元素的类型 3.获取数组当元素 3.1数组元素的索引 4.遍历数组 4.1数组的长度 5.数组中新增元素 5.1通过修改length 长度新增数组元素 5.2通过修改数组索引…...
【哈佛积极心理学笔记】第7讲 逆境还是机遇
第7讲 逆境还是机遇 How can we raise base level? One of the things is coping, putting ourselves on the line. How to become an optimist. Optimism as an interpretation style, not as a Pollyannaish feel good kind of approach. Three approaches: First is to t…...

java springboot整合MyBatis做数据库查询操作
首先 我们还是要搞清楚 MyBatis 工作中都需要那些东西 首先是基础配置 你要连哪里的数据 连什么类型的数据库 以什么权限去连 然后 以 注解还是xml方式去映射sql 好 我们直接上代码 我们先创建一个文件夹 然后打开idea 新建一个项目 然后 按我下图的操作配置一下 然后点下一…...
11 二阶矩方法和Lovasz局部引理
文章目录 11 二阶矩方法和Lovasz局部引理11.1 The Second-Moment Method——二阶矩方法11.1.1 二阶矩方法定理11.1.2 二阶矩方法的应用——随机图阈值 11.2 Lovasz Local Lemma——Lovasz局部引理11.2.1 LLL定理11.2.2 LLL定理证明 11.3 Asymmetric LLL 11 二阶矩方法和Lovasz局…...

低代码赛道拥挤 生态聚合成为破局关键
在云计算和移动互联网的强劲推动下,企业数字化转型的步伐正在加速,对于软件应用开发的需求也呈现出爆发式的增长。这样的背景下,低代码平台凭借其独特的优势迅速崛起并引发了业界的广泛关注。 自2020年以来,低代码领域已成为投资…...

B+树:高效存储与索引的完美结合
目录 引言:一、定义:二、B树和B树三、特点:四、应用场景:总结: 引言: 在计算机科学领域中,数据结构的选择对于高效存储和索引数据至关重要。B树(B tree)作为一种自平衡的…...

左右排版的PDF,如何转换为单栏排版的word?
将左右排版的PDF转换为单行排版的WORD文字版需要进行以下步骤: 1. 使用PDF转换工具将PDF转换为WORD格式。有很多在线或离线的PDF转WORD工具可供选择,例如金鸣表格文字识别、Adobe Acrobat、Smallpdf、Zamzar等。 2. 打开WORD文档后,选择“页…...

D349周赛:注意题目提示里,数据范围隐含的算法复杂度提示
文章目录 6470.既不是最大值也不是最小值完整版为什么两个for循环时间复杂度还是不变的 6465.执行子串操作后的字典序最小字符串思路最开始的写法题意理解的问题 修改版a必须单独拿出来的原因 6449.收集巧克力思路注意提示信息 完整版补充:由数据范围反推算法复杂度…...
iOS -- block one
demo贴上我的github blockOne 块类似于匿名函数或闭包,在许多其他编程语言中也存在类似的概念。 Block 以下是块的一些基本知识: 块的定义:块是由一对花括号 {} 包围的代码片段,可以包含一段可执行的代码。块的定义使用 ^ 符号…...
第十二篇:强化学习SARSA算法
你好,我是郭震(zhenguo) 今天强化学习第二十篇:强化学习SARSA算法 1 历史 SARSA(「State-Action-Reward-State-Action」)算法是一种经典的强化学习算法,用于解决马尔可夫决策过程(MDP࿰…...

电力vr智能巡检模拟实操教学灵活性高成本低
传统电力智能运检服务培训采用交接班期间开展智能带电检测仪器的操作培训,教学时间、场地及材料有限,有了VR技术,将推动电力智能运检服务培训走向高科技、高效率和智能化水平。 深圳华锐视点凭借着对VR实训系统的深入研发和升级,多…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...