컴퓨터 바이러스
1. 개요
Computer Virus
스스로를 복제해서 악의적 목적을 수행하는 악성 소프트웨어를 말한다. 이들은 트로이 목마, 스파이웨어 등과 다르게 스스로를 복제하여 감염시킬 수 있는 게 특징이다. 주로 바이러스라는 약어로 많이 쓰인다.
2. 역사
컴퓨터 바이러스의 역사는 1970년대의 크리퍼 바이러스가 그 시초라 볼 수 있다. 그러나 크리퍼 바이러스는 컴퓨터 파괴 목적보다는 자기복제의 개념에 더 가까웠으며, 엄밀히 구분하자면 현대의 웜의 개념에 더 가깝다. 또한, 크리퍼가 만들어질 당시에는 이러한 프로그램을 바이러스라 부르지는 않았다. 이러한 프로그램에 바이러스라는 이름이 붙은 것은 미국의 SF작가인 데이비드 제롤드의 소설 할리가 하나였을 때(When Harlie was One)에서 “다른 컴퓨터에 계속 자신을 복제, 감염된 컴퓨터의 운영체제에 영향을 미쳐 점차 시스템을 마비시키는 장치를 한 과학자가 제작해 배포한다”는 개념을 바이러스로 소개하면서부터였다. 이후 1985년 미국에서 컴퓨터를 악의적으로 파괴하는 프로그램이 점차 알려지기 시작하였고[1] 1986년에는 파키스탄에서 브레인 바이러스가 유행하였다.[2] 그러나 이 시절의 바이러스는 현재의 복제 개념이 아닌 이동인 원시적 형태였다.
2.1. 최초의 바이러스
이동이 아니라 진짜 복제 개념이 들어간 최초의 바이러스는 엘크 클로너(Elk Cloner)라는 프로그램이다. 이는 1982년 경에 만들어졌는데, 놀랍게도 이를 만든 이는 당시 15세였던 리처드 '리치' 스크렌타라는 소년이었다.[3] 이 Elk Cloner는 Apple II 시스템에만 감염되었으며 부팅용 플로피 디스크에 감염되는 일종의 부트 섹터 바이러스였다. Elk Cloner는 부팅된 이후 메모리에 남아있다가 만약 감염되지 않은 새로운 디스크가 컴퓨터에 들어오면 자신을 해당 디스크에 감염시켰다. 이런 식으로 Elk Cloner는 디스크에서 디스크를 통해 감염되는 프로그램이었다. Elk Cloner는 특별히 파괴적인 활동을 벌이지는 않았으며, 감염된 컴퓨터는(정확히는 플로피 디스크) 감염된 뒤 50번째로 부팅하면 다음과 같은 짧은 시를 출력했다.
한편 이 Elk Cloner는 실질적으로 별다른 피해를 주는 것은 없었고[4] , 이 Elk cloner가 퍼져나간 범위도 개발자인 스크렌타의 주변 인물 정도였기 때문에 이것에 대한 백신이 개발된 적은 없다고 한다. Elk Cloner에 대한 분석
3. 탄생 원인
악의적 컴퓨터 바이러스가 세상에 퍼지게 된 경위에는 여러 가지 설들이 있다. 대표적으로 자신의 능력을 과시하기 위해 만들었다는 설, 경쟁사 등에 타격을 주기 위한 상업적 목적으로 만들었다는 설, 소프트웨어의 유통 경로 등을 추적하기 위해 만들었다는 설 등이 대두된다. 그러나 이는 은밀하게 유포되는 바이러스의 특성상 정확하게 구분 짓기는 어렵고 복합적이고 전반적인 경위로 보아야 할 것이다.
4. 구분 및 종류
바이러스는 크게 부트 영역을 감염시키는 부트(boot) 바이러스, 그리고 본래 숙주 프로그램에 감염되었다가 그 기능을 수행하는 숙주 바이러스로 구분된다. 바이러스는 만들어진 목적과 의도에 따라 그 종류가 크게 세분화되지만, 대표적으로 감염된 뒤 바로 기능을 수행하는 바이러스, 일정 기간의 잠복기를 거쳐 수행되는 바이러스, 공격자가 프로그래밍한 특정 일자에 실행되는 바이러스가 있다.
일단 종류 자체는 악성 소프트웨어이므로 생물학 분야의 바이러스와는 달리 컴퓨터를 물리적으로 파괴하지는 않는다. 다만 하드웨어를 오작동시켜서 간접적으로 물리적 손상을 입히는 사례는 있다.
ActiveX 그 자체는 바이러스가 아니지만, 해당 플랫폼을 기반으로 작동하면서 안 취약점을 파고드는 바이러스나 스파이웨어가 너무나 많은 데다, 마찬가지로 ActiveX 기반 한국제 보안 프로그램(nProtect 등)들의 무겁기만 무겁고 실제 성능은 영 믿을만하지 못한 것까지 겹쳐서 해당 플랫폼 그 자체가 바이러스라고 비난하거나 마이크로소프트가 바이러스 플랫폼을 만들었다는 우스갯소리가 진지하게 통한 적도 있었을 만큼 여러모로 문제가 많아서 결국 마이크로소프트에서도 정식 지원을 중단한 상태이다.
4.1. 나무위키에 작성된 바이러스 문서 목록 (발생연도 순)
- 크리퍼 바이러스
- 브레인 바이러스 (1986)
- 13일의 금요일 바이러스 (1987)
- 비엔나 바이러스 (1987)
- 스톤드 바이러스 (1987)
- 폭포 바이러스 (1987)
- 다크 어벤저 바이러스 (1989)
- LBC 바이러스 (1989)
- 조쉬 바이러스 (1990)
- DIR-II 바이러스 (1991)
- 미켈란젤로 바이러스 (1991)
- 카지노 바이러스 (1991)
- 안젤리나 바이러스 (1994)
- CIH 바이러스 (1998)
- V3RES Trojan (199?)
- 러브 바이러스 (2000)
- 파리떼 바이러스 (2002)
- 킨타마 바이러스 (2004)
- Whboy 바이러스 (2006)
- 스턱스넷 (2006)
- 바이럿 (2007)
- 레긴 (2008)
- 2090 바이러스 (2009)
- GENO 바이러스 (2009)
- gogo2me (2009)
- SWEETIM
- lose/lose[5] .
- You are an idiot
- 오토런 바이러스
- 페트야
- MEMZ
5. 증상
다음 증상이 지속적, 또는 갑자기 발생하면 바이러스 감염을 의심해볼 수 있다.
- 컴퓨터가 평소와 달리 느려지는 경우
- 아예 부팅이 되지 않는 경우
- 블루스크린 등이 자주 발생하는 경우
- 특정 파일 등의 정보(크기, 이름 등)가 지속적으로 변하는 경우[6]
- 기타 평소 발생하지 않은 의심스러운 증상이 발생하는 경우
- 이상한 파일(예: wosfawr.exe, iliawtzg.exe[7] 등)이 생성된 경우[8]
6. 예방 및 치료책
바이러스를 예방하기 위해선 여타 다른 악성코드들과 다를 것 없이, 우선 안티 바이러스(백신) 소프트웨어를 활성화하고, 항상 주기적으로 업데이트하며 윈도우 보안 업데이트를 설치해야만 한다. 또한 의심스러운 사이트나 프로그램 등은 실행 전 충분한 경계가 요구된다. 대부분의 안티 바이러스 소프트웨어[9] 는 이러한 바이러스들을 감지하고 치료할 수 있는 능력을 가지고 있다. 또는 웹사이트 등의 경우 바이러스 토탈 등으로 검사하는 것도 좋다. 주기적으로 컴퓨터의 임시 파일을 정리하는 것도 도움이 될 수 있다.
하지만 요즘 백신도 잡아내지 못하는 바이러스도 종종 등장하고 있는데, 시스템 파일 중 하나로 위장하고 원래 시스템 파일은 먹통으로 만드는 바이러스도 있다. 시스템 파일은 삭제하기도 힘들고 잘못 건들면 컴퓨터를 먹통으로 만들기도 하니 치료에 주의해야 한다.
7. 다른 악성코드들과의 구분?
악성코드 문서와 같이, 트로이 목마나 스파이웨어 등은 스스로를 복제할 수 없다. 그러나 통상적으로 칭하는 컴퓨터 바이러스는 스스로를 복제하여 다른 파일들을 감염시킨다. 그러나 웜과의 차이점은 다음 표와 같다.
8. 바이러스 분석의 종류
컴퓨터 바이러스 분석은 크게 다음과 같은 두 가지 방법으로 나눌 수 있다.
- 정적 분석: 바이러스로 의심되는 대상을 실행하지 않고 분석을 하는 방식이다. 일반적으로 바이러스가 실행할 수 있는 모든 코드 및 실행 경로들을 분석할 수 있지만, 실제 실행과 관련된 정보가 제한된다. 대표적으로 간접 호출 (Indirect Call) 경우 호출 대상이 여러 개 가능할 경우이다. 이를 위해 심볼릭 실행 (Symbolic Execution) 방식이 존재하나 너무 느리다는 단점이 있다.
- 동적 분석: 바이러스로 의심되는 대상을 가상 환경 등에서 실행하여 생성 레지스트리, 파일 실행, 파일 및 프로세스, 시스템 콜 호출 등 행위를 분석한다. 정적 분석과 다르게 실제 실행과 관련된 정보를 얻을 수 있지만, 실행 경로에 포함되는 코드들만 분석이 가능하기 때문에 정보가 제한된다.
9. 관련 문서
10. 참고자료
- danooct1 채널
DOS 컴퓨터 바이러스 실행 영상이나, 초기 윈도우 시절의 컴퓨터 바이러스 실행 영상을 모아 두고 있다. 아주 가끔 랜섬웨어나 근래의 보안 이슈들을 들고 나오기도 한다. 몇몇 영상은 유저 한국어 자막이 붙어서 나오며 국산 악성코드인 련선웨어도 소개된 바가 있다.
도스 시절의 바이러스를 체험할 수 있다. 물론 도스 박스를 통한 가상머신 안에서만 끝나기 때문에 안전하다.
[1] 그래도 최초의 바이러스는 어느 정도 좋은 의도로 만들어졌다. 함부로 크랙 버전을 만들어 무단 배포하는 사람들을 골탕 먹이려는 의도였다.[2] 한국에서도 1988년 브레인 바이러스가 알려지기 시작했다.[3] 이 소년은 이제는 어른이 된 지금도 컴퓨터 프로그래머로 활동 중이며 'blekko'라는 검색 엔진 개발을 주도하기도 했다.[4] 굳이 따지자면 사용자들에게 공포감을 들게 하는 정도였다. [5] 비디오 게임 형태의 특이한 바이러스이다. 제작자가 해당 프로그램의 기능을 제대로 공지했으므로 악의성을 가진 다른 악성코드와는 의도가 다르지만, 어쨌거나 사용자의 동의 없이 멋대로 사용자 권한을 조작한다는 점에서 악성코드라고 볼 수 있다. 백신에서도 악성코드로 진단한다.[6] 용량 크기 변화의 경우 파일이 감염되었다는 것이다.[7] csrss.exe을 위장하기 위해 csrss.exe iliawtzg.exe 이렇게 적는 경우가 있다.[8] 대부분 임시폴더(temp)에 생성된다. 혹은 시스템 폴더 또는 appdata에 생성하는 경우도 있다.[9] 단, 허위백신에 주의해야 한다.[10] 트로이 목마, 바이러스, 스파이웨어 등을 통칭하는 개념이다. 해당 문서 참조.[11] 도스 시절 바이러스들은 특정한 그림 그래픽을 보통 이렇게 표현하곤 했다.[12] 컴퓨터 바이러스로 만들어진 특명전대 고버스터즈 악의조직[13] 배치파일을 이용해 컴퓨터 바이러스와 비슷하지 만들수 있다