Juniper CVE Matrix |
The timing of the vulnerabilities seems to imply that the attackers discovered that there were objectives that could not be accomplished through passive monitoring. From an auditing perspective, the inclusion of the backdoor was quite a bit more risky than the VPN key disclosure. Crypto is really hard to audit - authentication routines a little less so. Of course, this indicates an active network exploitation program, but it seems like that would be nearly required for the type of access you would need to insert the backdoor in the first place.
Yesterday, I wrote about how this whole incident largely ends NSA's NOBUS doctrine. Supposing that NSA was responsible for the VPN key leakage (and let me be the first to say I do not think they are), they might assume that nobody else would be able to intercept the data and make use of the keys. They might feel justified in introducing this vulnerability, even though it makes them vulnerable too, based on the idea that exploitation would require the ability to intercept traffic - something far from trivial.
However, the backdoor is something else entirely. VPN products, by definition, most often sit on the open Internet. Successful compromise would put the attacker in a privileged position inside the corporate network. Since anyone who can audit firmware can discover the backdoor password and use it to gain access to the internal network, this would represent a clear violation of the NOBUS policy. If this source code change (specifically the backdoor) was performed by US Intelligence, it seems clear that they violated the law. If I were Juniper, I'd be livid. It's one thing to suck at programming and have vulnerabilities in your code. Having what is very clearly a nation state insert them for you is so far over the line, I almost can't comprehend how mad I'd be.
The password itself is "<<< %s(un='%s') = %u" which was likely chosen because it appears to be a format string. Format strings are regularly used in debugging routines to help developers figure out what happened at a particular location in the code. In this case, the attackers appear to have been banking on a future code audit and their need to have the code blend in with other debug statements. Of course, this string is being passed as an argument to the strcmp function instead of the sprintf or fprintf functions. This should trigger some suspicion, but its much harder to spot than something like 's00pers3kr3t' or some such.
It's worth mentioning that FOXIT has released Snort rules to detect the backdoor password in use. But honestly, you should probably not have SSH (and especially not Telnet) exposed to the Internet on your Juniper VPN/firewall. If you do have these open, you can count on constant scans and connection attempts. These best practices haven't stopped at least 26,000 people from doing so, according to Shodan queries. There's evan a Python script for locating vulnerable Netscreen devices on the Internet. However, I should note that you probably are exceeding legal authorities using it since it tries to log in with the backdoor password using the system user.
Any use of the password would indicate possible exploitation attempts. At Rendition Infosec, we recommend that our clients add the telnet password rule to their IDS products regardless of whether they have Juniper devices in the network. Any hits on the password would indicate an exploitation attempt and would provide valuable threat intelligence to the organization.
A close inspection of the password appears to reveal the string "Sun Tzu" - the author of the famous Art of War. That doesn't do anything for attribution, but it does show that the attackers have a sense of humor. Speaking of humor, this linked video wins the Internet today.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.