First, as far as we are aware, this was the first time a professional services firm reviewed the security of a Bitcoin client. We began with a comprehensive review of the bitcoind attack surface and surveyed previous attempts to fuzz it.
-
-
Show this thread
-
Prior fuzzing efforts appeared ad-hoc, did not share their input sets or report code coverage, and referred to outdated, unworking instructions. We identified surprising gaps in coverage when compared to our attack surface modeling and set about to remedy the situation.pic.twitter.com/YTwvGQ3RLI
Show this thread -
In our first week, we developed libFuzzer and AFL drivers targeted to specific areas of high-priority attack surface and modified build scripts to support a “fuzzer mode.” This vastly enhances fuzzing effectiveness, e.g.: https://github.com/google/boringssl/blob/master/FUZZING.md …
Show this thread -
These fuzzer drivers and build enhancements were integrated directly into the BitcoinSV codebase, improving its SDLC. Fuzz test corpora are saved after each campaign and milestones are re-fuzzed with these continuously refined test cases. (these are not yet public)
Show this thread -
After building fuzzers driven by attack surface modeling and using best practices, we identified a number of security issues over the course of the engagement. This included some of the medium-severity issues that BitcoinSV obtained CVEs to track. https://bitcoinsv.io/2019/03/01/denial-of-service-vulnerabilities-repaired-in-bitcoin-sv-version-0-1-1/ …
Show this thread -
These issues detail ways for messages to waste a victim’s CPU and network resources without triggering any of the denial-of-service mitigations that normally detect and ban misbehaving peers.
Show this thread -
This concluded the 1st week of a 6 week project. I’ll save further details for when the full report comes out. Suffice to say, please get in touch if you want a similarly comprehensive security review, driven by engineering goals and fuzz test development.https://www.trailofbits.com/contact/
Show this thread -
I’d like to thank the folks at
@BitcoinSVNode for giving us the freedom to work the engagement the way we felt was best, letting us invest significant effort into foundational and long-term engineering efforts rather than simple manual bug hunting.Show this thread -
Finally, I’d like to note that
@trailofbits has no stake in which blockchains are successful. We’re here to help everyone build more secure and trustworthy code. We were glad to work on this project, which we saw as helping the entire blockchain community.Show this thread
End of conversation
New conversation -
-
-
You are absolutely correct. I should have said Bitcoin SV client. Unfortunately, it’s 2019 and you still can’t edit tweets, dammit. Thanks for pointing that out!
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.