# 레포트 준비하면서 조사한 내용 공유합니다.. 틀린 정보가 있을 수 있으니 댓글 달아주세요.


1. 서 론

컴퓨터를 이용한 작업이 많아지면서 그에 따른 정보를 보호하기 위한 그리고 그 정보를 가져오기 위한 보이지 않는 대립이 이루어지고 있다. 그중 대표적인 기술이 암호(Cryptography)이다. 암호는 정보를 제3자가 정보를 알 수 없게 하는 방식이다. 암호는 고대에서부터 계속 되어 왔으며, 오늘날에 개개인이 하나의 암호를 가지고 있을 정도로 발전되어왔다. 여태껏 암호화 기술이 정보보호에만 당연히 사용된다는 생각을 했다.

그래서 이 레포트에는 그 순진한 생각이 틀렸다는 것에 대해 조사해보려고 한다.

 

(1) 암호화 기술의 악의적인 이용

 

흔히 알고 있는 암호화기술은 개인의 정보를 ‘보호’ 하기위해서 사용되거나 특정 가치의 저작권을 ‘보호’하기위해서 또는 제품의 도용을 ‘보호’하기 위해서 사용된다고 알고 있다. 그러나 이러한 보호도 있다. 바로, 악성소프트웨어에 대한 ‘보호’ 이다. 물론 이것도 보호를 하지만, 그 보호하고자 하는 대상이 ‘보호’를 파훼하는 용도로 사용되는 것이기에 문제가 되는 것이다. 암호화 기술이 이런 용도로 사용될 줄은 생각도 못했기에 조금 더 알아보기로 한다.

 

 

 

2. Cryptovirology 개요

 

상대적이며 절대적인 지식의 백과사전은 아닐지라도 누구나 자유롭게 글을 쓸 수 있는 사용자 참여의 온라인 백과사전인 위키피디아에서 Cryptovirology를 정의하고 있었다. 간단히 말하면 Cryptovirology는 악성 소프트웨어에 사용되는 암호화기법의 응용프로그램의 연구이다. 조금더 쉽게 말하면 암호를 이용한 바이러스를 Cryptovirus라 부르며 이에 대한 연구를 Cryptovirology라 한다.

사실 Cryptovirology는 일반학계에서 시작되었지만, 최근에는 악성코드 개발자들의 암호화 알고리즘을 분석하는 부분으로 까지 확대되었다. 또한, 악성코드 개발자의 암호화 기반 기술의 연구도 포함되어 있다.

암호화는 전통적으로 방어적인 목적을 위해 사용되고 있다. 암호는 의식하지 못한 유출에 대항해 방어를 해준다. 공개키 암호방식은 의도적으로 하는 해커에 대항하기 위한 기초로 만들어 졌고, 디지털 서명 알고리즘은 위조자로부터 방어해준다. 이와 같이 Cryptovirology는 프로토콜의 오류 및 설계 취약점을 찾는 것을 넘어서, 공격보다는 방어에 사용할 수 있는 앞으로의 기술 분야이다.

3. Cryptovirus

 

Cryptovirus는 암호를 이용한 바이러스를 칭한다. Cryptovirus를 이용한 공격에는 블록 암호와 같은 비밀키 암호와 RSA 등의 공개키 암호가 사용된다. 비밀키 암호는 데이터의 고속 암호화에 사용되며 암호화와 복호화에 사용되는 키가 동일하며, 공개키 암호는 암호화에 사용되는 공개키와 복호화에 이용되는 개인키가 서로 다르다.

 

 

 

(1) Cryptoviral Extortion 기법

 

이전의 악성 코드 공격은 실패했을때 Cryptoviral Extortion은 성공했다. 이전 악성 코드로부터 Cryptovirus 구별되는 중요한 포인트는 Cryptovirus은 공개 키 암호화를 사용한다는 것이다. 트로이는 효과적으로 대칭 암호화를 사용하는 것이였다. 대칭 암호화 / 암호 해독 "키"와 호스트 시스템에 존재 쉽게 추출할 수 있습니다. 하지만, 바이러스는 공개 암호화 키가 아닌 해당 개인 암호 해독 키가 포함되어 있으므로, Cryptovirus의 경우는 해당되지 않는다.

Cryptoviral Extortion 은 공격자와 피해자 사이에 실시되는 3개의 프로토콜이다. Cryptoviral Extortion 프로토콜은 다른 데이터 파일의 유지를 위한 데이터 파일의 추출로 설명된다. 그 프로토콜에 포함되는 암호화 체크섬은 바이러스가 공격한 이후 시간으로 부터 그 요구되는 데이타는 변하지 않음을 확인한다. 공격은 데이터를 암호화하고 그 데이터 값을 위해 보유한다. 그 프로토콜은 다음과 같다.

0단계 - (공격자 설치 단계)는 두 개의 비대칭 키는 공격자에 의해 생성된다. 이것은 스마트 카드를 사용하여 수행할 수 있다(FIg. 1 참조). 실험에 MS CAPI와 개인 키로 두 개의 키를 만들고 텍스트 파일에 기록된 대칭 암호화 기록에 저장된다. 연습에서 해당 공개키는 Cryptovirus 로 hard-coded 되어있다.

 

1단계 - (공격자->피해자) 공격자가 Cryptovirus를 보낸다. 후에 바이러스는 많은 호스트 컴퓨터에 활성화되고, 한 컴퓨터로의 공격을 고려한다. 바이러스가 활성화하면, 무작위 비트 생성기(3-Key triple DES key)를 사용하고, 임의의 8바이트로 벡터를 초기화한다. 그 데이터 파일에 사용된 바이러스 암호화는 cipher block chaining 암호모드이다. 그 바이러스모드는 평문을 이진 텍스트 파일로 암호문을 만든다. 바이러스가 공격자의 공개 키를 사용하여 대칭 키를 암호화 한다.그 결과 비대칭 암호문 뭉치는 피해자의 시스템에서 텍스트 파일에 기록된다. 그 평문과 대칭키는 없어진다.

그 텍스트 파일은 데이터의 반환협상에 사용하기 위해 피해자에게 보내진다. 실제로도 바이러스는 공격자의 디지털 가명을 보낼 수 있고 피해자가 혼합 네트워크를 통해 대칭 키에 대한 지불을 종용한다.

 

2단계 - (피해자->공격자) 만약 피해자가 몸값을 지불하고 바이러스제작자에게 텍스트파일로 된 비대칭 암호문을 전송한 경우, 개인 암호 해독 키를 사용하는 바이러스 제작자가 그 암호뭉치를 해독해서 그것에 접속 한다. 대칭키를 보인다.

 

3단계 - (공격자-> 피해자) 바이러스 제작자가 피해자에게 대칭키등을 보냅니다. 이들은 값을 지불한 데이터를 해독합니다.

 

다형성 바이러스의 경우도 암호를 이용하여 악성 코드 스스로를 암호화하지만 복호화에 필요한 정보가 바이러스 내에 포함되어 있다. 그러나, Cryptovirus의 경우는 복호화에 필요한 정보를 공격자만 가지고 있게 된다. 실제로 2006년 3월 사용자의 파일을 암호화하고 복호에 필요한 정보제공에 300달러를 요구하는 랜섬웨어[1]가 발견되었다. 트로이 목마 프로그램으로 Cryptovirus를 이용한 제작인지는 밝혀지지 않았다. 비록 아직까지 크게 전파되지는 않았으나 향후 이와 유사한 악성 코드에 의한 사용자 데이터의 악의적인 암호화에 대한 우려가 현실화될 가능성이 충분하다고 예상한다.

 

 

 

(2) Ransomware

 

미국에서 발견된 스파이웨어 등의 신종 악성 프로그램. 컴퓨터 사용자의 문서를 볼모로 잡고 돈을 요구한다고 해서‘랜섬(ransom)’이란 수식어가 붙었다. 인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 스프레이시트, 그림 파일 등을 제멋대로 암호화해 열지 못하도록 만들거나 첨부된 이메일 주소로 접촉해 돈을 보내 주면 해독용 열쇠 프로그램을 전송해 준다며 금품을 요구하기도 한다.

 

 

① 공격자는 공개키 암호에 사용되는 공개키 y와 개인키 x를 생성하고, 공개키 y를 저 장하고 있는 바이러스를 배포한다.

② 바이러스가 활성화되면 블록 암호에 사용될 랜덤한 비밀키 k를 생성하고 사용자의 데이터를 비밀키 k를 세션키로 사용하여 블록 암호로 암호화 한다.

③ 비밀키 k를 공개키 y로 암호화한 값 c를 저장하고 비밀키 k를 삭제한다.

④ 공격자는 비밀키 k를 알려주는 대가를 사용자에게 요구하여 받아들여지는 경우 c를 개인키 x로 복호화하여 원래 비밀키 k를 구한후 사용자에게 전달한다.

⑤ 사용자는 비밀키 k를 세션키로 사용하여 블록 암호로 복호화하여 자신의 데이터를 복구한다.

 

위와 같이 동작하는 Cryptovirus 는 랜섬웨어(Ransomeware)의 일종이며 공개키 암호를 사용하기 때문에 바이러스의 분석으로는 데이터를 복구할 방법이 전혀 없다는 특징이 있다.

 

그렇다면 이러한 악성 소프트웨어로부터 대비를 해야한다. 1차적으로 Preventive control로 access control을 해야 한다. 2차적으로 데이터를 백업해서 그 데이터를 다시 복구할 수 있는 경우에는 그 공격은 효력이 없어진다. 3차적으로 이런 일을 대비해 “사고 대응 계획”을 미리 구축해 놓아야겠다.

 

 

 

4. 결 론

 

20년간 악성 프로그램은 전파속도나 기능면에서 눈부신 진화를 하는 것 같다. 디지털 컨버전스와 유비쿼터스화에 따른 환경 변화에 따라 악성 코드의 제작에도 새로운 기수로가 개념이 도입되며, 피해 범위도 컴퓨터 시스템에서 PDA,휴대폰, RFID태그 등 네트워크로 상호 연동되는 스마트 기기 절반으로 확장되고 있다. 이미 이동 단말기에 대한 모바일 바이러스의 증가속도는 PC용 악성 프로그램을 추월하였으며, PC와 PDA를 동시에 감염시키는 바이러스인 Crossover 유형도 발견되었다. 사실 이번 레포트를 하면서 Cryptovirology를 조사하지 않았다면 이런 유형의 바이러스는 알지도 못하고 언젠가 당했을 지도 모를 일이다. 인터넷에도 자료가 얼마 없을 정도로 정보가 얼마 없었다. 당연히 암호는 보호용으로 사용되지 바이러스로 사용될지 알았을까? 더군다나 그와 함께 데이터 몸값을 요구하는 사례가 늘고 있으니, 이제부터라도 이을 생각하고 개발자의 입장에서 언제나 대비를 해야겠다.

   

 

5. 참고문헌

 

Wiki Pedia, 「Cryptovirology」, http://en.wikipedia.org/wiki/Cryptovirology, 2010.11.08

네이버, 「Cryptovirology」, http://blog.naver.com/juno72?Redirect=Log&logNo=120024061827, 2010.11.08

구글, 「Cryptovirology」, www.cryptovirology.com, 2010.11.08

네이트, 「Cryptoviral Extortion」, http://blog.paran.com/tjdgns915/14587152, 2010.11.08

다음, 「Ransomware」, http://coinz.tistory.com/410, 2010.11.08

 

# 레포트 준비하면서 조사한 내용 공유합니다.. 틀린 정보가 있을 수 있으니 댓글 달아주세요.

+ Recent posts