夺旗(英语:Capture the flag,简称“CTF”)在计算机安全中是一种活动,当中会将“旗子”秘密地埋藏于有目的的易受攻击的程序或网站。参赛者从其他参赛者(攻/防式夺旗)或主办方(危难式挑战)偷去旗子。夺旗活动派生出数种变体,当中包括于硬件设备内隐藏旗子。相关比赛可透过在线或实体形式进行,亦可分为高级和入门两种层级。此游戏乃基于同名传统户外运动而设计。
保安夺旗活动的设计旨在以一种教育练习的方式,给予参加者于保护机器的经验,同时对那些在现实世界中发现的攻击进行处理并作出反应(即专业环境中的漏洞奖励项目(英语:Bug bounty program))。著名的攻/防式夺旗包括通常被视为竞赛圈(competition circuit)“决赛”、自1996年起,于最大型黑客会议期间举办的DEF CON,以及最大型的学生网络安全比赛NYU-CSAW(网络安全关注周)。
典型夺旗活动包括逆向工程、数据包嗅探、协议分析、系统管理、编程、密码分析,以及编写漏洞利用等等。在攻/防式比赛中,每支队伍获分配一台用以防守的机器(或一个小型网络)——一般位于一个独立的比赛网络之上。队伍会按成功防御己方的机器,以及成功攻破其他队伍的机器而获得分数。典型夺旗的一个变体,是于敌方机器上“植下”己方的旗子。
硬件挑战(hardware challenge)通常涉及获得一枚未知的硬件,并需找出如何绕过部分安全措施,例如使用调试端子或采取一种旁路攻击。危难式挑战与算法竞赛颇为相似:队伍之间并非互相攻击,而是解决由主办方所公布的挑战。一般而言,时间并非赢取这模拟赛的一项要素,但“第一滴血”额外分数通常会给予最快解决挑战的队伍。在山之王式(英语:King of the Hill (game))挑战中,玩家透过相对排名(relative ranking)获取积分。典型而言,只有排名第一的队伍才能得分。当另一队伍击破目前的冠军队伍(例如,透过获得冠军队伍所防守的共享“目标”机器),则他们成为新的冠军,并转为捍卫己方的排名,与其他队伍作对抗。