在三十多年前,虚拟化仅适用于拥有大型机和众多小型计算机的用户,而安全问题仅仅是物理上的。 二十年前,VMware发布了其第一款产品,网络边界安全性仍处于起步阶段,依赖于防火墙。 十二年前,AWS推出,网络安全成为一个问题。 五年前,由于Docker,容器成为主流,主机安全成为焦点。 今天,随着无服务器安全性的增长,应用程序级安全性终于受到已经存在多年的计算和网络层全面审查。 随着应用程序,计算和网络安全都被审计,通过SOC type 2等报告,管理层和客户端都可以更加了解安全问题。随着客户端透明度的提高,安全专业人员是确保部署资产和使生产具有坚实安全性的关键。 根据正在使用的部署类型,相应的配置规模大小可能会急剧增加。 以上就是理解不同类型的新兴部署技术(即容器,无服务器计算和虚拟机)之间的安全细微差别的原因。 下面,我们对比一下他们的安全方面。

无服务器安全

首先,让我们解决无服务器安全问题,因为无服务器应用程序通常是纯粹执行单个函数的代码——因此叫做function-as-a-service。 你实际部署平台可能对无服务器应用程序中发生的最常见安全问题无动于衷。 除了遵循安全编码最佳实践,例如仅返回处理请求绝对需要的数据并让应用程序使用仅具有允许其执行其工作所需的访问权限的服务帐户,发现的任何漏洞都将导致数据被泄露, 这远远超出了无服务器应用程序的范围——这可能导致公关噩梦。 另一个主要关注领域是应用程序中包含的任何第三方库,这些第三方库主要是为了提供增强功能,并节省开发团队的开发时间。 比如用于验证电话号码或邮政编码的库,以及连接到外部PostgreSQL数据库所需的JDBC驱动程序等客户端库。 如果不使用自动更新并定期扫描构建的工件的扫描工具,那么在组织内针对所有第三方库的监控所有各种漏洞公告列表的过程,将是一项巨大的手动工作。

容器安全

实际上,由于无服务器应用程序通常在后台运行在容器中,因此容器将承载与无服务器相同的所有问题,以及容器为开发人员提供的附加功能的新问题。 针对容器的特定安全问题可以简化为两个不同的区域:您基于部署的容器源的可信度,以及容器对主机操作系统的访问级别。 在任何主机(无论是Windows还是Linux)上运行容器时,不应使用root或管理员权限运行容器。 使用命名空间和卷等功能而不是原始磁盘访问,允许这些容器守护程序在一个或多个容器之间共享存储以获取持久数据,而不需要容器本身具有升级的权限。 甚至还有一些项目,例如谷歌的gVisor,它们更进一步,隐藏了除容器需要运行的确切系统调用之外的所有项目。 对容器的更大关注是构建容器的层的可信度。 有多种方法可以解决这个问题。 它们包括指向您已经测试并确定的特定版本,而不是依赖于最新的tag。 您还可以扩展针对无服务器应用程序中的第三方库所进行的任何扫描范围,以便扫描整个容器以查找已知漏洞。 此扫描可以在容器源中提前执行,也可以在构建过程中执行,因为您将它们用作构建的基础。

虚拟机安全

虚拟机是另一个需要解决的大问题。 有不少关于如何保护操作系统的书籍和最佳实践指南。 甚至美国政府也有一个团体在NIST网站上发布一些清单。 最近推出的操作系统提供了开箱即用的合理安全配置文件,但它们总需要进行改进。 一种改进upis的方法是将运行服务限制为绝对需要的服务。 例如,默认的HTTP服务器很适合查看日志,但是当您的应用程序在Java中运行时,有不少可用的产品,哪些产品可以通过SSH连接并集中整合日志? 另一种选择是在发布后尽快应用补丁。 一些补丁每月发布。 还有微软的“Patch Tuesday”,而其他更关键的补丁在有可用修复的那天发布(这些被称为out-of-band patch)。 与容器和无服务器不同,在完整虚拟机上需要应用任何指定补丁的几率要高得多,因为需要和安装的软件包要多得多。

结论

只有了解您和您的开发团队正在部署应用程序的计算环境类型,您才可能应用所有安全性最佳实践。 理想情况下,您的每个应用程序都可以被评估,并且我们鼓励您使用最合适和简化的部署选项。 通过将更多应用程序迁移到容器,并在适当的时候使用无服务器,它将使得类似生产的安全实践能够在开发周期的早期实施,并最终提高您的整体安全性。 原文链接:https://thenewstack.io/security-differences-containers-vs-serverless-vs-virtual-machines/接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐