(Replying to PARENT post)
This wouldn't be my first concern. It would be all of the confidential communication that happens within slack.
(Replying to PARENT post)
* Use http://en.wikipedia.org/wiki/Database_activity_monitoring. If you don't list users on your site and you get a query that would return more than one user record, it's a hacker
* Add some http://en.wikipedia.org/wiki/Honeytoken s to your user table, and sound the alarm if they leave your db
* Use Row-Level Security
* Database server runs on own box in own network zone
* Send logs via write-only account to machine in different network zone. Monitor logs automatically, and have alerts.
* Pepper your passwords (HMAC them with a key in an HSM on the web server (then bcrypt). Don't store key in db). https://blog.mozilla.org/webdev/2012/06/08/lets-talk-about-p...
* Use a WAF that looks for SQL injections
* [Use real database authentication, per user. Not one username for everyone connecting to db. Yes, this is bad for connection pooling]
(Replying to PARENT post)
Many of the comments have great suggestions. However, very few talk about the most important part of creating mitigations and designing key management/crypto. What is the security target?
Before throwing new designs at a problem, the attackers and attack vectors must be defined. If you don't know who you are guarding against and what they will do (and what data they will steal), then how can you possibly say what is a good mitigation??
One might argue that the threat is obvious, but I'll guarantee you that there are dozens of threats here. List them. Prioritize them. Then mitigate them. It is helpful to fully understand the problem/solution space before jumping in with pepper's, salt's, extra databases, and solutions.
(Replying to PARENT post)
Regardless, this is an example of why cloud communication (and ticketing and database off-loading [see MongoHQ] and...) systems probably won't ever become commonplace in most of the government space and the finance and health sectors.
(Replying to PARENT post)
(Replying to PARENT post)
There is no reason why you can't take 10min to setup a IRC with SSL on your own.
Yes, Slack is awesome, lots of features, but it's not yours!
(Replying to PARENT post)
(Replying to PARENT post)
This is a valid criticism. Slack can do all it can to mitigate security risk. But at the end of the day, there is always at least one vulnerability, somewhere.
As Slack matures as a company, it needs an answer to this criticism. Because security is so naturally unpredictable, it would be disingenuous for Slack to respond with anything resembling "our security is perfect." Because, of course, as we see time and time again, no security is perfect.
Now that Slack has captured the low-hanging-fruit of the market, it needs to pick the high-hanging-fruit. The most profitable clients for slack will be the largest, conservative, enterprise clients who will join the Slack platform and then never leave. The long term survivability prospects of Slack depend on capturing these large enterprise customers.
Strategically, Slack needs to find a response to the criticism that its security is prohibitively weak, so that it can convince these large enterprises to join its platform.
Perhaps, the best response to security criticism is that "we got hacked, but our internal policies mitigated any cascading effects and customer data remains safe." [0] [1] So would it be in Slack's best interest to stage a hack on itself? Or to report a hack occurred when it really didn't?
It seems feasible that by setting precedent for its reaction to a hack, Slack has a chance to demonstrate the competence of its security team. Now investors can point to this incident as one handled well by the security team. In a world where, unfortunately, corporations will always get hacked, Slack was able to survive with some dignity.
[0] or, as safe as it can possibly be according to computer science.
[1] debatable.
(Replying to PARENT post)
Passwords are not the only sensitive info that can be stored in a database and most of the time, that info isn't hashed.
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
I'm happy to hear they didn't just use MD5 with no salt as this would be the same as storing it in plane text...
bcrypt + random salt sounds to me like the best practice nowadays, is it still holding? or are there some advanced in GPU cluster costs on EC2 that make even bcrypt hackable. I think I heard something that it has a way to "adapt" to advances in computing, is that by simply adding more iterations based on the current CPU speed or something? how does that work?
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
Nothing sweeter than "I told you so".
(Replying to PARENT post)
> Download and install either the Google Authenticator or Duo Mobile apps on your phone or tablet.
Hey Slack, I don't have a smartphone. What am I supposed to do?
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
It's literally nothing. I can't believe that's the product.
Anyway, on top of a completely underwhelming experience comes this news. I can't see why a company would use them, to be honest. But then I haven't built a billion dollar company, so not many people will be asking me for an opinion.
(Replying to PARENT post)
Assuming the password hashes can't be reasonably reversed, what would have caused suspicious activity on some user accounts? Is this a situation where certain users may have been targeted specifically, meaning that only a couple hashes needed to be reversed, making the task feasible?
(Replying to PARENT post)
(Replying to PARENT post)
This completely sucks.
(Replying to PARENT post)
Might as well plug my tiny Slack auto-install/update script for the OS X app while I'm here - hope someone else finds it helpful:
(Replying to PARENT post)
(Replying to PARENT post)
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.
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
Is this true even when the attacker is specifically focusing on a single account, or is it only computationally infeasible to recover passwords for accounts in general?
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
Seen this a few times for other services, not sure why it happens.
(Replying to PARENT post)
http://sakurity.com/blog/2015/03/27/slack_or_reset_token_has...
(Replying to PARENT post)
Its like 'but it says AES on the box so its secure right?' and shouldn't be a thing among developers anymore.
Obviously the database data has to be decrypted for the app to use it, and generally, you hack the app, not the db.
(Replying to PARENT post)
(Replying to PARENT post)
May be slack wants us to believe only a small part of the data is hacked , I dont know .
We have been using Slack for many projects over last year and it helps improve productivity
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
Dong, Dong, Dong, that is the death bell of a startup
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
(Replying to PARENT post)
I find lot of these new startups are just creative ways of reinventing the wheel and convincing you need it to appear cool & hip....kind of like fashion for high schoolers
(Replying to PARENT post)
(Replying to PARENT post)
EDIT: Slack responded that they do not support SMS yet.
(Replying to PARENT post)
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 simple, free and you can retroactively apply it.
EDIT: I addressed some of the points raised in this thread here https://blog.filippo.io/salt-and-pepper/#editedtoaddanoteonr...