From invisible ink to highly complex algorithms, this technique is all around us. It is a fascinating and often misunderstood technique of concealing information, and it has experienced a revival in the digital world. This article discusses everything you need to know about the practice and its applications in cybersecurity: the definition of steganography and various types, tools, and techniques.
What Is Steganography, and How Does It Work?
Simply put, it is the practice of “hiding in plain sight.” It encodes a secret message within another non-secret object in such a manner as to make the message imperceptible to those who aren’t aware of its presence. Of course, because of this secrecy, the method generally requires the recipient to be aware that a message is forthcoming.
To understand the meaning of steganography in cyber security, it’s important to know the origins of the technique. The practice of this concealment method dates back to ancient Greece, from which we also get the word itself: a combination of the Greek words “steganos” (covered or concealed) and “graphein” (writing).
For example, the Greek historian Herodotus wrote about how Spartan warriors used this technique to conceal military intelligence from the enemy. The Spartans would write messages on wood tablets and cover them with wax, hiding the information in case the messenger was intercepted. The recipient could then scrape off the wax and easily read the message.
The Difference Between Steganography, Cryptography, and Obfuscation
This method, cryptography, and obfuscation are three related terms; they all refer to practices that make data more difficult to understand. However, these words are not interchangeable — subtle yet crucial distinctions exist between them.
- Cryptography attempts to encode a message, making it difficult or impossible for anyone except the intended recipient to decrypt it. The encoding and decoding process is accomplished using cryptographic keys that translate back and forth between the true message and its encrypted version.
- Steganography attempts to hide a message within another object. Not only does this technique seek to make this information harder to understand, but it also seeks to conceal that a message is being sent in the first place.
- Obfuscation is any technique that prevents third parties from understanding a message. For example, a program’s source code may be obfuscated by removing the whitespace, making the message difficult for humans to read.
Note that steganography and cryptography are not mutually exclusive. For example, it could hide a message inside another file using encryption for extra security. The recipient could then extract the encrypted message and decrypt it using a given key.
Examples of Steganography
Steganography has been in use for centuries. Basic physical forms include invisible ink that can only be read by exposing it to heat and messages written under the postage stamps of an envelope.
However, clever practitioners of this art have developed a range of more sophisticated techniques that work in various mediums. One example is a laser printer’s Machine Identification Code (MIC), a unique identifier encoded on any printed document using tiny yellow dots that are invisible to the naked eye. Secret messages can even use the letters of a crossword or the numbers of a sudoku puzzle.
More recently, digital steganography in cyber security has emerged as a practice with both legitimate and criminal uses. The different algorithms in digital this method include:
- Least significant bit (LSB): In the LSB algorithm, the least significant bit in each byte of a multimedia file (e.g., an image or audio) is modified to convey a hidden message.
- Multi-access edge computing can also help save on bandwidth costs and improve security by processing data locally instead of sending it over the network to central servers.
- Discrete Fourier transform (DFT): In the DFT algorithm, information is hidden inside a multimedia file using the mathematical technique of discrete Fourier transformation.
The good news for users of steganography is that they don’t have to code these algorithms from scratch. Instead, different programming languages come with pre-built libraries and frameworks for this purpose. For example, the Python Stegano module can hide messages within an image (PyPI), while the Image Steganography library does the same for C++ programmers (GitHub, 2022).
In the next section, we’ll go over five of the most common types of digital concealment.
What Are the 5 Types of Steganography?
Text steganography
Text steganography conceals a secret message inside a piece of text. The simplest version of text this method might use the first letter in each sentence to form the hidden message. Other text techniques might include adding meaningful typos or encoding information through punctuation.
Image steganography
In image steganography, secret information is encoded within a digital image. This technique relies on the fact that small changes in image color or noise are very difficult to detect with the human eye. For example, one image can be concealed within another by using the least significant bits of each pixel in the image to represent the hidden image instead.
Video steganography
Video steganography is a more sophisticated version of image steganography that can encode entire videos. Because digital videos are represented as a sequence of consecutive images, each video frame can encode a separate image, hiding a coherent video in plain sight.
Audio steganography
Audio files, like images and videos, can be used to conceal information. One simple form of audio this is “backmasking,” in which secret messages are played backwards on a track (requiring the listener to play the entire track backwards). More sophisticated techniques might involve the least significant bits of each byte in the audio file, similar to image steganography.
Network steganography
Last but not least, network steganography is a clever digital concealment technique that hides information inside network traffic. For example, data can be concealed within the TCP/IP headers or payloads of network packets. The sender can even impart information based on the time between sending different packets.
Steganography Tools and Techniques
There are many different types of steganography — so how can you get started? Fortunately, there are a number of tools for using it online.
OpenStego is an open-source tool for this purpose that offers two main functionalities: data hiding and watermarking (i.e., hiding an invisible signature). As of this writing, OpenStego works only for image files (Vaidya, S).
Another free steganography tool (though not open-source) is OpenPuff. The OpenPuff software supports this practice in image, audio, and video files and can even split a message across multiple files (EmbeddedSW).
How Do Malicious Hackers Use Steganography?
As you might imagine, this technique can be used for both good and ill. For instance, dissidents living under oppressive regimes can use it to hide messages from the government, passing sensitive information within a seemingly innocuous medium.
However, digital steganography is also a tool for malicious hackers. An attacker can hide the source code for a malware application inside another supposedly harmless file (such as a text file or an image). A separate program can then extract and run the source code.
In June 2020, for example, security researchers at Malwarebytes discovered that malicious actors had hidden code for a web skimmer inside the EXIF metadata of an image file. When executed, this code silently captured the details of users as they entered their names, addresses, and payment card information on e-commerce websites (Segura, 2020).
Conclusion
Steganography is a clever and fascinating technique for sending confidential information in plain sight. Digital forms of it can be used for benevolent and malicious purposes, making it crucial that cybersecurity experts thoroughly understand this practice.
Learning to detect and thwart steganography attacks is essential for prospective ethical hackers. EC-Council is a leading provider of ethical hacking course, training programs, and certifications, including the world-renowned Certified Ethical Hacker certification. Click here to learn more about the CEH course and certification and start on your path to becoming an ethical hacker.
Sources
PyPI. stegano 0.11.1. https://pypi.org/project/stegano/
GitHub. jokLiu/ImageSteganography: Static C++ image steganography library. https://github.com/jokLiu/ImageSteganography
Vaidya, S. OpenStego. https://www.openstego.com/
EmbeddedSW. OpenPuff Steganography. https://embeddedsw.net/OpenPuff_Steganography_Home.html
Segura, J. (2020, June 25). Web skimmer hides within EXIF metadata, exfiltrates credit cards via image files. Malwarebytes. https://www.malwarebytes.com/blog/news/2020/06/web-skimmer-hides-within-exif-metadata-exfiltrates-credit-cards-via-image-files
About the Author
David Tidmarsh is a programmer and writer. He’s worked as a software developer at MIT, has a B.A. in history from Yale, and is currently a graduate student in computer science at UT Austin.
FAQs
Steganography is the practice of “hiding in plain sight,” where a secret message is encoded within another non-secret object in such a manner as to make the message imperceptible to those who aren’t aware of its presence.
- Text steganography: Hiding messages within text.
- Image steganography: Encoding information within digital images, often using least significant bits.
- Video steganography: A more sophisticated form of image steganography that hides messages in video frames.
- Audio steganography: Concealing information in audio files.
- Network steganography: Hiding data within network traffic, such as TCP/IP headers or payloads.