Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Priming for Steganography

Rod Hilton
May 14, 2013
350

Priming for Steganography

Presentation about an experiment done by myself and Derek Kern to determine if filters can be used to preprocess images prior to steganography embedding to reduce efficacy of steganalysis.

Rod Hilton

May 14, 2013
Tweet

Transcript

  1. In World War II, a group of allied troops had

    been captured by German forces. A rescue team was sent in, only to discover the compound where they were being held was outfitted with state-of- the-art motion detectors. There was no way to infiltrate without setting off the alarms. The allies came up with a clever plan. One night they tossed rocks over the fence until the alarms were set off. The Germans searched for hours, only to decide it must have been a false alarm. The next night the Allies did the same thing, intentionally setting off the alarm. Again, the Germans found nothing. After a week of this, the Allies tossed the rocks over the fence and nothing happened. The Germans had concluded their system was faulty and disabled it. The allies raided the compound that night and rescued the prisoners.
  2. Sometimes, the best attack on a security system... ...is to

    attack the confidence people have in it.
  3. What can we do to undermine confidence in steganalysis? Maybe

    we modify images prior to embedding to mislead the detector.
  4. How does steganalysis work? We’ve talked a lot about how

    steganalysis works mechanically, but what’s it really doing, abstractly? Fundamentally, it’s looking for “suspicious noise” in an image
  5. Can we add artificial, innocuous “noise” to an image before

    embedding? Artificial Noise Stego Noise Can the detector tell the difference between the two types of noise?
  6. Hypothesis: we can add artificial noise to images prior to

    embedding to reduce efficacy of steganalysis Classified Cover Classified Stego Actual Cover True Negative False Positive Actual Stego False Negative True Positive
  7. Couldn’t you just fill the image with random noise? Yes,

    but that would be cheating Goal of steganography is to embed in images that look normal
  8. We can’t just insert a ton of noise, it has

    to be a picture a person would send. Filters preserve images while potentially adding “noise” Contrast
  9. Start with 1,000 basic images Selected for no Steganography Selected

    for Steganography Embed message (20% payload) steghide! Steganalyze & generate confusion matrix Apply chosen filter Generate ROC curve for filter stegdetect! Calculate AUC, compare
  10. Performance: Random 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

    0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 AUC: 0.50155475
  11. Performance: Baseline 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

    0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Random Why isn’t this better? AUC: 0.575883735
  12. Filter: Noise Adds monochromatic noise to image (look at the

    rim of the plate), directly trying to insert noise without compromising image
  13. Performance: Noise 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

    0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Noise Random Baseline AUC: 0.575883735, Noise AUC: 0.596505775 Pretty close to baseline, in fact slightly higher (stegdetect does better)
  14. Performance: Saturate Baseline AUC: 0.575883735, Saturate AUC: 0.602616 Again, close

    to baseline (the highest yet) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Saturate Random
  15. Performance: Contrast Baseline AUC: 0.575883735, Contrast AUC: 0.52535131 Contrast weakens

    stegdetect! 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Contrast Random
  16. Performance: Blur Baseline AUC: 0.575883735, Blur AUC: 0.50324375 Blur highly

    diminishes analyzer power. Close to Random. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Blur Random
  17. Filter: Sigmoidal Increases the contrast of the image using a

    sigmoidal transfer function without saturating highlights or shadows
  18. Performance: Sigmoidal Baseline AUC: 0.575883735, Sigmoidal AUC: 0.53883085 Sigmoidal diminishes

    the abilities of detection 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Sigmoidal Random
  19. Performance: Emboss Baseline AUC: 0.575883735, Emboss AUC: 0.46764815 Emboss is

    more effective at weakening stegdetect than Random! 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Emboss Random
  20. Whoa. stegdetect is over 35,000 lines of C code… Its

    lead developer is a Google engineer with a PhD in CS… It has been worked on for over a decade… …and embossing an image first makes it perform worse than flipping a coin (if the image is embossed, you’d be better off betting against stegdetect)
  21. Performance: Tilt Shift Baseline AUC: 0.575883735, Tilt Shift AUC: 0.659988555

    Tilt Shift makes stegdetect much more effective! (Even though Blur makes it less) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Tiltshift Random
  22. Filter: Kelvin Strong peach-colored overlay to the image, desaturating the

    image substantially so that peach is the dominant color. It also adds a washed-out frame to the edges, making the image look like a deteriorated photograph
  23. Performance: Kelvin Baseline AUC: 0.575883735, Kelvin AUC: 0.69150218 Kelvin improves

    performance of stegdetect more than any other 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Kelvin Random
  24. Filter: Toaster Meant to emulate old Polaroids, this filter gives

    the image a pinkish glow with increased color saturation. It also adds a vignette, a desaturation around the edges of the images giving the borders a somewhat "burnt" look.
  25. Performance: Toaster Baseline AUC: 0.575883735, Toaster AUC: 0.497654305 Toaster greatly

    diminishes usefulness of stegdetect! 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Toaster Random
  26. Filter: Lomo Emulates "toy cameras" meaning cameras with a plastic

    lens, which tend to add a soft focus and shadowy border. This is done by increasing the red channel constract substantially and applying a vignette that darkens/burns the edges of the image.
  27. Performance: Lomo Baseline AUC: 0.575883735, Lomo AUC: 0.571520055 Lomo is

    about equal to baseline! 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Lomo Random
  28. Filter: Nashville Emulates old fashion photos from the 80's. Resulting

    images have a slight peach tint and a frame around it that makes it look like a slide.
  29. Performance: Nashville Baseline AUC: 0.575883735, Nashville AUC: 0.500399225 Nashville makes

    detection more difficult, close to Random 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Nashville Random
  30. Filter: Gotham Converts an image to black and white with

    high contrast and a blue tint. Meant to emulate pictures taken with a Holga camera and Ilford X2 film.
  31. Performance: Gotham Baseline AUC: 0.575883735, Gotham AUC: 0.48454428 Gotham does

    the best job of weakening the detector of all the Instagram filters 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Baseline Gotham Random
  32. Results & Conclusions Filter AUC Kelvin 0.69150218 Tilt Shift 0.659988555

    Saturate 0.602616 Noise 0.596505775 Baseline 0.575883735 Lomo 0.571520055 Sigmoidal 0.53883085 Contrast 0.52535131 Blur 0.50324375 Random 0.50155475 Nashville 0.500399225 Toaster 0.497654305 Gotham 0.48454428 Emboss 0.46764815 Improve steganography detection Diminish steganography detection Nullify steganography detection
  33. Results & Conclusions Filter AUC Kelvin 0.69150218 Tilt Shift 0.659988555

    Saturate 0.602616 Noise 0.596505775 Baseline 0.575883735 Lomo 0.571520055 Sigmoidal 0.53883085 Contrast 0.52535131 Blur 0.50324375 Random 0.50155475 Nashville 0.500399225 Toaster 0.497654305 Gotham 0.48454428 Emboss 0.46764815 •  We can use image filters to introduce noise that undermines steganalysis •  In fact, some filters are even better at doing this than we expected •  Some filters can even be used to assist steganalysis •  Hypothesis confirmed!
  34. Artifacts Improved steganography through: •  Use of certain pre-embedding filters

    •  Avoid other pre-embedding filters Improved steganalysis through: •  Constructing databases with artificial noise to train classifiers/steganalyzers