악성 코드
* 컴퓨터 관련 정보
개요
컴퓨터 바이러스, 웜, 스파이웨어, 트로이 목마 등 컴퓨터 사용자에게 해를 끼치는 모든 코드(code)의 총칭. 이와 같은 분류 이외에도 다양한 분류가 있을수 있지만 악성코드의 초창기부터 현재까지 살아남은 분류는 저 정도이다. 요즘 악성코드는 필요에 따라 복합적으로 작동하기 때문에 위의 형식으로 구분하기 힘든 경우도 있다.
컴퓨터 바이러스
바이러스가 어원이다.
원래는 단독 실행파일로 동작하는 트로이얀(Trojan)과는 달리 특정한 파일을 감염시켜서 해당 파일이 실행되면 동작하는 악성코드만을 일컫는 말이다. 그래서 바이러스라는 이름이 붙어있었지만, 현재는 그냥 전부 바이러스라고 부른다. 물론 대다수의 바이러스는 악성 바이러스.
지금의 컴퓨터 바이러스에 대한 개념과 유사한 물건이 처음으로 구상된 것은 아직 컴퓨터라는 것조차 생소했던 1949년으로 존 폰 노이만이 일리노이 대학에서 발표하였던 것으로 프로그램이 자체적으로 재생산되거나 자체적으로 재구성되는 것에 대한 개념에 대한 내용이었다.
1972년에는 SF 소설 작가인 마이클 크라이튼이 발간한 《The Terminal Man》에서 컴퓨터 바이러스와 유사한 것이 등장한다. 그의 소설속에서 컴퓨터는 전화 모뎀을 통하여 랜덤으로 숫자를 입력하여 전화를 걸었으며, 다른 컴퓨터에 연결될 때까지 이 과정을 반복한다. 그리고 만약 다른 컴퓨터로 접속이 되면 그 컴퓨터에게 자신과 같은 행동을 반복하도록 지시한다. 이제 두 번째 컴퓨터는 다시 모뎀을 통하여 또 다른 컴퓨터에게 접속을 시도한다. 그리고 점차 이러한 일을 벌이는 컴퓨터가 늘어나기 시작한다.
실제로 컴퓨터 바이러스라 부를 만한 최초의 물건은 1971년에 등장한 '크리퍼 바이러스'다.[wiki:"크리퍼(마인크래프트)"~~아아~~] 지금 기준으로 보자면 컴퓨터 바이러스 보다는 '웜'에 가까운 물건. 이것은 인터넷의 전신인 아르파넷을 통하여 퍼져나갔다. 이 프로그램은 아르파넷에 접속을 시도한 다음 다른 컴퓨터에 연결 되면 그곳으로 자신을 복사했다. 그런 다음 '나는 크리퍼, 날 잡아 봐라!(I`m the creeper, catch me if you can!)'이란 메시지를 내보낸다. 그리고는 다시 다른 아르파넷에 접속된 컴퓨터를 찾아 접속을 시도한다. 하지만 다른 컴퓨터로 이동하고 나면 원본은 지워지기 때문에, 실질적으로는 모든 컴퓨터중 오직 하나의 컴퓨터에만 크리퍼가 존재한다. 복사라기 보다는 이동의 개념이었던 것. 이는 엄밀히 말하자면 어떤 공격목적이라기 보다는 이러한 파일의 원격 전송등을 연구하기 위한 연구 개념으로 BBN이란 회사에 다니던 Bob Thomas가 개발한 것이다. 당시는 아직 개인용 컴퓨터(PC)가 없던 시절인데다가 운영체계도 컴퓨터마다 많이 달랐기 때문에 이 크리퍼는 TENEX 운영체계를 쓰는 PDP-10 컴퓨터에서만 활동할 수 있었다. 한편 이 크리퍼 파일을 지우기 위하여 'Reaper'라는 프로그램이 제작되었는데, 이는 최초의 컴퓨터 바이러스용 백신이라 할 수 있다.
||<tablealign=right>https://upload.wikimedia.org/wikipedia/commons/4/41/Rich_Skrenta.jpg%7C%7C || 엘크 클로너의 개발자BR리처드 '리치' 스크렌타 || '이동'이 아니라 진짜 '복제' 개념이 들어간 최초의 바이러스는 '엘크 클로너(Elk Cloner)'라는 프로그램이다. 이는 1981~1982년 경에 만들어졌는데, 놀랍게도 이를 만든이는 당시 15세였던 리처드 '리치' 스크렌타라는 소년이었다(이 소년은 이제는 어른이 된 지금도 컴퓨터 프로그래머로 활동중이며 'blekko'라는 검색엔진 개발을 주도하기도 했다.). 이 Elk Cloner는 Apple II 시스템에만 감염되었으며 부팅용 플로피 디스크에 감염되는 일종의 부트 섹터 바이러스였다. Elk Cloner는 부팅 된 이후 메모리에 남아있다가 만약 감염되지 않은 새로운 디스크가 컴퓨터에 들어오면 자신을 해당 디스크에 감염시켰다. 이런 식으로 Elk Cloner는 디스크에서 디스크를 통해 감염되는 프로그램이었다. Elk Cloner는 특별히 파괴적인 활동을 벌이지는 않았으며, 감염된 컴퓨터는(정확히는 플로피 디스크) 감염된 뒤 50번째로 부팅하면 다음과 같은 짧은 시를 출력했다.
||<#EEEEEE>Elk Cloner: The program with a personality 엘크 복제자 : 자아를 가진 프로그램’
It will get on all your disks ‘그 것은 너의 모든 디스크를 취하며’
It will infiltrate your chips ‘그 것은 네 칩 속을 드나들지 ’
Yes, it's Cloner! ‘그래, 그것은 복제자!
It will stick to you like glue ‘그 것은 끈끈이처럼 너에게 들러붙고’
It will modify RAM too ‘그 것은 너의 램 또한 휘저어 놓지’
Send in the Cloner! ‘복제자를 들여보내라!’||
--감자칩을 감염시켜라!!-- 내용을 보자면 시라고 하기엔 약간 무섭긴 하다. 컴퓨터를 잘 모르는 이가 보기엔 마치 컴퓨터가 진짜 자아를 가져서 이런 메시지를 출력하는 것으로 여길지도 모르니. 한편 이 Elk Cloner는 실질적으로 별다른 피해를 주는 것은 없었고, 이 Elk cloner가 퍼져나간 범위도 개발자인 스크렌타의 주변인물 정도였기 때문에 이것에 대한 백신이 개발된 적은 없다고 한다. Elk Cloner에 대한 분석
현재와 같은 개념의 최초 바이러스는 1986년에 파키스탄에서 만들어진 브레인 바이러스이며,[* 이 바이러스는 3년 뒤 대한민국에서도 발견된다. 인터넷이 대중화되기 전의 시절이라 파키스탄에서 한국까지 오는데 3년이 걸린 것이다.] 초기 바이러스는 애들 장난 수준의 귀여운[* 1990년 인도에서 발생한 Joshi 바이러스는 매년 1월 5일마다 오늘이 자신의 생일이라는 것을 기념해달라며 Type "Happy Birthday Joshi"라는 문구를 입력하는데, 이걸 따라서 타이핑하면 끝이다. 근데 이 해결법을 모르면 그냥 부팅 불가. 따라서 피해를 안 준다고는 할 수 없다.](?) 바이러스였지만, 순식간에 파괴적이고 해괴한 바이러스가 많이 등장하면서(이미 1980년대 말부터 예루살렘 바이러스 등 컴퓨터 바이러스로 인한 문제가 심각한 문제가 되었다.) 요즘에는 여차하면 컴퓨터 하나 날려먹는 정도는 일도 아니게 되어 버렸다.
인터넷이 발달하면서 요즘에는 아예 실행되면 스스로 프로세스에 올라가 있으면서 네트워크를 통해 스스로 증식해버리는 바이러스인 웜이 기승을 떨치고 있으며, 바이러스의 95%이상은 보통 윈도우즈용이지만, 가끔 맥용이나 유닉스, 피쳐폰, 닌텐도 DS용 바이러스도 있다. 아이폰 3GS 이후 대중화된 스마트폰 시대에서는 wiki:"안드로이드(OS)" 안드로이드를 노리는 바이러스가 상당히 증가하여 스미싱 등의 보안 문제를 낳고 있기도 하다. 일종의 사회 문제.
여담으로 윈도우용 바이러스는 생각보다 만들기 쉽다. bat파일의 작성법만 터득해도 10줄 이내의 코드만으로도 바이러스를 제작할 수 있다. 바이러스라는 물건은 거창한 수단으로 만들어지는 프로그램이 아닌 '악의적인 목적'을 가진 그 어떤 간단한 프로그램이라도 바이러스라 정의할 수 있기 때문이다. 자세한 방법은 정보통신법에 저촉되기에 더 이상의 자세한 설명은 생략한다. 이 바이러스의 장점이라면 코드가 너무 원시적이라 어떤 백신에도 잡히지 않는다는 점이다. 단점이라면 bat파일의 특성상 무차별적인 파일/폴더 파괴가 불가능하고 소스 코드를 알기 쉽다는 것, 따라서 대처하기 쉽다는 방법이 있다. 그래도 특정 파일 삭제[* 특히 시스템 파일]나 시작 프로그램 강제 등록, 시스템 강제 종료 정도는 쉽게 가능하니[* UAC의 등장으로 이제 원시 바이러스도 윈도우 비스타 이상에서는 활동하기 힘들게 되었다.] 주의하도록 하자.
관련 항목
* 디도스 * 백신 * 해킹 * 해커 * 크래킹 * 제로 데이 공격 * APT 공격
리그베다 위키에 작성된 바이러스 목록(발생년도순)
* 브레인 바이러스 (1986) * 13일의 금요일 바이러스 (1987) * 비엔나 바이러스 (1987) * 스톤드 바이러스 (1987) * 폭포 바이러스 (1987) * LBC 바이러스 (1989) * 미켈란젤로 바이러스 (1991) * 카지노 바이러스 (1991) * 안젤리나 바이러스 (1994) * CIH 바이러스 (1998) * 러브 바이러스 (2000) * 블래스터 웜 (2003) * 킨타마 바이러스 (2004) * whboy바이러스 (2006) * 스턱스넷 (2006) * 레긴 (2008) * 2090 바이러스 (2009) * GENO바이러스 (2009) * gogo2me (2009) * CryptoLocker (2013) * ~~lose/lose~~[* 제작자가 해당 프로그램의 기능을 제대로 공지했으므로 악의성을 가진 다른 악성코드와는 의도가 다르지만, 어쨌거나 사용자의 동의 없이 멋대로 사용자 권한을 조작한다는 점에서 악성코드라고 볼 수 있다. 백신에서도 악성코드로 진단한다.] * ~~Nginx~~[* DNS변경 악성코드 땜시 멀쩡한 웹서버 소프트웨어가 악성코드 취급 받는 경우] * ~~nProtect~~
웜
다른 프로그램에 감염되어 전파되는 컴퓨터 바이러스와는 달리 자체적으로 실행되면서 다른 컴퓨터에 전파가 가능한 프로그램을 따로 일컫는 말. 이것도 역사가 1980년대 말까지 거슬러 올라간다.
처음 나왔을 때는 컴퓨터의 자료를 직접적으로 파괴하기보다는 컴퓨터 안에서 무한정 증식하면서 컴퓨터의 메모리나 *****U 등 자원을 잡아먹음으로써 이용에 지장을 주는 것이 고작이었다. 그러나 이후 악질적인 행동을 하는 코드가 추가된 웜이 계속 나옴으로써 악성 바이러스와 다름없는 존재가 되었다.
주요 감염 통로로는 E-Mail, 공유 폴더, 특정 네트워크 포트 등이 있다. 특히 운영체제의 보안 취약성을 이용하는 경우가 많으니 백신을 설치하는 것 외에도 보안 패치가 나올 때마다 꼬박꼬박 설치하는 것이 매우 중요하다.
예전에 마이크로소프트에서 미래에는 웜을 이용해서 운영체제 업데이트를 실시할 예정이라고 발표했다가 신나게 쳐 까인 적이 있다.[* 다만 이런 아이디어는 리처드 도킨스 역시 진지하게 고려하고 있었다. 더 나아가 미래에는 웜과 호환되는 운영체제만이 살아남을 것이라고 내다보기도 했다. (도킨스의 저서 'Devil's Chaplain'에서)]
트로이 목마
Trojan
어떤 의미로는 스파이의 프로그램 버전. 이름의 유래는 트로이 전쟁의 트로이 목마에서 유래되었으며, 트로이의 목마가 뭔지 아는 사람들이라면 바로 느낌이 올거라고 본다.
말 그대로 정상적인 프로그램으로 위장하여 시작부터 끝까지 램에 상주하며, 시스템 내부 정보를 공격자의 컴퓨터로 빼돌리는 프로그램이다. 어떤 의미로는 좀비PC와 유사한데, 좀비PC처럼 내부정보 유출 뿐만 아니라 컨트롤까지 가능한 종류가 있고, 단순히 내부 데이터만 유출할 수 있는 타입의 트로이 목마가 있다.
위에서 말하는 정상적인 프로그램을 착각하는 사람들이 많은데, 원래 있던 정상적인 프로그램에 기생하는것이 아닌 설치하는 순간부터 이미 프로그램에 포함돼있다는 것이다. 즉 개발자님 께서 친절하게도(?) 개발 단계부터 트로이 목마를 무료로 포함시켜 주시는 거다. 출처가 불분명한 프리웨어 프로그램을 주의해야 하는 이유가 바로 이런 이유 때문이다.
상용프로그램에도 들어있는 경우가 있는데, 이런 경우는 99%가 불법복제로 설치되는 프로그램이다. 이런 경우는 멀쩡한 정품 프로그램 데이터 안에 트로이목마도 포함시켜 설치되게 하는 경우다.[* 아주 드문 경우지만 정품 상용 프로그램에 들어있는 경우도 있다. 보통 이런경우는 고객몰래 마케팅 조사용.]
다른 바이러스와 다른점이 있다면, 다른 바이러스들같이 자가복제를 하거나 다른 정상적인 파일에 자기 자신을 덮어 씌우거나 하지 않고, 해당하는 트로이목마 프로그램 하나만 삭제하면 더이상의 피해는 없다.
하지만 일부 트로이 목마의 경우, 트로이목마 본체를 삭제하면 본체속에 프로그램 중요 작동소스를 집어넣어서 해당 프로그램을 먹통으로 만들어 버리는 경우도 있다. 그러나 자기 집과 동반자살 하는 경우는 귀여운 편이고, 어떤건 삭제할려고 시도할 경우 컴퓨터를 무한부팅 시켜 버리거나, 커널을 파괴하여 동반자살을 하는 경우도 있으니 주의해야 한다.
가끔 프로그램을 불법다운받을 때, 보안 프로그램에서 트로이목마 바이러스가 발견되었다고 뜨긴 뜨는데, 치료하면 그 프로그램이 실행이 안되고, 보안 프로그램을 꺼두면 프로그램이 실행된다. 불법다운은 그렇다쳐도 혹시 컴퓨터 문제가 발생하지도 모르니 웬만하면 당당하게 돈주고 정품 프로그램을 사자. (국내정발이 아니면 ㅠㅠ)
스파이웨어
스파이웨어는 사용자의 컴퓨터에 몰래 설치되어 사용자가 알지 못하는 상태에서 각종 정보를 기록 & 빼돌리기 의 기능을 수행한다.
이것이 악성코드로 취급되지 않는 예외가 있다면 군 부대나 회사 같이 보안이 중요시 되는 곳은 사용자의 감시를 위해 쓰는 경우가 있다.
랜섬웨어
이름의 어원은 ransom(인질) + ware. 이름 그대로 감염자 컴퓨터의 데이터를 인질로 삼아, 해당 데이터들에 접근할 수 없게 암호화를 걸고, 잠금을 해제하는 키를 대가로 금품을 요구하는 악성코드의 통칭이다. 우리나라에 가장 잘 알려진 랜섬웨어는 마이컴고, CryptoLocker가 있다.
기타 악성코드
* 가짜 악성코드 괴담 * 과금형 악성코드: ARS 또는 유료 SMS(건당 x원)서비스에 전화를 걸어 돈이 빠져나가게 되는 경우 [안랩의 글] * 애드웨어: 광고를 보여주는데 사용자의 동의가 없는 경우, 제거하기 힘들게 설치되어 사용자에게 피해를 유발하는 경우, 단 사용자의 동의가 있으면서 피해를 유발하지 않는 것은 해당되지 않는다. * 조크바이러스 * 허위백신 * --조선미녀삼총사-- * ~~에네~~ * ~~KD 운송그룹~~ : 경부고속도로 버스전용차로에서 80km/h를 고수하며 저속주행하는 것을 두고 버스 갤러리에서 악성코드 깔린 컴퓨터처럼 ~~크드(KD)~~ 버스가 느리게 간다고 까는 말이다. 조선일보에 버갤 글을 소재로 아예 전면을 할애해서 기사를 냈을 정도..