Cryptovirology

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Cryptovirology is a field that studies how to use cryptography to design powerful malicious software. The field was born with the observation that public-key cryptography can be used to break the symmetry between what a malware analyst sees regarding malware and what the malware creator sees. The former sees a public key in the malware whereas the latter sees the public key as well as the corresponding private key since the malware designer created the key pair for the attack. The public key allows the malware to perform trapdoor one-way operations on the victim's computer that only the malware creator can undo.

The first attack that was identified in the field is called "cryptoviral extortion".[1] In this attack a virus, worm, or trojan hybrid encrypts the victim's files and the victim must pay the malware author to receive the needed session key (which is encrypted under the malware creator's public key that is contained in the malware). The victim needs the session key if the files are needed and there are no backups of them.

The field also encompasses covert attacks in which the attacker secretly steals private information such as private keys. An example of the latter type of attack are asymmetric backdoors. An asymmetric backdoor is a backdoor (e.g., in a cryptosystem) that can be used only by the attacker, even after it is found. This contrasts with the traditional backdoor that is symmetric, i.e., anyone that finds it can use it. Kleptography, a subfield of cryptovirology, is the study of asymmetric back doors in key generation algorithms, digital signature algorithms, key exchanges, and other cryptographic algorithms. The NIST Dual EC DRBG random bit generator has an alleged asymmetric backdoor in it. The EC-DRBG algorithm utilizes the discrete-log kleptogram from Kleptography. There is a misconception that cryptovirology is mostly about extortion attacks (overt attacks). In fact, the vast majority of cryptovirology attacks are covert in nature.

General information[edit]

Cryptovirology was born in academia.[1][2] However, practitioners have recently expanded the scope of the field to include the analysis of cryptographic algorithms used by malware writers, attacks on these algorithms using automated methods (such as X-raying[3]) and analysis of viruses' and packers' encryptors. Also included is the study of cryptography-based techniques (such as "delayed code"[4]) developed by malware writers to hamper malware analysis.

A "questionable encryption scheme", which was introduced by Young and Yung, is an attack tool in cryptovirology. Informally speaking, a questionable encryption scheme is a public key cryptosystem (3-tuple of algorithms) with two supplementary algorithms, forming a 5-tuple of algorithms. It includes a deliberately bogus yet carefully designed key pair generation algorithm that produces a "fake" public key. The corresponding private key (witness of non-encryption) cannot be used to decipher data "encrypted" using the fake public key. By supplying the key pair to an efficient verification predicate (the 5th algorithm in the 5-tuple) it is proven whether the public key is real or fake. When the public key is fake, it follows that no one can decipher data "enciphered" using the fake public key. A questionable encryption scheme has the property that real public keys are computationally indistinguishable from fake public keys when the private key is not available. The private key forms a poly-sized witness of decipherability or indecipherability, whichever may be the case.

An application of a questionable encryption scheme is a trojan that gathers plaintext from the host, "encrypts" it using the trojan's own public key (which may be real or fake), and then exfiltrates the resulting "ciphertext". In this attack it is thoroughly intractable to prove that data theft has occurred. This holds even when all core dumps of the trojan and all the information that it broadcasts is entered into evidence. An analyst that jumps to the conclusion that the trojan "encrypts" data risks being proven wrong by the malware author (e.g., anonymously).

When the public key is fake, the attacker gets no plaintext from the trojan. So what's the use? A spoofing attack is possible in which some trojans are released that use real public keys and steal data and some trojans are released that use fake public keys and do not steal data. Many months after the trojans are discovered and analyzed, the attacker anonymously posts the witnesses of non-encryption for the fake public keys. This proves that those trojans never in fact exfiltrated data. This casts doubt on the true nature of future strains of malware that contain such "public keys", since the keys could be real or fake. This attack implies a fundamental limitation on proving data theft.

There are many other attacks in the field of cryptovirology that are not mentioned here.

Examples of viruses with cryptography and ransom capabilities[edit]

While viruses in the wild have used cryptography in the past, the only purpose of such usage of cryptography was to avoid detection by antivirus software. For example, the tremor virus[5] used polymorphism as a defensive technique in an attempt to avoid detection by anti-virus software. Though cryptography does assist in such cases to enhance the longevity of a virus, the capabilities of cryptography are not used in the payload. The One-half virus[6] was amongst the first viruses known to have encrypted affected files. However, the One_half virus was not ransomware, that is it did not demand any ransom for decrypting the files that it has encrypted. It also did not use public key cryptography. An example of a virus that informs the owner of the infected machine to pay a ransom is the virus nicknamed Tro_Ransom.A.[7] This virus asks the owner of the infected machine to send $10.99 to a given account through Western Union.
Virus.Win32.Gpcode.ag is a classic cryptovirus.[8] This virus partially uses a version of 660-bit RSA and encrypts files with many different extensions. It instructs the owner of the machine to email a given mail ID if the owner desires the decryptor. If contacted by email, the user will be asked to pay a certain amount as ransom in return for the decryptor.

Creation of cryptoviruses[edit]

To successfully write a cryptovirus, a thorough knowledge of the various cryptographic primitives such as random number generators, proper recommended cipher text chaining modes etc. are necessary. Wrong choices can lead to poor cryptographic strength. So, usage of preexisting routines would be ideal. Microsoft's Cryptographic API (CAPI), is a possible tool for the same. It has been demonstrated that using just 8 different calls to this API, a cryptovirus can satisfy all its encryption needs.[9]

Other uses of cryptography enabled malware[edit]

Apart from cryptoviral extortion, there are other potential uses[2] of cryptoviruses. They are used in deniable password snatching, used with cryptocounters, used with private information retrieval and used in secure communication between different instances of a distributed cryptovirus.

References[edit]

  1. ^ a b A. Young, M. Yung. "Cryptovirology: Extortion-Based Security Threats and Countermeasures". IEEE Symposium on Security & Privacy, May 6–8, 1996. pp. 129–141.  IEEEExplore: Cryptovirology: extortion-based security threats andcountermeasures
  2. ^ a b A. Young, M. Yung (2004). Malicious Cryptography: Exposing Cryptovirology. Wiley. ISBN 0-7645-4975-8. 
  3. ^ F. Perriot, P. Ferrie (2004). "Principles and Practise of X-Raying" (PDF). Virus Bulletin Conference. 
  4. ^ Z0mbie (2000). ""DELAYED CODE" technology (version 1.1)". white paper.  Netlux: Delayed code technology
  5. ^ F-Secure virus descriptions: Tremor
  6. ^ Symantec security response: One_Half
  7. ^ Sophos security analyses: Troj_Ransom.A
  8. ^ Viruslist: Virus.Win32.Gpcode.ag
  9. ^ A. Young. "Cryptoviral Extortion Using Microsoft's Crypto API". International Journal of Information Security, Volume 5, Issue 2, April 2006. pp. 67–76.  SpringerLink: Cryptoviral extortion using Microsoft's Crypto API

External links[edit]