网络安全简单入门
- 网络安全简单入门
- 内容大纲
- 1、安全策略
-
- 1.1、安全三要素
- 1.2、安全评估
-
- 1. 资产等级划分
- 2. 威胁分析
- 3. 风险分析
- 4. 确认解决方案
- 1.2、一般流程
- 2、安全工具(漏洞扫描器)
-
- 2.1、AppScan
-
- 1. 使用步骤
- 2.2、Acunetix
-
- 1.使用步骤
- 3、其他
-
- 3.1、关于工具的问题
-
- 1. 漏洞扫描器
- 3.2、银弹理论
- 3.3、原理
- 4、结尾
网络安全简单入门
内容大纲
- 策略制定
- 安全工具
- 其他
1、安全策略
1.1、安全三要素
要全面地认识一个安全问题,我们有很多种办法,但首先要理解安全问题的组成属性。前人通过无数实践,最后将安全的属性总结为安全三要素,简称CIA。
安全三要素是安全的基本组成元素,分别是机密性(Confidentiality)、完整性(Integrity)、可用性(Availability)。
机密性要求保护数据内容不能泄露,加密是实现机密性要求的常见手段。
举一个例子,存放一个文件,加入文件不是放在抽屉里,而是放在一个透明的玻璃盒子里,那么虽然外人无法直接取得文件,但因为玻璃盒子是透明的,文件内容可能还是会被人看到,所以不符合机密性要求。但是如果给文件增加一个封面,掩盖了文件内容,那么也就起到了隐藏的效果,从而满足了机密性要求。可见,我们在选择安全方案时,需要灵活变通,因地制宜,没有一成不变的方案。
完整性则要求保护数据内容是完整、没有被复改的。常见的保证一致性的技术手段是数字签名。
传说清朝康熙皇帝的遗诏,写的是“传位十四子”,被当时还是四阿哥的胤镇寡改了遗诏,变成了“传位于四子”。姑且不论传说的真实性,在故事中,对这份遗诏的保护显然没有达到完整性要求。如果在当时有数字签名等技术,遗诏就很难被算改。从这个故事中也可以看出数据的完整性、一致性的重要意义。
可用性要求保护资源是“随需而得”。
假设一个停车场里有100个车位,在正常情况下,可以停100辆车。但是在某一天,有个坏人搬了100块大石头,把每个车位都占用了,停车场无法再提供正常服务。在安全领域中这种攻击叫做拒绝服务攻击,简称DoS(Denial of Service)。拒绝服务攻击破坏的是安全的可用性。
1.2、安全评估
一个安全评估的过程,可以简单地分为4个阶段:资产等级划分、威胁分析、风险分析、确认解决方案。
1. 资产等级划分
资产等级划分是所有工作的基础,这项工作能够帮助我们明确目标是什么,要保护什么。
前面提到安全三要素时,机密性和完整性都是与数据相关的,在可用性的定义里。“资源”这个概念描述的范围比数据要更加广阔,但很多时候,资源的可用性也可以理解为数据的可用性。
在互联网的基础设施已经比较完善的今天,互联网的核心其实是由用户数据驱动的一用户产生业务,业务产生数据。互联网公司除了拥有一些固定资产,如服务器等死物外,最核心的价值就是其拥有的用户数据,所以一互联网安全的核心问题,是数据安全的问题。
所以在对互联网公司拥有的资产进行等级划分,就是对数据做等级划分。有的公司最关心的是客户数据,有的公司最关心的是员工资料信息,根据各自业务的不同,侧重点也不同。做资产等级划分的过程,需要与各个业务部门的负责人一一沟通,了解公司最重要的资产是什么,他们最看重的数据是什么。了解公司的业务,公司所拥有的数据,以及不同数据的重要程度,为后续的安全评估过程指明方向。
2. 威胁分析
在安全领域里,我们把可能造成危害的来源称为威胁(Threat),而把可能会出现的损失称为风险(Risk)。风险一定是和损失联系在一起的。
什么是威胁分析?威胁分析就是把所有的威胁都找出来。一般是采用头脑风暴法。当然,也有一些比较科学的方法,比如使用一个模型,帮助我们去想,在哪些方面有可能会存在威胁,这个过程能够避免遗漏,这就是威胁建模。
介绍一种由微软提出的威胁建模的方法STRIDE模型
威胁 | 定义 | 对应的安全属性 |
---|---|---|
Spoofing(伪装) | 冒充他人身份 | 认证 |
Tampering(慕改) | 修改数据或代码 | 完整性 |
Repudiation(抵赖) | 否认做过的事情 | 不可抵赖性 |
InformationDisclosure(信息泄露) | 机密信息泄露 | 机密性 |
Denial of Service(拒绝服务) | 拒绝服务 | 可用性 |
Elevation of Privilege(提升权限) | 未经授权获得许可 | 授权 |
3. 风险分析
影响风险高低的因素,除了造成损失的大小外,还需要考虑到发生的可能性。
如何更科学地衡量风险呢?再介绍一个DREAD模型,它也是由微软提出的。DREAD 也是几个单词的首字母缩写,它指导我们应该从哪些方面去判断一个威胁的风险程度。
等级 | 高(3) | 中(2) | 低(1) |
---|---|---|---|
Damage Potential ( 破坏潜力 ) | 获取完全验证权限:执行管理员操作:非法上传文件 | 泄露敏感信息 | 泄露其他信息 |
Reproducibilty(再现性 ) | 攻击者可以随意再次攻击 | 攻击者可以重复攻击,但有时间限制 | 攻击者很难重复攻击 |
Exploitability( 可利用性 ) | 初学者在短期内能掌握攻击方法 | 熟练的攻击者才能完成这次攻击 | 漏洞利用条件非常苛刻 |
Affected users(受影响的用户) | 所有用户,默认配置,关键用户 | 部分用户,非默认配置 | 极少数用户,匿名用户 |
Discoverability(可发现性) | 漏洞很显眼,攻击条件很容易获得 | 发现该漏洞极其困难需要深入挖掘漏洞 | 发现漏洞及其困难 |
高危:12~15分中危:8一11分低危:0一7分
4. 确认解决方案
安全评估的产出物,就是安全解决方案。解决方案一定要有针对性,这种针对性是由资产等级划分、威胁分析、风险分析等阶段的结果给出的。
作为安全工程师,要想的就是如何通过简单而有效的方案,解决遇到的安全问题。安全方案必须能够有效抵抗威胁,但同时不能过多干涉正常的业务流程,在性能上也不能拖后腿。
呢么一份好的安全方案对用户应该是透明的,尽可能地不要改变用户的使用习惯。
1.2、一般流程
2、安全工具(漏洞扫描器)
2.1、AppScan
AppScan是IBM公司出品的一个领先的 Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界。AppScan 可自动化Web应用的安全漏洞评估工作,能扫描和检测所有常见的Web 应用安全漏洞,例如,SQL注入(SQL injection)、跨站点脚本攻击(cross-site scripting)、缓冲区溢出(buffer overflow)及最新的Flash/Flex 应用和Web 2.0应用暴露等方面的安全漏洞扫描。
1. 使用步骤
第一步:打开AppScan中文版,新建扫描,拥有web应用程序、web服务、外部客户机等三种基础扫描方式;
第二步:扫描配置向导,输入项目入口访问链接;
第三步:登录方式记录,可通过自动方式,预先设置正确的用户名密码;
第四步:设置扫描策略,提供缺省值、侵入式、基础结构、应用程序、第三方等选择,默认为缺省值;
配置测试和优化,建议默认快速即可;
第五步:完成扫描引导配置,软件提供全自动、半自动、手动等几种选项,默认全自动就好;
点击完成后,选择自动保存扫描过程后进行自动扫面;
第六步:最后等待AppScan10扫描完成,查看扫描结果即可。
2.2、Acunetix
Acunetix 是一个自动化的 Web 应用程序安全测试工具,是通过检查 SQL 注入,跨站点脚本(XSS)和其他可利用漏洞等来审核您的 Web 应用程序。一般来说,Acunetix 能够扫描任何通过网络浏览器访问并使用 HTTP/HTTPS 协议的网站或 web 应用程序。
1.使用步骤
第一步:添加 需要检测的网站(漏洞扫描.)
然后点击是的,进行漏洞扫描
这里可以选择:扫描类型
第二步:查看扫描的结果(包含:漏洞信息,网站结构,活动.)
第三步:查看漏洞的信息.(漏洞类型,链接的位置,修复方案等.)
第四步:生成报告
第五步:点击报告.
3、其他
3.1、关于工具的问题
- 信息搜集
- 社会学信息
- 网络资产&架构
- 端口
- …
- 漏洞扫描
- 各类的爆破器
- 设备识别器
- 网络分析器
- …
1. 漏洞扫描器
漏洞扫描器可以快速帮助我们发现漏洞,例如,SQL注入漏洞(SQLinjection)、跨站点脚本攻击(cross-site scripting)、缓冲区溢出(buffer overflow)。
一款优秀的漏洞扫描器会使渗透测试变得很轻松,但对于一些漏洞,自动化软件是无法识别的。所以,在进行漏扫(漏洞扫描的简称)时,必须要与人工渗透相结合。
结论是:漏洞扫描也属于信息探测的一种,扫描器可以帮助我们发现非常多的问题,但是整个测试的执行过程不是交由工具去完成。
3.2、银弹理论
在解决安全问题的过程中,不可能一劳永逸,也就是说“没有银弹”。安全是一个持续的过程。
自从互联网有了安全问题以来,攻击和防御技术就在不断碰撞和对抗的过程中得到发展。从微观上来说,在某一时期可能某一方占了上风:但是从宏观上来看,某一时期的攻击或防御技术,都不可能永远有效,永远用下去。这是因为防御技术在发展的同时,攻击技术也在不断发展,两者是互相促进的辩证关系。以不变的防御手段对抗不断发展的攻击技术,就犯了刻舟求剑的错误。在安全的领域中,没有银弹。
3.3、原理
加强原理学习,对常见的漏洞原理以及复现的学习掌握。虽说网络上有很多的国内外大神们开发的各类小工具,但是不清楚原理的人就好比一个没有武功但是得到了一把绝世神兵。对于这把武器的使用与掌握就处于一种能用但不好用的境界。而且也只能去处理一些简单易发现的问题。
4、结尾
网络安全学习路线&学习资源
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!