Take the 2-minute tour ×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.

I recently came across an odd JPEG file: Resolution 400x600 and a filesize of 2.9 MB. I got suspicious and suspected that there is some additional information hidden. I tried some straight forward things: open the file with some archive tools; tried to read its content with an editor, but I couldn't locate anything interresting.

Now my questions: What else can I do? Are there any tools available that analyze images for hidden data? Perhaps a tool that scans for known file headers?

share|improve this question
    
I agree that is strange, but keep in mind it might have been encoded with very lax JPEG settings. –  Konrad Feb 14 '11 at 15:59
    
Good question - thanks. Hope you don't mind that I tried to give it a more descriptive title. –  nealmcb Feb 14 '11 at 17:34
    
Not an answer to the asked question, but to the actual situation you had: It might not be hidden data, but hidden binary code, e.g. GIFAR. See also http://security.stackexchange.com/q/600/33. –  AviD Feb 14 '11 at 19:15
1  
@Konrad, I doubt it. Even at three bits per pixel (24-bit color), a basic bitmap would be only approx 720,000 bytes. (400*600*3). I'd bet a trip to the Chinese buffet that there's something there not related to the obvious image. @Chris: Please post your findings, or even the file if you'll part with it. –  pboin Feb 15 '11 at 20:57
    
This software uses LSB technique to hide data inside any images. Downside of this software is that the output image which contains the image is a BMP image. http://www.imagesteganography.com/ –  Laishram Pilot Nov 30 '13 at 23:31
add comment

6 Answers

up vote 27 down vote accepted

To detect Steganography it really comes down to statistical analysis (not a subject I know very well).
But here are a few pages that may help you out.

share|improve this answer
6  
A small matter of semantics, here: Steganography on its own isn't encryption, it's obfuscation. While the hidden data may in fact be encrypted, it is not a necessary part of steganography for it to be so. –  Iszi Feb 14 '11 at 16:12
1  
You are right Iszi I'll correct that. –  Mark Davidson Feb 14 '11 at 16:13
    
Another vote for Stegdetect here. It works really well. –  Rory Alsop Feb 14 '11 at 17:54
add comment

Please note that my comment below is regarding LSB (Least Significant Bit) steganography and not jpeg (DCT) or appended data steganography.

"Steganography doesn't modify the file size significantly" this is incorrect. If I take a jpeg compressed image and apply LSB steganography then the resultant image size on disk will increase 'significantly' since images using LSB steganography MUST be saved in a lossless format such as bmp tiff or png. I have written software that takes any image format (such as jpeg) and hides data within it and saves out to png. It is often the case that I can open a jpeg of size 60Kb and be able to hide over 100Kb of data within it. The resultant png would look identical to the original jpeg but have a file size of 800Kb+

When analyzing images for LSB steganography content you MUST have either the original image for comparison OR have knowledge of the encoding method. Without either of these you will NEVER determine if an image contains hidden LSB data. Consider there there are a multitude of ways to implement LSB steganography and an infinite number of images to choose as a source, it's no trivial task to determine any steganographic content. That said... ALL images containing LSB steganographic content must be saved lossless (without compression). Therefore they may stand out as larger in size (bytes) than might otherwise be expected. Jpeg is a lossy algorithm (even with 0% compression) which is why images using LSB steganography cannot be saved as jpeg images, therefore your large jpeg image is unlikely to hold LSB steganography, however this does not rule out other steganographic options.

share|improve this answer
add comment

I know this post is old, but just in case someone else looking for information in the Steganography area enter here like me, Steganography does'n modify the file size significantly, so that's probably not the case.

share|improve this answer
1  
some "steganography" softwares don't just hide information inside less-significant bits, they append data to the end of the file, or they use fields like "comments" to store the data, or they increase the bits-per-pixel... not good techniques, but they are done. –  woliveirajr Sep 25 '13 at 20:03
    
Some old-school methods include permutation the image palette; or adding a custom colour index; or for images with layers, adding an alpha layer with slight differences. Really devious techniques simply hide the secret in the open - such as a copyright text or ad blurb that translates to a goo.gl url lookup –  LateralFractal Oct 22 '13 at 10:25
add comment

It's probably just a file appended to the end of the JPEG. Look for the EOF or the start of a known header such as PK RAR PE etc

share|improve this answer
add comment

There's some great general references in the other answers here, so I'll just give some input specific to your situation:

When hiding data in pictures without changing the file size, you put it in the low-order bits; this can be detected by opening in an editor with a histogram and looking for jagged edges. But this sounds like a concantenation of a file to the image; *chan denizens often use this technique for distributing illicit files. Looking for file signatures after the first one--say, using 'grep -a' with a list of known filetype magic numbers--should reveal this technique. The combination of encryption and steganography is beyond the scope of this comment :D

share|improve this answer
add comment

I'll second the reccomendation for Stegdetect: here's another good source for information http://www.outguess.org/detection.php as well as downloads for stegbreak and XSteg

You can go right to the source for the research on this if you're interested; Neil Provos's page is here http://www.citi.umich.edu/u/provos/stego/

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.