Threat modeling
Each blockchain project has a different attack surface. This is why we always start our audits with threat modeling, where we map out ideas of how attackers could profit from exploiting each part of the target and list the most likely attack scenarios.
Code review
Manual code review is the core of our security assessments, through which we are able to discover logic bugs. These are the most widespread and impactful security bug category our team typically identifies during an assessment. Finding a logic bug is a complex process that requires the audit team to have a detailed understanding of the protocols involved and business logic, which we gain through establishing a threat model.
Static and Dynamic analysis
To aid our auditing efforts, we implemented static and dynamic analysis tools in-house that cover a wide range of vulnerabilities, from integer overflows to stack exhaustion bugs. These tools include a blockchain runtime fuzzer, the shell of which is open source and custom-tailored semgrep rules.