ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 랜섬웨어(Ransomware) 정의 및 실습
    ETC 2020. 2. 27. 14:08

     

    랜섬웨어(Ransomware) 정의 및 실습

     

    1. 랜섬웨어 정의

    랜섬웨어는 몸값을 뜻하는 RansomSoftware(소프트웨어)가 더하여진 합성어로, 컴퓨터 시스템을 감염시켜 접근을 제한하고 일종의 몸값을 요구하는 악성 소프트웨어의 한 종류이다. 일반적으로 윈도우 운영체제가 설치된 PC에서 가장 많이 발생하지만 모바일 환경에서도 발생하며, 맥 OS도 감염될 수 있다.

     

    랜섬웨어의 감염 경로는 드라이브 바이 다운로드(Drive By Download) 공격, 스팸 메일(Spam Mail)과 서버에 직접 침투하여 설치하는 형태를 가진다. 또한 취약성을 이용하여 네트워크를 통해 스스로 전파하는 웜(Worm) 형태도 존재한다.

     

    대표적인 랜섬웨어로는 Crypt0L0cker, Locky, Cerber, CryptXXX, WannaCry 등이 존재하며, 사상 최대 규모의 랜섬웨어 공격은 SMB 취약성을 이용한 WannaCry로 유포 하루 만에 전 세계 100여 개국 10여만 대 이상의 컴퓨터를 감염시켰다.

     

     

    2. 랜섬웨어 실습

    교육 목적으로 제작된 오픈소스 랜섬웨어(Ransomware)인 Hidden Tear를 이용하여 실습을 진행한다. Hidden Tear는 AES 알고리즘과 암호화 키를 이용하여 특정 파일을 암호화하는 악성코드이다.

    추 후에 교육 목적과는 다르게 변종의 Hidden Tear도 출현했다. (따라서, 악의적으로 사용하시면 안됩니다.)

     

    1) Hidden Tear 소스코드를 다운로드 받는다.

    - 다운로드 사이트 : https://github.com/goliate/hidden-tear

     

    goliate/hidden-tear

    ransomware open-sources. Contribute to goliate/hidden-tear development by creating an account on GitHub.

    github.com

     

    2) 압축해제 후, hidden-tear.sln 소스코드 파일을 빌드시킨다.

    Microsoft Visual Studio를 통해 소스코드 파일인 hidden-tear.sln를 빌드하였으며, 정상적으로 빌드가 수행되면 아래 [그림 1]과 같이 hidden-tear.exe 파일을 확인할 수 있다.

     

    [그림 1] 빌드 후 생성된 hidden-tear.exe 파일

     

    3) 실습을 위해 생성된 hidden-tear.exe 파일을 실행시켜 암호화(Encryption)를 진행한다.

    정상적인 실습을 위해서는, 감염되는 PC가 인터넷에 연결되어 있어야 한다. (인터넷을 통해 외부 서버랑 통신을 해야하기 때문이다.)

     

    [그림 2] hidden-tear.exe 파일 실행

    아래 [그림 3]은 hidden-tear.exe 파일 실행 전으로, 바탕화면에 'Chrysanthemum.jpg' 이라는 그림 파일이 존재하는 것을 확인할 수 있다.

     

    [그림 3] hidden-tear.exe 파일 실행 전

     

    hidden-tear.exe 파일을 실행하면 아래와 같이 바탕화면이 바뀌고, 'Chrysanthemum.jpg' 파일이 'Chrysanthemum.jpg.locked' 로 확장자가 변경된다. (파일이 정상적으로 실행되지 않음.)

    그리고 'READ_IT.txt' 파일이 생성되는데, 이것이 공격자의 요구사항이 포함되어 있는 랜섬노트이다.

     

    [그림 4] hidden-tear.exe 파일 실행 후

     

    랜섬노트를 실행시켜보면, 비트코인을 요구하면 파일을 복구시켜 주겠다는 내용이 적혀있다.

     

    [그림 5] 랜섬노트 확인

     

    추가로 암호화되는 폴더 및 확장자 목록은 hidden-tear.sln 파일에서 확인할 수 있으며, 공격자가 원하는 폴더 및 확장자 또한 추가, 수정할 수 있다.

     

    [그림 6] hidden-tear.sln 파일 내 기본적으로 명시되어 있는 암호화 되는 폴더 경로

     

    [그림 7] hidden-tear.sln 파일 내 기본적으로 명시되어 있는 암호화 되는 확장자 목록

     

    4) hidden-tear.exe 실행 후, 공격자 서버로 전송되는 암호화 키를 확인한다.

    정상적으로 hidden-tear.exe 파일이 실행되면, 파일 암호화에 사용한 암호화 키는 공격자가 구축한 서버로 전송된다.

    본 실습에서는 소스코드 컴파일 시 'http://192.168.0.6/write.php' 를 통해 암호화 패스워드가 관리자 페이지에 전송되도록 되어있다.

    따라서 암호화 키가 공격자가 구축한 서버로 정상적으로 전송되었는지 확인을 위해 'http://192.168.0.6' 접속 후, test/test 를 입력하여 로그인한다.

    정상 로그인 후, 감염된 PC에서 송신된 암호화 키를 확인할 수 있다.

     

    [그림 8] 공격자가 구축한 서버에 로그인 시도

     

    [그림 9] 전송된 암호화 키 확인

     

    암호화된 파일은 아래와 같은 방법을 통해 복호화도 가능하다.

    5) 복호화 파일 생성 후, 복호화(Decryption)를 진행한다.

    실습용 Hidden Tear 랜섬웨어의 경우 복호화(Decryption) 할 수 있는 소스코드가 포함되어 있다.

    암호화 시 진행했던 컴파일과 동일하게 hidden-tear-decrypter.sln 파일을 컴파일하고, 실행 시 패스워드(암호화 키) 입력을 통해 복호화(Decryption)가 가능하다.

     

    [그림 10] hidden-tear-decrypter.sln 파일 컴파일 시 생성되는 복호화 프로그램

     

    [그림 11] hidden-tear-decrypter.exe 파일 실행 후, 암호화 키 입력

     

    [그림 12] 정상복구된 윈도우 화면과 파일 확인

     

    아래 [동영상 1]과 [동영상 2]는 Hidden Tear를 이용한 실습에 대한 동영상이다.

     

    [Hidden Tear를 이용한 Encryption 실습 영상]

    [동영상 1] Hidden Tear를 이용한 Encryption 실습 영상

     

    [Hidden Tear를 이용한 Decryption 실습 영상]

    [동영상 2] Hidden Tear를 이용한 Decryption 실습 영상

     

    랜섬웨어 정의 확인 및 실습 끝!


     

    댓글

Designed by Tistory.