学习网络安全技术,需要学习哪些知识,先学什么?这是很多初学者的共同疑惑。下面,就这个话题展开探讨。
另外,如果你专门为了入侵他人而学习网络安全技术,请转变思想,并认真阅读《中华人民共和国网络安全法》,珍惜当下,遵纪守法,穷死不犯法。
一、基本技能
1、编程基础
编程在计算机领域称得上是必备技能了,这里将简单介绍一些适合新手入门学习的编程语言以及各种技术所需的编程语言。
(1)Python
Python是一种解释性脚本语言,它拥有众多的“库”。Python功能强大而且简洁,还可以将其他语言的模块轻松联结起来,故又被称为“胶水语言”。由于Python需要的代码量极少且易于学习,其程序源代码对于使用者完全开放,在开源软件工作者和编程初学者中具有极好的声誉。学习Python对人们日后的网络编程学习,以及Web渗透中部分工具的使用具有重要意义。
目前Python主要分为2.x与3.x两个版本,两者在语法上略有差异,且各有优缺点,大家可以根据自己的需求学习不同的版本。
(2)C语言
C语言是一种极其重要和流行的编程语言,具有极高的可移植性——同样的代码在Linux、Windows、Mac OS系统上都可以运行;它的运行速度极快,可以充分利用计算机的优点,表现出只有汇编语言才具有的精细控制能力。对于初学者来说,C语言是最容易上手的一门“大型”编程语言,C语言也与病毒分析和逆向技巧有重要联系。
(3)汇编语言
汇编语言是计算机的底层语言,大部分计算机的汇编语言基于X86指令集,计算机可通过汇编程序将汇编代码转化为机器码——计算机可以直接执行的代码。汇编可以使人们更清晰地了解计算机的运行原理,同时也对软件漏洞分析、逆向分析以及病毒机制的理解具有重要意义。
(4)JavaScript
JavaScript是一种脚本语言,在Web前端中担任着重要的角色,但它也是造成XSS(跨站脚本攻击)、CSRF等漏洞的罪魁祸首之一,所以说JavaScript是学习渗透测试和前端安全的一门必修课。
2、命令提示符
命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。
在Windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统。输入一些命令,cmd.exe可以执行,比如输入shutdown -s -t 30就会在30秒后关机。在Windows系统中,按Win+R键,输入cmd并回车,就可以调出cmd窗口。
许多应用在命令提示符窗口进行操作会更加简洁,比如输入Python可以启动Python解释器(前提是已搭建了Python环境),学会命令提示符的常用用法和语法后,可以写出批处理(*.bat)文件,来进行许多原始而又简单的操作。
类似地,Linux系统的Shell则是Linux的命令提示符,称为命令行,一般以终端方式打开。Linux的图形化界面虽然没有Windows易用,但是它在命令行方面比Windows更加成熟,大家可以尝试使用Linux的一些发行版,例如Ubuntu、Debian等,熟悉Linux系统对于提升工作效率是大有裨益的。
3、虚拟专用网络
虚拟专用网络(Virtual Private Network,即VPN),VPN能够让其他人连接到企业网络或内部网络,通过一个公用网络建立一个临时的、安全的连接,这是一条穿过混乱的公用网络的安全、稳定的隧道。同时VPN能提供高水平的安全性,使用高级的加密和身份识别协议保护数据,阻止没有被授权的用户接触数据。而在渗透测试中,使用VPN则可以进入一些无法正常访问的网络环境,从而进一步开展渗透测试。
4、虚拟机
虚拟机(Virtual Machine)指通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
简单来说,虚拟机就是操作系统中的一个沙盒,在沙盒之中执行操作的时候主系统是不会干扰到外部系统的,可以说是安全测试中必不可少的工具。
从20世纪五六十年代IBM提出虚拟机技术开始,虚拟机技术随着互联网的发展,日益成熟。目前,比较流行的虚拟机软件有VMware、VirtualBox和Virtual PC,它们都能在Windows系统中虚拟出多个计算机系统。当需要在其他系统环境测试软件或以另一个系统作靶机来测试某漏洞时,则可以在自己的同一台计算机上安装两个或多个操作系统,例如可以同时安装Linux与Windows操作系统,并且在虚拟机与物理机之间共享文件、应用程序及网络资源等,这将极大地提高工作效率。
转载请注明:XAMPP中文组官网 » 网络安全初学者指南:需要学习哪些知识,先学什么?