ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 랜섬웨어 감염시 선택지는?
    IT 정보/IT, 보안 소식&팁 2016. 4. 26. 14:46
    반응형

     

    짐작할 수 있듯 랜섬웨어에 대해 가장 많은 질문은 바로 "이제 어쩌지?". 무엇을 할 수 있었는지 그리고 했어야 하는지에 대한 온갖 지식은 랜섬웨어에 감염되고 나서야 밀려온다. "매크로 설정"을 사용하라는 설명을 무시했을 수도 있고 문제의 이메일을 애초에 그냥 지워 버렸을 수도 있으며 최근에 할인행사를 하던 USB 백업드라이브를 구매했어야 한다는 식이다.

     

    그러나 모든 파일이 암호화되고 공격자 측에서 이 소중한 파일을 복호화하는 키를 제공하는 대가로 비트코인 300달러어치를 요구하고 있는 최악의 상황이 닥치면 어떻게 해야 할까. 이 때 오프라인 백업도 없고 보존하려는 파일은 죄다 사용 불가능한 상태로 하드디스크에 갇혀 있는 상황이라고 가정한다. 이 경우 돈을 내지 않고도 파일을 복구할 수 있는가. IT 문제가 다 그렇듯 이에 대한 대답은 "경우에 따라 다르다"가 된다.

     

    피해복구방법: 지름길

     

    랜섬웨어 공격자는 프로그래밍 과정에서 종종 실수를 하게 되는데 이 경우 무료복구가 가능한 지름길이 생기게 된다. 예를 들어 최초의 랜섬웨어 공격이 발생했던 1989/1990년 사례를 보면 공격자가 파나마의 정해진 주소로 378달러의 은행수표를 보내도록 요구한 적이 있다. 그런데 이 공격자는 모든 컴퓨터에 적용되는 암호화키를 사용하는 간편한 방법을 택했으며 그 결과 AIDS Information Trojan이라는 이름의 해당 맬웨어를 해제할 수 있는 무료툴이 금방 등장하게 됐다. 최근 리눅스기반 랜섬웨어의 사례도 이와 유사한데 이 사례에서는 프로그래머가 공격대상이 되는 여러 서버에 대해 모두 다른 암호화키를 사용했으며 이는 동일한 파일 사본도 다르게 암호화되는 결과로 이어졌다. 하지만 이들은 유사난수생성(pseudo-random number generator, PRNG)이라고 알려진 알고리즘을 통해 암호화키를 생성했는데 이 알고리즘은 최초 암호화대상의 타임스탬프(시점기록, timestamp)를 통해 작동하는 방식을 취했다. 이렇게 보면 복호화키 또한 공격대상 측에서 만들어내는 게 가능했다.

     

    일반적인 오프라인 백업 없이도 분리 디스크나 클라우드를 통해 암호화된 데이터의 전부 또는 일부를 복구할 수 있는 길도 있다. 예를 들어 윈도의 경우 파일의 숨은 사본을 만들 수 있는데 이는 일종의 온라인 백업으로 파일의 과거 버전을 간편하게 관리할 수 있는 수단이기도 하다. 숨은 사본은 이름이 지정된 볼륨스냅샷서비스(Volume Snapshot Service, VSS) 파일로 저장된다. VSS 파일은 일부 랜섬웨어에 대해 빠른 복구대책이 될 수 있으나 요즘은 대부분의 랜섬웨어가 데이터 암호화를 실행하기 전에 시스템명령 조작을 통해 VSS 파일을 삭제하기 때문에 이렇게 복구가 가능해지는 경우는 거의 없다.

     

    결국 랜섬웨어 공격이 발생했을 경우 해당 맬웨어를 식별할 수 있다면 일단 돈을 지불하지 않고도 복구를 할 수 있는 지름길이 있을지에 대해 알아볼 필요는 있다. 하지만 솔직히 말하자면 "요즘은 그런 간편한 해결은 거의 불가능하기 때문에 최악의 상황을 예상해야 할 것이다."

     

    피해복구방법: 돌아가는 길

     

    정상적인 프로그램이 기존 파일을 수정할 경우 우선은 해당 파일의 사본을 생성한 다음에 그 사본을 수정하고 나서 원래 파일을 삭제하는 과정을 거친다. 이 원리를 활용한다면 프로그램이 파일을 처리하는 중에 작동 중단될 경우 해당 파일을 복구하는 데 도움을 받을 수 있다.

     

    만약 공격자가 이러한 과정을 거쳐 파일을 암호화한다면 공격대상 운영체제의 일반적인 파일삭제 기능을 사용한다는 가정 하에 기존 파일 중 일부를 삭제하지 않는 경우가 있을 수도 있다. 이는 대부분의 운영체제가 삭제된 파일에 곧바로 덮어쓰지 않기 때문이다. 운영체제 대부분은 덮어쓰기에 소요되는 시간을 줄이기 위해 삭제된 기존 파일이 차지하던 디스크공간을 "재사용 가능"으로 표시하며 따라서 일정기간 동안은 삭제된 기존 파일의 복구가 가능한 경우가 많다.

     

    하지만 파일삭제 누락은 복불복의 성격이 강하다. 이 방법을 제대로 거치려면 데이터포렌식 전문가를 동원하여 돈과 시간을 들여야 하며 이 경우에도 실망스러운 결과만 남을 수도 있다. 사실 포렌식 전문가의 고용은 살인사건 수사와 같이 아주 중요한 경우에나 있을 법한 일이다. 그리고 랜섬웨어 공격이 발생하고 나면 공격자가 요구하는 금액보다 데이터복구비용이 더욱 많이 나올 수도 있음을 염두에 둬야 한다.

     

    물론 랜섬웨어 공격자 역시 피해자가 돈을 안 내고 파일을 복구하는 결과를 원치 않으며 따라서 코딩에 그렇게 심혈을 기울이지는 않는다. 랜섬웨어는 대체로 기존 파일에 그대로 덮어쓰며 이를 통해 기존 데이터가 남아 있을 여지를 최대한 없앤다. 그러나 이론적으로 생각한다면 기존 파일에 덮어쓴다고 해도 실제로는 기존 데이터가 있던 디스크 영역에 덮어쓰지 않는 경우일 수도 있다. 몇몇 운영체제와 일부 디스크의 경우 이른바 wear levelling이라고 하여 디스크 작성영역을 임의로 변경한다. 플래시메모리를 사용하는 고체(solid state) 디스크는 전자 수준에서서의 마모로 인해 성능이 저하될 수 있으며 따라서 동일한 메모리 셀에만 계속 작성할 경우 기기 수명이 줄어들 수 있다. 이를 완화하는 대책이 바로 wear levelling이다. 따라서 디스크영역 수준이나 심지어 디스크 펌웨어 수준으로 파고들어가서 논리적으로는 덮어씌워졌으나 물리적으로는 보존된 상태의 데이터를 찾아내는 방법은 기술적으로 분명 가능한 일이다.

     

    그러나 다시 말하지만 이 방법은 자존심을 죽이고 공격자에게 돈을 지불하는 방법보다 훨씬 불확실하고 아주 많은 비용을 지출할 수도 있음을 상기해야 한다.

     

    암호화 해제

     

    랜섬웨어 공격을 무력화시킬 마지막 방법으로 공격자가 사용한 암호화 자체를 해제하는 방법이 있다. 앞서 언급했듯 랜섬웨어 공격자는 프로그래밍 과정에서 종종 실수를 저지르거나 약한 암호화를 사용하거나 혹은 강한 암호화라도 잘못 사용함에 따라 암호분석학적인 틈(backdoor)을 남겨놓는 경우가 있다. 물론 이들이 정상적으로 암호화를 적용했다면 이를 해제하는 건 사실상 불가능하며 그 이유는 다음과 같다.

     

    CryptoWall이나 Locky와 같은 대부분의 랜섬웨어는 다음과 같은 수법으로 작동한다.

    공격자가 운영하는 서버에 접속하여 공격대상 컴퓨터에 고유한 RSA 공개키를 다운로드

    각 파일에 대한 임의의 AES 키를 생성하고 해당 파일을 암호화

    해당 AES 키를 RSA 공개키로 암호화하고 공격대상 파일과 암호화된 복호화키를 함께 저장

     

    위 내용이 단번에 이해가 안 된다고 염려할 필요는 없다. 이 수법은 RSA 암호화 알고리즘이 두 개의 키를 가지고 작동한다는 데 착안하고 있다. 공개키로 데이터를 암호화하기 때문에 오로지 개인키만이 해당 데이터를 복호화할 수 있다. 바꿔 말하자면 만약 공격자가 클라우드에서 RSA 공개-개인키 쌍을 각 컴퓨터별로 생성하고 공개키만 배포하게 된다면 피해자 파일을 암호화한 AES 키를 복호화하기 위해 필요한 고유의 개인키는 오로지 공격자만이 보유하게 된다.

     

    그렇다면 RSA 공개키로 곧바로 암호화를 하지 않고 어째서 굳이 AES 키를 다시 사용하는가. 이는 RSA 키의 작동속도가 느리기 때문에 AES처럼 훨씬 빠른 알고리즘을 사용하는 임의의 키와 같은 소량의 데이터를 암호화할 경우에 적합하기 때문이다. 한편 파일마다 다른 키를 사용하는 이유는 무엇인가. 이는 모든 파일의 암호화가 다를 경우 컨텐츠가 동일하다 해도 하나의 파일에 사용된 복호화 단서를 다른 파일에 적용할 수 없기 때문이다.

     

    이 말인즉 돈을 내지 않고 피해파일을 모두 복구하는 일은 다음과 같다.

    RSA 공개-개인키 알고리즘을 해체하여 각 파일에 대한 AES 키 복구

    각 파일에 대한 AES 암호화 알고리즘을 일일이 해체

     

    이렇게 어렵고 불확실한 과정을 거치기보다는 차라리 그냥 돈을 지불하는 방법이 속이 편할 수도 있다.

     

    최종 선택지

     

    여기까지의 내용만을 본다면 그냥 돈을 지불하는 게 낫다는 식으로 보일 수도 있다. 하지만 돈을 지불할 경우 이는 범죄자를 먹여살리는 셈이 되기 때문에 돈을 지불하지 않는 길을 권고한다. 사실 랜섬웨어 공격을 당하고 나서 모든 파일을 없애고 처음부터 다시 시작한다는 결정을 내린다면 이는 "힘내라"는 말과 함께 격려를 받을 만한 결단이다. 이 글의 요지는 암호화된 파일이 정말로 필요하고 백업과 같은 예비대책을 전혀 세우지 않은 상태라면 돈을 지불하는 외에 달리 선택지는 없다는 데 있다.. 물론 이 글에서는 여전히 돈을 지불하지 않는 길이 낫다는 논지를 유지하나 각자의 결정을 존중할 수밖에 없는 일이다(데이터의 존폐가 경각에 걸린 상황에서 자존심을 세우기란 어렵다). 그런 상황이 오지 않는 게 가장 바람직하지만 비교적 타협의 여지가 없다는 식으로 설명한다면 경각심 측면에서 도움이 될 수 있다는 판단에 따라 글의 흐름이 위와 같이 전개됐다. 결국 "예방이 치료보다 낫다"는 말이다.

     

    랜섬웨어 예방요령

     

    주기적으로 백업하고 최신 백업사본을 격리하여 보관. 파일이 갑자기 사라질 수 있는 원인으로는 랜섬웨어 외에도 화재, 홍수, 절도, 기기고장, 실수에 의한 삭제 등 수많은 요인이 있을 수 있기 때문이다. 백업사본을 암호화한다면 백업기기가 탈취되는 경우에도 염려할 필요가 없다.

    이메일로 수신된 문서 첨부물에 대한 매크로 적용 해제. 수많은 맬웨어는 문서첨부물을 통해 침입하며 사용자로 하여금 매크로(내장된 문서스크립트)를 설정하도록 유도한다. 그냥 안 하면 된다. 마이크로소프트의 경우 이미 수년 전 보안조치로 매크로 자동실행 해제를 기본설정으로 적용했다.

    마이크로소프트 오피스 뷰어 설치. 뷰어 어플리케이션을 사용하면 워드나 엑셀을 직접 사용하지 않고도 문서파일을 살펴볼 수 있다. 특히 뷰어는 매크로를 전혀 지원하지 않기 때문에 실수로 매크로를 작동시킬 염려도 없다.

    요청하지 않은 첨부물 주의. 문서파일을 통해 맬웨어를 보내는 공격자는 사용자가 확신할 수 있기 전에는 파일을 열어서는 안 되는 동시에 확신을 하려면 그 파일을 열 수밖에 없다는 딜레마를 악용한다. 의심의 여지가 있다면 그 파일은 그냥 버려야 한다.

    필요 이상의 로그인 권한을 부여하지 말 것. 가장 중요한 부분은 바로 관리자권한 로그인상태를 필요 이상으로 방치하지 말아야 한다는 점이며 관리자권한을 보유한 상태에서는 브라우징, 문서 열기를 비롯한 "통상적 작업" 활동을 피해야 한다.

    신속히 그리고 자주 패치 확인. 문서 매크로를 통해 침투하지 않는 맬웨어는 대체로 오피스, 웹브라우저, 플래시 등 인기 어플리케이션의 보안허점을 악용한다. 패치가 빠르게 이루어질수록 공격자가 악용할 수 있는 허점도 줄어들게 된다.


    <참고: 랜섬웨어 차단 가능한 AVG 안티바이러스>

     

     

     

    Paul Ducklin, Got Ransomware? What Are Your Options?, 3. 3. 2016.

    https://nakedsecurity.sophos.com/2016/03/03/got-ransomware-what-are-your-options/

     

    번역: madfox




    참고링크 


    <유료안티바이러스 제품소개>

    반응형

    댓글

Designed by Tistory.