
스테고멀웨어를 방해하기 위해 능동적 공격을 적용하는 강력하고 유연한 도구
지난 10년 동안 많은 위협 그룹이 스테고멀웨어 또는 기타 스테가노그래피 기반 기술을 사용하여 전 세계 모든 분야의 조직을 공격해 왔습니다. 몇 가지 예는 다음과 같습니다: 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 등.
우리의 연구(APTs/ 참조)는 대부분의 그룹이 경계 방어를 우회하기 위해 매우 간단한 기술(적어도 학술적 관점에서)과 알려진 도구를 사용하고 있음을 보여줍니다. 고급 그룹은 C&C 통신 및 데이터 유출을 숨기기 위해 스테가노그래피를 사용하기도 합니다. 우리는 이러한 정교함의 부족이 스테가노그래피 지식의 부족 때문이 아니라(일부 APT(예: Turla)는 이미 고급 알고리즘을 실험했습니다), 단순히 조직이 가장 간단한 스테가노그래피 기술에도 스스로를 방어할 수 없기 때문이라고 주장합니다.
이러한 이유로 우리는 모든 스테가노그래피 알고리즘의 가장 약한 지점인 견고성을 공격하여 이미지 기반 스테고멀웨어를 맹목적으로 무력화하는 도구인 stegoWiper를 만들었습니다. 우리는 이것이 오늘날 사용되는 모든 스테가노그래피 기술 및 도구(Invoke-PSImage, F5, Steghide, openstego, ...)와 행렬 암호화, 습지 종이(wet-papers) 등을 기반으로 한 학술 문헌에서 사용 가능한 가장 고급 알고리즘(예: Hill, J-Uniward, Hugo)을 무력화할 수 있음을 확인했습니다. 실제로 스테가노그래피 기술이 더 정교할수록 stegoWiper가 더 많은 혼란을 일으킵니다.
또한, 당사의 능동 공격을 통해 웹 프록시 ICAP(Internet Content Adaptation Protocol) 서비스(c-icap/ 참조)를 통해 조직에서 교환하는 모든 이미지의 스테가노그래피 페이로드를 실시간으로, 이미지에 숨겨진 데이터가 있는지 먼저 식별할 필요 없이 무력화할 수 있습니다.
stegoWiper v0.1 - Cleans stego information from image files
(png, jpg, gif, bmp, svg)
Usage: ${myself} [-hvc <comment>] <input file> <output file>
Options:
-h Show this message and exit
-v Verbose mode
-c <comment> Add <comment> to output image file
stegowiper.sh -c "stegoWiped" ursnif.png ursnif_clean.png
examples/ 디렉토리에는 다양한 스테가노그래피 알고리즘을 사용하여 비밀 정보를 숨기는 데 사용된 여러 기본 이미지와 stegoWiper로 정리한 결과가 포함되어 있습니다.
stegoWiper는 입력 파일에서 모든 메타데이터 주석을 제거하고 이미지에 약간의 감지할 수 없는 노이즈를 추가합니다(실제로 숨겨진 페이로드가 포함되어 있는지 여부는 중요하지 않습니다). 이미지에 스테가노그래피 페이로드가 포함되어 있으면 이 무작위 노이즈가 이를 변경하므로 추출을 시도하면 실패하거나 손상되어 스테고멀웨어가 실행되지 않습니다.
우리는 여러 종류(균일, 푸아송, 라플라스, 임펄스, 곱셈)와 수준의 노이즈를 테스트했으며, 페이로드 혼란과 입력 이미지에 미치는 영향 감소 측면에서 가장 좋은 것은 가우시안 노이즈입니다(실험 요약은 tests/ 참조). 또한 노이즈가 무작위이고 이미지 전체에 분산되어 있기 때문에 공격자가 이를 회피하는 방법을 알 수 없다는 점도 주목할 가치가 있습니다. 이는 다른 저자들이 결정론적 변형(예: 모든 픽셀의 최하위 비트를 지우는 것)을 제안했기 때문에 공격자가 쉽게 우회할 수 있기 때문에 중요합니다(예: 두 번째 최하위 비트를 사용하는 것만으로도).
이 프로젝트는 Alfonso Muñoz 박사와 Manuel Urueña 박사가 개발했습니다. 코드는 GNU General Public License v3에 따라 배포됩니다.