Live data from Hacker News

Slack was hacked

slackhq.com

371–380 of 526 posts

Re: Slack was hacked

#371
post #315

Earlier quoted context omitted.

I think this just goes to show exactly why these systems will become more commonplace. There are only so many security experts to go around. Having all the very best concentrated on a smaller set of services seems like it makes more sense than trying to get a security expert for every service.

I have a friend who works security, previously for the government, and now for Visa. In his opinion: if you haven't been hacked, you just aren't an interesting enough target for the right people. I don't know how common this line of thought is in security. But if it is common, then if you're a small company, aren't you better off not hosting my stuff at these large companies, because it's putting information you coll…

I think a more correct assessment would be:

If you think you haven't been hacked, you probably have (or you are so small that you may have only been probed by bots).

If you haven't actually been hacked yet, it is only a matter of time. Ideally you start designing security layers now, before you are compromised.

Re: Slack was hacked

#372
Original email sent to Slack users: https://gist.github.com/anonymous/a26e3279dd57be3363b3

What the email might sound like if Slack was being completely forthright:

---

Dear User,

We are writing to inform you that our servers have been broken into and that the personal information of our 500,000 users (including you) has been stolen. This information was likely swiped by either the bad guys (thieves) and will be sold on the darknet, or by the bad guys (NSA) and will be used in their efforts to build a global surveillance state.[1] We have since tried to block this unauthorized access and made additional (but nebulous) changes to our technical infrastructure in an attempt to prevent future PR headaches. No specific action is required of you - nor is there anything you can do to reverse your lost privacy.

However, our PR department is extremely worried that this news might damage our 2.76 billion dollar valuation.[2] Since we have been working on a sexy (but completely unrelated) security feature for a while, we decided to release it early. We intentionally conflated the fact that our servers got hacked with a new user-space security feature in an effort to obfuscate how badly we screwed up.

The breach happened in February but it has taken us till the end of March to get this new feature usable.[3] (If you are asking yourself why we would release a half-baked security feature, just remember, we are the company that just accidentally released personal information belonging to you and half a million other people.)

We are hoping that by making just the the paragraph about this new feature BOLD many users might miss what really happened. We also hope that by "strongly recommending" that you enable this feature, the blame for this security blunder is shifted to our customers, as if this could somehow be prevented by enabling this feature. Additional misdirection is available in our help center.

[1] https://www.eff.org/nsa-spying

[2] http://blogs.wsj.com/digits/2015/03/26/slacks-valuation-more...

[3] http://slackhq.com/post/114696167740/march-2015-security-inc...

Re: Slack was hacked

#373

Lot's of hype (IMO) around Slack, but lot's of money thrown at them so I kept thinking that I'm missing something! Just being skeptical as usual. The other day an invitation arrives to use Slack. Great! Let's see it, this killer feature or killer combination of features. What have these smart people come up with that hasn't been done countless times in the same space to make them so successful? It's literally nothing…

It fills a necessary gap on large and remote teams. Email is too cumbersome, verbal communication isn't always practical or possible, nothing does group chats very well.

And it's not hipchat (or bought by Atlassian). Let's not forget that.

Re: Slack was hacked

#374
post #226
post #170

Earlier quoted context omitted.

Please do not do it: http://stackoverflow.com/questions/16891729/best-practices-s...

Why combine hashes? Just use XOR. If bcrypt can protect "not_my_password", it can certainly protect "KKQ{H]zTDWVSJVA", which is the former XOR'd by "%$". XOR doesn't decrease the keyspace (or change it in any interesting way), so any attack on XOR is an attack on bcrypt; XOR is fast enough to evade any sort of timing attacks, too.

Careful. If an attacker is ever able to observe the output for a very short password - one byte, say - then only one byte of your secret salt is used, and the attacker could begin brute-forcing the secret salt starting with the first byte.

XOR could also result in NULL bytes anywhere in the hash input, which could drastically weaken passwords,. For example, bcrypt ignores any password characters after the first NULL byte. This is especially bad if the attacker can supply their own passwords, doubly so if they can observe the output, since they can then easily brute-force individual bytes of the secret and use that knowledge to intentionally create NULL bytes in the hash input.

> XOR doesn't decrease the keyspace (or change it in any interesting way), so any attack on XOR is an attack on bcrypt

I wouldn't make any statement like this unless you've actually gone through the steps to prove it.

Re: Slack was hacked

#375

Literally was arguing with someone like two days ago that using Slack for sensitive data was a bad idea, guaranteed to blow up in your face sooner or later. Nothing sweeter than "I told you so".

Last year someone found a Slack security hole and was able to see all the companies using it and the room names, some of them pertaining to products under development.

People are suckers for still using this company's products.

Re: Slack was hacked

#376

Slack has now sent me 6 e-mails about this, to the same address :( They have different names associated in each one (i.e. some have my last name, some have an alias, etc), but all to the same target e-mail address.

See my other comment on the same point in this thread.

Re: Slack was hacked

#377

Earlier quoted context omitted.

In incident response you assume the worst, but in system design you try to minimize impact of common attacks like SQL injection. There's nothing wrong with nesting algorithms (see the Facebook hash onion), so you can use the following scheme: bcrypt(bcrypt(password, salt), pepper) And do a pass on all your database entries like bcrypt(old_hash, pepper)

In your website's example, you have bcrypt(password, salt+pepper) Observe the difference between that and the rehash you just posted bcrypt(bcrypt(password, salt), pepper)

> bcrypt(password, salt+pepper)

I hope it's obvious that no one should never do this, since the output would contain the "salt+pepper" bits in cleartext alongside the hash, defeating the entire point of the "pepper":

https://www.usenix.org/legacy/event/usenix99/provos/provos_h...

In fact, this is a perfect illustration of why it's bad to put secret bits into a crypto function in a place that's not designed to take secret bits. Bcrypt does not treat the salt parameter as a cryptographic secret, and other algorithms might not either. And they might leak it in more subtle ways.

Re: Slack was hacked

#378

Earlier quoted context omitted.

Why do articles talking about this always talk about specific work factors and choosing a correct work factor, as if it's fixed? I thought good practice was to choose the work factor dynamically so it's calibrated to whatever hardware you're running today.

Uhh.. it doesn't? While it does give some specific values as 'a reasonable starting point' the article suggests tuning these to the specific environment. "Each of these algorithms requires setting of an appropriate work factor. This should be tuned to make digest computation as difficult as possible while still performing responsively enough for the application. For concurrent user logins, you may need The stackexcha…

Yeah, what I'm getting at is that those posts don't actually come right out and say your code should be calibrating itself regularly. They talk about selecting a work factor by benchmarking your current hardware, but they leave it there, and one might come to the conclusion that once they've measured their hardware, they put "13" in a config file and call it done. I'm advocating for advice like "Don't think about work factors, think about time. Your configuration should be a time value, and when your app starts up, it should compute its own work factor based on this time value." If your code does this, there's no need for rules of thumb like "11 is a good starting point for a bcrypt work factor."

Re: Slack was hacked

#380
post #323

I hate to be the negative guy, and they were hashing passwords better than 90% of the sites, but it would be SO easy to completely neutralize password leakage when the attacker only has access to the database. https://blog.filippo.io/salt-and-pepper/ tl;dr: Hardcode a second salt in your application code or in an environment variable. Then a database dump is not enough anymore to do any kind of bruteforce. It's simpl…

The best summary I've read recently on peppering was posted to the PHC list by Thomas Pornin last week. It's worth quoting in its entirety; Adding an additional secret key can be added generically, in (at least) four ways, to any password hashing function: 1. Store: salt + HMAC_K(PHS(pass, salt)) 2. Store: salt + PHS(HMAC_K(pass), salt) 3. Store: salt + AES_K(PHS(pass, salt)) 4. Store: salt + PHS(AES_K(pass), salt) I…

> 3. For some historical reasons, many people feel the need to change keys regularly. This is rather misguided: key rotation makes sense in an army or spy network where there are many keys, and partial compromissions are the normal and expected situation, so a spy network must, by necessity, be in permanent self-cleansing recovery mode; when there is a single key and the normal situation is that the key is NOT compromised, changing it brings no tangible advantage.

This is a really strange advice from Thomas Pornin. People rotate keys because not doing so weakens most symmetric encryption schemes. For example while using AES-GCM with 96-bit nonces one needs to rotate keys after encrypting roughly 2^32 ~ 4 billion messages; otherwise the IV collision probability will be higher than 2^(-32), which is already high enough in most large scale systems (and really bad things happen when the IV is repeated).

Post reply on HN