본문 바로가기

Time between Dog and Wolf

Chapter 3. 랜섬웨어(Ransomware)를 잡기 힘든 이유

최근 보안과 관련된 이슈들 가운데 가장 뜨거운 주제를 고르라면, 단연코 랜섬웨어 문제가 아닐까 싶다. 악성코드에 대해 잘 모르는 사람이라도 한두번쯤은 뉴스에서 보았거나, 주변 사람들과의 대화에서 들어봤을 것이다. 인지도 면에서는 역대 악성코드 중 최고일 것이다. 랜섬웨어는 왜 그렇게 유명해졌을까? 사실 랜섬웨어라는 유형의 악성코드가 등장한 것은 꽤 오래전 일이다. 최초의 랜섬웨어를 따라가보면 1989년까지 거슬러 올라가게 되지만, 실제 본격적으로 등장 한 것은 2005년 이후 정도일 것이다. 그리고 지금처럼 악명이 높아진 것은 2013년 이후부터 지금까지 하루가 다르게 교묘하고 고도화 된 악성코드가 출연하고 있다.


랜섬웨어는 랜섬(몸값)+웨어(제품, 프로그램)을 의미하는 이름을 가진 악성코드이다. 대부분의 악성코드가 그러하듯 현실 세계에서 일어나는 범죄를 컴퓨터 상으로 옮겨온 것이다. 랜섬웨어는 사람들의 아주 중요한 데이터(사진, 동영상, 문서, 자료, 소스코드 등)를 납치(암호화)하여 인질로 삼고, 몸값을 요구한다.(돈을 지불하면 암호화 된 데이터를 다시 복호화 할 수 있는 키를 알려준다.)


랜섬웨어의 원리에 대해 이해하려면 우선 암호화(Encryption)/복호화(Decryption)에 대한 약간의 지식이 필요하다. '암호'라는 단어를 들으면 제일 먼저 연상되는 것은, 아마도 군대에서 적과 아군을 식별하기 위해 서로 약속된 암호를 정하고, 암호가 일치하는지 확인하여 상대가 암호를 정확히 모를 경우 적군으로 판단하여 총을 발사해도 된다고 배웠던 것이 떠오를 것이다. 아니면 고전 한국 영화에 자주 등장하는 장면 중에, 남자 친구가 여자친구 방 창문 아래에서 '부엉 부엉 부엉'하고 어림없는 부엉이 소리를 내면, 여자친구의 가족들은 아무도 부엉이가 아닐지도 모른다는 의심을 하지 않고, 오로지 여자 친구만이 남자친구가 왔다는 사실을 알아채는 놀라운 상황을 떠올릴 수도 있을 것이다. 

맞다. 그게 바로 암호다. 현대의 암호학은 이런 암호의 원리를 복잡한 수학 알고리즘을 통해 검증하여 쓰도록 했지만 따지고 보면 원리는 똑같다. 암호는 결국 비밀을 공유하고 싶은 사람 (권한이 있는 개체)만 의미를 알 수 있고, 그외의 사람들은 아무리 애를 써도 비밀 정보를 알아 낼 수 없도록 하는 것이다. 암호학에 대한 책들을 많이 찾아봤지만, 암호를 쉽게 설명한다는 것은 불가능하다고 생각한다. 이것은 마치 6살짜리 내 딸에게 부동산 문제를 설명하는 정도의 난이도라고 봐도 무방할 것이다. 보통 암호를 쉽게 설명하기 위해, 암호의 역사 부터 시작을 하게 되는데, 고대의 암호(영화 '다빈치코드'에도 많이 나오는 암호 방식)부터 시작하여, 2차 세계대전을 승리로 이끌었다고 알려진 엘런튜링의 이니그마-암호해독기 (영화 '이미테이션 게임' 추천)까지는 재밌고 흥미진진하다. 하지만 현대 암호로 넘어오면서 갑자기 아주 어려운 수학 문제를 접하게 된다. 현대 암호학에서 사용되는 수학적 공식은 다음과 같은 특징을 갖는다. 비밀 정보를 갖고 있는 경우, 쉽게 문제를 풀 수 있지만, 비밀 정보가 없는 경우에는 문제를 푸는 것이 계산상으로 매우 오랜 시간이 필요한 경우이다. 대표적인 것이 소인수 분해 문제이다. 두개의 매우 큰 소수의 곱으로 이루어진 숫자가 있다고 하자. 숫자를 구성하는 소수 중에 하나의 값(비밀정보)을 알면 소인수 분해가 쉽지만, 두 개의 소수를 모두 모를 경우 소인수 분해가 매우 어려운 수학문제를 이용한 알고리즘이 쓰인다. 암호화에 대한 내용을 하나씩 풀어나가자면 책한권으로도 모자라기 때문에, 자세한 암호에 대한 설명은 다른 글을 통해 설명하겠지만, 꼭 알아두어야 할 것이 있다.

현대 암호학에서 사용하는 암호 방식은, 암호화/복호화를 어떻게 수행하는지에 대한 알고리즘은 공개 되어 있는 상태에서, 오로지 비밀 정보 (암호화 키)를 알고 있느냐 아니냐에 따라 암호화/복호화를 할 수 있는 권한이 있는지 판단하기 때문에, 암호화/복호화를 할 수 있는 정당한 권한을 가진 사용자는 "암호화 키"를 알고 있느냐에 따라 결정되기 때문에, 전체 암호 시스템에서 오로지 비밀정보는 "암호화 키"밖에 없어야 정상적인 암호시스템이라고 할 수 있다. 암호화 /복호화를 할 수 있는 사람은 암호화/복호화 키를 소유한 사람이다.


랜섬웨어의 경우, 이 암호화/복호화 키를 소유한 것은 랜섬웨어 이기 때문에 암호화된 데이터를 복호화 할 수 있는 것도 복호화에 필요한 키를 소유한 랜섬웨어 밖에 없다. 



 



 

[공개키 암호화]


[비트 코인]