
Uma ferramenta poderosa e flexível para aplicar ataques ativos para interromper stegomalware
Nos últimos 10 anos, muitos grupos de ameaças empregaram stegomalware ou outras técnicas baseadas em esteganografia para atacar organizações de todos os setores e em todas as regiões do mundo. Alguns exemplos são: APT15/Vixen Panda, APT23/Tropic Trooper, APT29/Cozy Bear, APT32/OceanLotus, APT34/OilRig, APT37/ScarCruft, APT38/Lazarus Group, Duqu Group, Turla, Vawtrack, Powload, Lokibot, Ursnif, IceID, etc.
Nossa pesquisa (veja APTs/) mostra que a maioria dos grupos está usando técnicas muito simples (pelo menos do ponto de vista acadêmico) e ferramentas conhecidas para contornar defesas perimetrais, embora grupos mais avançados também estejam usando esteganografia para ocultar comunicação C&C e exfiltração de dados. Argumentamos que essa falta de sofisticação não se deve à falta de conhecimento em esteganografia (alguns APTs, como Turla, já experimentaram algoritmos avançados), mas simplesmente porque as organizações não conseguem se defender, mesmo contra as técnicas de esteganografia mais simples.
Por esta razão, criamos o stegoWiper, uma ferramenta para interromper cegamente qualquer stegomalware baseado em imagem, atacando o ponto mais fraco de todos os algoritmos de esteganografia: sua robustez. Verificamos que é capaz de interromper todas as técnicas e ferramentas de esteganografia (Invoke-PSImage, F5, Steghide, openstego, ...) empregadas atualmente, bem como os algoritmos mais avançados disponíveis na literatura acadêmica, baseados em criptografia de matriz, wet-papers, etc. (por exemplo, Hill, J-Uniward, Hugo). Na verdade, quanto mais sofisticada é uma técnica de esteganografia, mais interrupção o stegoWiper produz.
Além disso, nosso ataque ativo nos permite interromper qualquer payload de esteganografia de todas as imagens trocadas por uma organização por meio de um serviço de proxy web ICAP (Internet Content Adaptation Protocol) (veja c-icap/), em tempo real e sem ter que identificar primeiro se as imagens contêm dados ocultos.
stegoWiper v0.1 - Cleans stego information from image files
(png, jpg, gif, bmp, svg)
Usage: ${myself} [-hvc <comment>] <input file> <output file>
Options:
-h Mostra esta mensagem e sai
-v Modo verboso
-c <comentário> Adiciona <comentário> ao arquivo de imagem de saída
stegowiper.sh -c "stegoWiped" ursnif.png ursnif_clean.png
O diretório examples/ inclui várias imagens base que foram empregadas para esconder informações secretas usando diferentes algoritmos de esteganografia, bem como o resultado de limpá-las com o stegoWiper.
O stegoWiper remove todos os comentários de metadados do arquivo de entrada e também adiciona um ruído imperceptível à imagem (não importa se ela realmente contém um payload oculto ou não). Se a imagem contiver um payload esteganográfico, esse ruído aleatório o altera, de modo que, se você tentar extraí-lo, ele falhará ou será corrompido, então o stegomalware não será executado.
Testamos vários tipos (Uniforme, Poisson, Laplaciano, Impulsivo, Multiplicativo) e níveis de ruído, e o melhor em termos de interrupção de payload e redução do impacto na imagem de entrada é o Gaussiano (veja tests/ para um resumo de nossos experimentos). Também é importante notar que, como o ruído é aleatório e distribuído por toda a imagem, os atacantes não podem saber como evitá-lo. Isso é importante porque outros autores propuseram alterações determinísticas (como limpar o bit menos significativo de todos os pixels), então os atacantes podem facilmente contorná-las (por exemplo, usando apenas o segundo bit menos significativo).
Este projeto foi desenvolvido pelo Dr. Alfonso Muñoz e pelo Dr. Manuel Urueña. O código é distribuído sob a GNU General Public License v3.