---
name: ndss-artifact-evaluation
description: Use when preparing an NDSS artifact for evaluation after conditional acceptance — targeting the Available, Functional, and Reproduced badges, packaging attacks and measurements responsibly, writing the 2-page artifact appendix, and handling dangerous or embargoed material.
---

# NDSS Artifact Evaluation

NDSS added artifact evaluation to the symposium in recent editions (running on the
community `secartifacts` platform, verified for 2024-2026), and it is **opt-in after
conditional acceptance** — a separate track, not a submission requirement. Papers that pass
carry badges on the first page and add a 2-page artifact appendix (Call for Artifacts,
checked 2026-07-08). Decide early whether you are engineering for it, because the packaging
choices are cheap during the project and expensive afterward.

## The three badges

| Badge | Claim to the committee | What you must ship |
| --- | --- | --- |
| **Available** | The artifact is publicly, permanently retrievable | Deposit in an archival repository with a DOI (Zenodo, figshare); a bare GitHub URL is not "available" |
| **Functional** | It does what the paper says, is usable and documented | Build/run instructions that work on a clean machine; the components matching the paper's claims |
| **Reproduced** | The paper's results can be regenerated by others | One documented path per headline result, with expected output and tolerances |

Badges are independent — you can earn Available and Functional without Reproduced when the
world (live targets, proprietary data) genuinely prevents re-execution. Claim only what you
can defend; an evaluator who cannot reproduce a "Reproduced" claim writes that in the
report.

## From claims ledger to artifact

The `claims.yml` ledger built in `ndss-reproducibility` is the artifact's spine. Convert it
into an evaluator-facing package:

```text
artifact/
  README.md          # what this is, badges sought, hardware/time needs, safety notes
  INSTALL.md         # clean-machine setup; pinned deps / container image
  claims/            # one entry per headline result:
    fig4/  run.sh    # → expected_output/, runtime + resource note
    tab2/  run.sh
  data/              # snapshots or synthetic substitutes (never raw victim traffic)
  src/               # the code, with the dangerous parts gated (below)
  ETHICS.md          # disclosure status, gating rationale, usage boundaries
```

Give evaluators the shortest true path to each result. A "kick-the-tires" phase means the
first five minutes decide the evaluator's mood — make the smoke test one command.

## Packaging dangerous material responsibly

NDSS artifacts routinely include working exploits, attack tooling, or malware-adjacent
code. This is allowed; unbounded release is not.

- **Gate the weaponized parts.** Ship the analysis and measurement pipeline openly; put
  live exploit modules behind documented access conditions or a defanged demonstration
  mode consistent with your Ethics Considerations section.
- **Align with the disclosure clock.** If a vulnerability is under a coordinated-disclosure
  embargo, the artifact's release timing must respect it — state the date the full module
  becomes available.
- **Sandbox by default.** Anything that touches a network should target a supplied local
  testbed, not the Internet, out of the box. Document the blast radius.
- **No live victim data.** Replace with prefix-preserved or synthetic traces carrying the
  statistics the result needs (see `ndss-reproducibility`).

## When re-execution needs your lab

Hardware-bound results (SDRs, specific switches, IoT devices) cannot be reproduced by a
committee at their desks. Bridge the gap: provide recorded traces plus a replay harness so
the *analysis* is reproducible even when the *capture* is not, and say plainly in the
README which results are trace-replayable and which need the physical setup. This commonly
yields Functional + Reproduced-on-recorded-data rather than a failed full Reproduced.

## The 2-page artifact appendix

Written after evaluation for the camera-ready. It states the badges earned, the artifact's
scope, access instructions (the DOI), hardware/software requirements, and the mapping from
paper claims to artifact components. Keep it factual and navigational — it is a map for
future readers of the open-access paper, not a second results section.

## Timing

The opt-in comes shortly after (conditional) acceptance and runs on its own schedule
(2027 dates 待核实 — confirm on the Call for Artifacts). It overlaps the camera-ready
window (Jan 6, 2027), so a team that starts packaging at acceptance, not at the AE
deadline, avoids a two-front crunch.

## Output format

```text
[Badges targeted] Available / Functional / Reproduced — with feasibility per badge
[Package status] README / INSTALL / per-claim runners / data substitutes — done or gaps
[Danger handling] gated modules, sandbox default, disclosure-aligned release date
[Hardware gap] results needing physical setup + trace-replay bridge
[Appendix] 2-page artifact appendix drafted? claim→component map complete?
```
