해킹강좌1해킹 강좌 1회첫회강좌에서는 바이러스와 해킹에 대한 개괄적인이론에 대해서 공부하기로 하겠습니다.20회까지니까 점점 깊은 얘기를 할 수 있겠군요.서론1. 컴퓨터 바이러스의 이해2. 컴퓨터 바이러스의 위험성I. 해킹의 이해1.해킹이란 무엇인가?2. 해커의 정체를 밝힌다.3. 통신망과 해킹의 이해4. 해킹의 구분1. 컴퓨터 바이러스의 이해1-1 컴퓨터 바이러스란 무엇인가?컴퓨터를 사용하는 사용자나 컴퓨터에 전혀모르는 사람이건간에 컴퓨터 바이러 스란 단어를 들어보지 않은 사람은 없을것이다.그만큼 컴퓨터 바이러스는 전세계 컴퓨팅 환경에 널리 퍼져있고 생명력이 강하게지속되고있다. 컴퓨터 바이러스 제작 초창기때의 바이러스가 수십년이 지난아직까지 골치를 썩 히는걸 보면 잘 알것이다. 그럼 도대체 컴퓨터 바이러스란무엇인가?컴퓨터 바이러스는 일반적으로 컴퓨터에 이상을 일으키거나화일을 손상시키며 자신을 복제하는등의 일련된 행위를 하는 프로그램을 말한다.그러므로 컴퓨터 바이러스는 우리주변에 존재하는 미생물적인 살아있는 생명체가아니라 컴퓨터 프로그래머가 만든 단지 컴퓨터 프로그램일뿐이다. 그 행위가마치 생명체 바이러스와 같은 파괴/감염등을 행한다고 이름 지어졌을 뿐이다.어느 전산실에서 있었던일이다. 전산실 관리 직원이사장에게 급히 보고를 했다. "사장님, 컴퓨터 바이러스에 걸려 컴퓨터 시스템들이제대로 작동하지 않습니다" 그러자 사장 말하길, 그러길래 진작 "소독약 뿌리랬잖아"라고 호통을 쳤단다. 컴퓨터 바이러스에 대한 일반적인 무지를 일컫는 유머이다.컴퓨터 바이러스가 소독약으로 죽지는 않겠지만 ANTI-VIRUS 프로그램, 우리가흔히 아는 "백신" 프로그램이 컴퓨터 바이러스를 퇴치 시킬수가 있다.1-2 컴퓨터의 구조와 작동의 이해컴퓨터는 크게 하드웨어(Hard Ware) 와 소프트웨어(SoftWare)로 나눈다. 하드웨어는 컴퓨터의 본체,주변기기등 기계적으로 컴퓨터를구성하고 있는 장치 들을 의미한다. 소프트웨어는 하드웨어를 움직여주는 운영체제와각종 응용 프로그램들을 말한다1 이유는 롬은 컴퓨터 전반적인 제어나운영에 대한 기본 정보가 탑재되어 있기 때문이다. 컴퓨터에 전원을넣으면 부팅시 롬에서 정보를 읽어들여 사용하 게 되어있다. ROM에는 직접적인 쓰기가 불가능해 컴퓨터 바이러스가 침투할 수 없는것은당연한다..* RAM(Random Access Memory) : 램은프로그램 작동시 사용되는 각종 데이타를 일시적으로 저장 하는 기억장치이다. 자유로운 읽기와 쓰기가 가능한 휘발성 메모리이다. 롬과다른점은 전원을 끄면 롬은 내부에 저장된 고유의 데이타가 보존되는반면 램에 입력되어진 모든 내용은 사라진다. 컴퓨터 바이러스는 RAM에 침투하여 램을 거치는 프로그램들을 감염시키거나 이곳에서 다른 장치로의감염을 시도한다. 이런 컴퓨터 바이러스를 램 상주형 바이러스라 칭한다.* 기억장치 : 크게 나누어 하드 디스크(HardDisk) 와 플로피 디스크(Floppy Disk), 자기테이프 그리고 요즘 각광받고있는 CD-ROM 등이 있다. 하드 디스크는 대용량의 기억장치로서 빠른 속도로컴퓨터의 기 억장치로 활용된다. 플로피 디스크는 역시 보조 기억장치로서다소 느린 속도지만 이 동의 간편성과 디스켓에 담긴 내용을 활용한다는측면이 있다. 위의 두 기억장치는 직접 읽고 쓰기가 가능하기에 컴퓨터바이러 스의 주 공격 대상이 된다. CD-ROM 은 컴팩트 디스크 형태의매체로서 약 600메가 바이트 분량의 대용량 기억장치로서 롬과같이 읽어들이기만한다. CD-ROM 에는 직접적인 쓰기가 불가능하기에 컴퓨터 바이러스의침투는 어렵다. 하지만 CD-ROM 초기 제작시 감염된 파일을사용했다면할수 없 지만 서도 말이다.* 출력장치 : 모니터,프린터,플로터 등의 출력을담당하는 기기를 말한다. 입력장치와 처리장치를 거친 데이타들은 출력장치를통해 우리에 게 보여진다. 바이러스 감염/피해 여부를 이를 통해확인해 볼수 있겠다. 출력장치 이외에 TV카드,사운드 카드 등의 여러가지주변기기를 들수있겠다.1-2-2 컴퓨터의 소프트웨어적 구조운영체제와 응용 프로그램, 데이타 화일 그리고소이 되면 컴퓨터 바이러스에 입력되어진 내용에 따라 - 예를들 어실행 화일만 감염시키라면 - 임무(?)를 수행한다. 우선 감염시킬 화일(FILE)을찾는다. 대상을 찾으면 그 화일을 식별하여 지문을 기입한다. 이때 대상이란컴퓨터 바이러스에 감염되지 않은 화일일 것이다. 이는 Over Writte 하지 않기위해서이다. 그리고 바이러스 본체 부분을 입력 시킨다. 그 다음에 원래 형태의대상 화일이 배치된다. 컴퓨터 바이러스는 계속적으로 다음 대상을 찾아 지문을분석하여 감염되지 않았 다면 자신을 복제하고 대상 화일을 감염시켜 지속적으로전파 시킨다. 이는 감염형 프로그램을 예로 든 대표적 예이다.1-4 컴퓨터 바이러스의 정의컴퓨터 바이러스에 대한 지금까지 소개된어떠한 정의로도 만족스러운 결과가 없 었다. 필자가 생각하기에 가장 적당한정의로는 "Ralf Burger"의 정의를 들 수 있겠다.1. 컴퓨터 바이러스 프로그램이 아닌 소프트웨어의프로그램 구조를 다른 프로그 램의 구조로 변경한다.2. 많은 프로그램에 대해 수정을 할 수 있다.3. 어떤 프로그램에 행해진 수정 여부를 인식할 수있다.4. 위의 수정 인식 후 같은 프로그램을 또다시 수정하지않는다.5. 이 프로그램에 의해 수정된 프로그램이 위의 1에서4 까지의 모든 특징을 가진다.위 조건들을 만족한다면 그것은 컴퓨터 바이러스라칭해도 좋을것이다.2-1 컴퓨터 바이러스의 위험성현대사회에서 컴퓨터 바이러스에 대한 위험성은상당히높다. 점차 전세계가 네트워크에 묶이고 모든걸 컴퓨터에 의존해 처리해나가는 때에 악성 바이러스때문에 입게되는 경제적 피해는 상당하다. 그리고교통/운송 체계도 컴퓨터에 의해 관리되는 세상에서 바이러스가 통제 시 스템에침투하여 고장을 낸다면 엄청난 결과를 가져올것이기 때문이다.I. 해킹의 이해1.해킹이란 무엇인가?해킹이란 컴퓨터 시스템에 침투하거나 정보를빼내는일들을 총칭해 일컫는 말이다. 이런일을 하는 사람들을 해커라고 한다.의미가 많이 변했지만, 해커란 자신의 실력을 알리기위해 해킹을 한다. 일반인들이생각하는하며 공개 소프트웨어의 개념을 가장 극단까지 발전시켰다.하지만 스톨만의 경우도 생계를 위해 상업적인 몇시간의 일만큼은 한다고 한다.스톨만의 예에서 보듯이 대부분의 해커는 뛰어난 능력의 소유자로 해커들이바라는 것은 단지 자기 실력의 자랑이다. 제도권에서 수용하면 MIT해커들 처럼우리 컴퓨터 업계의 발전을 이룰 수도 있다. 해킹을 일방적으로 범죄로 치부해버리기 보다는 능력있는 젊은 엔지니어의 열기의 발산이라는 시각으로 바라보는여유도 필요한 것이다. 지금도 인터넷의 한 구석에서는 인터넷을 해킹하기 위한노력이 계 속되고있다. 앞으로도 해커와 시스템 관리자 사이의 숨바꼭질은 계속될것이다.그러면서 이에 관한 보안 기술도 계속 발전해 나갈 것이다.3. 통신망과 해킹의 이해대부분의 해킹은 통신망을 통해 이루어진다.일대일 방식의 시스템 접근이라기 보다는 네트워크를 통한 시스템 접근이 이루어지는것이다. 한 예를 들어 보이겠다. 바이러스의 일종인 웜(벌레)은 네트워크에의해 상호 연결되어 있는 여러대 의 정보시스템 플랫폼에다 자체의 일부를번식시키는 프로그램으로 그것이 오염시킨 서로 다른 네트워크망 안에서존재한다. 시한폭탄과 같은 웜은 매 우 위협적인 존재이다. 웜의 오염사건중가장 잘 알려진 사건은 인터넷/모리 스 사건이다. 지난 88년 11월 코넬대학원생로버트 모리스는 로렌스 리버모 어 연구소를 포함한 여러 연구기관에유닉스 플랫폼을 연결하는 인터넷을 통 하여 웜 바이러스를 유포시켰다.모리스는 인터넷의 암호화 과정을 분석하고 파악한 다음 주먹구구식 끼워맞추기 방법을 이용, 가장 많이 사용하는 비밀 번호를 작성한 후 인터넷의암호화된 비밀번호 리스트와 대조한 결과 비밀번 호의 80의이상을 재구성할수 있었다. 인터넷의 접근을 성공시킨 모리스는 전자우편 메시지 핸들링시스템(MHS)을 이용하여 바이러스 모듈을 퍼뜨렸다. 컴퓨터 상호간 커뮤니케이션은점차 취약 영역이 확장되고 있어 관심이 높아 지고 있다. 다수의 프로세서들을로컬 케이블이나 게이트 웨이 접속방식을 통해 커뮤니케이션망에 연결하게되면킹'이 있다. 그 수법으로는 지금까지* 트로이 프로그램을 이용한 방법* 호스트 프 로그램의 버그(bug.프로그램상의 오류)나약점을 이용한 방법* 특정 사 용자의 암호를 이용한 방법 등 3가지가노출돼 있다.트로이 목마 프로그램을 이용한 시스템 해킹법은 주로상대방 호스트 사용자의 암호와 신상기록 등을 탐지하는 첩보활동이나 상대방호스트의 기능을 마 비시킬 목적으로 하는 파괴활동에 이용되고 있으며 미국에서몇몇 사설게 시판을 개설한 사람들이서로 상대방의 시스템에 피해를 주려는목적으로 악용된 것이 시초다. 또 호스트 프로그램의 버그나 약점을 이용하는해킹법은 시스템 개발때 쓰인 언어의 특성이나 프로그래머의 고의 또는 실수에의하여 개발됐으나 완료된 후 지워지지 않은 약점 등을 최대한 활용하는 수법.다음으로 가장 간단한 방법인 특정사용자의 암호를 알아낸 뒤 그것을 이 용해남의 시스템에 침투하는 것이 있다. 이번에 타인의 예금계좌와 비밀번호를 알아낸뒤 홈뱅킹을 통해 타인의 예금을 인출한 사건은 이 유형에 해당한다. 전문가들은이로인한 피해를 막기위해 암호는 되도록 자기 주민등록번호 와 전화번호 등남이 알아내기 쉬운 것은 피해야한다고 권고한다. 둘째는 컴퓨터 프로그램 보호장치인락(Lock)을 풀어 해킹하는 수법이 있다.락에는* 실행 파일에 특정한 과정을 심어둬 프로그램실행시 그 특정 과정에 해당하는 조건이 만족되지 않으면 프로그램 실행이 중단되는소프트 웨어 방식* 프로그램상의 특정 과정이 시스템 자체의 하드웨어적인특성 을 검사함으로써 그 프로그램이 수행될 것인지 여부를 가리는 하드웨어방 식 등 2가지가 있다. 이같은 락의 해독방법에는 여러가지가 있으나 가장기초적인 것으로* 락이 걸려 있는 실행파일을 역조작하는 방법* 디스크나 파일의 내부 코드를 볼 수 있는프로그램을이용,직접 해당코드를 조작하는 방법* 프로그래머의 실수로 생길 수있는 프로그램상의오류를 검색하는 디버그(Debug)기능을 이용해 락을 푸는 방법 등이 있다.마지막으로 프로그램 변형을 통해 암호를 해독한 뒤 프로그램을불법 그것을