Encrypted Channel: Asymmetric Cryptography

ID Name
T1521.001 Symmetric Cryptography
T1521.002 Asymmetric Cryptography

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: T1521.002
Sub-technique of:  T1521
Tactic Type: Post-Adversary Device Access
Platforms: Android, iOS
Version: 1.0
Created: 05 April 2022
Last Modified: 05 April 2022

Procedure Examples

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 and certificate pinning 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

SilkBean has used HTTPS for C2 communication.[1]

Mitigations

This type of attack technique cannot be easily mitigated with preventive controls since it is based on the abuse of system features.

Detection

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.

References