There is no magic wand when it comes to security. No one process or product can stop every attack. I always explain that security in layers is the best approach. When thinking of your security defense tactics, security in layers is the best approach. And always remember, security is never a set it, and forget it mentality. It’s constant and evolving, always needing upkeep and continuous measurement.
But in this situation, what could have stopped this? Security awareness training would have been the best solution. Phishing and fishing exercises to train staff on proper security best practices. The human element is always the weak link, and identifying which employees may need additional training is critical.
Also, admin passwords in shares inside scripts – a bad combination. If you actually do this (which some organizations still do, depending on your technology it may be the only solution for certain circumstances) at least have a service account that you can disable after using the script, and have your logging, monitoring, and alerts configured for any activity of this service account this way you can keep tabs on its usage. Yes there are security products can can perform this purpose but again, remember, security in layers is the best solution.
A penetration test from Black Hat Pen-Test can help identify the weak links within the organization through phishing exercises, and search through the infrastructure looking for any scripts that may contain passwords. Interesting enough im sure Uber was performing penetration testing, but my guess is not as often as they should, and maybe not the correct scope. This is why scoping a penetration test properly is critical to the effectiveness of the penetration test.