一、学习网络安全前应当注意什么?
1.网络安全意识与法律法规
当然就是要有安全意识保护好个人隐私,还有对相关法律的阅读学习,如《中华人民共和国网络安全法》和《中华人民共和国刑法》等。
2.多方面找到适合自己的理解
关于网络安全知识方面的相关视频或者其他前辈发表的文章都有,而且数量也非常之多。但那些都是别人对知识的理解可能并不适用于你,所以你就需要去找到每个步骤的目的是什么,如何通过这个步骤接近最终目的等等。
3.明确自己的决心与毅力
学习网络安全的难度与时间跨度相当的长,不可能一时半会儿就能在生活中有什么明显的正反馈,就像儿时学习一样,如果只是三天打鱼两天晒网的话,还是请不要浪费时间的好。
二、开始学习网络安全
1.从渗透测试基础开始
1.什么是渗透测试?
渗透测试(Penetration Testing),就是一种通过模拟恶意攻击者的技术与方法,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。
通俗一点就是换位思考,将自己带入攻击者的身份,用自己学习到的手段对目标电脑系统进行攻击拿取系统所有权,然后在思考获得所有权后能拿到什么利益,目标会失去什么利益,最后在想想如果我是目标遇到这种事怎么防范,怎么将损失降到最低。
2.渗透测试的分类
1.黑盒测试
黑盒测试(Black-box Testing)也称为外部测试(External Testing)。
采用这种方式时,渗透测试者将从一个远程网络位置来评估目标网络基础设施,并没有任何目标网络内部拓 扑等相关信息。他们完全拟真实网络环境中的外部攻击者,采用流行的攻击技术与工具,有组织、有步骤地对目标组织进行逐步渗透和入侵,揭示目标网络中一些已知或未知的安 全漏洞,并评估这些漏洞能否被利用,以获取控制权或者操作业务造成资产损失等。
黑盒测试的缺点是测试较为费时和费力,同时需要渗透测试者具备较高的技术能力。
优点在于,这种类型的测试更有利于挖掘出系统潜在的漏洞,以及脆弱环节和薄弱点等。
简单来说就是一切靠自己或者自己的团队,没有目标的详细信息,只能自己在所有可能中搜索可能存在的线索。
优点就是更加全面,几乎可以将所有可能存在漏洞的方面全都思考一遍。
缺点也正是因为思考方向的全面所以耗时也是最多的,甚至耗时耗力之后还一无所获,无故浪费时间。
2.白盒测试
白盒测试(White-box Testing)也称为内部测试(Internal Testing)。
进行白盒测试的渗透测试者可以了解到关于目标环境的所有内部和底层信息。这可以让渗透测试人员以最小的代价发现和验证系统中最严重的漏洞。白盒测试的实施流程与黑盒测试类似,不同之处在于无须进行目标定位和情报收集。渗透测试人员可以通过正常渠道从被测试机构取得 各种资料,如网络拓扑、员工资料甚至网站程序的代码片段等,也可以和单位其他员工进 行面对面沟通。
白盒测试的缺点是无法有效地测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对特定攻击的检测效率。
这种测试的优点是发现和解决安全漏洞所花费的时间 和代价要比黑盒测试少很多。
简单来说就是将目标的所有一切告诉你,甚至一点一点解析相关代码的含义,可以在有足够信息的前提下针对性进行攻击。
优点在于目的明确,信息充足,效率高,成本小,耗时也小,基本不会做白用功。
缺点在于一切明了,不需要思考其他方向,所以考虑就会不充分,也不能磨炼自己攻击的隐蔽性以及目标应对这种攻击所能产生的紧急安全措施。
3.灰盒测试
灰盒测试(Grey-box Testing)是白盒测试和黑盒测试基本类型的组合,它可以提供对目标系统更加深入和全面的安全审查。组合之后的好处就是能够同时发挥这两种渗透测试方法的优势。在采用灰盒测试方法的外部渗透攻击场景中,渗透测试者也类似地需要从外部逐步渗透进目标网络,但他所拥有的目标网络底层拓扑与架构将有助于更好地选择攻击途径与方法,从而达到更好的渗透测试效果。
简单来说就是将黑盒与白盒的优点在最大程度上都利用起来,拥有目标的底层代码框架,网络底层拓扑等进行更加有效的攻击。
3.渗透测试的标准流程(PTES)
1.前期交互阶段
在前期交互(Pre-Engagementlnteraction)阶段,渗透测试团队与客户组织进行交互讨论最重要的是确定渗透测试的范围、目标、限制条件以及服务合同细节。该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动。
简单来说就是与将要被攻击的目标客户进行沟通,确认攻击范围、攻击目标、有哪些限制不能做,以及最最重要的就是合法性,一定最好要有白纸黑字且合法的合同证明!
2.情报搜集阶段
在目标范围确定之后,将进入情报搜集(InformationGathering)阶段,渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。渗透测试者可以使用的情报搜集方法包括公开来源信息查询.GoogleHacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。而对目标系情报搜集是否充分在很大程度上决定统的情报探查能力是渗透测试者一项非常重要的技能,了渗透测试的成败,因为如果你遗漏关键的情报信息,你将可能在后面的阶段里一无所获。
简单来说就是通过你所能想到的所有途径,包括但不限于端口扫描、数据监听、相关聊天软件、社会工程学等等方面来收集可能存在可以利用的方面,可能是喜好、习惯、好奇心等等。情报的重要性应该已经不用再多言了,足量的信息是你能够成功攻击目标的关键之一。
3.威胁建模阶段
在搜集到充分的情报信息之后,渗透测试团队的成员们停下敲击键盘,大家聚到一起针对获取的信息进行威胁建模(ThreatModeling)与攻击规划。这是渗透测试过程中非常重要,但很容易被忽视的一个关键点。通过团队共同的缜密情报分析与攻击思路头脑风暴,可以从大量的信息情报中理清头绪,确定出最可行的攻击通道。
简单来说就是将收集到的情报信息进行规整,尽可能从中找到可以利用的地方并记录下来,将这些可利用的方面尝试串联起来找到一条符合逻辑,能够成功攻击到目标的方向。
4.漏洞分析阶段
在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访问控制权,即漏洞分析(VulnerabilityAnalysis)阶段。在该阶段,渗透测试者需要综合分析前几个阶段获取并汇总的情报信息,特别是安全漏洞扫描结果、服务査点信息等,通过搜索可获取的渗透代码资源,找出可以实施渗透攻击的攻击点,并在实验环境中进行验证。在该阶段,高水平的渗透测试团队还会针对攻击通道上的一些关键系统与服务进行安全漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出渗透代码,从而打开攻击通道上的关键路径。
简单来说就是根据找到的可行方向再确定好攻击流程,并搭建相同的实验环境进行实验,在实验中根据实验过程中的现象再一次尝试新的可以利用的地方,尽可能优化自己的攻击确保能够成功攻击。
5.渗透攻击阶段
渗透攻击(Exploitation)是渗透测试过程中最具有魅力的环节。在此环节中,渗透测试团队需要利用他们所找出的目标系统安全漏洞,,来真正入侵系统当中,获得访问控制权。渗透攻击可以利用公开渠道可获取的渗透代码,但一般在实际应用场景中,渗透测试者还需要充分地考虑目标系统特性来定制渗透攻击,并需要挫败目标网络与系统中实施的安全防御措施,才能成功达成渗透目的。在黑盒测试中,渗透测试者还需要考虑对目标系统检测机制的逃逸从而避免造成目标组织安全响应团队的警觉和发现。
简单来说就是真正的发起攻击,想办法一边击溃目标的安全防御措施,一边拿到目标的权限。
在黑盒测试中还要加一点,那就是如何将自己的攻击变得隐蔽,不会被目标发现。
6.后渗透攻击阶段
后渗透攻击(PostExploitation)是整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节。前面的环节可以说都是在按部就班地完成非常普遍的目标,而在这个环节中需要渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径。在不同的渗透测试场景中,这些攻击目标与途径可能是千变万化的,而设置是否准确并且可行,也取决于团队自身的创新意识、知识范畴、实际经验和技术能力。
简单来说就是你成功拿到目标权限,现在来思考自己在哪里能获得利益,亦或者自己怎么做可以给目标带来利益损失,影响目标业务与网络。
最后也是比较关键的就是,别忘记一定要藏好自己的小尾巴,清理好自己来过所残留的痕迹!
7.报告撰写阶段
渗透测试过程最终向客户组织提交,取得认可并成功获得合同付款的就是一份渗透测试报告(Reporting)。这份报告凝聚了之前所有阶段之中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案。
简单来说就是将自己完成这个攻击的所有流程写成报告的形式进行汇总,再一次理清攻击流程并将可以利用目标的薄弱点列出并以目标角度思考并列出防范措施。
4.渗透测试的意义
渗透测试是站在第三者的角度来思考企业系统的安全性的,通过渗透测试可以发觉企业潜在却未纰漏的安全性问题。企业可以根据测试的结果对内部系统中的不足以及安全脆弱点进行加固以及改善,从而使企业系统变得更加安全,减低企业的风险。