The mystery of 'hacked' Houseparty users may have been solved
medium.com
medium.com
Switching to the original source seems fairest, but you might want to read one of those other articles too because they give more of the backstory.
If you create a subdomains under your trusted domain, and point those domains to IP address controlled by scammers - you bear some responsibility for the resulting mess.
The Epic claims are pure PR spin. Epic claimed
"these rumors amounted to a paid commercial smear to harm Houseparty, announcing on their Twitter account, that a million-dollar bounty was being offered to “the first individual to provide proof of such a campaign.”"
An individual offered clear proof that Epic was pointing houseparty domains to scammers who were using that to steal folks info, the exact situation users were complaining about. These are domains UNDER EPICS TOTAL CONTROL being pointed to scammers.
They now claim they still found no evidence of a campaign against houseparty users by a hacker group - and this was all a "paid smear campaign".
Who believes these PR people -seriously?
If Amazon takes payments.amazon.com and point it to Scammer IP XXX, how does that NOT create a vulnerability?
But is it a compromise of the app? I'm failing to see the nexus between Houseparty, the app, and these subdomains. How does someone using the app end up on the subdomain?
"Certificate Pinning" and/or HSTS both help, and there are other measures.
- Houseparty spins virtual servers up and down quickly to respond to changing demand.
- They have a DNS TTL that's longer than the draining time for those VMs. Like, maybe they it takes them five minutes to kill a VM but DNS records are cached for an hour.
- The attacker takes advantage of that window to spin up a bunch of tiny VMs and see if any of them are allocated one of the IPs that Houseparty recently abandoned. If so, then they fire up Nginx and serve poisoned PDFs to anyone who connects to it.
- An end-user's app connects to "ephemeral-vm-837.houseparty.whatever" and gets the cached value that their ISP is still serving, because Epic configured their DNS to tell the ISPs to cache it for an hour, except now that IP is served by the attacker instead of by Epic.
Mitigating this could be as blunt as setting DNS TTLs to 5 minutes, then putting "sleep 300" at the start of each server's shutdown script. When you decide to kill a server, first kill its DNS record so that nothing refers to it anymore, then start the waiting period before actually removing it from rotation.
Even if the attacker redirects the traffic, it still needs to serve the HTTPS/SSL certificates. How will the attacker do that?
There are a lot of ways this could go wrong.
EDIT:
Specifically: https://letsencrypt.org/docs/challenge-types/
It won't give you a wildcard certificate, but you don't need one for the type of attack we're talking about.
You get a bunch of elastic IPs, you point your domains to those, you point those to your instances.
That's secure, no one can use those IPs until you release them. Is this rocket science? On AWS I don't think you really get charged for this even (or very little) from what I can tell if you have them all pointing to your instances.
[1] https://aws.amazon.com/premiumsupport/knowledge-center/elast...
[2] https://aws.amazon.com/ec2/pricing/on-demand/#Elastic_IP_Add...
One could argue that this is pocket change for a large customer to do the right them, but from a PM's perspective that $40K per year they could be spending towards another engineer's salary.
[0] https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-... [1] https://aws.amazon.com/ec2/pricing/on-demand/#Elastic_IP_Add...
If I had a dollar for everytime traffic stopped to an IP after the DNS ttl expired, I wouldn't have any dollars. After taking IPs out of DNS for www.popular site, I would continue to see traffic for weeks, and the TTL was set for somewhere like 5 minutes, an hour tops. Edit: also, when we moved our authoritative DNS, the old provider kept seeing queries for at least 6 weeks.
If the only thing preventing you from sending private data or receiving trusted data is that it came from an IP you got from DNS, it's not secure.
If they do, then the procedure above (and doing everything over https) should be enough, I think.
What I proposed was a blunt force tool to try to help mitigate the problem, but you're 100% correct that it's not sufficient. Key pinning would go a lot further towards fixing it. What I suggest could be rolled out pretty quickly and without risk, though, so IMHO it's worth adding to the to-do list.
They are NOT then checking that the subdomain was released and got a new IP recently (or didn't get an IP).
These PR people love to split these hairs. Our app is secure - but we leaked 100% of your data out of our back-end servers when they were hacked for 3 months - is another one that's common.
(Nice work!)
Someone proved that it wasn't a commercial smear campaign, it was merely hackers hacking for the lulz and to get some free pizza and porn.
But Epic only promised $1m if you proved it was a commercial smear campaign, not $1m if you merely figured out the origins of it.
(1) In whose judgment must the argument count as "proof"? Epic's, or a court of law's, or someone else's?
(2) With $1M at stake, it could make sense to sue Epic for the bounty. Is there some legally valid contract that lets Epic avoid that?
Huh, what? CSP headers are awesome, but afaik not against MitM attact, nor against embedding the page in 3rd party webpage... Or am I missing something?
I couldn't find any connection to a breach.
The author does correctly point out that the CSP headers were overly permissive. If the new owners of the IPs knew what they had, they could definitely have used that to find other flaws and exploit them.
I think this situation would need to be combined with XSS on an active Houseparty domain to be effective. The weak CSP would make XSS or CSRF possible.
Edit: if authentication tokens were stored in cookies that span subdomains, it's also possible sessions could be leaked that way.
The tweet in question (https://twitter.com/houseparty/status/1244827034406121472) clearly offers the bounty for "the first individual to provide proof [that the recent hacking rumors were spread by a paid commercial smear campaign to harm Houseparty]". The article goes to great lengths to explain this is exactly what didn't happen and so no bounty makes sense.
Edit: I just noticed the headline of the article is actually more correct. Maybe someone can fix the title on this post. As I write this comment, the title on the post is "Epic refuses to pay out $1M bug bounty promised for discovering exploit"
The guideline says to rewrite titles only to make them less baity and misleading—not more.
EDIT>>Misunderstood the exploit.
Do give them your credit card info...