Walking away from $30,000 of DJI bounty money [pdf]
regmedia.co.uk
regmedia.co.uk
The whole article sounds like a mishmash of incompetence, being unprepared, and having a legal team not really interested in having a robust or even good bounty program. Basically a bounty program driven by Marketing and/or Legal to be able to say "we take bugs seriously" rather than by Engineering with an interest in actually getting problems resolved.
Every time I read a story about a company bumbling their way through some obviously poorly conceived PR problem (see also: Logitech's recent announcement that they'll be bricking one of their products), I think to myself, "What on earth was that meeting like?" You know, the meeting where they are supposed to plan what to say, how to say it, what actions to take when, what contingency plans, etc. Those things that grown-up companies do when they interact with their customers or the public. I mean, was it really as incompetent as, "I know, let's offer a bug bounty, and then threaten legal action against people who participate! That will surely help our image!" Was there not one person around that conference room who thought to raise their hand and say, "Now hang on a minute--we might not be thinking this through..."
[0] Variations on "Never ascribe to malice that which is adequately explained by stupidity."
I'm still willing to accept that the root cause is often not actual malice, but I don't actually care if the damage is done because somebody wanted to inflict it or just ignored all warnings and forged ahead, no matter the cost. The damage done to others is the same.
It didn't matter that Toyota lied and claimed their cars computers used error correcting RAM but they cheaped out and saved a fraction of a cent on each car by using non-error-correcting RAM. It didn't matter that their developers didn't even have access to a bug tracker. It didn't matter that they didn't have access to static analysis tools (which when used on the code afterward found the problem instantly). It didn't matter that the automotive industry has 90+ practices recognized as "required" or "recommended" and Toyotas code followed only 4 of them.
There is literally no degree of negligence which is great enough to cause a court (in the US anyway) to judge a corporation as having been criminally negligent if a computer or software is involved. And it's reflected in the established business practices of most companies. They hire the cheapest "labor" they can find, deprive them of the tools and work environment needed to do their job competently, ignore any warnings about safety, security, correctness, or other technical issues in deference to business goals, etc.
And it'll be the worst of the worst who gets a fully autonomous car on the market and careening down your street first. And when it hits your car or (hopefully not) your kid - the company will skate away absolutely unscathed.
(Thanks for the hint, seems about right to not travel to the US anymore if border control and software companies can fuck you up that much)
There's also a variation on the idea I heard around here recently[0] called the Godfather's Switchblade:
"Make it look like an accident"
It might count as stupidity, though, to have no clues about things and be so ignorant about it that you are not willing to do anything or listen to anybody that could change this cluelessness... ;)
Being able to say "we have a $30,000 bug bounty program and nobody has claimed it" would be extremely attractive.
Because that sounds like where I work.
And then you get a public action that looks nonsensical. Because the process that formed it was in every way NOT optimized to produce the objectively correct action. In-person interaction is a cancer on the workplace and always has been, though it was far less visible in workplaces where the majority of people were standing on an assembly line putting together the same widget every single day without thinking. In todays world, where mental work is the primary economic activity, it is unavoidable and tremendously destructive. We will look back with amazement on how long we permitted this to linger on for no reason other than the fear the management class has of being made irrelevant by the tools that coordinate and facilitate radically better coworker interaction and the fear of those with forceful personalities of being caught with their pants down when tested on their merits (not that they necessarily will fail on those merits, but personal fears like that are rarely well-founded or rational).
And they sent him threats after they offered him the highest ($30,000) bounty, waited a month doing nothing, and then finally sent him a terribly restrictive non-disclosure agreement which he'd have to sign to actually get the cash.
After DJI dragging it out for weeks, giving overly broad terms, and sending a poorly crafted CFAA threat (which in charitably interpreted was just to ensure he deleted any sensitive material), researcher walked away after being frustrated by the time sink.
Instead, they got a stack of catastrophic, maximum-severity issues right away and panicked.
1. Research and find vulnerabilities
2. Apply for bounty
3. Parry legal threats
4. Exit empty-handed 1. Research and find vulnerabilities
2. Notify company in good faith
3. Parry legal threats
4. Embargo for a reasonable amount of time
5. Parry legal threats
6. Publish report
7. Parry legal threats
8. Get academic prestige
9. Parry legal threats
10. Blog on emerging exploits
11. Parry legal threats
Another option: 1. Research and find vulnerabilities
2. Sell on black market
3. Get paid, possibly several times
4. Die in suspicious car crash 1. Research and find vulnerabilities
2. Publish publicly immediately 1. Research and find vulnerabilities
2. Research company
3. Notify company in good faith depending on result.
If they have recently misbehaved towards people disclosing vulnerabilities, publish publicly immediately.If they respond with any sort of legal threats, stop communicating with them and publish publicly immediately.
If I expect the company to be reasonable (e.g. has a bug bounty, is known to respond reasonably, or even just is a tech company that can be expected to have a clue) I contact them openly, otherwise, I consider either contacting them anonymously first, or (especially if I don't like them and don't want to deal with them) publish.
The "notify in good faith" really just fosters a culture of "scratch my back, i'll scratch yours". Frankly, as a white-hat researcher you can be as much of a bad actor as any company and this is a sort of moral hazard that fosters a culture of unfairness and insecurity. If you really care about the overall security of the industry or consumers, you will publish immediately and leave the moral hazard of "perks/special treatment" off the table.
The companies that are reasonable in the way that you describe would not be materially harmed by such a disclosure and do not (okay, rarely) have the most egregious kinds of bugs. It raises the bar for everyone to do this.
Basically, it's not about you; don't make it about you; just publish. Every day that you do not publish, some client could be catastrophically affected by the bug and the company could be seriously dragging-ass on the fix. You have no visibility into this.
(Side note: I'm a developer and I build all of my infrastructure. Getting caught with my pants down by a vulnerability disclosure would totally fucking suck and be 100% my fault. It's my neck on the line. So yes, it will suck, and I might hate you a little, but then I'll realize it's my screw-up and that I need better processes to proactively solve these.)
DJI started a bug bounty program, but mismanagement and dick moves ended up costing a guy a deserved 30k bounty.
longer tldr:
The problems found revealed they were in fact in desperate need of the help.
The program was managed poorly. DJI had a chance to correct the situation, but instead acted in bad faith to researchers who had went out of their way to help them, even threatening leagal action for no good reason.
The guy legit earned the 30k bounty, but effectively had no way to get the money due to legal threats and/or requirements to sign draconian restrictive legal documents.
Important subject, interesting story, takes forever to get to the point. Reads like this was partially due to the guy having no sleep and being worn down after a long period of emotional exasperation.
I agree with you entirely, he earned the $30k bounty and DJI is both morally and, one would hope, legally culpable in trying to defraud him of $30k. While it sounds like a great deal of money for "not much work" (we are, I suppose, to take the extensive education and experience utilized as something that appears from the ether and one is simply anointed with, unearned), it is really a paltry sum when considered reasonably. How much money has DJI saved by not hiring staff capable of building the system correctly in the first place? How much money would DJI make from retaining the lucrative clients that will hopefully drop them like a hot potato when they learn of this bungled exposure of just how little they care about security? (I am guessing that those .gov clients and any similar will be hearing from their engineers and getting this document passed up the chain soon. And I don't know about DJI specifically but at least in the US most companies rely upon the government as their largest customer.) $30k for the work performed, and the consequences if handled only as honestly as a child on a playground who makes a promise and feels bound by it, is a stupendously tiny amount of money. And yet, DJI is so shortsighted, mean, and cheap that they're not even capable of honoring the agreements they freely made of their own accord.
Do you think anyone at DJI simply thought that their systems were secure and no significant bugs would be found? If so... what are those people thinking now?
does logic not force us to admit one of these must be true: Either here are no easy ones, or a company didn’t invest in fixing the easy ones before announcing the program?
if we’re forced to admit that, how can this guy be criticized?
Of course, that puts you in a position of interacting with the US government on security research.
The bug bounty programs are basically a counteroffer to those.
It's certainly fairly overt, though I don't know the legal standing. Whether or not a researcher broke CFAA in finding a bug, is describing it to a third party a criminal act?
The zero days you refer to would instead be vulnerabilities in software which a researcher would test against local software / hardware they own, not only for legal reasons, but also because actively probing a web server can set off alarm bells (Making access less useful after validation).
https://www.wired.com/story/hack-the-pentagon-bug-bounty-res...
Largest exploit type goes for up to $1.5MM: https://zerodium.com/program.html
But on the other hand, really thank you, working in DJI is not so good anyway.
How were you fired because of that story?
Carpet bombing all DJI github repos and openly accessible employee projects is something I would expect from Chinese company trying to pretend whole thing never happened.
In the context of a bug-bounty program, it's not malicious to "harm the reputation" of the entity in question, it's malicious to attempt to profit off the hack itself.
> The author wanted to sign the papers, take the money, and advertise the hack.
Of course! It's part of their portfolio.
It's common for security researchers to share details of a hack once it's been fixed. It's not "malicious" to tell the truth.
My guess is that once they got this report and the others they received after opening the bounty program, they shit their pants a little. They did not expect 'oh hey, literally every single segment of your system could be taken over by a malicious party right now and you are probably hemorrhaging data that will lose you clients, destroy your reputation, and maybe even get your company into very severe legal trouble.' They realized, also, that this program was not going to be a matter of an obscure $100 or $1000 bug being reported every 6 months or so. They realized that their entire empire was built on sand. Particularly unstable sand at that, prone to explode at any moment. So for a month they had meetings where they kept out absolutely any person with any technical knowledge whatsoever - those people are just the ones that build everything that enables the company to exist or conduct business, they don't know anything that matters. And in those meetings, they formed a plan:
Step 1: Get out of paying the initial bounties. Step 2: Fix the initial bugs reported, crediting as they have previously their internal team and 'external researchers', giving no hint of who or which things were found by internal folks as opposed to external researchers, etc. Step 3: Significantly modify the bug bounty program terms to either radically reduce the amount of money awarded or else change who gets to decide 'severity' so that the maximum bounty is never awarded again.
I imagine they see this as several problems. Losing face and looking exactly as competent as they are is a big one, signified by how they have handled prior bug reports and fixed and also how they responded throughout this process. Losing money, although it is objectively and by all reason a microscopic sum of money to "lose" (I can not imagine for a heartbeat that they see this as the ridiculously lucrative investment it actually is), with little to no ability to predict the eventual overall magnitude of the loss. Are they going to have $30k findings every year? Month? Week? DAY? They likely see their infrastructure as swiss cheese and their technical team as incompetent right now. Since they are 'business people' and do not sully themselves with technical knowledge, their imagination gets to run wild. The idea of one bad person destroying their company in an afternoon is something hypothetical and far away, so it doesn't even enter their mind. They see only the truck that is bearing down upon them right now and bleeding $3 million on this program in the first year alone probably doesn't seem out of the realm of possibility. They also desperately need no one to ever find out about this. Those .gov customers? They get wind of this and they are smoke. They will never be seen again and are probably a large part of the future roadmap of the company. This is an extinction-level event.
I hope my guess is very off-base and totally wrong. If it's not... I'd be surprised if its more than 30 days before we are hearing about the author being brought up on as many charges as their legal team can find.
I'm not sure why you seem to think that e.g. non-disparagement clauses are unenforceable in the US.
"Can't do a demo," the DJI rep said. "We're waiting on a firmware upgrade from China. None of the drones are working."
"Um, why?" I asked.
"Because the firmware in the drones contains a database of all known aircraft control towers and every drone has GPS. When it sees the drone is within [a few] miles of a control tower, it shuts down the drone. And right now we're only about 100 feet from a control tower."
"But you're inside a netted enclosure?"
"The firmware doesn't know that. The new firmware we're waiting on includes an exception for this location."
I don't know if the upgrade ever arrived, but this episode taught me I don't want a DJI product. DJI probably lost hundreds of thousands of dollars in sales because of that boneheaded move.
They could act as the 'go between' for the SaaS or manufacturer, as well as protect the privacy (and possibly identity) of the bounty hunters. The BBaaS could have tried and tested boilerplate terms and conditions for both parties, as well as handle the reward payouts and filing/validating of reports.
Myself, I'd say if you are not much interested in bugs bounty, it's not worth reading, it's just mostly drama between the writer and DJI.
Anyway, the short of it is the unsurprising fact that when DJI was pressed to actually deliver the money, instead of offering the bug bounty they promised, they instead used their lawyers and the CFAA to try to attack and silence the author.
EFF?
They understand what constitutes reasonable, necessary and/or expected by both the security communities AND company/legal and can work as a party to both sides with standard agreements, suggestions, etc.
Edit: Please take a look at my comment below before downvoting?
"I of course still needed to have a lawyer review the terms, even if they were DJI’s final offer. In the days following no less than 4 lawyers told me in various ways that the agreement was not only extremely risky, but was likely crafted in bad faith to silence anyone that signed it." Page 17
Edit: I'm getting downvotes on my comment above, and maybe it's because I missed the part where he said he consulted a lawyer, but I have a suspicion that it's because I suggested the threat of a lawsuit. I know we live (in the US) in a overly litigious society, but my point is that the company is (perhaps through disorganization or communication problems) trying to alter the terms of an existing agreement. This is what contract and tort law is for. Sometimes the threat of getting the courts involved can cause the other side to see more clearly what is going on.
Leaving the researcher with a pile of security research that is ostensibly worth at least $30000 to somebody, no contractual obligations to anybody, and a possible "unclean hands" defense to any action DJI may subsequently bring against him.
If I were employed by any intelligence TLA or drone/UAV manufacturer, I'd already be at their door with warm smile and a briefcase full of cash.
After all, no-one rushes out to hire four separate lawyers to examine a contract. And if you paid for one lawyer to fully investigate the situation, why would you then seek out three other lawyers afterwards? If you decided that the lawyer you hired was crap and their opinion worthless, you might hire another one. But their opinion was the same as the first lawyer, so by this point you'd be insane to hire any more lawyers.
So it's much more likely that he informally asked some friends and contacts. While these people may well have been lawyers, they probably were just offering a quick, rough opinion on the matter. If a lawyer was actually hired, they would spend some time fully understanding the situation, and the next step to take would then be acting on their advice, not seeking out further legal advice to muddy the waters.
Considering DJI's position at that point was "this is a final offer" how useful would it be to shell out a considerable amount of money for a more thorough review?