<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>2019 on The Trail of Bits Blog</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/</link><description>Recent content in 2019 on The Trail of Bits Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 09 Dec 2019 07:00:52 -0500</lastBuildDate><atom:link href="https://miscreants.github.io/blog.trailofbits.com/2019/index.xml" rel="self" type="application/rss+xml"/><item><title>Mainnet360: joint economic and security reviews with Prysm Group</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/12/09/introducing-mainnet360-a-joint-economic-and-security-assessment-with-prysm-group/</link><pubDate>Mon, 09 Dec 2019 07:00:52 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/12/09/introducing-mainnet360-a-joint-economic-and-security-assessment-with-prysm-group/</guid><description>On Monday, October 28th at the Crypto Economics Security Conference, Trail of Bits announced a new joint offering with Prysm Group: Mainnet360. Carefully designed to produce a comprehensive assessment of the security and economic elements of blockchain software, Mainnet360 gives teams a broader perspective that will allow them to build safer and more resilient systems. […]</description></item><item><title>64 Bits ought to be enough for anybody!</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/11/27/64-bits-ought-to-be-enough-for-anybody/</link><pubDate>Wed, 27 Nov 2019 06:01:30 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/11/27/64-bits-ought-to-be-enough-for-anybody/</guid><description>How quickly can we use brute force to guess a 64-bit number? The short answer is, it all depends on what resources are available. So we’re going to examine this problem starting with the most naive approach and then expand to other techniques involving parallelization. We’ll discuss parallelization at the CPU level with SIMD instructions, […]</description></item><item><title>Introducing iVerify, the security toolkit for iPhone users</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/11/14/introducing-iverify-the-security-toolkit-for-iphone-users/</link><pubDate>Thu, 14 Nov 2019 09:38:48 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/11/14/introducing-iverify-the-security-toolkit-for-iphone-users/</guid><description>“If privacy matters, it should matter to the phone your life is on.” So says Apple in their recent ads about Privacy on the iPhone and controlling the data you share—but many of the security features they highlight are opt-in, and users often don’t know when or how to activate them. But hey… we got […]</description></item><item><title>Announcing the Crytic $10k Research Prize</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/11/13/announcing-the-crytic-10k-research-prize/</link><pubDate>Wed, 13 Nov 2019 07:00:35 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/11/13/announcing-the-crytic-10k-research-prize/</guid><description>At Trail of Bits, we make a significant effort to stay up to date with the academic world. We frequently evaluate our work through peer-reviewed conferences, and we love to attend academic events (see our recent ICSE and Crypto recaps).</description></item><item><title>Everything You Ever Wanted To Know About Test-Case Reduction, But Didn’t Know to Ask</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/11/11/test-case-reduction/</link><pubDate>Mon, 11 Nov 2019 07:00:11 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/11/11/test-case-reduction/</guid><description>Imagine reducing the amount of code and time needed to test software, while at the same time increasing the efficacy of your tests and making your debugging tasks easier—all with minimal human effort. It seems too good to be true, but we’re going to explain how test-case reduction can do all this (and maybe more). […]</description></item><item><title>Security assessment techniques for Go projects</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/11/07/attacking-go-vr-ttps/</link><pubDate>Thu, 07 Nov 2019 07:00:06 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/11/07/attacking-go-vr-ttps/</guid><description>The Trail of Bits Assurance practice has received an influx of Go projects, following the success of our Kubernetes assessment this summer. As a result, we’ve been adapting for Go projects some of the security assessment techniques and tactics we’ve used with other compiled languages. We started by understanding the design of the language, identifying […]</description></item><item><title>Two New Tools that Tame the Treachery of Files</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/11/01/two-new-tools-that-tame-the-treachery-of-files/</link><pubDate>Fri, 01 Nov 2019 07:00:18 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/11/01/two-new-tools-that-tame-the-treachery-of-files/</guid><description>Parsing is hard, even when a file format is well specified. But when the specification is ambiguous, it leads to unintended and strange parser and interpreter behaviors that make file formats susceptible to security vulnerabilities. What if we could automatically generate a “safe” subset of any file format, along with an associated, verified parser? That’s […]</description></item><item><title>Destroying x86_64 instruction decoders with differential fuzzing</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/10/31/destroying-x86_64-instruction-decoders-with-differential-fuzzing/</link><pubDate>Thu, 31 Oct 2019 07:00:01 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/10/31/destroying-x86_64-instruction-decoders-with-differential-fuzzing/</guid><description>TL;DR: x86_64 decoding is hard, and the number and variety of implementations available for it makes it uniquely suited to differential fuzzing. We’re open sourcing mishegos, a differential fuzzer for instruction decoders. You can use it to discover discrepancies in your own decoders and analysis tools! In the beginning, there was instruction decoding Decompilation and […]</description></item><item><title>How safe browsing fails to protect user privacy</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/10/30/how-safe-browsing-fails-to-protect-user-privacy/</link><pubDate>Wed, 30 Oct 2019 07:00:57 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/10/30/how-safe-browsing-fails-to-protect-user-privacy/</guid><description>Recently, security researchers discovered that Apple was sending safe browsing data to Tencent for all Chinese users. This revelation has brought the underlying security and privacy guarantees of the safe browsing protocol under increased scrutiny. In particular, safe browsing claims to protect users by providing them with something called k-anonymity. In this post we’ll show […]</description></item><item><title>Grace Hopper Celebration (GHC) 2019 Recap</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/10/29/grace-hopper-celebration-2019/</link><pubDate>Tue, 29 Oct 2019 11:30:14 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/10/29/grace-hopper-celebration-2019/</guid><description>A few weeks ago I had the inspiring experience of attending the annual Grace Hopper Celebration (GHC), the world’s largest gathering of women in technology. Over four days in Orlando, Florida, GHC hosted a slew of workshops and presentations, plus a massive career fair with over […]</description></item><item><title>Formal Analysis of the CBC Casper Consensus Algorithm with TLA+</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/10/25/formal-analysis-of-the-cbc-casper-consensus-algorithm-with-tla/</link><pubDate>Fri, 25 Oct 2019 07:00:56 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/10/25/formal-analysis-of-the-cbc-casper-consensus-algorithm-with-tla/</guid><description>As a summer intern at Trail of Bits, I used the PlusCal and TLA+ formal specification languages to explore Ethereum’s CBC Casper consensus protocol and its Byzantine fault tolerance. This work was motivated by the Medium.com article Peer Review: CBC Casper by Muneeb Ali, Jude […]</description></item><item><title>Watch Your Language: Our First Vyper Audit</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/10/24/watch-your-language-our-first-vyper-audit/</link><pubDate>Thu, 24 Oct 2019 07:00:04 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/10/24/watch-your-language-our-first-vyper-audit/</guid><description>A lot of companies are working on Ethereum smart contracts, yet writing secure contracts remains a difficult task. You still have to avoid common pitfalls, compiler issues, and constantly check your code for recently discovered risks. A recurrent source of vulnerabilities comes from the early state of the programming languages available. Most developers are using […]</description></item><item><title>Multi-Party Computation on Machine Learning</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/10/04/multi-party-computation-on-machine-learning/</link><pubDate>Fri, 04 Oct 2019 10:13:15 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/10/04/multi-party-computation-on-machine-learning/</guid><description>During my internship this summer, I built a multi-party computation (MPC) tool that implements a 3-party computation protocol for perceptron and support vector machine (SVM) algorithms. MPC enables multiple parties to perform analyses on private datasets without sharing them with each other. I defveloped a technique that lets three parties obtain the results of machine […]</description></item><item><title>TSC Frequency For All: Better Profiling and Benchmarking</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/10/03/tsc-frequency-for-all-better-profiling-and-benchmarking/</link><pubDate>Thu, 03 Oct 2019 06:58:24 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/10/03/tsc-frequency-for-all-better-profiling-and-benchmarking/</guid><description>Have you ever tried using LLVM’s X-Ray profiling tools to make some flame graphs, but gotten obscure errors like: ==65892==Unable to determine CPU frequency for TSC accounting. ==65892==Unable to determine CPU frequency. Or worse, have you profiled every function in an application, only to find the sum of all function runtimes accounted for ~15 minutes […]</description></item><item><title>Tethered jailbreaks are back</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/09/27/tethered-jailbreaks-are-back/</link><pubDate>Fri, 27 Sep 2019 15:09:08 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/09/27/tethered-jailbreaks-are-back/</guid><description>Earlier today, a new iPhone Boot ROM exploit, checkm8 (or Apollo or Moonshine), was published on GitHub by axi0mX, affecting the iPhone 4S through the iPhone X. The vulnerability was patched in devices with A12 and A13 CPUs. As of this writing, the iPhone XS, XS Max, XR, 11, 11 Pro and 11 Pro Max […]</description></item><item><title>QueryCon 2019: A Turning Point for osquery</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/09/20/querycon-2019-a-turning-point-for-osquery/</link><pubDate>Fri, 20 Sep 2019 07:00:58 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/09/20/querycon-2019-a-turning-point-for-osquery/</guid><description>Has it really been 3 months since Trail of Bits hosted QueryCon? We’ve had such a busy and productive summer that we nearly forgot to go back and reflect on the success of this event! On June 20-21, Trail of Bits partnered with Kolide and Carbon Back to host the 2nd annual QueryCon, at the […]</description></item><item><title>Crypto 2019 Takeaways</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/09/11/crypto-2019-takeaways/</link><pubDate>Wed, 11 Sep 2019 06:50:16 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/09/11/crypto-2019-takeaways/</guid><description>This year’s IACR Crypto conference was an excellent blend of far-out theory and down-to-earth pragmatism. A major theme throughout the conference was the huge importance of getting basic cryptographic primitives right. Systems ranging from TLS servers and bitcoin wallets to state-of-the-art secure multiparty computation protocols were broken when one small sub-component was either chosen poorly […]</description></item><item><title>DeepState Now Supports Ensemble Fuzzing</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/09/03/deepstate-now-supports-ensemble-fuzzing/</link><pubDate>Tue, 03 Sep 2019 06:50:44 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/09/03/deepstate-now-supports-ensemble-fuzzing/</guid><description>We are proud to announce the integration of ensemble fuzzing into DeepState, our unit-testing framework powered by fuzzing and symbolic execution. Ensemble fuzzing allows testers to execute multiple fuzzers with varying heuristics in a single campaign, while maintaining an architecture for synchronizing generated input seeds across […]</description></item><item><title>Rewriting Functions in Compiled Binaries</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/09/02/rewriting-functions-in-compiled-binaries/</link><pubDate>Mon, 02 Sep 2019 06:50:31 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/09/02/rewriting-functions-in-compiled-binaries/</guid><description>As a summer intern at Trail of Bits, I’ve been working on building Fennec, a tool to automatically replace function calls in compiled binaries that’s built on top of McSema, a binary lifter developed by Trail of Bits. The Problem Let’s say you have a compiled binary, but you […]</description></item><item><title>Binary symbolic execution with KLEE-Native</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/08/30/binary-symbolic-execution-with-klee-native/</link><pubDate>Fri, 30 Aug 2019 06:50:08 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/08/30/binary-symbolic-execution-with-klee-native/</guid><description>KLEE-Native, a fork of KLEE that operates on binary program snapshots by lifting machine code to LLVM bitcode.</description></item><item><title>Reverse Taint Analysis Using Binary Ninja</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/08/29/reverse-taint-analysis-using-binary-ninja/</link><pubDate>Thu, 29 Aug 2019 06:50:20 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/08/29/reverse-taint-analysis-using-binary-ninja/</guid><description>We open-sourced a set of static analysis tools, KRFAnalysis, that analyze and triage output from our system call (syscall) fault injection tool KRF. Now you can easily figure out where and why, KRF crashes your programs. During my summer internship at Trail of Bits, I worked on KRF, […]</description></item><item><title>Wrapper's Delight</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/08/26/wrappers-delight/</link><pubDate>Mon, 26 Aug 2019 06:50:40 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/08/26/wrappers-delight/</guid><description>During my summer at Trail of Bits, I took full advantage of the latest C++ language features to build a new SQLite wrapper from scratch that is easy to use, lightweight, high performant, and concurrency friendly—all in under 750 lines of code.</description></item><item><title>A Day in the Life of Alessandro Gario, Senior Security Engineer</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/08/09/a-day-in-the-life-of-alessandro-gario-senior-security-engineer/</link><pubDate>Fri, 09 Aug 2019 08:00:18 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/08/09/a-day-in-the-life-of-alessandro-gario-senior-security-engineer/</guid><description>People interested in joining Trail of Bits often ask us what it’s like to work on the Engineering Services team. We felt that the best answer would be a profile of some of the talented individuals on our team, and let them describe their experiences at Trail of Bits in their own words. Today, we’re […]</description></item><item><title>246 Findings From our Smart Contract Audits: An Executive Summary</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/08/08/246-findings-from-our-smart-contract-audits-an-executive-summary/</link><pubDate>Thu, 08 Aug 2019 06:50:40 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/08/08/246-findings-from-our-smart-contract-audits-an-executive-summary/</guid><description>Until now, smart contract security researchers (and developers) have been frustrated by limited information about the actual flaws that survive serious development efforts. That limitation increases the risk of making critical smart contracts vulnerable, misallocating resources for risk reduction, and missing opportunities to employ automated analysis tools. We’re changing that. Today, Trail of Bits is […]</description></item><item><title>From The Depths Of Counterfeit Smartphones</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/08/07/from-the-depths-of-counterfeit-smartphones/</link><pubDate>Wed, 07 Aug 2019 06:50:51 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/08/07/from-the-depths-of-counterfeit-smartphones/</guid><description>In an age of online second-hand retailers, marketplace exchanges, and third-party refurb shops, it’s easier than ever to save hundreds of dollars when buying a phone. These channels provide an appealing alternative for people foregoing a retail shopping experience for a hefty discount. However, there is an additional option for those bargain hunters seeking even […]</description></item><item><title>Better Encrypted Group Chat</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/08/06/better-encrypted-group-chat/</link><pubDate>Tue, 06 Aug 2019 06:50:24 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/08/06/better-encrypted-group-chat/</guid><description>Broadly, an end-to-end encrypted messaging protocol is one that ensures that only the participants in a conversation, and no intermediate servers, routers, or relay systems, can read and write messages. An end-to-end encrypted group messaging protocol is one that ensures this for all participants in a conversation of three or more people. End-to-end encrypted group […]</description></item><item><title>Crytic: Continuous Assurance for Smart Contracts</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/08/02/crytic-continuous-assurance-for-smart-contracts/</link><pubDate>Fri, 02 Aug 2019 06:50:36 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/08/02/crytic-continuous-assurance-for-smart-contracts/</guid><description>Note: This blog has been reposted from Truffle Suite’s blog. We are proud to announce our new smart contract security product: &lt;a href="https://crytic.io/"&gt;https://crytic.io/&lt;/a&gt;. Crytic provides continuous assurance for smart contracts. The platform reports build status on every commit and runs a suite of security analyses for immediate feedback. The beta will be open soon. Follow us […]</description></item><item><title>Understanding Docker container escapes</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/</link><pubDate>Fri, 19 Jul 2019 21:01:09 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/</guid><description>Trail of Bits recently completed a security assessment of Kubernetes, including its interaction with Docker. Felix Wilhelm’s recent tweet of a Proof of Concept (PoC) “container escape” sparked our interest, since we performed similar research and were curious how this PoC could impact Kubernetes. Quick and dirty way to get out of a privileged k8s […]</description></item><item><title>Trail of Bits Named in Forrester Wave as a Leader in Midsize Cybersecurity Consulting Services</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/07/16/trail-of-bits-named-in-forrester-wave-as-a-leader-in-midsize-cybersecurity-consulting-services/</link><pubDate>Tue, 16 Jul 2019 11:20:19 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/07/16/trail-of-bits-named-in-forrester-wave-as-a-leader-in-midsize-cybersecurity-consulting-services/</guid><description>Trail of Bits was among the select companies that Forrester invited to participate in its recent report, The Forrester Wave™: Midsize Cybersecurity Consulting Services, Q2 2019. In this evaluation, Trail of Bits was cited as a Leader. We received the highest score among all participants in the current offering category, among the highest scores in […]</description></item><item><title>On LibraBFT’s use of broadcasts</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/07/12/librabft/</link><pubDate>Fri, 12 Jul 2019 06:50:24 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/07/12/librabft/</guid><description>LibraBFT is the Byzantine Fault Tolerant (BFT) consensus algorithm used by the recently released Libra cryptocurrency. LibraBFT is based on another BFT consensus algorithm called HotStuff. While some have noted the similarities between the two algorithms, they differ in some crucial respects. In this post we highlight one such difference: in LibraBFT, non-leaders perform broadcasts. […]</description></item><item><title>Seriously, stop using RSA</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/07/08/fuck-rsa/</link><pubDate>Mon, 08 Jul 2019 06:50:43 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/07/08/fuck-rsa/</guid><description>Here at Trail of Bits we review a lot of code. From major open source projects to exciting new proprietary software, we’ve seen it all. But one common denominator in all of these systems is that for some inexplicable reason people still seem to think RSA is a good cryptosystem to use. Let me save […]</description></item><item><title>Avoiding Smart Contract “Gridlock” with Slither</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/07/03/avoiding-smart-contract-gridlock-with-slither/</link><pubDate>Wed, 03 Jul 2019 14:42:53 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/07/03/avoiding-smart-contract-gridlock-with-slither/</guid><description>A denial-of-service (DoS) vulnerability, dubbed ‘Gridlock,’ was publicly reported on July 1st in one of Edgeware’s smart contracts deployed on Ethereum. As much as $900 million worth of Ether may have been processed by this contract. Edgeware has since acknowledged and fixed the “fatal bug.” When we heard about Gridlock, we ran Slither on the […]</description></item><item><title>State of the Art Proof-of-Work: RandomX</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/07/02/state/</link><pubDate>Tue, 02 Jul 2019 06:50:11 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/07/02/state/</guid><description>RandomX is a new ASIC and GPU-resistant proof-of-work (PoW) algorithm originally developed for Monero, but potentially useful in any blockchain using PoW that wants to bias towards general purpose CPUs. Trail of Bits was contracted by Arweave to review this novel algorithm in a two person-week engagement and provide guidance on alternate parameter selection. But […]</description></item><item><title>Siderophile: Expose your Crate’s Unsafety</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/07/01/siderophile-expose-your-crates-unsafety/</link><pubDate>Mon, 01 Jul 2019 11:30:06 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/07/01/siderophile-expose-your-crates-unsafety/</guid><description>Today we released a tool, siderophile, that helps Rust developers find fuzzing targets in their codebases. Siderophile trawls your crate’s dependencies and attempts to finds every unsafe function, expression, trait method, etc. It then traces these up the callgraph until it finds the function in your crate that uses the unsafety. It ranks the functions […]</description></item><item><title>Use constexpr for faster, smaller, and safer code</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/27/use-constexpr-for-faster-smaller-and-safer-code/</link><pubDate>Thu, 27 Jun 2019 06:50:06 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/27/use-constexpr-for-faster-smaller-and-safer-code/</guid><description>With the release of C++14, the standards committee strengthened one of the coolest modern features of C++: constexpr. Now, C++ developers can write constant expressions and force their evaluation at compile-time, rather than at every invocation by users. This results in faster execution, smaller executables and, surprisingly, safer code. Undefined behavior has been the source […]</description></item><item><title>Panicking the right way in Go</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/26/panicking-the-right-way-in-go/</link><pubDate>Wed, 26 Jun 2019 06:50:58 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/26/panicking-the-right-way-in-go/</guid><description>A common Go idiom is to (1) panic, (2) recover from the panic in a deferred function, and (3) continue on. In general, this is okay, so long there are no global state changes between the entry point to the function calling defer, and the point at which the panic occurs. Such global state changes […]</description></item><item><title>Creating an LLVM Sanitizer from Hopes and Dreams</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/25/creating-an-llvm-sanitizer-from-hopes-and-dreams/</link><pubDate>Tue, 25 Jun 2019 06:50:21 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/25/creating-an-llvm-sanitizer-from-hopes-and-dreams/</guid><description>Each year, Trail of Bits runs a month-long winter internship aka “winternship” program. This year we were happy to host 4 winterns who contributed to 3 projects. This project comes from Carson Harmon, a new graduate from Purdue interested in compilers and systems engineering, and a new full-time member of our research practice. I set […]</description></item><item><title>Getting 2FA Right in 2019</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/20/getting-2fa-right-in-2019/</link><pubDate>Thu, 20 Jun 2019 06:50:12 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/20/getting-2fa-right-in-2019/</guid><description>Since March, Trail of Bits has been working with the Python Software Foundation to add two-factor authentication (2FA) to Warehouse, the codebase that powers PyPI. As of today, PyPI members can enable time-based OTP (TOTP) and WebAuthn (currently in beta). If you have an account on PyPI, go enable your preferred 2FA method before you […]</description></item><item><title>Trail of Bits @ ICSE 2019 – Recap</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/19/trail-of-bits-icse-2019-recap/</link><pubDate>Wed, 19 Jun 2019 10:35:13 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/19/trail-of-bits-icse-2019-recap/</guid><description>Three weeks ago, we presented our work on Slither at WETSEB, an ICSE workshop. ICSE is a top-tier academic conference, focused on software engineering. This edition of the event went very well. The organizers do their best to attract and engage industrials to the discussions. The conference had many talks in parallel. We wish we […]</description></item><item><title>Why you should go to QueryCon this week</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/18/why-you-should-go-to-querycon-this-week/</link><pubDate>Tue, 18 Jun 2019 06:50:09 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/18/why-you-should-go-to-querycon-this-week/</guid><description>QueryCon takes place this week at the Convene Conference Center in Downtown Manhattan, Thursday June 20th- Friday June 21st. If you don’t have a ticket yet, get one while you can. QueryCon is an annual conference about osquery, the open source project that’s helping many top tech companies manage their endpoints. We’ve been big fans […]</description></item><item><title>Leaves of Hash</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/17/leaves-of-hash/</link><pubDate>Mon, 17 Jun 2019 06:50:58 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/17/leaves-of-hash/</guid><description>Trail of Bits has released Indurative, a cryptographic library that enables authentication of a wide variety of data structures without requiring users to write much code. Indurative is useful for everything from data integrity to trustless distributed systems. For instance, developers can use Indurative to add Binary Transparency to a package manager — so users […]</description></item><item><title>Announcing Manticore 0.3.0</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/06/07/announcing-manticore-0-3-0/</link><pubDate>Fri, 07 Jun 2019 06:50:57 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/06/07/announcing-manticore-0-3-0/</guid><description>Earlier this week, Manticore leapt forward to version 0.3.0. Advances for our symbolic execution engine now include: “fast forwarding” through concrete execution that you don’t care about, support for Linux binaries statically compiled for AArch64, and an interface for selectively solving for interesting test cases. We’ve been working really hard on these and other features […]</description></item><item><title>Using osquery for remote forensics</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/05/31/using-osquery-for-remote-forensics/</link><pubDate>Fri, 31 May 2019 11:59:48 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/05/31/using-osquery-for-remote-forensics/</guid><description>System administrators use osquery for endpoint telemetry and daily monitoring. Security threat hunters use it to find indicators of compromise on their systems. Now another audience is discovering osquery: forensic analysts. While osquery core is great for querying various system-level data remotely, forensics extensions will give it the ability to inspect to deeper-level data structures […]</description></item><item><title>Fuzzing Unit Tests with DeepState and Eclipser</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/05/31/fuzzing-unit-tests-with-deepstate-and-eclipser/</link><pubDate>Fri, 31 May 2019 07:00:31 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/05/31/fuzzing-unit-tests-with-deepstate-and-eclipser/</guid><description>If unit tests are important to you, there’s now another reason to use DeepState, our Google-Test-like property-based testing tool for C and C++. It’s called Eclipser, a powerful new fuzzer very recently presented in an ICSE 2019 paper. We are proud to announce that Eclipser is now fully integrated into DeepState. Eclipser provides many of […]</description></item><item><title>Announcing Automated Reverse Engineering Trainings</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/05/30/announcing-automated-reverse-engineering-trainings/</link><pubDate>Thu, 30 May 2019 07:00:28 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/05/30/announcing-automated-reverse-engineering-trainings/</guid><description>Consider our modular trainings. They can be organized to suit your company’s needs. You choose the number of skills and days to spend honing them.</description></item><item><title>Slither: The Leading Static Analyzer for Smart Contracts</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/05/27/slither-the-leading-static-analyzer-for-smart-contracts/</link><pubDate>Mon, 27 May 2019 06:30:58 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/05/27/slither-the-leading-static-analyzer-for-smart-contracts/</guid><description>We have published an academic paper on Slither, our static analysis framework for smart contracts, in the International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), colocated with ICSE. Our paper shows that Slither’s bug detection outperforms other static analysis tools for finding issues in smart contracts in terms of speed, robustness, and […]</description></item><item><title>Announcing the community-oriented osquery fork, osql</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/04/18/announcing-the-community-oriented-osquery-fork-osql/</link><pubDate>Thu, 18 Apr 2019 12:24:51 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/04/18/announcing-the-community-oriented-osquery-fork-osql/</guid><description>For months, Facebook has been heavily refactoring the entire osquery codebase, migrating osquery away from standard development tools like CMake and integrating it with Facebook’s internal tooling. Their intention was to improve code quality, implement additional tests, and move the project to a more modular architecture. In practice, the changes sacrificed support for a number […]</description></item><item><title>Announcing QueryCon 2019</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/04/09/announcing-querycon-2019/</link><pubDate>Tue, 09 Apr 2019 07:50:47 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/04/09/announcing-querycon-2019/</guid><description>Exciting news: We’re hosting the second annual QueryCon on June 20th-21st in New York City, co-sponsored by Kolide and Carbon Black! Register here QueryCon has become the foremost event for the osquery and osql open-source community. QueryCon brings together core maintainers, developers, and end-users to teach, discuss, and collaborate on Facebook’s award-winning open-source endpoint detection […]</description></item><item><title>User-Friendly Fuzzing with Sienna Locomotive</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/04/08/user-friendly-fuzzing-with-sienna-locomotive/</link><pubDate>Mon, 08 Apr 2019 07:50:13 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/04/08/user-friendly-fuzzing-with-sienna-locomotive/</guid><description>Fuzzing is a great way to find bugs in software, but many developers don’t use it. We hope to change that today with the release of Sienna Locomotive, a new open-source fuzzer for Windows that emphasizes usability. Sienna Locomotive aims to make fuzzing accessible to developers with limited security expertise. Its user-oriented features make it […]</description></item><item><title>Performing Concolic Execution on Cryptographic Primitives</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/04/01/performing-concolic-execution-on-cryptographic-primitives/</link><pubDate>Mon, 01 Apr 2019 07:50:55 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/04/01/performing-concolic-execution-on-cryptographic-primitives/</guid><description>For my winternship and springternship at Trail of Bits, I researched novel techniques for symbolic execution on cryptographic protocols. I analyzed various implementation-level bugs in cryptographic libraries, and built a prototype Manticore-based concolic unit testing tool, Sandshrew, that analyzed C cryptographic primitives under a symbolic and concrete environment. Sandshrew is a first step […]</description></item><item><title>Fuzzing In The Year 2000</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/03/28/fuzzing-in-the-year-2000/</link><pubDate>Thu, 28 Mar 2019 07:50:56 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/03/28/fuzzing-in-the-year-2000/</guid><description>It is time for the second installment of our efforts to reproduce original fuzzing research on modern systems. If you haven’t yet, please read the first part. This time we tackle fuzzing on Windows by reproducing the results of “An Empirical Study of the Robustness of Windows NT Applications Using Random Testing” (aka ‘the NT […]</description></item><item><title>What Application Developers Need To Know About TLS Early Data (0RTT)</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/03/25/what-application-developers-need-to-know-about-tls-early-data-0rtt/</link><pubDate>Mon, 25 Mar 2019 09:00:23 -0400</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/03/25/what-application-developers-need-to-know-about-tls-early-data-0rtt/</guid><description>TLS 1.3 represents the culmination of over two decades of experience in deploying large-scale transport security. For the most part it simplifies and improves the security of TLS and can act as a drop-in replacement for TLS 1.2. However, one new feature in the protocol represents a significant security risk to some existing applications: TLS […]</description></item><item><title>Symbolic Path Merging in Manticore</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/01/25/symbolic-path-merging-in-manticore/</link><pubDate>Fri, 25 Jan 2019 07:50:16 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/01/25/symbolic-path-merging-in-manticore/</guid><description>Each year, Trail of Bits runs a month-long winter internship “winternship” program. This year we were happy to host 4 winterns who contributed to 3 projects. This is the first in a series of blog posts covering the 2019 Wintern class. Our first report is from Vaibhav Sharma (@vbsharma), a PhD student at the University […]</description></item><item><title>Fuzzing an API with DeepState (Part 2)</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/01/23/fuzzing-an-api-with-deepstate-part-2/</link><pubDate>Wed, 23 Jan 2019 07:50:06 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/01/23/fuzzing-an-api-with-deepstate-part-2/</guid><description>Alex Groce, Associate Professor, School of Informatics, Computing and Cyber Systems, Northern Arizona University Mutation Testing Introducing one bug by hand (as we did in Part 1) is fine, and we could try it again, but “the plural of anecdote is not data.” However, this is not strictly true. If we have enough anecdotes, we […]</description></item><item><title>Fuzzing an API with DeepState (Part 1)</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/01/22/fuzzing-an-api-with-deepstate-part-1/</link><pubDate>Tue, 22 Jan 2019 07:50:21 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/01/22/fuzzing-an-api-with-deepstate-part-1/</guid><description>Alex Groce, Associate Professor, School of Informatics, Computing and Cyber Systems, Northern Arizona University Using DeepState, we took a handwritten red-black tree fuzzer and, with minimal effort, turned it into a much more fully featured test generator. The DeepState fuzzer, despite requiring no more coding effort, supports replay of regression tests, reduction of the size […]</description></item><item><title>How McSema Handles C++ Exceptions</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/01/21/how-mcsema-handles-c-exceptions/</link><pubDate>Mon, 21 Jan 2019 07:50:27 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/01/21/how-mcsema-handles-c-exceptions/</guid><description>C++ programs using exceptions are problematic for binary lifters. The non-local control-flow “throw” and “catch” operations that appear in C++ source code do not map neatly to straightforward binary representations. One could allege that the compiler, runtime, and stack unwinding library collude to make exceptions work. We recently completed our investigation into exceptions and can […]</description></item><item><title>Empire Hacking: Ethereum Edition 2</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/01/18/empire-hacking-ethereum-edition-2/</link><pubDate>Fri, 18 Jan 2019 07:50:58 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/01/18/empire-hacking-ethereum-edition-2/</guid><description>On December 12, over 150 attendees joined a special, half-day Empire Hacking to learn about pitfalls in smart contract security and how to avoid them. Thank you to everyone who came, to our superb speakers, and to BuzzFeed for hosting this meetup at their office. Watch the presentations again It’s hard to find such rich […]</description></item><item><title>How to write a rootkit without really trying</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/01/17/how-to-write-a-rootkit-without-really-trying/</link><pubDate>Thu, 17 Jan 2019 07:50:53 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/01/17/how-to-write-a-rootkit-without-really-trying/</guid><description>We open-sourced a fault injection tool, KRF, that uses kernel-space syscall interception. You can use it today to find faulty assumptions (and resultant bugs) in your programs. Check it out! This post covers intercepting system calls from within the Linux kernel, via a plain old kernel module. We’ll go through a quick refresher on syscalls […]</description></item><item><title>On Bounties and Boffins</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/01/14/on-bounties-and-boffins/</link><pubDate>Mon, 14 Jan 2019 06:50:53 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/01/14/on-bounties-and-boffins/</guid><description>Trying to make a living as a programmer participating in bug bounties is the same as convincing yourself that you’re good enough at Texas Hold ‘Em to quit your job. There’s data to back this up in Fixing a Hole: The Labor Market for Bugs, a chapter in New Solutions for Cybersecurity, by Ryan Ellis, […]</description></item><item><title>What do La Croix, octonions, and Second Life have in common?</title><link>https://miscreants.github.io/blog.trailofbits.com/2019/01/02/what-do-la-croix-octonions-and-second-life-have-in-common/</link><pubDate>Wed, 02 Jan 2019 06:50:33 -0500</pubDate><guid>https://miscreants.github.io/blog.trailofbits.com/2019/01/02/what-do-la-croix-octonions-and-second-life-have-in-common/</guid><description>This year for CSAW CTF, Trail of Bits contributed two cryptography problems. In the first problem, you could combine two bugs to break DSA much like the Playstation 3 firmware hackers. The other challenge–-weirder and mathier–-was split into two parts: one for the qualifiers, one in finals. This challenge, &amp;ldquo;Holywater,&amp;rdquo; was some of the most fun I&amp;rsquo;ve ever had making a CTF problem.</description></item></channel></rss>