CIS Cryptography
CIS Cryptography
INTELLIGENCE CENTER
Technical White
Paper
William
F.
Pelgrin,
CIS
President
and
CEO
Private and Public Key Cryptography and Ransomware
December 2014
Authored by:Ted Fischer
Center for Internet Security (CIS)
Security Operations Center (SOC) Analyst
INTRODUCTION
Cryptography is a method used to encrypt, or scramble, the contents of a file in such a
way that only those with the knowledge of how to decrypt, or unscramble, the contents
can read them. Ransomware, a type of malware that holds a computer or files for
ransom, continues to highlight the malicious use of cryptography. CryptoLocker and
CryptoWall are two of the most currently reported types of ransomware. Both encrypt
the files on an infected system and demand payment for the ability to decrypt the files.
This paper provides an explanation of cryptographic methods and describes how
ransomware uses modern cryptographic methods.
CRYPTOGRAPHY
Cryptography requires two things: a process for encryption, known as the cryptographic
algorithm1, and a way to manipulate the process, known as the key. There are two main
types of cryptography in use today: private key or symmetric cryptography and public
key or asymmetric cryptography. The primary difference between the two methods is
how many keys are used, as private key cryptography uses one key to both encrypt and
decrypt the data, and public key cryptography uses two keys, with one key encrypting
the data and a different, but mathematically-related key decrypting the data.
An early substitution algorithm is the “Caesar Cipher,” since Julius Caesar is one of the
first known users of the technique. Substitution ciphers work by substituting one letter
for another and the key tells the user what substitution technique to use. In a Caesar
Cipher the key indicates how much of a shift should be applied and in which direction.
For example, one might indicate that the key (the substitution) and the algorithm (the
method) calls for shifting the alphabet four characters to the right. The encryption
would then look like this:
1
Algorithm
–
a
procedure
for
solving
a
mathematical
problem
(Merriam-‐-‐-‐Webster).
1
Center for Internet Security
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
The unencrypted data is known as “plaintext” and the encrypted data is “ciphertext.” By
using this algorithm (a Caesar Cipher letter substitution), and key (four character shift
right), one would perform the following encryption:
Plaintext: the quick brown fox jumps over the lazy red dogs back
Ciphertext: wkh txlfn eurzq ira mxpsv ryhu wkh odcb uhg grjv edfn
There are several private key (symmetric) algorithms in use. One of the most common,
which is also the U.S. federal government standard, is the Advanced Encryption
Algorithm (AES). It is also known as the Rijndael Algorithm (after its developers,
Vincent Rijmen and Joan Daemen). Most U.S. government agencies are required to use
the AES algorithm to encrypt data up to Secret (128, 192, or 256-bit key lengths) and
Top Secret (192 or 256 bit key lengths).2
Other private key algorithms include Blowfish, Data Encryption Standard (DES), and
Triple DES. DES, the previous U.S. federal government standard, is no longer
authorized for use by U.S. federal government agencies3, as it was proved breakable
through brute force techniques4 in 1999. Triple DES is a variation of DES, where the
data is encrypted, decrypted, and re-encrypted. Although there are no known instances
2
Committee
on
National
Security
Systems
(CNSS)
Policy
No.
15
3
FIPS
46-‐-‐-‐3
4
Brute
force
in
cryptography
is
the
process
of
deriving
the
plaintext
from
the
ciphertext
without
knowledge
of
the
key
by
trying
every
key
until
a
solution
is
derived.
2
Center for Internet Security
of Triple DES being broken, the inherent weakness of the DES algorithm makes it a poor
choice to use in contemporary applications.
Well known public key (asymmetric) algorithms include Diffie-Hellman (D-H), the
Digital Signature Algorithm (DSA), and the Rivest, Shamir, Adleman (RSA) algorithm.
Whitfield Diffie and Martin Hellman developed D-H, one of the earliest published
public key algorithms, in 1976. (An earlier public key algorithm was developed in the
United Kingdom, but was kept secret by the British Government until 1997.) Recently,
the D-H algorithm has been adapted to use a type of math known as elliptic curve, which
has had the effect of reducing the key sizes that are necessary. The classic D-H algorithm
requires key sizes from 1024 to 4096 bits, while Elliptic Curve D-H (ECDH) only
requires key sizes from 160 to 512 bits.5
DSA is, as the name implies, for use in the creation of digital signatures. RSA was
developed by Ron Rivest, Adi Shamir, and Leonard Adleman in 1977.
Private key algorithms are very efficient at encrypting large amounts of bulk data. The
weakness of private key algorithms is the logistics of key distribution. For example, if
Bob decides to exchange encrypted data with Alice using a private key algorithm, then
they must both be in possession of the key that is used to encrypt the data, since it will
be required to decrypt the data. This means that Bob and Alice must set up a secure
method for transmitting the key; emailing the key will not suffice. If the emailed key is
intercepted, that interceptor (or anyone who possess the private key) will be able to
decrypt any data the key was used to encrypt. This issue is compounded when the key
must be shared among multiple people, as everyone will have access to the same key,
increasing the opportunity for key theft.
Public key algorithms are not as efficient at encrypting large amounts of bulk data,
however, they do solve the key distribution issue. In public key cryptography, data
encrypted by one key can only be decrypted by the mathematically related other key.
Therefore, if Bob and Alice want to exchange encrypted data, and they do not have a
secure method of getting a key to each other, they can opt to use a public key algorithm.
In this example, Bob and Alice would each generate a “public/private key pair” with the
algorithm they choose.
The terms “public” and “private” are arbitrary as far as the individual keys are
concerned, but they serve as a reminder of what to do with them. The public key can be
made publicly available, allowing Bob and Alice to email their respective public keys to
each other, or even post them online. The private key is kept private. When Bob wants to
5
NIST
Special
Publication
800-‐-‐-‐57
“Recommendation
for
Key
Management
–
Part
1:
General
(Revision
3)”
3
Center for Internet Security
send encrypted data to Alice, he encrypts it with Alice’s public key. Bob can now safely
email that encrypted data to Alice. It will not matter if anyone intercepts the data, or if
anyone else has Alice’s public key, because only Alice’s private key (the one she kept
private to herself) can decrypt the data.
1 2 2 1
Bob
–
here Alice
–
is
my here
is
my
public
key
public
key
3
Plaintext
Ciphertext
4
CryptoLocker exploits features of public key (key distribution) and private key (efficient
encryption of large amounts of data) cryptography as part of its ransom scheme.
When CryptoLocker infects a computer, it attempts to connect with one of several pre-
configured malicious websites (generically known as a Command and Control (C2)
server). The C2 server generates an RSA public/private key pair, and passes the public
key to the CryptoLocker malware on the infected computer.
CryptoLocker
Infection
Infected
E-‐-‐-‐
Mail
5
1
Subj:
Payroll
6
Report
Public
Key
Algorithm
Attachmment:
Payroll.pdf
CryptorLocker
Key
Store
2
4
7
Bob
clicks
on
CryptoLocker
malicious
8
Command
attachment
and
Control
Server
CyrptoLocker
3
Process
①
Bob
receives
e-‐-‐-‐mail
with
CryptoLocker
infected
attachment.
②
Bob
clicks
on
infected
attachment.
③
CryptoLocker
launches.
13
11
④
CryptoLocker
communicates
with
its
Command
and
Control
(C&C)
Server.
Private
Key
Algorithm
Public
Key
Algorithm
⑤
The
C&C
Server
starts
the
public
key
algorithm.
⑥
A
public/private
key
pair
is
generated
for
Bob’s
process.
⑦
The
public/private
key
pair
is
placed
in
the
C&C
Server
key
storage.
9
⑧
The
C&C
Server
sends
the
CryptoLocker
public
key
to
Bob’s
CryptoLocker
process.
⑨
The
CryptoLocker
public
key
is
placed
in
Bob’s
key
store.
⑩
The
CryptoLocker
process
generates
a
list
of
files
(by
extension)
to
encrypt.
12
⑪
The
CryptoLocker
process
starts
the
private
key
algorithm.
10
⑫
One
private
key
for
each
file
is
generated.
List
of
files
to
⑬
The
CryptoLocker
process
starts
the
public
key
algorithm
encyrpt
(.doc,
(used
with
the
private
key
algorithm
in
the
next
step.)
.pdf,
.xls
etc)
Image
Source:
Ted
Fischer,
Center
for
Internet
Security
CryptoLocker then generates the AES private key algorithm to encrypt files on the target
computer, targeting specific, common extensions (e.g. .exe, .doc, .jpg, .pdf, etc.), and
generating a different 256-bit private key for each group of files per file extension. After
5
Center for Internet Security
each group of files is encrypted, CryptoLocker uses the RSA public key it received from
the C2 server to encrypt the AES private key that was used to encrypt the files.
CryptoLocker
Encryption
①
The
files
to
be
encrypted
are
identified
by
extension.
②
Each
file
is
encrypted
using
the
private
key
algorithm
and
the
private
key
for
the
specified
extension.
③
After
all
of
the
files
are
encrypted,
each
extension’s
private
key
is
encrypted
using
the
public
key
algorithm
and
the
CryptoLocker
C&C
public
key.
④
The
encrypted
keys
are
stored
in
the
local
key
store.
Image
Source:
Ted
Fischer,
Center
for
Internet
Security
In this manner, CryptoLocker uses the key
distribution strength of public key cryptography
to deliver a public key to the infected computer,
and the efficiency of private key cryptography to
encrypt the files. The public key is not used to
actually encrypt the files; CryptoLocker uses the
more efficient private key algorithm for that
purpose. The public key, however, is used to
encrypt the private keys that were responsible
for the actual encryption of the files. Efficiency
is not a factor for encrypting those keys, since
the public key is only encrypting a short string
(the private keys).
Image
source:
http://www.bleepingcomputer.com/virus-‐-‐-‐removal/cryptolocker-‐-‐-‐ransomware-‐-‐-‐information
When all of the files have been encrypted, the ransomware generates a page to be
displayed to the victim that indicates the price, method, and time period for payment to
be made.
6
Center for Internet Security
If the ransom is made within the indicated time, the victim will be presented with a
download screen that links to the RSA private key that will be used to decrypt the AES
private keys encrypted by the RSA public key. The decrypted private keys will then be
used to decrypt the associated files.
CryptoLocker
Decryption
CryptorLocker
Key
Store
1
2
$
CryptoLocker
Bob
decides
to
pay
Command
to
get
his
files
back.
and
Control
3
Server
CyrptoLocker
Process
5
Private
Key
Algorithm
4
5
Public
Key
Algorithm
E#jamc;tep.doc
6
Plaintext.doc
6
There are no known successful brute force attacks against RSA, ECDH, Blowfish, or
AES-encrypted data. Therefore, in the absence of a current backup of your data, paying
the ransom is the only potential way to decrypt the compromised files. However, open
7
Center for Internet Security
source intelligence suggests paying the fee does not always result in the restoration of
files. (CIS does not opine as to whether victims should or should not pay the ransom.)
RECOMMENDATIONS
CIS recommends the following actions:
• Educate users to verify the legitimacy of an email, since the emails used in
ransomware scams originate from spoofed email accounts,
• Block traffic to known ransomware C&C server IP addresses at your network
perimeter devices.
• Remind users not to visit un-trusted websites or follow links provided by
unknown or un-trusted sources.
• Remind users to be cautious when clicking on links in emails coming from
trusted sources.
• Ensure anti-virus software is installed and definitions are up to date.
• If infected with ransomware, remediate the infection via antivirus. Following the
remediation, restore any encrypted files from backup or system restore points
and volume shadow copies.
• Have regular system backup routines in place.
• Disconnect any drives that are used for backup storage after the backups are
made, as ransomware will attempt to find and encrypt files on mapped drives.
REFERENCES
[1]
http://msisac.cisecurity.org/daily-‐-‐-‐tips/cryptowall-‐-‐-‐indicators.cfm
[2]
https://blogs.cisco.com/security/rig-‐-‐-‐exploit-‐-‐-‐kit-‐-‐-‐strikes-‐-‐-‐oil.
[3]
http://www.bleepingcomputer.com/virus-‐-‐-‐removal/cryptolocker-‐-‐-‐ransomware-‐-‐-‐information
[4]
http://blog.emsisoft.com/2013/09/10/cryptolocker-‐-‐-‐a-‐-‐-‐new-‐-‐-‐ransomware-‐-‐-‐variant/
[5]
https://www.schneier.com/blog/archives/2014/01/powerlocker_use.html
[6]
http://pastebin.com/Dnhh0MWd
(PowerLocker
Announcement)
[7]
http://www.technibble.com/cryptolocker-‐-‐-‐update/
[8]http://www.tripwire.com/state-‐-‐-‐of-‐-‐-‐security/vulnerability-‐-‐-‐management/new-‐-‐-‐cryptolocker-‐-‐-‐
variant-‐-‐-‐
spread-‐-‐-‐yahoo-‐-‐-‐messenger/
[7]
https://securelist.com/analysis/publications/64608/a-‐-‐-‐new-‐-‐-‐generation-‐-‐-‐of-‐-‐-‐ransomware/
8
Center for Internet Security
APPENDIX
A:
Sample
Ransomware
Generated
Pages
9
Center for Internet Security
Onion Ransomware (Trojan-‐-‐-‐Ransom.Win32.Onion)
Image
Source:
https://securelist.com/analysis/publications/64608/a-‐-‐-‐new-‐-‐-‐generation-‐-‐-‐of-‐-‐-‐ransomware/
Window informing the victim that files on the computer have been encrypted
10
Center for Internet Security
Image set as desktop wallpaper
11
Center for Internet Security