🚀 Join our AI Wargame at Black Hat Asia and our Workshop + Wargame at NDC Sydney .

Defensive dApp Workshop

Master advanced exploitation and defensive techniques to build a secure dApp from the ground up.

In this attack and defence workshop, we look at vulnerabilities of decentralised apps and what make them unique from other software vulnerabilities. With beginners in mind, we go under the hood of each vulnerabilities, understand its internal workings and find the root causes of the flaws.

We have hand picked security vulnerabilities from both Web2 and Web3 domains. We then attack dApp in a simulated environment and learn how to exploit each vulnerability.

With these insights, we then explore modern defensive design patterns to understand how they protect dApps.

We learn advance techniques to hunt hard-to-find security bugs and then go one step further to build property based fuzzers protecting our dApp against possible future security bugs.

For: Blockchain engineers, Software engineers, Test engineers, DevOps engineers, Tech leads, Code reviewers, and Penetration testers
Languages: Solidity, Python, JavaScript, TypeScript (other languages on request)
Duration: 4 half-days
Delivery: Live online led by Dr. Pedram Hayati

Module 1: Introduction

We have learnt software security the wrong way, let's redefine it.

  • Why we have so many vulnerabilities

  • Web2 vs Web3 vulnerabilities

  • Why post-release patching is dangerous

  • What is Defensive Design and Programming

  • Five phases of identifying and exploiting a vulnerable program

Module 2: Rapid Threat Modelling

Build a rapid, effective and actionable threat model early during development

  • Identify security design issues during stand-ups

  • Trust boundary analysis

  • Five + three threat actors

  • Discover threats

    • Common insecure assumptions in our programs that are exploited

    • Rapid Threat Modelling

    • STRIDE

    • SecDim's Threat Thinking Matrix

  • Build a threat model in an attack and defence game

  • Hack your own app exploitation lab

Module 3: Hunt for security bugs

Hunt for dApp security bugs at run-time using new fuzzing techniques A selection of topics will be choosen based on participants' skill level and background knowledge

  • Write security unit tests in brownie

  • Property based testing using Hypothesis

  • Coverage guided fuzzing

  • Fuzzing vs testing

  • Property based fuzzing

  • Symbolic execution

  • Swarm fuzzing

  • Stateful fuzzing

Module 4: Follow defensive design patterns

Learn three core defensive design patterns to address the insecure anti-patterns: A selection of topics will be choosen based participants' skill level and background knowledge

  • Transaction order dependency

  • Call before state change

  • Unlimited gas usage

  • Insufficient data validation

  • Lack of data recognition

  • Overlooking an untrusted entry point

  • Security by coding conventions

Module 5: Attack and defend dApps

Learn advanced exploitation techniques to attack dApp security vulnerabilities and then apply defensive design patterns to eliminate the security bugs A selection of topics will be choosen based on participants' skill level and background knowledge

  • Reentrancy

  • Denial of Service

  • Block stuffing

  • Front running

  • Numeric overflow

  • Numeric imprecision

  • Visual Spoofing

  • Unicode Vulnerabilities

  • Time Of Check Time Of Use (race condition)

It is more than a workshop

We forget almost 60% of newly acquired information within a week!
We provide you with a practice schedule and mentorship during a three months pathway so that secure software engineering becomes your habit.

SecDim Standard Pathway

Reserve your seat today

Our workshops run only a few times in the year. Don't miss out.

Deco line
Deco line

Available dates