일반적으로 사람들은 해커(hacker)라고 하면, 다른 컴퓨터에 불법으로 침입해 자료를 불법으로 열람ㆍ변조ㆍ파괴하는 사람을 떠올린다. 하지만, 본래 해커는 컴퓨터 전문가를 가리키는 좀 더 포괄적인 용어다. 해킹과 해커라는 용어가 등장해 의미가 변화한 과정과 해커의 종류에 대해 알아보자

 

원래 해커의 뜻은 컴퓨터 전문가

한국정보보호진흥원의〈정보시스템 해킹 현황과 대응〉(1996년)에 따르면, 해커란 ‘컴퓨터 시스템 내부구조와 동작 따위에 심취해 이를 알고자 노력하는 사람으로서 대부분 뛰어난 컴퓨터 및 통신 실력을 갖춘 사람’으로 정의된다.

해커라는 용어는 1959년 미국 매사추세츠공과대학(MIT)의 모형 철도 동아리인 TMRC(Tech Model Railroad Club)에서 유래했다. TMRC는 그들이 사용하던 은어를 사전으로 정리했다. 그들은 ‘hack’이라는 단어를 어떤 기술적인 문제에 대해 힘들여 발견한, 신속하지만 때로는 실수가 있는 해결책을 뜻하는 말로 썼다. ‘hack’이라는 단어는 원래 도끼로 가구를 만드는 것을 뜻하는 독일어에서 유래했다. 정교함과 솜씨가 떨어질 수 있다는 면에서, 도끼로 만든 가구와 MIT의 ‘hack’은 연관성이 있다. ‘hacker’라는 단어는‘hack’을 발견하거나 만들어내는 사람으로 사용했다.

‘hack’의 뜻은 아마추어 라디오 제작가들이 ‘hack’을‘창의적으로 성능을 높이려 서투르게 수선하다’라는 뜻으로 사용하면서 조금씩 바뀌었다. TMRC에서 만든‘hack'과 그 외에 다른 은어들이 컴퓨터 기술자들 사이에서 쓰이면서, 해커는 뛰어난 컴퓨터 실력을 갖춘 기술자라는 뜻으로 바뀌었다.

 

범죄자가 되어버린 해커

1980년대에 TV나 신문 등의 언론 매체가 컴퓨터 범죄자를 뜻하는 말로 해커를 사용하기 시작했다. 이들은 컴퓨터에 대해서 잘 모르면서 해킹 프로그램을 받아서 사용하는 스크립 키디(script kiddies)까지 해커의 범주에 포함시켰다. 이 때문에 원래와는 많이 달라진 의미가 일반인에게 알려졌고, 해커라는 말에 부정적인 인식이 널리 퍼지게 되었다. 오늘날, 해커라는 용어는 대부분 컴퓨터 범죄자를 뜻하는 말로 쓰인다.

컴퓨터 기술자들은 해커의 원래 뜻을 범죄자와 구분하고 지키고자 컴퓨터 범죄자를 뜻하는 ‘블랙햇(black hat)'과 ‘크래커(cracker)' 같은 용어를 만들어냈다. 그러나 언론 매체는 아직도 해커를 컴퓨터 범죄자만을 뜻하는 용어로 사용하고 있으며, 컴퓨터 전문가라는 의미로는 사용하지 않는다.

 

나는 네트워크의 전문가, 컴퓨터 보안 해커

해커는 활동하는 분야에 따라서 크게 컴퓨터 보안 해커, 학구적 해커, 취미 해커로 나눌 수 있다. 이들은 서로 다르지만 완전히 별개의 분야는 아니다.

컴퓨터 보안 해커는 말 그대로 컴퓨터와 네트워크에 대한 공격과 방어에 관심이 있는 사람들이다. 우리가 일반적으로 떠올리는 해커의 이미지와 같다. 컴퓨터 보안 해커는 연구하는 분야의 법적 타당성에 따라 크게 블랙햇, 화이트햇(white hat)으로 분류한다. 네트워크를 통한 불법적인 침입을 연구하는 사람을 블랙햇이라 부르고, 이 침입을 막고자 보안 문제를 고치고 보완하려고 합법적으로 활동하는 사람을 화이트햇이라 부른다. 이들의 중간 정도 되는 사람은 그레이햇(grey hat)이라고 불린다.

컴퓨터 보안 해커가 시스템을 공격하는 과정은 크게 세 단계로 나뉜다. 먼저 시스템에 대한 정보를 수집하고 접근 방법을 찾는다. 그 후, 시스템의 취약점을 찾고 어떤 방법으로 공격할 것인지 계획을 세운다. 마지막으로 계획에 따라 시스템을 공격한다.

해커의 공격 방법은 매우 다양하다. 대표적인 공격 수단으로는 ▲ 시스템의 취약점을 이용, 공격하는 프로그램인 익스플로잇(exploit) ▲ 시스템 접근 권한을 가진 계정이나 IP 주소로 위장해 시스템에 침입하는 스푸핑(spoofing) ▲ 데이터 전달 단위인 패킷 가로채기 ▲ 정상적인 프로그램처럼 보이지만 실행하면 시스템에 해를 끼치는 트로이 목마(Trojan horse) ▲ 몰래 시스템 관리자 권한을 얻는 프로그램인 루트킷(rootkit) ▲ 컴퓨터 바이러스나 웜(worm)같은 자기증식 프로그램 등이 있다.

소프트웨어를 디자인해 공유하는 학구적 해커, 다른 해커로는 학구적 해커가 있다. 이들은 소프트웨어를 디자인하고 프로그램하기를 좋아하는 사람들을 일컫는, 해커의 원래 의미에 가까운 해커다. 이들은 무료 소프트웨어와 오픈 소스 운동을 시작한 사람들로, 모든 컴퓨터 사용자들에게 소프트웨어를 복사해 배포할 자유와 수정할 자유를 주어야 한다고 주장한다. 그들은 작성한 프로그램을 자발적으로 무료로 공유하는 것은 학구적으로 의미가 있지만, 해커가 컴퓨터 시스템에 침입해 프로그램을 무료로 만드는 것은 윤리적으로 타당하지 않다고 생각한다.

이 분야의 유명한 해커로는 전산학에 큰 공헌을 한 에츠허르 다이크스트라(Edsger Dijkstra)와 도널드 크누스(Donald Knuth), 리눅스(Linux)의 개발자 리누스 토발즈(Linus Torvalds), C 프로그래밍 언어의 개발자 데니스 리치(Dennis Ritchie)와 켄 톰프슨(Ken Thompson) 등을 꼽을 수 있다.

 

내 취미는 컴퓨터 가지고 놀기, 취미 해커

취미 해커는 취미로 자신의 컴퓨터 소프트웨어나 하드웨어를 변형하는 사람이다. 이들은 소프트웨어를 바꾸거나 재창조한다. 또, 하드웨어를 바꾸어 성능을 향상시키거나 새로운 시도를 해보기도 한다. 상업적인 컴퓨터 게임이나 소프트웨어 크래킹(cracking)에 관심을 두기 때문에, 학구적 해커들과는 구분된다.

 

윤철희, 강재승 기자

chyun90@kaist.ac.kr

저작권자 © 카이스트신문 무단전재 및 재배포 금지