Strategies for secure development with GraphQL
Where
Common Ground
BSides Las Vegas
Duration
39 min
Shows how to scope threats, build secure defaults, and log GraphQL APIs so developers can ship secure features.
Summary
The talk targets a common gap: teams talk about security but rarely give developers practical help. The speaker organizes the material around three questions: how to find what needs protecting, how to build a secure foundation, and what to log. The examples use GraphQL, though the advice applies to most development work.
For scoping, the speaker suggests threat modeling with STRIDE, paying attention to framework-level denial of service and privilege escalation, and to mutations, where custom side effects need the closest access review. Security work should be planned like a feature, with functional tests that confirm blocked requests also log correctly and return clear responses. For the foundation, choose a well-maintained framework that patches security issues quickly, extend its base classes with safe defaults, disable superuser access, and centralize authorization in helpers and decorators so developers do not reimplement checks. Test helpers make broad coverage practical.
On logging, GraphQL's single endpoint and in-body errors make ordinary request logs weak, so the speaker favors logging the query portion without inline sensitive values. Structured JSON, timestamps, object versioning, explicit records of permission changes, and point-in-time database recovery all help reconstruct events. The talk ends with regular drills so log searches work during an incident.
Related talks
Talks·45 min
Katie Paxton-Fear
Traces application security changes through the history of the Neopets virtual pet website, from plaintext passwords to bot defenses.
Talks·45 min
Anne Honkaranta
Reviews literature on how DevOps practices affect software security and compares the findings with practitioner data.
Talks·42 min
Micah Parks
Shows how a curious user reverse engineers an Android game, a product waitlist, and a pub/sub system to find design flaws.


