결론부터 말씀드리면 두 번째가 맞습니다. 이미지를 내려받거나 열어보는 것만으로 숨겨진 exe가 실행되지는 않습니다. 스테가노그래피는 무언가를 숨기는 기술이지, 그것을 실행시키는 기술이 아니기 때문입니다.
원리부터 보시면 이해가 빠릅니다. 이미지 파일은 픽셀 하나하나의 색을 숫자로 저장합니다. 스테가노그래피는 그 숫자의 맨 끝자리를 아주 조금씩 바꿔서 데이터를 심는 방식입니다. 색이 한 단계 달라지는 정도라 눈으로는 차이를 알 수 없습니다. 파일 뒤쪽 여백이나 메타데이터 영역에 통째로 붙여 넣는 방식도 있습니다.
그럼 왜 실행이 안 되느냐. 운영체제가 프로그램을 실행하는 것은 파일 안에 실행 코드가 들어 있어서가 아니라, 그 파일을 실행 파일로 취급해서 CPU에 넘겨줄 때뿐입니다. 확장자가 png인 파일을 이미지 뷰어가 열면 뷰어는 그것을 색상 데이터로만 읽습니다. 숨겨진 바이트는 그냥 이상한 색 값일 뿐, 코드로 해석되지 않습니다.
그래서 실제 공격은 항상 두 단계로 이루어집니다. 이미지에 악성코드를 심었다면, 그것을 꺼내서 실행해 줄 별도의 프로그램이 이미 피해자 컴퓨터 안에 들어가 있어야 합니다. 순서가 이미지가 먼저가 아니라, 침투가 먼저이고 이미지는 나중입니다. 그럼 왜 굳이 이미지에 숨기느냐면, 백신이나 방화벽이 이미지 다운로드는 잘 막지 않기 때문입니다. 탐지를 피해 추가 명령이나 코드를 전달하는 배달 수단인 셈입니다.
다만 예외가 하나 있습니다. 이미지를 읽어 들이는 프로그램 자체에 결함이 있는 경우입니다. 일부러 망가뜨린 이미지 파일을 넣으면 뷰어가 처리 과정에서 오류를 일으키고, 그 틈으로 코드가 실행되는 사례가 과거에 실제로 있었습니다. 다만 이것은 스테가노그래피 때문이 아니라 이미지 해석기의 취약점 문제이고, 운영체제와 앱을 최신 상태로 유지하면 대부분 막힙니다.
그러니 이미지 자체를 무서워하실 필요는 없습니다. 위험한 것은 여전히 실행 파일 쪽입니다. 윈도우 탐색기에서 파일 확장명 표시를 켜 두시고, 사진처럼 보이는데 확장자가 exe, scr, js, lnk인 파일을 조심하시면 됩니다. 아이콘만 사진 모양으로 바꿔 놓는 수법이 현실에서는 훨씬 흔합니다.
정리하면 스테가노그래피는 존재 자체를 숨기는 기술이고, 암호화는 내용을 읽지 못하게 하는 기술입니다. 목적이 서로 다릅니다. 그리고 숨겨 놓은 것을 꺼내려면 어떤 방식으로 심었는지 아는 전용 도구가 필요합니다. 이미지를 여는 것만으로 알아서 튀어나오는 구조가 아니니, 그 부분은 안심하셔도 좋습니다.