Triton: What You Need to Know

Share and earn Cybytes
Facebook Twitter LinkedIn Email

What is Triton?

Triton is a new malware framework targeting safety systems monitoring SCADA networks. It’s designed to run from within a compromised network, allowing the attacker to observe and control Triconex Safety Instrumented System (SIS) devices.

The attackers copied a malicious file (trilog.exe) onto a management workstation, a Windows PC, and used that vantage point to attempt to write new firmware to the memory of SIS devices.

Device firmware is designed to be updated remotely. A physical key on the front of the device allows the user to switch between a PROGRAM mode, where modifications are allowed, and others, such as read-only RUN. The attackers used this capability as designed and relied on users to have left the device in PROGRAM mode.

Although Triton did not leverage any vulnerabilities, Nessus can identify the early stages of the attack.

Which devices were attacked by Triton?

Triton attacked Triconex Main Processors, model 3008. These safety monitoring systems were approved for use by the United States Nuclear Regulatory Commission in 2012.

What’s the impact?

If successful, this attack could have run arbitrary code on critical safety monitoring systems, concealing or causing physical damage to monitored systems.

Did the attackers need to reverse engineer the devices?

The attackers didn’t necessarily reverse engineer the devices. The US Nuclear Regulatory Commission maintains copies of the programming guides and communications manuals in use at the time of their approval. Appendix D documents the TSAA (TriStation) protocol, including the WRITE_TRICON_DATA command this malware likely used.

The protocol is simple, and has no authentication. The only facet of security it supplies is a per-message CRC.

Tenable coverage of Triton

Malware detection plugin

Tenable can detect if the management station contains Triton through its malware detection plugin. Here’s an example of a Triton hash detected with the Malicious Process Detection plugin ID 59275:


YARA detection

Tenable customers can also use YARA rules to identify affected systems through the Malicious File Detection Using Yara Nessus plugin. Here’s a sample rule that can be used with Nessus to detect Triton:

         author = “nicholas.carr @itsreallynick”
         md5 = “0face841f7b2953e7c29c064d6886523”
         description = “TRITON framework recovered during Mandiant ICS incident response”
         $python_compiled = “.pyc” nocase ascii wide
         $python_module_01 = “__module__” nocase ascii wide
         $python_module_02 = “<module>” nocase ascii wide
         $python_script_01 = “import Ts” nocase ascii wide
         $python_script_02 = “def ts_” nocase ascii wide  

         $py_cnames_01 = “” nocase ascii wide
         $py_cnames_02 = “TRICON” nocase ascii wide
         $py_cnames_03 = “TriStation ” nocase ascii wide
         $py_cnames_04 = ” chassis ” nocase ascii wide  

         $py_tslibs_01 = “GetCpStatus” nocase ascii wide
         $py_tslibs_02 = “ts_” ascii wide
         $py_tslibs_03 = ” sequence” nocase ascii wide
         $py_tslibs_04 = /import Ts(Hi|Low|Base)[^:alpha:]/ nocase ascii wide
         $py_tslibs_05 = /modules?version/ nocase ascii wide
         $py_tslibs_06 = “bad ” nocase ascii wide
         $py_tslibs_07 = “prog_cnt” nocase ascii wide  

         $py_tsbase_01 = “” nocase ascii wide
         $py_tsbase_02 = “.TsBase(” nocase ascii wide
         $py_tshi_01 = “” nocase ascii wide
         $py_tshi_02 = “keystate” nocase ascii wide
         $py_tshi_03 = “GetProjectInfo” nocase ascii wide
         $py_tshi_04 = “GetProgramTable” nocase ascii wide
         $py_tshi_05 = “SafeAppendProgramMod” nocase ascii wide
         $py_tshi_06 = “.TsHi(” ascii nocase wide  

         $py_tslow_01 = “” nocase ascii wide
         $py_tslow_02 = “print_last_error” ascii nocase wide
         $py_tslow_03 = “.TsLow(” ascii nocase wide
         $py_tslow_04 = “tcm_” ascii wide
         $py_tslow_05 = ” TCM found” nocase ascii wide  

         $py_crc_01 = “crc.pyc” nocase ascii wide
         $py_crc_02 = “CRC16_MODBUS” ascii wide
         $py_crc_03 = “Kotov Alaxander” nocase ascii wide
         $py_crc_04 = “CRC_CCITT_XMODEM” ascii wide
         $py_crc_05 = “crc16ret” ascii wide
         $py_crc_06 = “CRC16_CCITT_x1D0F” ascii wide
         $py_crc_07 = /CRC16_CCITT[^_]/ ascii wide  

         $py_sh_01 = “sh.pyc” nocase ascii wide  

         $py_keyword_01 = ” FAILURE” ascii wide
         $py_keyword_02 = “symbol table” nocase ascii wide  

         $py_TRIDENT_01 = “inject.bin” ascii nocase wide
         $py_TRIDENT_02 = “imain.bin” ascii nocase wide  

         2 of ($python_*) and 7 of ($py_*) and filesize < 3MB

What can you do to protect your organization from Triton?

Ensure all Tricon processors are not in PROGRAM mode. A physical key on each device can prevent this malware from succeeding. After initial programming of the device is complete, the key should be switched to RUN or REMOTE.

You should monitor management stations for malware. These are highly valuable pivot points to the Distributed Control System network.

Tricon devices can be configured with an IP or subnet whitelist. You should configure this access control to only allow communication from management stations and the DCS and SIS networks. This will limit the use of active security controls within these networks, which is why a monitoring solution such as Nessus Network Monitor is essential.

Stay tuned for more updates

Tenable is keeping a close eye on this story as it develops. Our team will release coverage as information becomes available, and this post will be updated if new plugins are released.   

Share this post and earn Cybytes
Facebook Twitter LinkedIn Email
About Tenable
Tenable™, Inc. is the Cyber Exposure company. Over 24,000 organizations of all sizes around the globe rely on Tenable to manage and measure their modern attack surface to accurately understand and reduce cyber risk. As the creator of Nessus®, Tenable built its platform from the ground up to deeply understand assets, networks and vulnerabilities, extending this knowledge and expertise into™ to deliver the world’s first platform to provide live visibility into any asset on any computing platform. Tenable customers include over 50 percent of the Fortune 500, large government agencies and organizations across the private and public sectors. Learn more at
Promoted Content
Five Steps to Building a Successful Vulnerability Management Program
Is your vulnerability management program struggling? Despite proven technology solutions and the best efforts of IT teams, unresolved vulnerabilities remain an ongoing source of friction and frustration in many organizations. Regardless of how many vulnerabilities are fixed, there will always be vulnerabilities that can’t easily be remediated – and too often, finger-pointing between IT teams and business groups can ensue.

Our Revolution

We believe Cyber Security training should be free, for everyone, FOREVER. Everyone, everywhere, deserves the OPPORTUNITY to learn, begin and grow a career in this fascinating field. Therefore, Cybrary is a free community where people, companies and training come together to give everyone the ability to collaborate in an open source way that is revolutionizing the cyber security educational experience.

Cybrary On The Go

Get the Cybrary app for Android for online and offline viewing of our lessons.

Get it on Google Play

Support Cybrary

Donate Here to Get This Month's Donor Badge

Skip to toolbar

We recommend always using caution when following any link

Are you sure you want to continue?