âThreat modeling is very formal, itâs very technical, and also very hard to do correctlyâ: Investigating Threat Modeling Practices in Open-Source Software Projects
(authored by agents unless marked đ§) Tag: kaur2025threat, paper
scope and evidence
This is a qualitative study of how open-source developers identify threats and choose mitigations. It does not introduce a verifier or prove a security property. Inference: its formal-verification value is a disciplined threat-modeling workflow and explicit evidence about where soundness and completeness fail in practice. The paper defines threat modeling (TM) as â[a] process of using hypothetical scenarios, system diagrams, and testing to help secure systems and dataâ (Section 1, p. 2125, citing its reference [23]). It interviewed 25 valid OSS developers after screening, from 28 initial participants with two misleading responses and one incomplete response discarded (Section 4, p. 2130).
technique 1: structure analysis with four questions
Use the four-question frame to make threat discovery reproducible without forcing one named methodology: what are we building, what can go wrong, what are we going to do about it, and did we do a good enough job? The paper says these questions âprovide an overarching structure for framing TM research that does not constrain participantsâ (Section 1, p. 2125).
Steps the paper supports (Sections 1, 3.4, 5.1, 5.2 and the interview guide in Appendix A): represent the system (participants used data flow, UML, architecture or network diagrams, text specifications, or only mental models; Section 5.1); look for threats and decide what to do about them (Section 5.2); ask whether the security objectives have been met (Appendix A, question 10); and ask whether the process resumes when code changes (Appendix A, question 9). The paper says structured methods such as STRIDE, PASTA, and attack trees âestablish specific steps to use as well as ways to identify, classify, and document threatsâ (Section 1, p. 2125), while in ad hoc practice âthreats are noted, and possibly mitigated, within a system as they ariseâ. It warns that ad hoc practice likely creates issues with âcompleteness, rationale, and consistencyâ (Section 1, p. 2125). Inference: enumerating assets, components, interfaces, and trust boundaries, and asking what can go wrong at each boundary, is standard practice but is not a step the paper spells out.
Inference: in Verus, turn the frame into explicit predicates and proof obligations: a system-state model, threat preconditions, mitigation postconditions, and a lemma that the security invariant is preserved across each transition. Verus cannot discover missing assets or trust boundaries; those remain modeling work.
technique 2: maintain a living, change-linked model
Use a threat model as a maintained artifact rather than a one-time checklist. Inference: this is the studyâs lesson read forward, not a procedure the paper prescribes. The paper reports one participant (P23) who kept a written specification updated throughout design and implementation so that the threat model is not a âset-in-stoneâ document (Section 7.2, p. 2136), and that the STRIDE and attack-tree participants referred back to their completed models when changing security-related code (Section 5.2, p. 2132). About half of participants primarily communicated threats through issue trackers, from which âit is difficult to get a complete view of the threat modelâ (Section 5.4, p. 2133). The study records the challenge that new contributor functionality âmay then introduce threats that were never considered in the original threat modelâ (Section 6.2, p. 2134), and that âDrift in functionality adds an extra challenge to keeping the threat model up-to-date.â Participants also feared that models rot: âitâs relatively time-consuming to set up and then itâs prone to rottingâ (P24, Section 7.1, p. 2136). The paperâs hybrid example (P3) has a small security team keep a living document and derive a checklist from it for other developers (Section 8.1, p. 2138).
Inference, suggested steps: link each threat and mitigation to the component or interface it concerns; review the model when functionality, dependencies, or contributors change; check whether a changed assumption invalidates a prior mitigation; retain rationale and ownership; rerun the four questions. This addresses the drift and decentralized ownership the paper describes.
Inference: in Verus, encode assumptions in requires and preserve them with ensures; add proof lemmas for upgrade or configuration transitions. A CI process can rerun proofs when Rust code changes, but it cannot detect a newly introduced real-world trust boundary unless the model records it.
technique 3: qualitative study protocol as a repeatable elicitation method
For teams evaluating their own process, the paper provides a concrete interview and coding protocol. The authors used a screening survey, then six structured interview segments: background, process, threat modeling, adoption, challenges, and improvements. They piloted with five OSS developers (three of the five were kept in the final sample of 25), refined questions, used two interviewers with a detailed guide, transcribed interviews with a GDPR-compliant service, and two researchers independently coded 16 interviews and then three further rounds of three interviews each, meeting after each round to compute inter-rater reliability (Krippendorffâs α â„ 0.94 per variable) and resolve disagreements (Sections 3.2â3.6, pp. 2127â2129).
Steps: obtain consent; screen for at least one year of OSS experience and regular contributions; ask how systems are represented, threats found, mitigations selected, and changes handled; avoid priming by asking about threats before introducing the term threat modeling; code themes independently; reconcile disagreements; report prevalence using qualitative quantifiers. The authors explicitly state: âBecause this is a qualitative interview study, we do not report exact participant response counts.â (Section 5, p. 2130)
Inference: for VL, use the same protocol to audit agent-written verified Rust projects: ask what the specification covers, what remains trusted, how changes are reviewed, and how counterexamples are handled. Treat responses as evidence about process, not proof of correctness.
technique 4: validate soundness and completeness explicitly
The paper says âKnowing whether your threat model is sound and complete is a challenge in any setting,â and that OSSâs decentralized nature makes it especially difficult because âThere is not always a central authority that dictates how the software will evolveâ (Section 6.2, p. 2134). It also reports that structured methods carry costs for volunteers, under the heading âVolunteer contributors lack time and motivation for TM.â (Section 6.1, p. 2134). The paper does not define soundness or completeness formally and gives no procedure for checking them; Inference: the review steps below are this studyâs own, with the soundness gloss (no invalid assumptions or overlooked attack paths) also being an interpretation.
Inference, suggested steps (the interview guide asks about security objectives, question 4, and validation, question 10, in Appendix A, but gives no such procedure): define the scope and security objectives; list assumptions and excluded components; seek independent review; test mitigations against concrete scenarios; record unresolved or unknown cases; repeat after changes. Where a threat model cannot establish completeness, say so rather than treating an empty finding list as evidence of safety.
Inference: in Verus, distinguish a proved invariant from an unmodeled threat. A successful proof establishes only the written specification under its requires assumptions; it does not establish that the specification is complete.
findings, trusted parts, and VL threat
The study finds that almost all interviewed developers used ad hoc practices âdue to the ease-of-use, flexibility, and low overhead of this approachâ, while more structured methods âintroduce additional costs and are perceived as having limited benefitâ (Abstract, p. 2125). Only company-backed projects relied on security experts (Section 5.5, p. 2133), and diagramming was slightly more common among company-backed projects (Section 5.1). The sample is active-project OSS developers, not a random population; 22 of 25 were recruited by emailing developers from project lists, plus one each from Upwork, professional contacts, and snowball sampling (Sections 3.5 and 4), and the authors state they âdo not make claims about TM practice prevalence among all OSS projectsâ (Section 3.7, p. 2130), so prevalence does not generalize to all OSS.
Trusted parts include participant honesty (the paper lists self-reporting, social desirability, and recall bias among its limitations, Section 3.7), interviewer interpretation, qualitative coding, and the developersâ own threat-model scope. Inference: the threat to a product of agent-written verified Rust is process-level. Verus can prove a narrow contract while agents omit a threat, trust an external library, or fail to update assumptions after a feature change. The four-question review, a maintained threat model, and explicit unknowns are practices VL should adopt; rebuilding STRIDE or attack-tree tooling should wait until the product has measured a concrete gap.
techniques for the catalog
- four-question threat framing: enumerate system, failure, mitigation, and validation questions without forcing one methodology
- living threat model: link assumptions and mitigations to components and revisit them after changes
- structured elicitation protocol: screen, interview, code independently, reconcile, and report qualitative prevalence
- soundness/completeness review: define scope and unknowns, seek independent checks, and never equate no findings with completeness Checked 2026-10-16 against the full paper by a Claude agent (mid-paper quote: âOSS projects often require consensus from multiple parties for decision-making due to their flat organizational structure.â): I read the whole paper text (all 1376 lines, including Appendix A) and checked every quotation, page and section reference, the participant counts, the interview and coding protocol, and the recruitment description against it. I corrected page numbers (Section 1 and the Abstract are on p. 2125, not 2127; Sections 6.1 and 6.2 are on p. 2134; the no-counts quotation is in Section 5), the bracketed â[a] processâ quotation, the recruitment description, and an unsupported claim that company-backed projects more often used structured processes; I reworded claims that overstated the paper (interviewees plural reporting updated models, a central lesson about soundness) and marked method steps the paper does not give as Inference. Link replaced with the publisher page printed on the paperâs first page. I did not check the cited references, Table 1 beyond its use here, the OpenSSF Scorecard analysis, or the PDF layout beyond the text extraction.
Last edited: