关于AWD¶
简介¶
「 攻防模式 | AWD (Attack With Defense) 」 是 CTF比赛 「CTF Capture The Flag」 几种主要的比赛模式之一,该模式常见于线下赛,在该模式中,每个队伍都拥有一个相同的初始环境 ( 我们称其为 GameBox ),该环境通常运行着一些特定的服务或应用程序,而这些服务通常包含一些安全漏洞。参赛队伍需要挖掘利用对方队伍服务中的安全漏洞,获取 Flag 以获得积分 ; 同时,参赛队伍也需要修补自身服务漏洞进行防御,以防被其他队伍攻击和获取 Flag。
类别¶
根据题目漏洞点或者方向可分为 Web-AWD 和 PWN-AWD,考察内容和对应方向类似。
Web-AWD¶
- 目标: Web应用或服务的服务器。
- 常见挑战: SQL注入、XSS(跨站脚本攻击)、CSRF(跨站请求伪造)、文件上传漏洞等 OWASP(Open Web Application Security Project)」 漏洞。
- 防守策略: 高危代码修补,规则过滤,输入输出过滤,基础WAF编写(非通防)等。
- 技能要求: 需要良好的Web安全基础。
PWN-AWD¶
- 目标: 底层漏洞利用,例如缓冲区溢出、整数溢出等。
- 常见挑战: Stack Buffer Overflow、Heap Overflow、Format String Bugs等。
- 防守策略: 使用各种内存保护机制(如ASLR、NX、Canary)和补丁。
- 技能要求: 深入了解操作系统、C/C++编程,以及逆向工程。
特点¶
该模式通常具备以下特点 :
- 实时性强: 攻防模式可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负。
- 全面性: 该模式不仅测试参赛队伍的攻击能力,还测试他们的防御和团队协作能力。
- 高度动态: 参赛队伍可能需要不断地更新和调整防御策略,以应对不断变化的攻击环境。
元素¶
该模式通常包含以下元素 :
目标标志(Flag): 类似密码或特殊字符串,存储在服务中,需要被取出以获得积分。
积分板(Scoreboard): 显示各队伍的积分,通常实时更新。
漏洞利用(Exploit): 队伍开发或使用已有的攻击代码,以攻击对手。
修补(Patch): 当找到漏洞后,队伍需要尽快修补自己的系统,防止被攻击。
日志和监控(Log and Monitor): 为了更好地进行防御和攻击,队伍通常需要设置日志和监控系统。
规则¶
该模式通常采用**「 零和积分方式(Zero-Sum Scoring)」** 即 一个队伍从另一个队伍那里获得积分(通常是通过成功的攻击和获取标志)时,被攻击的队伍将失去相应的积分。
通常情况下 :
- 每个队伍会被给定一个初始分数 ( 根据比赛时间 难度等多维度预估 )。
- 通常以 5/10 分钟为一个回合,每回合刷新Flag值或者重置Flag提交冷却时间。
- 每回合内,一个队伍的一个服务被渗透攻击成功(被拿 Flag 并提交),则扣除一定分数,攻击成功的队伍获得相应分数。
- 每回合内,如果队伍能够维持自己的服务正常运行,则分数不会减少;
- 如果一个服务宕机或异常无法通过测试,则会扣分。在不同规则下,扣除的分数处理不同,在一些规则下为仅扣除,一些则为正常的队伍加上平均分配的分数。
- 在某些情况下,环境因自身或者其他原因导致服务永久损坏或丢失,无法恢复,需要申请环境重置。根据比赛规则的不同,一些主办方会提供重置服务,但需要扣除对应分数;也有可能主办方不提供重置服务,则每轮扣除环境异常分。
环境¶
根据物理环境的不同,即 线上AWD 和 线下AWD ,参赛队伍可能会有不同的配置需求,该差异主办方会提前下发材料说明。无论线下还是线上,该模式的环境都具有以下共同特点。
- 环境由 选手终端,GameBox,FlagServer 三部分组成
-
选手终端在线上可采取VPN接入,Web映射转发接入等多种接入方式;选手终端在线下则需要自行配网(通常主办方会给出配网引导文件)方式可能为 WIFI 接入或者 使用网线和标准的 RJ45 接口进行连接。
-
GameBox 通常位于同一个D段中,主办方通常会提供ip资产列表,其中 IP 通常与队伍序号或者 ID 对应。
- GameBox 一般使用 ssh 进行登录管理,登录方式为密码或者私钥。
- FlagServer 提供类似Flag提交的相关服务。
平台¶
国内目前能够提供AWD训练的平台:
-
上线不久的AWD功能,题目比较少但持续更新。
-
每隔一段时间会有官方AWD比赛,也可自定义比赛。
-
国内成熟的AWD供应平台,题目基数大。
-
定期会有排位赛,也可自定义比赛训练。