文章目录
一、自学网络安全学习的误区和陷阱
1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习
我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多
一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是目的,我们的目标不是成为程序员。建议在学习网络安全的过程中,哪里不会补哪里,这样更有目的性且耗时更少
2.不要把深度学习作为入门第一课
很多人都是冲着要把网络安全学好学扎实来的,于是就很容易用力过猛,陷入一个误区:就是把所有的内容都要进行深度学习,但是把深度学习作为网络安全第一课不是个好主意。原因如下:
【1】深度学习的黑箱性更加明显,很容易学的囫囵吞枣
【2】深度学习对自身要求高,不适合自学,很容易走进死胡同
3.不要收集过多的资料
网上有很多关于网络安全的学习资料,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书,或者收藏几十个视频
网上的学习资料很多重复性都极高而且大多数的内容都还是几年前没有更新。在入门期间建议“小而精”的选择材料,下面我会推荐一些自认为对小白还不错的学习资源,耐心往下看
二、学习网络安全的一些前期准备
1.硬件选择
经常会问我“学习网络安全需要配置很高的电脑吗?”答案是否定的,黑客用的电脑,不需要什么高的配置,只要稳定就行.因为黑客所使用的一些程序,低端CPU也可以很好的运行,而且不占什么内存.还有一个,黑客是在DOS命令下对进行的,所以电脑能使用到最佳状态!所以,不要打着学习的名义重新购买机器…
2.软件选择
很多人会纠结学习黑客到底是用Linux还是Windows或者是Mac系统,Linux虽然看着很酷炫,但是对于新人入门并不友好。Windows系统一样可以用虚拟机装靶机来进行学习
至于编程语言,首推Python,因为其良好的拓展支持性。当然现在市面上很多网站都是PHP的开发的,所以选择PHP也是可以的。其他语言还包括C++、Java…
很多朋友会问是不是要学习所有的语言呢?答案是否定的!引用我上面的一句话:学习编程只是工具不是目的,我们的目标不是成为程序员
(这里额外提一句,学习编程虽然不能带你入门,但是却能决定你能在网络安全这条路上到底能走多远,所以推荐大家自学一些基础编程的知识)
3.语言能力
我们知道计算机最早是在西方发明出来的,很多名词或者代码都是英文的,甚至现有的一些教程最初也是英文原版翻译过来的,而且一个漏洞被发现到翻译成中文一般需要一个星期的时间,在这个时间差上漏洞可能都修补了。而且如果不理解一些专业名词,在与其他黑客交流技术或者经验时也会有障碍,所以需要一定量的英文和黑客专业名词(不需要特别精通,但是要能看懂基础的)
比如说:肉鸡、挂马、shell、WebShell等等
三、自学网络安全学习路线
重点内容
获取远程控制权类恶意软件
维持远程控制权类恶意软件
完成远程控制权类恶意软件
恶意软件运行症状
恶意软件防范基本措施
一、恶意软件分类
1、分类依据
将入侵目标系统并达到特定目的的完整过程分解为三个阶段:
1、获取对目标系统的远程控制权。
2、维持对目标系统的远程控制权。
3、通过网络远程控制的方式,在目标系统上完成特定业务逻辑。
目标系统:可以是目标主机系统,也可以是目标网络设备。
根据不同恶意软件所完成的功能在完整的入侵过程中所处阶段的不同 ,将恶意软件分为三种类型。
2、获取远程控制权类
获取目标系统远程控制权类恶意软件的基本特征,是在未授权的条件下,能够利用各种手段获取对目标系统的远程控制权,即具有完整入侵过程中第一阶段的功能。典型的获取目标系统远程控制权类恶意软件有以下几种。
●Exploit(漏洞利用程序)。Exploit利用操作系统或应用程序中存在的缺陷(Bug,又称漏洞),可达到以非授权的方式远程控制目标系统或提升本地用户权限的目的。
●Trojan Horse(特洛伊木马),简称为Trojan(木马)。是伪装成合法程序以欺骗用户执行的一类恶意软件。
目前最严重的木马传播方式,是网页木马。对大多数缺乏基本防范措施的上网用户而言,出于猎奇等心理,在上网浏览过程中,极容易被一些标题“诱人”的网站连接吸引,比如花边新闻、暴力、色情等内容的链接。
●Worm(蠕虫)。蠕虫是具有自我繁殖能力,无需用户干预便可自动在网络环境中传播的一类恶意软件。Worm利用目标系统的Weak Password(弱口令)或目标系统中存在的程序缺陷获得对目标系统的远程控制权,并搜集目标系统内的相关信息,从而将Worm自身传染至与目标系统有网络联系的其他系统。
●Bot(僵尸程序)。Bot与Worm的共同点在于有自主“意识”,能自动完成某些动作。若某Worm的Payload部分包含一个Backdoor,则称该Worm为Bot,可以这样理解,可远程控制的Worm即为Bot。
●Virus(病毒)。病毒依附于宿主文件,在宿主文件被执行的条件下跟随宿主文件四处传播并完成特定业务功能的一类恶意软件。Virus的结构与Worm相似,除包含用于传播自身的Virus Header(病毒头部)外,还包含用于完成特定业务逻辑的Payload部分。
3、维持远程控制权类
获取对目标系统的远程控制权后,通过在目标系统中运行此类恶意软件,以维持对目标系统的持久远程控制。此类恶意软件用于完整入侵过程中的第二阶段。
●Backdoor(后门)。后门是一类运行在目标系统中,用以在未经授权的条件下,提供对目标系统远程控制服务的恶意软件。
需要注意的是,Backdoor与第一类恶意软件不同,Backdoor的作用是通过其运行以提供对目标系统未经授权的远程控制的服务,而第一类恶意软件需要利用各种手段来达到此目的,即Backdoor是以第一类恶意软件为前提的,Backdoor必须在目标系统上执行后才能提供远程控制的服务,因此必须先使用第一类恶意软件以获得在目标系统上执行程序的权限。
●Rootkit(隐蔽程序)。
Rootkit的概念起源于UNIX/Linux类操作系统,在这类操作系统中,root代表管理员的用户名,rootkit最初是指UNIX/Linux系统中一组用于获取并维持root权限的工具集。
当前Rootkit概念是指用于帮助入侵者在获取目标主机管理员权限后,尽可能长久地维持这种管理员权限的工具。
获取管理员权限的过程不由Rootkit来完成,即Rootkit的使用是基于已经获得了管理员权限的假设。
辨析:
Backdoor仅提供一条非授权访问、控制目标系统的“通道”,但并不对保护这条通道,因而容易被目标系统上的管理员或网络安全设备察觉或检测到。 Rootkit的作用是要尽可能长久地维持对目标系统的远程控制,其基本任务就是要隐藏Backdoor所提供的通道,尽可能使得目标系统上的管理员或安全设备不能察觉、检测到该通道的存在。
4、完成特定业务逻辑类
●Spyware(间谍软件)。这是典型的第三类恶意软件,用于从目标系统中收集各种情报、信息,如商业、军事情报,用户信用卡号、个人隐私信息及文档,各种网站或邮箱用户名、口令等信息。
●Spamware(垃圾信息发送软件)。为了避免被追查,Spam(非期望的垃圾信息,如垃圾邮件)的发送者通常不会直接使用自己的主机发送垃圾信息。
●Adware(垃圾广告软件)。它运行在被入侵主机中,用于以各种方式显示垃圾广告。Adware在目标系统中的运行途径也与Spyware类似。
二、恶意软件运行症状
1、查看网络连接
使用Windows系统内置的网络状态查看命令netstat,查看当前IP地址为192.168.1.111的主机当前网络状态。netstat命令所带参数“o”,表示列出执行相关网络操作的进程的进程ID。
该主机发出了大量目标地址不定,目标端口为445的TCP连接请求(对应TCP状态为SYN_SENT)。
本例中的恶意软件在随机扫描与主机192.168.1.1同处于一个B类IP地址段的其它主机。由下图可见,此恶意软件的进程ID为3248。
检查系统中是否由非预期的网络通信,是了解系统中是否有恶意软件在运行的基本方法。
恶意软件入侵目标主机后,必然会与外界进行通信,这个通信过程或许频繁,或许是间歇性的,仔细观察所用计算机与外界的通信,则可能从一些蛛丝马迹中找出恶意软件的动作痕迹。
若系统中没有网络相关操作的程序在运行,使用netstat命令查看当前网络状态,则应当如下图所示:
除了本地几个TCP端口处于监听(Listening)状态、几个UDP端口处于开放状态外,系统没有与外界其它任何主机有网络联系。
2、查看系统进程
一些不够高明的恶意软件,在运行时会显著提高目标操作系统的CPU占用率,从而导致目标主机用户感觉运行速度明显变慢。更严重时,若目标系统同时被多个恶意软件入侵,占用目标系统的大量CPU资源及内存资源,此时,目标系统的正常应用将因资源不足而运行缓慢。
当前的计算机硬件速度已相当快,用来处理日常办公软件等应用应该很“流畅”,若在使用这类非游戏程序及专业计算处理程序时,感觉计算机反应“迟钝”,则很可能是因为计算机内有非预期的程序在运行,尤以恶意软件存在可能性为大。
查找可疑进程并不是一件容易的事情。要了解哪个进程可疑,必须要了解、熟悉正常状态下系统里有哪些进程。下图列出了Windows XP/2003系列操作系统中常见的进程。
图中深色框内的进程“svch0st.exe”(文件名的倒数第三个字符为数字0),伪装成系统进程“svchost”(倒数第三个字符为小写字母o),如果再将可执行文件图标改成和“svchost.exe”一致,并将文件描述、公司信息都进行相应修改,则用户很容易被欺骗,误以为“svch0st.exe”是一个系统进程。
3、查看隐藏文件
正确的设置:
“Hidden files and folders(隐藏文件和文件夹)”,正确的设置如图,应设置为“Show hidden files and folders(显示隐藏的文件和文件夹)”
“Hide file extensions for known file types(隐藏已知类型文件的扩展名)”,这个选项中的勾“√”必须去掉。否则Windows系统会将大多数文件的扩展名忽略不显示。
例如,某个可执行文件,完整文件名为“test.doc.exe”,Windows认为“.exe”文件是已知类型文件(可执行文件),则不显示其扩展名,在资源管理器中列出的是“test.doc”,从而欺骗用户打开。
正确的设置:
“Hide protected operation system files(隐藏受保护的操作系统文件)”,这个选项中的勾“√”也必须去掉。
否则,恶意软件只需修改系统文件属性,即可伪装成所谓的“操作系统文件”,因而必须让所有的文件都显示出来,不管是不是真的操作系统文件。
三、恶意软件基本防范措施
1、针对获取远程控制权类
防范恶意软件,需根据恶意软件的不同类型,采取不同措施。
针对获取目标系统远程控制权类:
首先需要做到的基本要求是及时更新补丁。更新补丁包括操作系统补丁和各种应用程序的补丁。
操作系统的补丁不更新,很可能让入侵者在网络上无声无息地就进入受害者的系统。
应用系统的补丁不更新,则会导致即使在正常操作下也会因为应用软件的漏洞而被入侵,如典型的Office系列漏洞。作为正常运行状态,用户打开一个Word文档,或者Excel文档、PowerPoint文档,不应当出问题,但是在利用Office软件漏洞的前提下,通过精心构造的Word等文档,能使得用户在打开文档的同时,恶意软件被执行,从而导致系统被入侵。
2、针对获取远程控制权类
针对维持远程控制权类恶意软件,基本的防范手段是:
安装杀毒软件及防火墙;
对系统内所有的文件操作进行监控,并定期对系统进行扫描;
阻止来自其它未授权计算机的网络连接;
关注信息安全动态,当出现新的恶意软件时,及时使用专杀工具对系统进行完整扫描;
在此基础上,注意经常关闭网络应用程序,以检查系统有无非预期的网络通信动作。
杀毒软件、恶意软件专杀工具等,都只能利用恶意软件的特征码进行扫描,而出于某些特殊目的,网络上的某些恶意软件并没有被各大杀毒软件厂商捕获到样本,因而不可能被任何杀毒软件查出。
因此,过于依赖杀毒软件,以为安装了杀毒软件并及时更新病毒库就可以高枕无忧,是很不明智的行为。
3、针对完成特定业务逻辑类
对完成特定业务逻辑类恶意软件的防范,与维持远程控制权类恶意软件防范类似,只能通过杀毒软件、专杀工具对系统进行扫描。
这种手段只能起到一定程度上的辅助作用。
当前的恶意软件种类繁多、变种更新频率很快,仅靠杀毒软件等方法,都只能对恶意软件的清除起到有限的作用。一旦恶意软件入侵到系统中,往往会对系统造成破坏,因而很难彻底清除。在很多情况下,只能通过格式化系统分区、重新安装操作系统的方式来对系统内的恶意软件进行清除。
即使格式化分区,甚至格式化整个硬盘的所有分区,乃至将硬盘所有分区都删除重新分区,也不能保证恶意软件就被彻底清除了。
硬盘的第一个扇区称为MBR(Master Boot Record,主引导记录),格式化、重新分区动作中,MBR的开头一段代码,以及紧跟MBR的后续几十个扇区的数据,都不会受到影响。
即使将上述MBR等扇区的内容清除,也不能保证彻底清除了系统内的所有恶意软件呢!
如果恶意软件驻留在主板BIOS芯片,或者显卡网卡BIOS芯片,乃至网卡的启动芯片里。则无论怎样格式化硬盘、清除硬盘MBR,或者低级格式化硬盘,都丝毫不会影响到恶意软件的存在。
一旦计算机被恶意软件入侵,特别是在管理员权限下,可以对计算机进行任何操作,包括对计算机的所有硬件(如主板BIOS等)的操作。如遇到这种高级Rootkit,则通过这台计算机的操作是根本无法实现恶意软件的检测、清除的。