[펌] [칼럼] 터미네이터도 바이러스에 감염될 수 있는가

자유게시판

[펌] [칼럼] 터미네이터도 바이러스에 감염될 수 있는가

1 가을하늘 0 4711 1
[칼럼] 터미네이터도 바이러스에 감염될 수 있는가 조회수

1991년 필자가 중학생 때 본 <터미네이터2>는 충격 그 자체였다. 당시 처음 선보인 액체 터미네이터를 표현한 컴퓨터그래픽은‘경악’수준이었고, 이제 영화를 통해서 뭐든지 표현이 가능하겠다는 생각이 들었다.

신선한 충격으로 다가왔던 <터미네이터 2> 이후 12년이 지나 2003년 여름 <터미네이터 3>가 상영되었다.

2탄에선 1탄에서 남겨진 터미네이터 부품과 돌아온 터미네이터도 용광로 속에 들어가 이제 기계들의 반란은 없는 듯 했으나, 3탄에선 컴퓨터 바이러스가 전세계로 퍼져 인공지능 컴퓨터로 컴퓨터를 치료하기 위해서 접속을 시도해야 한다는 설정이 나왔다.

과연 영화속 이야기가 현실에서 가능할까? 영화의 배경은 2004년으로 예상되는 바, 2004년에 저런 인공지능 컴퓨터‘스카이넷’이 등장할 가능성은 없다고 말해버리면 너무 재미없고 허탈하므로, 몰래 개발되었다는 가정에서 시작하겠다.

그럼, 하나의 바이러스가 전 세계를 휩쓸 수 있을까?

요즘도 어떤 바이러스가 등장해 얼마나 피해를 주었다는 내용이 언론에 나오고 있다. 하지만, 누구도 정확한 감염 수와 피해액을 산출할 수 없다.

따라서, 언론에 알려지는 내용은 추정치 일뿐 그것이 정확한지는 누구도 알지 못한다. 따라서, 영화 속 언론에서 호들갑 떠는 것은 어느 정도 과장이 있다고 생각하자. (이거 뭔가 점점 억지로 끼워맞추는 것 같다.)

다시 영화로 돌아가 몇 가지 의문을 하나하나 풀어헤쳐 보자.

1. 하나의 바이러스가 전 세계 컴퓨터를 감염시킬 수 있는가?

2. <터미네이터 3>도 바이러스에 감염될 수 있는가?

3. 재부팅 만으로 바이러스가 제거될 수 있는가?


1. 하나의 바이러스가 전 세계 컴퓨터를 감염시킬 수 있는가?

영화 속에선‘슈퍼 바이러스’(Super Virus - 과거에서 현재까지 새로운 바이러스가 등장하면‘슈퍼 바이러스’라는 표현을 사용하는 경우가 종종 있다)가 등장해 전세계 컴퓨터를 급속히 감염시키고 있고 아직 백신프로그램이 나오지 않아 문제가 되고 있다.

사실 여러 영화나 소설에서 하나의 바이러스가 전 세계 컴퓨터를 감염시켜 무용지물로 만들어버려 문제를 일으킨다는 설정은 자주 등장한다.

그럼, 현실에서 하나의 바이러스가 전 세계 컴퓨터를 감염시킬 수 있는 능력이 있을까? 어렵지만 가능할 수도 있다가 답이다.

하지만, 하나의 바이러스가 다른 컴퓨터에 전파되기 위해서는 크게 두 가지 문제가 해결 되어야 한다. 컴퓨터의 중앙처리장치(CPU)와 운영체제(OS)의 호환이다.

코드가 실행되기 위해서는 중앙처리장치에서 해석을 해야 하는데 이 명령이 다르면 코드가 제대로 실행하지 않는다.

즉, 기계 코드로 ‘1234’를 어떤 중앙처리장치는 더하기로 해석하고 다른 중앙처리장치는 빼기로 해석한다면, 그 프로그램이 제대로 돌아갈 리 없다.

현재 일반적으로 인텔이나 AMD 계열의 중앙처리장치를 많이 사용하지만 전혀 호환이 되지 않는 중앙처리장치를 사용하는 컴퓨터도 많이 있다.

따라서 바이러스는 이점을 극복해야 하는데, 스페인의 바이러스 제작자는 윈도와 매킨토시에서 감염되는 바이러스를 만들었다고 주장했다.

하지만, 실제로 이 바이러스에는 버그가 있어 제대로 다른 기종으로 넘어가지는 못했다. 아직까지는 서로 호환되지 않는 중앙처리장치에서 실행되는 바이러스가 널리 퍼진 적은 없다.

최근에 많은 운영체제나 프로그램이 중앙처리장치와 상관없이 실행되는 환경(예를 들어 자바 프로그램)에서는 중앙처리장치에 맞게 악성 코드를 만들 필요는 없다.

1990년대 중반에 등장에 많은 피해를 줬던 MS 오피스용 매크로 바이러스의 경우 윈도 PC와 매킨토시를 모두 감염 시킬 수 있었다.

MS 오피스는 윈도 버전과 매킨토시 버전이 있는데 바이러스조차 두 기종에서 호환이 되어 실행될 수 있기 때문이다.

그럼 운영체제가 다르면 어떻게 될까?

운영체제의 극복은 윈도와 리눅스를 동시에 감염시키는 바이러스가 등장하기도 했다. 하지만, 이 바이러스도 윈도에서 리눅스로 혹은 반대로 넘어가기 위해서는 특수한 조건이 맞아야 한다.

여전히 운영체제간의 호환성은 풀어야 할 숙제이다. 이런 한계를 모두 극복하는 것은 모든 운영체제가 호환이 되거나 하나의 운영체제가 대부분의 컴퓨터에 설치되어있다고 가정해 보는 게 좋을 듯싶다.

그렇다. 지금 저 시대는‘독과점적’특정 운영체제가 전 세계 컴퓨터를 모두 사용하고 있는 것이다. 그래. 그렇다고 해두자.

아니면 미리 해당 시대에 맞는 각종 기종별 바이러스를 만들어 놓고 뿌리고 있는지도 모른다. 그래. 이 가정도 맞을 듯싶다.


터미네이터도 바이러스에 감염될 수 있는가?

필자가 기억하기로 터미네이터가 T-X의 공격으로 프로그램이 바뀌었을 때 분명 “T-X가 나마저 감염시켰어!”라고 했다.

TX는 원격에서 다른 기계를 조정할 수 있는 능력이 있다고 했다. 여기서는 바이러스에 대한 내용을 다루니 어떻게 기계들을 조정했는지는 나노 기술로 해결했다고 가정해보자.

다만, 자동차 핸들이라든지 물리적인 힘이 들어가는 부분은 어떻게 처리했는지는 여전히 의심스럽지만 단순히 전기적 힘으로 조정되는 거라면 그 사이에 끼어들어 신호를 왜곡시키면 가능하지 않을까 싶다.

여기서는 터미네이터에 감염된 바이러스만 생각해 보자. 터미네이터를 감염 시킨 바이러스가 현재 퍼지고 있는 바이러스와 동일하다고 생각해보면 2004년 시스템 환경에 맞게 제작되었을 것이다.

만약 2004년 시스템 환경에 맞춰 제작된 바이러스라면 정말 문제가 많다.

터미네이터는 영화 설정에서 30여년 후에 등장한 기계인데 2004년의 바이러스에 감염될 수 있다는 건 터미네이터에 사용된 운영체제가 30년 전에 설계되었거나, 30년 전의 운영체제와도 하위 호환이 된다는 의미이다.

그럼. 우리의 터미네이터는 운영체제가 아주 오래되었거나 2004년 시스템에 맞춰진 바이러스도 잘 돌도록 하위 호환성이 완벽한 시스템이다.

바이러스도 프로그램이므로, 바이러스가 다른 시스템에 감염시켰다는 건 결국 해당 시스템에서 실행되었다는 거다.

무슨 말인가 하면 필자는 하드 디스크에 수십 만개의 바이러스 샘플을 가지고 있다. 그렇다고 해서 바이러스에 감염되었을까? 아니다.

신체에서도 바이러스 보균자와 발병자는 엄연히 다른 것처럼 바이러스에 감염된 파일이 있다고 해서 실제로 해당 시스템에 해를 입히는 건 절대 아니다.

터미네이터가 별다른 외부접속이 없는 상태에서 바이러스가 실행되었다는 건, 무선 상태로 외부로 자료를 전송하는 쪽의 취약점을 이용해 침투했다고 볼 수 있다.

앗. 그럼! <터미네이터 3>는 30년 전의‘보안 취약점’을 해결하지 않았단 말인가?

T-X의 엄청난 성능에는 싸움으로 이기지 못한다고 해도 30년 전의 보안 취약점으로 허무하게 무너지는 건 뭔가 이상하다.

‘보안패치’만 잘했어도 우리의 아놀드 아저씨는 바이러스에 감염되지 않았을지 모른다.

때문에 우리 네티즌들에게 한가지 바람이 있다면 첫째도 패치요! 둘째도 패치요! 셋째도 패치!인데, 아니, 어떻게 터미네이터마저 패치를 안했단 말인가! 오호... 이런 불행한 일이!


재부팅만으로 바이러스가 제거될 수 있는가?

자. 우리의 아놀드 아저씨. 이왕 바이러스에 감염되었으니 취약점 타령해도 어쩔 수 없고 일단 바이러스에 감염된 후의 터미네이터의 증상을 찬찬히 살펴보자.

바이러스가 감염되어, 보호하라고 명령받은 주인공을 오히려 죽이려고 한다. 터미네이터가 주인공을 죽이려는 순간, 자신의 기본 임무는 주인공의 보호라고 하면서 스스로 기능을 정지 시키고 이후 재시작해서 정상적으로 돌아간다.

과연 이런 일이 가능할까?

앞에서 설명했듯이 바이러스는 보안취약점을 이용해 시스템에 침투했다. 보통 보안취약점으로 접근하면 시스템 권한까지 얻을 수 있지만 <터미네이터 3>의 경우 완전히 시스템 권한을 얻지는 못한 듯 싶다.

그러니 주인공을 죽이라는 명령과 주인공을 살려야한다는 부분에서 충돌이 생겨서 터미네이터가 안절부절하는 내용이 나왔던 것이다.

이후 자신을 끄고 이후 재시작해 정상으로 돌아오는 장면을 보면 이 바이러스는 시스템을 완전히 장악하지 못했고 주인공을 보호해야 한다는 기본 명령을 위해 자신의 기능을 꺼 주인공에게 피해가 가지 않게 했다.

보통 바이러스는 파일 형태로 존재해야 하지만 취약점을 이용하는 일부 웜은 기억장소와 패킷 형태로만 존재한다.

즉, 번거롭게 파일 형태로 존재할 필요없고, 기억장소에 존재하고 네트워크를 통해 전파하면 되는 거다.

기억장소에만 존재한다면 시스템을 껐다, 켰을 경우, 이후 바이러스가 안 들어오면 바이러스에 감염되기 전 상태로 돌아 올 수 있다.

아마도 이 바이러스도 터미네이터의 기억장소에 특정 부분에 침투한 것으로 추정된다. 따라서, 터미네이터가 재부팅을 하면 바이러스는 자동으로 사라진다.

역시! 터미네이터! 대단하군.

하지만, 30년된 취약점 패치는 좀 했으면 하는 아쉬움은 여전한데... 잠깐. 그럼 바이러스 걸릴 때 마다 터미네이터는 재부팅을 해야 할 듯 싶다.

몇 걸음 걷고 재부팅하고 몇 걸음 걷고 재부팅하는 터미네이터를 떠올리니 너무 우스꽝스럽다.

여기서 잠깐! 최근 개발되고 있는 CPU는 취약점을 이용한 기법 중 하나인 버퍼오버플로어 자체가 허용되지 않도록 개발되고 있다.

몇 년 후면 이런 CPU가 보급되어 이 보안 취약점은 역사 속으로 남을지 모른다. 그럼, 우리의 터미네이터, 결국 생산비를 아끼려고 특정 취약점을 근본적으로 해결할 수 없는 CPU를 사용했다는 결론이 된다.

“이봐! 존. 자신을 살리려고 미래에서 보냈는데 제작비 좀 팍팍 쓰지. 제작비 아끼려다 인류 멸망하겠어!”




[저자] 차민석 주임연구원
[출처] 안철수연구소 
Facebook Twitter GooglePlus KakaoStory NaverBand 신고
 
0 Comments