CTF7
PricingFree tierFAQ Sign in

What is a checker and SLA in attack-defense CTF?

The checker is the referee nobody sees: a bot that uses every team's services each tick and decides whether they still work. SLA is the score it hands out. Here is how both work, the math behind SLA points and the mistakes organizers make most.

In an attack-defense CTF, a checker is an automated script the game server runs against every team's services each tick. It stores a fresh flag, reads back recent ones and uses normal features like a real user. SLA (service level agreement) is the availability score that results: you earn it only for ticks where your service is rated UP.

Checker, SLA and tick: the definitions

Every attack-defense CTF gives each team an identical vulnbox running several vulnerable services. Teams patch their own copy and capture flags from everyone else's. Three terms describe how the game keeps score:

TermWhat it isWho controls it
CheckerOne script per service that tests each team's copy, every tickOrganizer (written by the service author)
SLAPoints or a multiplier earned for each tick a service is rated UPScoring rules, published before the game
TickA fixed scoring interval, often 60 to 180 secondsGame server clock

The term comes from IT operations, where a service level agreement promises availability. In a CTF it means the same in miniature: keep the service working for real users, or lose points.

How a checker tests a service each tick

A checker never attacks anything. It behaves like an ordinary customer of the service, in three steps:

  1. Store. It plants this tick's flag the way a user saves data, for example as a private note behind an account.
  2. Retrieve. It reads back the flags it planted in recent ticks, proving the service kept its data and no patch wiped it.
  3. Use. It exercises features unrelated to flags, such as search or registration, so a team can't strip the service down to a bare flag store.

The checker then reports one status per team, per service, per tick:

StatusTypical triggerWhat the team should check
UPAll three steps passed in timeNothing; keep it that way
MUMBLEService answers, but a feature returns errors or wrong outputThe last patch; it probably broke legitimate behavior
CORRUPTService works, but flags from earlier ticks are goneData loss from a restart, reset or overly strict cleanup
DOWNNo connection, or no answer before the timeoutCrashed process, firewall rule or exhausted resources

Status names vary between game servers, and some add a "recovering" state. Whatever the labels, the rules should say exactly which statuses earn SLA.

Why teams can't just allow the checker and block everyone else. Well-designed checkers look like any other client: same game network, realistic data, varied behavior. Filtering by fingerprint is a gamble that usually ends in MUMBLE.

How ticks and rounds work

A tick is the heartbeat of the game. In a typical setup each tick runs like this:

tick starts      → game server plants a new flag in every service on every vulnbox
during the tick  → checkers run against every team, spread across the interval
                 → teams submit flags captured from rivals
tick ends        → statuses and captures are scored; the scoreboard updates

example: 120 s ticks, flag lifetime 5 ticks
  a flag stays valid for 10 minutes
  an 8-hour game has 240 ticks

Many events use "tick" and "round" interchangeably; some group ticks into larger rounds, such as releasing a new service in round two. Shorter ticks reward automation. Longer ticks give checkers headroom and suit student teams.

SLA points: the math at concept level

Rule sets differ, but most use one of two shapes. The additive model awards a fixed amount per UP tick and adds it to attack and defense points. The multiplier model scales a service's attack and defense points by the share of ticks it was UP:

additive:    service score = attack + defense + (UP ticks × SLA points)
multiplier:  service score = (attack + defense) × (UP ticks ÷ total ticks)

worked example (multiplier, 240 ticks):
  Team A keeps the service UP for 228 ticks       → SLA 0.95
         attack + defense = 1,200                 → 1,140 points
  Team B switches it off for 60 ticks to stop
         leaks, so it loses fewer flags           → SLA 0.75
         attack + defense = 1,300                 → 975 points

Team B defended better on paper and still finished 165 points behind. That is the point of SLA: patching properly beats hiding. For players, it rewards backups, root-cause fixes and watching checker status every tick; our attack-defense page covers team roles and preparation. For how SLA compares with other scoring systems, see CTF scoring.

Common organizer pitfalls

Many A/D disputes trace back to the checker, not the services. The most common mistakes:

  • Timeouts that are too tight. Latency turns a slow but healthy service DOWN. Leave margin and allow one retry inside the tick.
  • Counting checker errors against teams. If the checker itself crashes, log an internal error and award or void that tick for everyone.
  • Never testing against patched services. A correct patch that changes an error message can trip a brittle checker. Playtest with several patched versions.
  • Checking only the flag path. Teams will delete every feature the checker doesn't touch.
  • Predictable checker traffic. Fixed usernames, timing or headers let teams filter the checker. Randomize data and spread runs across the tick.
  • Silent statuses. Give a short reason, such as "flag from tick 211 missing", without exposing checker logic.
  • Unpublished rules. Status meanings, timeouts, flag lifetime, the SLA formula and the outage policy belong in the rules before the first tick. Start from our CTF rules template.

Building checkers yourself or running a managed event

Writing a checker is part of writing a service: every service needs a working exploit, a correct patch and a checker that passes the patch. Open-source game servers exist, but you still build and operate the vulnboxes, VPN and checkers yourself. Attack-defense vs jeopardy covers the staffing involved.

Focus on the services, not the referee. CTF7 runs attack-defense CTFs as managed events, or our challenge development team can design, build and test services for you. Ask us which plan fits your event.

  • Vulnbox: the identical machine each team defends.
  • Tick: the scoring interval of an A/D game.
  • Dynamic flag: a flag unique to one team (one player in solo events).
  • Flag format: the pattern flags follow, such as CTF7{This_is_an_example_flag}.

Browse the full CTF glossary or compare every format in CTF formats explained.

Plan your next event with us

A free jeopardy event for up to 50 players goes live when you publish it. For flagship events, our team can build the challenges and run the managed formats: attack-defense, King of the Hill and SOC simulations.

CTF7 mascot holding a CTF7 flag