포스팅 내용

전문가 기고

랜섬웨어로 암호화 된 파일을 어떻게 복구하는가?

랜섬웨어로 암호화 된 파일을 어떻게 복구하는가?

How We Foiled Ransomware and Got the Files Back


RSA 컨퍼런스 블로그에 랜섬웨어 파일 복구 방법이 소개되어 내용을 간략히 정리하여 공유합니다.


2013년 초, 한 조직이 그들의 서버가 ACCDFISA 랜섬웨어에 감염되어 서버에 있는 모든 파일들이 암호화 되었다며 복구팀에게 복구를 요청해 왔습니다. 


이 랜섬웨어는 각 파일들을 WinRAR self-extractor를 이용하여 암호화된 자동실행압축 파일로 변경하였고 파일명은 암호를 풀 수 있는 단서(예를 들어 압축을 풀기 위해서는 ~@~로 이메일을 보내시오)로 변경하였습니다. 해당 랜섬웨어는 256bit의 랜덤키를 사용하는 AES-256암호화 기법을 사용하였고, 암호화 되지 않은 원본 파일들은 모두 삭제하였습니다. 또한 복구를 방해하기 위하여 파일에 패스워드를 걸었다고 주장하였습니다.  



패스워드 생성기 찾기


감염된 서버 드라이브 복사본을 조사결과 몇몇 이상한 문서들이 발견되었고, 악성프로세스와 몇몇 이상한 문서들과는 어떠한 상관관계가 있을 것이라고 추측하였습니다. 그 중 영구적으로 파일을 삭제하는 MS Sysinternal의 “NoSafeMode”라이브러리, self-extractor을 만드는 RAR 유틸리티도 발견되었습니다.  


랜섬웨어를 리버스 엔지니어링 하기로 하였고, 그 시작점은 RAR 유틸리티로 잡았습니다. 이 유틸리키는 암호화 키 패스워드를 커맨드라인 함수로 받아들였기 때문에, 이 유틸리티를 실행하는 랜섬웨어 코드를 역추적 한다면 패스워드 생성기를 찾을 수 있을 것이라고 추측하였기 때문입니다.




테스트 시스템에서 랜섬웨어를 실행시켰고, RAR 유틸리티를 실행하는 CreateProcess 함수 호출을 가로채기 위해 디버거를 연결하였습니다. 이후 CreateProcess 를 호출하는 svchost.exe로 위장한 랜섬웨어를 찾을 수 있었습니다. 이 방법을 통하여, 랜섬웨어가 실행한 각각의 커맨드 및 파일을 암호화하는데 사용 된 패스워드를 확인할 수 있었습니다. 


인터셉트한 패스워드는 aesT322B2XgM(mC0...로 총 57개의 문자열로 구성되어 있었으며, 대문자,소문자, 숫자, 점 들이 랜덤으로 배열되어 있었습니다. 패스워드가 aes로 시작한 것은 우연이거나 혹은 prefix로 의도된 것이라고 추측하였습니다. 만약 prefix라면, 이 문자열을 랜섬웨어 코드 어딘가에서 찾을 수 있을 것이며, 랜섬웨어 디스어셈블을 통하여 aes라는 문자열 뿐만 아니라, aesT322문자열도 발견하였습니다. 이를 통하여 비밀번호는 aesT322로 시작하며, 이 후의 50글자는 랜섬 문자열일 것이라는 것을 추측할 수 있습니다.



우리는 리버스 엔지니어링을 통하여 랜섬웨어 실행 과정에서 글로벌 변수에 어떤 값이 할당되는지 확인하였으며, aesT322 prefox 문자열을 가리키는 글로벌 변수, 50자의 랜덤 문자를 받는 글로벌 변수 및 57자의 패스워드 전체를 받는 글로벌 변수를 찾아낼 수 있었습니다. 



생성기 동작방식 알아내기



이 프로그램의 변수 3개의 모든 경우를 추적한 끝에, 소문자 26자, 대문자 26자, 숫자 10자, 구두점 기호 10개의 총 78개 문자에서 랜덤한 문자 50자가 선택되는 사실을 확인하였습니다. 컴퓨터는 랜덤한 숫자 역시 일정한 알고리즘을 기반으로 만들어 내며, 이 암호화 알고리즘을 깨기 위하여 난수생성기 (pseudo-random number generator(PRNG)를 공격하기로 하였습니다. 


PRNG가 이 코드를 실행할 때 사용하는 쓰레드의 식별자 및 시스템의 작동시간에 대한 수치를 밀리세컨드(1000분의 1초)로 환산한 데서 얻은 32비트의 숫자로 초기화 되거나 시드(seed)로 삼는다는 것을 발견하였습니다. 이는 예측 가능한 값으로, 32비트 시드를 통하여 78글자로 만들 수 있는조합은 총 40억개라는 것을 알 수 있었습니다.컴퓨터는 난수를 만들어 낼 때에도 일정한 규칙에 따라 동작하기 때문에, PRNG는 동일한 시드값이 주어졌을 때에는 언제나 동일한 값을 동일한 배열로 생산해 내기 때문입니다.



패스워드 추측


40억개의 패스워드 리스트는 결코 적은 것이 아닙니다. 하지만 우리는 시드가 4의 배수이며, 보통 10,000보다 적은 쓰레드 ID를 갖고 있으며 시스템 작동시간을 기반으로 한다는 사실을 알고 있었습니다. 최대한 난수의 범위를 좁히기 위하여, 감염 전 서버가 얼마나 오랫동안 가동되었는지 시간을 알아야 했지만, 시스템을 검사하던 도중 그보다 더 좋은 정보를 발견하였습니다.



감염 시스템을 검사하던 중 ProgramData 디렉토리 아래의 stppthmainfv.dll이라는 파일을 발견했는데, 해당 파일 안에는 총 21줄의 8자리 랜덤 문자들이 있었습니다. 우리는 모든 가능한 시드값을 부루트포싱(BruteForce)하여 PRNG가 어떤값을 이용하여 이 21줄의 문자를 생성했는지 알아보기로 하였습니다. 왜냐하면, 이 문자들은 32비트 밖에 되지 않았기 때문에, 이를 검색해 내는 데에는 단 몇 시간 밖에 소요되지 않기 때문입니다. 


싱글 CPU 코어에서 4초안에 31,956,209개의 리스트를 검사하였으며, stppthmainfv.dll의 패스워드들과 동일한 순서로 생성한 시드 값을 31,956,208개 찾아내었습니다. 우리는 시드 값을 테스트 하기 위해 대략 12MB의 패스워드 리스트를 생성하였습니다. 이 리스트를 가지고 RAR 유틸리티에 각각의 패스워드를 테스트하는 배치 프로세스를 밤새 돌려놓았습니다. 


아침에 확인해 보니, 해당 프로세스는 이미 완료되어 있었으며, 매칭되는 하나의 패스워드가 스크린에 떠 있었습니다. 즉, 성공적으로 랜섬웨어 악성코드로 암호화 된 파일을 복호화 한 것입니다. 





참고 :

http://www.rsaconference.com/blogs/how-we-foiled-ransomware-and-got-the-files-back






  1. 김대윤 2015.08.08 21:14  수정/삭제  댓글쓰기

    일반인입니다
    저도걸려서..
    중요파일인데
    큰일입니다
    복구업체보내긴햇지만
    뷸안합니다

    • 알약(Alyac) 2015.10.16 15:52 신고  수정/삭제

      김대윤님 안녕하세요. 랜섬웨어에 감염되면 현재까지는 복구할 수 있는 방법이 없습니다. 간혹 개인키를 수집하여 암호화 된 파일을 복호화 해주는 서비스들이 있지만, 수집한 개인키가 한정적이기 때문에 키가 일치하지 않는 경우에는 복호화가 불가능 합니다. http://blog.alyac.co.kr/305 해당 글 참고부탁드립니다. 랜섬웨어의 피해를 최소화 하기 위해서는 중요한 자료들에 대하여 주기적으로 백업을 해 놓으셔야 합니다. 감사합니다.

  2. 김지운 2015.10.13 12:55  수정/삭제  댓글쓰기

    저도 랜섬웨어에 걸려서 본체하드며 꼽혀있던 외장하드까지 다 먹통입니다.
    나름 백업이라고 파티션 나눠서 중복 보관 중이었는데..
    이건 뭐 통으로 날아가버리니 답이 없네요...
    회사 자료들인데.. 큰일입니다.
    하드를 통으로 복구하자니 복구비가 만만치 않고...
    반드시 복구하여야 하는 엑셀파일이 하나 있는데..
    이거라도 어떻게 방법이 없을까요????

    • 알약(Alyac) 2015.10.16 15:53 신고  수정/삭제

      김지운님 안녕하세요. 랜섬웨어에 감염되면 현재까지는 복구할 수 있는 방법이 없습니다. 간혹 개인키를 수집하여 암호화 된 파일을 복호화 해주는 서비스들이 있지만, 수집한 개인키가 한정적이기 때문에 키가 일치하지 않는 경우에는 복호화가 불가능 합니다. http://blog.alyac.co.kr/305 해당 글 참고부탁드립니다. 랜섬웨어의 피해를 최소화 하기 위해서는 중요한 자료들에 대하여 주기적으로 백업을 해 놓으셔야 합니다. 감사합니다.

  3. 무뚝남 2015.11.27 18:43  수정/삭제  댓글쓰기

    알약에서 해당 악성코드 차단하면 좋을텐데

    • 알약(Alyac) 2015.12.01 13:16 신고  수정/삭제

      무뚝남님, 안녕하세요. 알약에서는 발견된 랜섬웨어 및 관련 변종에 대해 빠르게 대응중에 있습니다. 랜섬웨어는 만에 하나 감염이 되는 경우 사후조치가 어렵기 때문에 항상 중요자료 백업 및 최신보안패치에도 신경써주시면 좋을 것 같습니다. 좋은 하루 되세요!

  4. 알약사용 2015.12.03 00:26  수정/삭제  댓글쓰기

    알약이 tesla 랜섬웨어 감지 하나요 v3 같은 경우는 감지한다고 하는것 같은데 알약도 가능한지요

    • 알약(Alyac) 2015.12.08 09:21 신고  수정/삭제

      안녕하세요^^ 현재 알약에서도 tesla 랜섬웨어를 탐지하고 있습니다. 탐지명은 Trojan.Ransom.TeslaCrypt 입니다. 감사합니다 좋은하루되세요~

  5. 알약만 5년 2016.02.09 10:36  수정/삭제  댓글쓰기

    알약이CryptOLOcker랜섬웨어도 감지할수 있나요?

    • 알약(Alyac) 2016.02.11 10:31 신고  수정/삭제

      알약만 5년님 안녕하세요. 알약에서는 Crypt0L0cker 뿐만 아니라 알려진 랜섬웨어에 대하여 효과적으로 대응하고 있습니다. 하지만 일부 신종 랜섬웨어의 경우 알약에서 차단에 실패하는 경우도 있습니다. 하지만 신종 랜섬웨어에 대해서도 빠르게 대응할 수 있도록 노력하고 있으니 꾸준한 관심 부탁드리겠습니다. 감사합니다^^

  6. JY 2016.08.10 18:47  수정/삭제  댓글쓰기

    백신으로 알약을 사용하고 있었습니다!
    어느 날 광고 스킵버튼을 눌렀더니 Cerber에 감염되었습니다...ㅇㅁㅇ..;
    그러다가 알약에서 메시지가 뜨더라고욧
    신고하기 버튼을 눌렀는데,,,그 뒤로도 계속 암호화가 진행되었습니다..ㅠ
    60012개 파일이 잠겨 그냥 포맷시켰네요0_0 원래 그런건가요...?!

    • 알약(Alyac) 2016.08.11 09:44 신고  수정/삭제

      안녕하세요. 랜섬웨어 중에는 백신의 차단기능을 우회하는 것이 많습니다. ㅠㅠ 더불어 알약에서 차단알림 메시지가 떠도, 암호화는 진행되는 경우가 있어 더욱 주의가 필요합니다. 향후 감염을 예방하기 위해 중요한 파일은 반드시 백업해두시고, 자주 사용하시는 SW는 항상 최신 버전으로 업데이트해주시길 부탁 드리겠습니다. 저희도 랜섬웨어 차단 기능을 더욱 고도화할 수 있도록 계속해서 노력하겠습니다. 감사합니다.

  7. ri 2016.09.06 02:00  수정/삭제  댓글쓰기

    구글에서 검색중에 영어로된곳 클릭했다가 랜섬 당했어요.저는 .cerber3걸렸네요.알약에서< 랜섬웨어 차단했습니다.>라고떠서 확인 누르고 마음 편히 있다가 갑자기 영어로 뭐라고 뜨길래 무서워서 폴더갔더니 그 사이에 다 암호화되어있더군요.ㅜㅜ아기 동영상이고 사진이고 다 못보게 되었습니다.ㅜㅜㅜㅜ일단 c드라이브랑 d드라이브는 포맷했는데 e드라이브는 포맷안했거든요.암호화된 사진 동영상이 있어서 나중에 혹시라도 치료툴?나올까봐서요.괜찮을까요?

    • 알약(Alyac) 2016.09.06 09:47 신고  수정/삭제

      안녕하세요. 아기 동영상과 사진을 다 못보게 되셨다니 정말 너무 안타깝습니다. ㅠㅠ 뭐라고 드릴 말씀이 없네요.. 최근 랜섬웨어는 백신의 차단기능을 우회하는 경우가 있어 각별한 주의가 필요합니다. 다만 향후 랜섬웨어 복구툴이 개발될 수 있으니, 말씀하신 e드라이브는 따로 보관해주시기 바랍니다. 또한 이후 같은 피해를 당하지 않도록, 중요한 문서는 꼭 백업해두시길 부탁 드릴게요. 더불어 자주 사용하는 SW업데이트를 꼭 최신 버전으로 유지해주세요. 도움이 되셨길 바라겠습니다. 감사합니다.

  8. swyang 2016.10.17 18:09  수정/삭제  댓글쓰기

    (^TIFDYj 폴더가 자동으로 생성이 됩니다.
    이게 알약과 관계가 있나요?

    • 알약(Alyac) 2016.10.18 10:52 신고  수정/삭제

      안녕하세요. 해당 폴더는 백신 프로그램이 랜섬웨어에 대응하기 위해 만든 미끼(decoy)파일로 예상되오나, 말씀해주신 사항만으로는 정확한 안내를 드리기 어렵습니다. 좀 더 상세한 내용을 확인하기 원하시면 알약 [신고하기]를 통해 관련 내용으로 문의 주시길 부탁 드리겠습니다. ^^ 저희가 신속히 상세한 안내를 드리도록 하겠습니다. 감사합니다.

  9. 알약이 최고! 2016.10.21 20:50  수정/삭제  댓글쓰기

    제가 컴퓨터를 정상적으로 사용하다가 갑자기 랜섬웨어 공격 차단을 했다고 하는데요..
    너무 불안해요ㅠㅠ

    • 알약(Alyac) 2016.10.24 08:52 신고  수정/삭제

      안녕하세요. 랜섬웨어 차단 알림창이 발생하신 건가요? 먼저 알약을 최신 업데이트한 상태에서 정밀 검사를 진행해주시기 바라며, 상세한 사항을 확인하시려면 알약 내 [신고하기]를 통해 신고 부탁 드리겠습니다. 저희가 확인 후 좀 더 정확한 안내를 드리도록 하겠습니다.
      더불어 최근 랜섬웨어는 백신의 차단 기능을 우회하는 경우가 많아, 완벽한 탐지와 차단이 어렵습니다. 반드시 자주 사용하시는 SW를 최신 버전으로 업데이트해주시고, 중요한 파일은 따로 백업해두시는 등의 조치를 취해주시기 바라겠습니다. 감사합니다.

  10. 알약 2016.11.16 03:01  수정/삭제  댓글쓰기

    랜섬웨어에 걸려셔 myk?라는 프로그램으로 치료를 하긴했는데

    readme라는아이콘의 랜섬웨어들의 잔해들이 남아있는데 이 잔해들이 다시 랜섬웨어 바이러스를 일으킬 ㄱ가능성이 있나요? 알약으로 치료하고 검사해봤는데 이상없다고 나오는데 불안합니다.

    • 알약(Alyac) 2016.11.16 09:07 신고  수정/삭제

      안녕하세요. 랜섬웨어 때문에 많이 놀라셨겠습니다. ㅠㅠ 죄송하지만 말씀하신 내용만으로는 저희가 정확한 답변을 드리기가 어렵습니다. 알약 [신고하기]를 통해 관련 상세 내용과 함께 연락처를 적어주시면, 신속히 연락 드려 좀 더 자세히 안내 드리도록 하겠습니다. 감사합니다.

  11. netsaker 2016.11.21 14:20  수정/삭제  댓글쓰기

    확장자 명이 8942인 랜섬웨어에 걸렸습니다.
    복구방법좀 부탁드려요
    큰일입니다.
    파일이름까지 변했습니다.
    k4hypQAhAb.8942
    살려주세요

    • 알약(Alyac) 2016.11.21 18:00 신고  수정/삭제

      안녕하세요. 먼저 말씀하신 내용만으로는 상세한 증상 파악이 어려워, 정확한 답변을 드리기가 어렵습니다. 알약 [신고하기]를 통해 관련 샘플과 상세 증상을 신고해주시면, 확인 후 기재해주신 이메일로 신속하게 안내해 드리도록 하겠습니다. 감사합니다.

  12. 오렌지나무 2016.11.23 19:01  수정/삭제  댓글쓰기

    아이 숙제로 d드라이브에 있는 사진을 열어보니 모두 암호화되었습니다.
    복구업체에 맡겼더니 rhryy라는데...
    이런 랜썸웨어가 존재하긴하나여?

    • 알약(Alyac) 2016.11.24 09:44 신고  수정/삭제

      안녕하세요. 죄송하지만 말씀하신 내용만으로는 상세한 증상 파악이 어려워 정확한 답변을 드리기가 어렵습니다. ㅠㅠ 알약 [신고하기]를 통해 관련 샘플과 상세 증상을 신고해주시기 바랍니다. 저희가 확인 후 기재해주신 이메일로 신속하게 회신 드리도록 하겠습니다.
      더불어 랜섬웨어의 피해를 예방하기 위해 주로 사용하시는 SW를 항상 최신 버전으로 업데이트를 유지해주시고, 중요한 파일은 따로 백업해두시는 등의 조치를 간곡히 권해 드립니다. 감사합니다.

  13. 2016.11.23 19:01  수정/삭제  댓글쓰기

    비밀댓글입니다

  14. 보안보이 2017.04.16 13:20  수정/삭제  댓글쓰기

    알약님, 안녕하세요. 뜬금없는 질문인데 암호화 프로그램을 리버싱하면 기존에 대칭키 방식으로 암호화된 문서도 저런식으로 복호화가 가능한가요? 아니면 저것과는 전혀 다른 방식인가요? 궁금합니다 ;;

    • 알약(Alyac) 2017.04.17 14:32 신고  수정/삭제

      안녕하세요. 해당 포스팅에 있는 방법이 다른 프로그램에 모두 적용되는 것은 아니나, 패스워드나 키 생성 방식에 따라 응용하여 사용 가능할 것으로 추측됩니다. 이 점 확인 부탁 드리겠습니다. 감사합니다. ^^

티스토리 방명록 작성
name password homepage