Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
Java Security Communications Network Networking Privacy Software The Almighty Buck Transportation United States Technology

Muni System Hacker Hit Others By Scanning For Year-Old Java Vulnerability (arstechnica.com) 30

An anonymous reader quotes a report from Ars Technica: The attacker who infected servers and desktop computers at the San Francisco Metropolitan Transit Agency (SFMTA) with ransomware on November 25 apparently gained access to the agency's network by way of a known vulnerability in an Oracle WebLogic server. That vulnerability is similar to the one used to hack a Maryland hospital network's systems in April and infect multiple hospitals with crypto-ransomware. And evidence suggests that SFMTA wasn't specifically targeted by the attackers; the agency just came up as a target of opportunity through a vulnerability scan. In an e-mail to Ars, SFMTA spokesperson Paul Rose said that on November 25, "we became aware of a potential security issue with our computer systems, including e-mail." The ransomware "encrypted some systems mainly affecting computer workstations," he said, "as well as access to various systems. However, the SFMTA network was not breached from the outside, nor did hackers gain entry through our firewalls. Muni operations and safety were not affected. Our customer payment systems were not hacked. Also, despite media reports, no data was accessed from any of our servers." That description of the ransomware attack is not consistent with some of the evidence of previous ransomware attacks by those behind the SFMTA incident -- which Rose said primarily affected about 900 desktop computers throughout the agency. Based on communications uncovered from the ransomware operator behind the Muni attack published by security reporter Brian Krebs, an SFMTA Web-facing server was likely compromised by what is referred to as a "deserialization" attack after it was identified by a vulnerability scan. A security researcher told Krebs that he had been able to gain access to the mailbox used in the malware attack on the Russian e-mail and search provider Yandex by guessing its owner's security question, and he provided details from the mailbox and another linked mailbox on Yandex. Based on details found in e-mails for the accounts, the attacker ran a server loaded with open source vulnerability scanning tools to identify and compromise servers to use in spreading the ransomware, known as HDDCryptor and Mamba, within multiple organizations' networks.
This discussion has been archived. No new comments can be posted.

Muni System Hacker Hit Others By Scanning For Year-Old Java Vulnerability

Comments Filter:
  • Oracle WebLogikz; It's got what plants crave!

  • Not Russia again (Score:5, Informative)

    by manu0601 ( 2221348 ) on Tuesday November 29, 2016 @10:33PM (#53390065)
    The summary points finger to Russia, but Brian Kerb's article has strong hints that the hacker is from Iran. Russia was just the country hosting the hacker's e-mail provider.
    • by gl4ss ( 559668 )

      well.
      russia, iran, whats the difference really to american media?

      what's more perplexing is the spokesperson.

      if it didn't affect any servers or payment systems - and how would they know - why shutdown the payments systems?

      sounds like they don't even know what was compromised, really, or what the workstations were for either.

      • Re:Not Russia again (Score:4, Interesting)

        by tlhIngan ( 30335 ) <slashdot&worf,net> on Wednesday November 30, 2016 @03:51AM (#53391017)

        what's more perplexing is the spokesperson.

        if it didn't affect any servers or payment systems - and how would they know - why shutdown the payments systems?

        sounds like they don't even know what was compromised, really, or what the workstations were for either.

        Well, if you're under attack, you shut down everything to try to halt the attack. If the system is clean and shut down, it won't get infected. If it's infected, it won't spread.

        So you shut it all down just as a precaution. Even if it compromised user data, if the system is off, that user data is staying on the system. Given it looks like it might have gotten into critical systems, this was probably the best course of action to prevent the spread.

        Now, the interesting thing is - they had backups and have actually restored the critical systems from backups, which apparently pissed off the group to no end - they expected them to pay the $70K and apparently the messaging is getting more and more threatening as they bring up systems from backup. They actually are threatening to release the data, but no idea if it's a bluff or not.

        I'm guessing the user workstations will just be reimaged and everything else restored, with a mandatory change in system passwords.

        The hackers might have simply gotten too greedy - and attacked a target who not only not had the money to pay, but probably had enough skill and resources to do proper backups and thus it was cheaper to not pay and do the disaster plan than to pay. Even the worst attacks were only asking $20K or so which would shift the balance to "just pay it as it's going to cost more to recover it" to asking $70k which shifts the equation to "screw it, we're starting over as it's cheaper even if we have to give people free rides"

  • by Luthair ( 847766 ) on Tuesday November 29, 2016 @10:54PM (#53390149)
    A vulnerability in WebLogic is no more a Java vulnerability than an old httpd is a C vulnerability.
    • by raymorris ( 2726007 ) on Wednesday November 30, 2016 @01:27AM (#53390631) Journal

      The vulnerability isn't in Weblogic. It's actually a pair of screwups, one in Java itself and one in a very common library, used in thousands of applications.

      As you may know, in Java most everything is an object. A string is an object, which has methods (executable functions). Also, Java is network-centric. So a lot of Java code, both library code and application code, sends objects over the network. When you submit your name to a Java application, some part of it is probably receiving the string object with your name, "Joe" or whatever. Because the string "Joe" is an object in Java, it can include executable methods. Whenever Java reads and deserializes an object from the network, Java AUTOMATICALLY calls the readObject() method of that object.

      So to summarize, when your Java app wants to read data submitted in a form, Java automatically runs code that the user may have included in their submission. This sounds a bit dangerous, doesn't it?

      Because it's dangerous, Java code that reads data over the network has to be very, very careful. The commons library didn't get this quite right, so all applications using the commons library ended up with a remote code execution vulnerability.

      I can't put all, or even most, of the blame on the commons library, though, because Java itself set up a dangerous situation.

      Going one level broader, the concept that you don't keep data and executable code separate is dangerous. That's precisely what strict object-oriented approaches require, though. If you can't accept data without accepting code attached to that data, that is dangerous, and that's exactly what OOP (in the strict sense) requires. Java has this issue mostly because it's "overly" object-oriented, because simple data like a string comes with executable code attached.

      • by jiriki ( 119865 ) on Wednesday November 30, 2016 @02:11AM (#53390753) Homepage

        Going one level broader, the concept that you don't keep data and executable code separate is dangerous. That's precisely what strict object-oriented approaches require, though. If you can't accept data without accepting code attached to that data, that is dangerous, and that's exactly what OOP (in the strict sense) requires. Java has this issue mostly because it's "overly" object-oriented, because simple data like a string comes with executable code attached.

        This is not quite right. Serialized objects only contain data and no code. But still code is being executed when deserializing an object (but this is code that already resides on the server-side and is not sent by the client). So the exploit is a bit more difficult. The original (I think?) description can be found here: https://foxglovesecurity.com/2... [foxglovesecurity.com]

      • by Anonymous Coward

        So to summarize, when your Java app wants to read data submitted in a form, Java automatically runs code that the user may have included in their submission. This sounds a bit dangerous, doesn't it?

        Serialized Java objects only contain data and not the class metadata or methods - readObject for String data executes the String.readObject code found in the runtime library on the server, not code from the client. If there is no such class in the servers class path or the version on the server is incompatible with the data then deserialisation will fail. Configuring a server to accept user code requires messing with the Remote Method Invocation API and at that point the security would become a completely u

      • by Luthair ( 847766 )

        Sorry but that isn't entirely accurate. The issue is that an application is deserializing arbitrary objects from untrusted sources. The foxglove article also overstates how frequently object serialization is used, it was largely replaced by XML and later JSON.

  • by Anonymous Coward

    Sack the person responsible for not applying the WebLogic patch and all the Security Managers upstream. Pour encourager les autres.

  • by khz6955 ( 4502517 ) on Wednesday November 30, 2016 @03:13AM (#53390897)
    Is there a contest on slashdot as to how to talk about malware without mentioning that it will only run on Microsoft Windows [trendmicro.com]?

    "the attacker ran a server loaded with open source [arstechnica.com] vulnerability scanning tools to identify and compromise servers to use in spreading the ransomware, known as HDDCryptor and Mamba, within multiple organizations' networks".

The IQ of the group is the lowest IQ of a member of the group divided by the number of people in the group.

Working...