ID | Name |
---|---|
T1521.001 | Symmetric Cryptography |
T1521.002 | Asymmetric Cryptography |
T1521.003 | SSL Pinning |
Adversaries may employ a known asymmetric encryption algorithm to conceal command and control traffic, rather than relying on any inherent protections provided by a communication protocol. Asymmetric cryptography, also known as public key cryptography, uses a keypair per party: one public that can be freely distributed, and one private that should not be distributed. Due to how asymmetric algorithms work, the sender encrypts data with the receiver’s public key and the receiver decrypts the data with their private key. This ensures that only the intended recipient can read the encrypted data. Common public key encryption algorithms include RSA, ElGamal, and ECDSA.
For efficiency, many protocols (including SSL/TLS) use symmetric cryptography once a connection is established, but use asymmetric cryptography to establish or transmit a key. As such, these protocols are classified as Asymmetric Cryptography.
ID | Name | Description |
---|---|---|
S0529 | CarbonSteal |
CarbonSteal has performed rudimentary SSL certificate validation to verify C2 server authenticity before establishing a SSL connection.[1] |
S0555 | CHEMISTGAMES |
CHEMISTGAMES has used HTTPS for C2 communication.[2] |
S0507 | eSurv |
eSurv’s Android version has used public key encryption for C2 communication.[3] |
S1067 | FluBot |
FluBot has encrypted C2 message bodies with RSA and encoded them in base64.[4] |
S1055 | SharkBot |
SharkBot has used RSA to encrypt the symmetric encryption key used for C2 messages.[5] |
S0549 | SilkBean |
This type of attack technique cannot be easily mitigated with preventive controls since it is based on the abuse of system features.
Since data encryption is a common practice in many legitimate applications and uses standard programming language-specific APIs, encrypting data for command and control communication is regarded as undetectable to the user.