top | item 31417993

Heroku CI and Review App Secrets Compromised

249 points| himeexcelanta | 3 years ago | reply

Just got an email from Salesforce: "Action Required: Heroku security notification".

Looks like the database that stores pipeline-level config variables for both Review Apps and Heroku CI were compromised.

Per Heroku, "...any secrets you set in Review Apps and Heroku CI config may have been compromised and should be rotated".

This...is really messed up :/

95 comments

order
[+] bradleybuda|3 years ago|reply
Text of the email:

At Salesforce, we understand that the confidentiality, integrity, and availability of your data is vital to your business, and we take the protection of your data very seriously. We value transparency and wanted to notify you of an issue affecting your account. Based on current progress, we plan to complete our investigation by May 30, 2022. We are continuing with remediation activities and plan to publish additional information about the incident once it’s resolved.

As reported on status.heroku.com, on April 7, 2022, a threat actor obtained access to a Heroku database and downloaded stored customer GitHub integration OAuth tokens. On that same day, the threat actor downloaded data from another database that stores pipeline-level config vars for Review Apps and Heroku CI. This was identified on May 16, 2022, after further forensic investigation. We have no evidence of any unauthorized access to Heroku systems since April 14, 2022.

As a result, any secrets you set in Review Apps and Heroku CI config vars may have been compromised and should be rotated. In addition, any Heroku tokens stored in these pipeline config vars would potentially have allowed access to your Heroku account between April 7, 2022 and May 5, 2022, when your passwords were reset, invalidating all Heroku tokens as a result.

Please note, these pipeline-level config vars are different from standard app config vars. App config vars were not stored in this database and we have no evidence to suggest app config vars were compromised.

[+] hthrowaway5|3 years ago|reply
> At Salesforce, we understand that the confidentiality, integrity, and availability of your data is vital to your business [...]

Hey Bob, why didn't you tell your customers a month ago to rotate their creds just to be safe? This is flat out insulting.

[+] hkhanna|3 years ago|reply
I spent the last two days migrating my company to Render from Heroku, and now I'm glad I did. Render is a little rough around the edges; Heroku is far more polished.

But it's probably to Render's credit that, in my opinion, the most annoying thing about Render is that it's impossible to google about Render because "render" is such a common word in the tech world!

Their support is good and responsive, and the developer experience was good enough. It has some warts, and there were definitely times I missed Heroku, but their speed of improvement gives me confidence in their future.

Sad to leave Heroku after almost a decade with them. They were far ahead of their time.

[+] anurag|3 years ago|reply
(Render founder) Thank you for the support. You might have shared this with our support engineers already but I'd love to hear about what you missed from Heroku (email in profile). We're building Render for the very long term and every bit of feedback helps, even if we can't get to it right away.
[+] pid-1|3 years ago|reply
I don't use Heroku, nor Render, and I definitely think anyone using Heroku should be moving out, but...

Do you have any evidence Render actually takes security seriously?

Not shitting on their platform, I actually never used it, I just think as an industry we should be way past the point we trust platforms by default.

[+] tdfx|3 years ago|reply
We just started planning our transition, as well. This was handled so poorly I can't imagine anyone would ever plan to start a new project on their platform.
[+] gault8121|3 years ago|reply
How did the pricing compare? What was the Render server needed to match what you were using with the Heroku Dyno? I run a high-traffic nonprofit edtech app that runs on 3-5 Heroku L Dynos, and I'm curious how well Render will perform at this level.
[+] rychco|3 years ago|reply
I also intend to deploy some new services on render (having previously used Heroku).

I was debating between render & fly, which I've also had my eye on and may still try for something else in the future.

[+] Rastonbury|3 years ago|reply
Mind sharing why you chose Render over other competitors? Considering the same
[+] hthrowaway5|3 years ago|reply
Yep, they outright lied about env vars. Incredible.

It pains me to see even occasional defenders of Heroku. They're not the company they were 10 years ago. They've been gutted and left for dead years ago but the product was so good nobody noticed until now.

They're not to be trusted as your platform. They simply don't have anywhere close to the manpower required to run such a platform. This was a when not if situation.

If you're still on it, make your plans to move away now. Time is ticking until a major outage or another security incident like this one. See my comment history and related threads for more. Specifically this summary: https://news.ycombinator.com/item?id=31374048

[+] bradleybuda|3 years ago|reply
I would not say that they lied about the env vars. The stated line is still "env vars in apps were not compromised, but env vars in CI pipelines and review apps were". For some applications there may have been shared data in these vars - in our case (N=1) our CI pipeline and review apps had a dramatically smaller and less critical set of variables.

It still sucks that they are parceling out the information, but the claim that they outright lied is not true.

[+] colesantiago|3 years ago|reply
I would like to move but there are really no good alternatives that are even close to Heroku.
[+] mepiethree|3 years ago|reply
11 days ago they said "While we confirmed that the threat actor had access to encrypted Heroku customer secrets stored in config var, the secrets are encrypted at rest and the threat actor did not access the encryption key necessary to decrypt config var secrets."

I guess that was a lie?!

[+] bibinou|3 years ago|reply
the subsequent blog post (https://blog.heroku.com/we-heard-your-feedback) says:

> Additionally, we have no evidence that the attacker has accessed any customer accounts or decrypted customers’ environment variables.

which, as pointed out in its HN thread, means "we now know they got access to encrypted vars, and we don't know yet if they could have decrypted them." in BS-speak.

The title "We've Heard Your Feedback" is also a red herring, usually means "we know we fucked up bad and we still have no idea of the whole impact of the breach".

[+] himeexcelanta|3 years ago|reply
HN with the quality security advice, with all the recommendations to rotate config vars just to be safe.
[+] zevir|3 years ago|reply
For those looking for a great alternative to Review Apps - Livecycle is great (https://livecycle.io/). It offers the automated per-PR ephemeral environment and much more. It also includes a rich layer of built-in collaboration and annotation tools that allow all collaborators to join the PR review and leave their comments visually, on top of the product UI. The comments are maintained in Livecycle and also synced back to Git as review comments so that developers can see the issues faster, understand them better and address them sooner. There are setup templates that make it easy to simply copy over your docker file and get started within a few minutes. And the team is eager to help if you have any questions or issues.
[+] itsmeste|3 years ago|reply
When Salesforce bought Heroku back in 2011, it was pretty clear Heroku would become yet another dead product that once was an absolute great piece of software.

Why? Commercialism.

Founders sell to the highest bidder to make their exit worthwhile for themselves, not caring about the future of the product (and customers).

It's a no-brainer that a commercial company like Salesforce (it's in their name!) doesn't have what it takes to build AAA software, but focuses on maximizing their profit. They drove away their best staff, focused on the wrong features, and are seemingly overwhelmed by maintaining their purchased software, all while probably not even realizing their demise.

We should all come to the agreement that takeovers of fundamental software by incompetent companies should be seen as a hostility towards every current user of said software.

[+] alx__|3 years ago|reply
> When Salesforce bought Heroku back in 2011, it was pretty clear Heroku would become yet another dead product that once was an absolute great piece of software.

That feels like a angsty-tinted view. I recall the day it happened. The Ruby dev shop I was at was optimistically nervous. As Heroku had been a shiny new thing and only deployed Ruby. Acquisition allowed them to expand and support other languages. They didn't even have pipelines!

https://techcrunch.com/2010/12/08/breaking-salesforce-buys-h...

[+] nameless912|3 years ago|reply
Yup, that's game, set, and match. I really feel bad for all the herokai still left holding the line, but damn am I glad I got out when I did.
[+] jamespetercook|3 years ago|reply
Slightly off-topic, but can anyone tell me how you’d know that your database has been accessed by a threat actor? Should I be periodically reviewing all my logs for something unusual?
[+] MarkMarine|3 years ago|reply
Yep. Quick and dirty you could alert on large or slow queries, and check the logs periodically. I know it’s probably not effective but I grep logs and watch the terminal looking for aberrant shapes. I believe AWS offers a ML solution to watch your infra and alert for things that are out of the usual, and I’m sure (haven’t built it, but talked to people that worked in the systems) the big companies have sophisticated systems looking for threats that use everything above and far more.
[+] Mandatum|3 years ago|reply
Sounds like a customer's canary token triggered this based on the current reporting.

"Trust is our Number 1 value."

[+] ubertaco|3 years ago|reply
For folks employed by Salesforce, the phrase "Trust is our number 1 value" only comes up in two contexts:

1. company all-hands meetings, which are basically pep rallies with no actual content

2. when someone working at Salesforce brings up a glaring problem and says "if Trust is our number 1 value, why don't we do something about this huge problem?", which is usually met with either silence and bureaucratic obstacles or with excuses, usually something like "customers trust us to spend the money they pay us building the features and products they want", which is like...exactly not the definition used at any of the pep rallies.

[+] gault8121|3 years ago|reply
Has anyone done a load test comparison for Heroku vs. Render.com? The "Pro Ultra" on Render is $450/month for 32 GB RAM + 8 CPU. The Heroku Performance L Dyno is $500 a month for 14 GB RAM. The Render server seems like a much better offering.
[+] oxff|3 years ago|reply
Has anyone done a security review of Heroku alternatives? I see lots of comments about moving there and using them instead of Heroku because of this incident. But that's hardly a justifiable reason alone, since those new platforms are probably worse off in security.
[+] kaycebasques|3 years ago|reply
Any guesses as to how the "threat actor" got access to the databases? I understand most guesses would be conjecture (unless someone here has an inside scoop). Just curious about how stuff like this usually gets compromised.
[+] daudmalik06|3 years ago|reply
This is why we at vulert.com never access the customer's codebase or any installation, who doesn't know vulert, it's a service that notifies you for security issues in your software dependencies.
[+] heartbreak|3 years ago|reply
I completely stopped getting their update emails when I deleted all of my running apps. This is the second one I've seen on HN that I haven't received (though I received the others).

Is the impact limited to specific customer accounts, or are they just not updating me anymore?

[+] hthrowaway5|3 years ago|reply
From the email:

> We value transparency and wanted to notify you of an issue affecting your account.

My guess is they sent it to users with pipelines that have env vars. It's funny since this sentence demonstrates they don't value transparency by not telling the other users more information about the hack.

They updated Heroku Status but surprisingly failed to mention anything about CI or pipelines.

[+] Ozzie_osman|3 years ago|reply
I think it's specific to apps with Review Apps or Heroku CI (specifically the Config Vars). If you didn't have those, based on this email, you may not be impacted.
[+] boesboes|3 years ago|reply
Still havent had any notification on this. A+ for Heroku
[+] vmception|3 years ago|reply
oh shit. I'm surprised we haven't heard about major services getting hacked to oblivion right now, so much is stored in environment variables

are there any mystery hacks occurring yet?

is this database known to have been spread anywhere?

[+] jacobsenscott|3 years ago|reply
Hopefully most people didn't have production creds stored in pipeline config. These vars were for review apps and ci.
[+] oxff|3 years ago|reply
My sides, what a shitshow.