Vulnerabilities
야후 웹메일 취약점
IE 6.0 DoS 취약점
[HL2003-124]Microsoft Messenger 서비스 버퍼오버플로우 취약점
[HL2003-122]HP HP-UX dtprintinfo DISPLAY 환경변수 버퍼오버플로우 취약점
[HL2003-121]Sun Solaris aspppls의 임시화일 생성오류
Section Stories
머피의 법칙 그 유래를 찾아서 4부작 2편
지구상에서 가장 빠른 사나이(2편) 우리가 이제껏 알고 있는 머피에 법칙에 관한 모든 것은 잘못된 것이다. ...
얼음렌즈로 불 붙이기
호수나 샘에서 깨끗한 물을 퍼 온다. 물 속 가스가 제거되도록 약 10 분 간 끓인다. 그런 뒤 은박지 호일을 접어 약 5cm 정도 깊이의 접시를 만들어 물을 담고 천천히 얼린다. 아니면, 판매하 ...
머피의 법칙, 그 유래를 찾아서 4부작 1편
"세상에 어떻게 이럴 수가... 나는 도대체 되는 일이 하나 없는지..." 머피의 법칙이 뭔지는 알면서도 막상 그 유래에 관해서는 여러가지 설이 분분합니다. 희귀한 연구 결과를 주로 싣는 핫에어 사이트에 "머피의 ...
[2003/09/03] Ohhara


1999년 테크니컬한 방식의 오버-플로우를 시큐리티 포커스에 발표, 좋은 반응을 얻어 이미 해외에 이름이 널리 알려진 오하라는 1999년 8월 약 7천명의 경쟁자를 제치고 해커스랩 프리해킹존 명예의 전당에 1호로 등록, 국내에도 이름이 알려지게 된다. 이어 제 1회 1999년 왕중왕 대회 준우승, 2001년 제2회 올림페어 국제해킹대회 준우승을 차지하는 등의 활약을 보였고, 리눅스 관련 익스플로이트 발표로 국내 보안계에서 모르는 사람이 없는 오하라는 해커스랩과의 인터뷰에서 해킹에 관한 그의 전반적인 견해와 해커가 되고 싶은 후배에 대한 조언, 컴퓨터 관련 국내 최고봉을 자랑하는 그의 모교 포항공대와 그룹 PLUS의 소개, 해킹대회의 문제점 그리고 최근 들어 기승을 떨치는 바이러스 및 웜에 대한 그의 시각을 예리하게 조명한다.


1. 귀하의 닉 오하라(ohhara)는 무슨 뜻입니까? "바람과 함께 사라지다"의 여주인공 스칼렛 오하라의 이름을 딴 것입니까? 오하라를 닉으로 선택하신 이유는?

그동안 제 닉과 관련된 질문을 하도 많이 받아서 제 홈페이지에 답을 올려 두었습니다. 일단 오하라에 대한 여러가지 추측 및 해석은 그다지 의미가 없다는 것을 말씀드리고 싶습니다. 왜냐하면 저는 오하라(ohhara)라는 닉을 아무런 뜻 없이 사용하고 있기 때문입니다. 오하라를 사용하게 된 계기는 다음과 같습니다:

어릴적 아버지께서 제 이름을 오하라라고 지으려고 하셨는데 가족들의 반대로 뜻을 이루지 못하셨다는 말을 들었습니다. 이 말을 듣고 오하라라는 이름이 마음에 들어 사용하게 되었습니다. 가족들이 반대한 이유는 아마도 오하라가 흔치 않은 이름이라 행여 친구들에게 놀림이라도 받을까 걱정해서인 것으로 생각되지만, 정확한 이유는 저도 잘 모릅니다.

아버지가 제 이름을 오하라라고 지으시려 했던 이유는 "우리나라 같이 작은 물에서만 놀지 말고 세계로 뻗어 세계를 정복하라"는 의미에서였다고 합니다. 그래서 당신께서는 세계 많은 나라에서 사용하는, 어느 나라 사람이나 발음하기 쉽도록 최대한 단순한 발음으로 이루어진 이름을 찾으셨습니다. 살펴보면 오하라는 한글로 표기했을 때 받침이 포함되지 않으며 모음은 다른 모음과 합성이 되지 않은 단순한 모음이라는 것을 알 수 있습니다.

스칼렛 오하라의 오하라는 O'Hara로 표기하며 일본식 표기는 여러가지가 있을 수 있겠지만 통상 大原(커다란 들판)로 씁니다. 그리고 한국사람 이름중에도 다소 드물기는 하지만 오하라라는 이름이 존재합니다. 한가지 이름이 이렇게 여러 나라에서 통용기란 쉽지 않습니다. 그래서 저는 닉네임으로 오하라를 즐겨 사용합니다. ohara로 안쓰고 ohhara로 쓰는 이유는 제 성이 오씨(Oh)라서 그런 것도 있고, ohara는 많이 쓰이기 때문에 어딘가에 가입을 할 때 겹치는 경우가 자주 있기 때문입니다.


2. 컴퓨터를 처음 시작한 것은 언제였습니까? 그리고 해킹을 처음 시작한 것은?

컴퓨터를 처음으로 만져(just touch)본 것은 유치원 시절 옆집에서 였습니다. 그 때는 그것이 컴퓨터였는지도 몰랐지만 지금 예전 기억을 더듬어 지금 생각해 보면 Apple II기종이었던 것으로 추정됩니다. 그 당시에 저는 그것이 컴퓨터라기 보다 게임기인줄 알았습니다.

그 뒤로도 컴퓨터를 가끔씩 만져보기도 했고, 열정적으로 하고 싶은 마음은 있었지만 주변에 컴퓨터를 잘하는 친구도 거의 없었고 해서 프로그래밍같은 것도 제대로 할 줄 모르는 상태로 오랜 시간이 지났습니다. 컴퓨터도 비싼 돈을 들여서 샀지만 제대로 한번 써보지도 않고 먼지만 쌓였습니다.

물론 학교 시험에 나오는 기초적인 베이직같은 것들은 할 줄 알았지만 단순히 학교 공부를 위한 것이었기 때문에 컴퓨터 프로그래밍을 한다는 느낌은 받지 못했습니다.

그러다가 고등학교에 와서(1994년) 컴퓨터를 잘하는 친구를 한명 만났습니다. 그 친구를 통해 2400bps 중고 모뎀을 하나 샀고 옛날에 비싼 컴퓨터를 사고 먼지만 쌓이게 한 기억이 나서 어디서 버릴까 말까 하는 처치곤란의 286 AT IBM PC를 주워 왔습니다. 사양은 40 메가바이트의 하드디스크, 1메가바이트의 메모리, 허큘리스 흑백 비디오 카드, 5.25인치 플로피 디스크드라이브가 달려 있는, 그 당시에 버려도 아무도 가져가지 않을 만한 사양이었습니다. 그리고 길을 가다가 음식물 쓰레기와 섞여서 쓰레기통에 버려져 있는 도트 프린터를 발견했습니다. 시끄럽게 소리를 내는 프린터였지만 저에게 있어서는 상당히 쓸만한 프린터였습니다. 이것을 주워 왔습니다.

이런 물건들을 가지고 드디어 여러가지를 친구한테 물어가며 본격적으로 컴퓨터에 대해 배우기 시작했습니다. 예전에 먼지를 싸이게 해서 버린 컴퓨터가 있었지만 그것이 아주 성과가 없는 것은 아니었습니다. 그 덕분에 MS-DOS의 아주 기본적인 사용방법과 키보드를 치는 방법은 알고 있는 상태에서 컴퓨터를 배울 수가 있었습니다.

1994년 고등학교에 입학한 이후로 저에게 있어서는 많은 일이 일어났습니다.

워드프로세서에 대한 개념이 없었기 때문에 아래아한글 2.1을 가지고 관련 설명서를 모두 읽고 모든 메뉴를 한번씩 다 눌러보고 모든 기능을 전부 외웠습니다. 보통 이런 행동을 컴퓨터 잘하는 사람들은 의미없는 행동으로 보는 경향이 있는데 그것도 틀린 말은 아닙니다. 하지만 개념이 전혀 없는 상태에서 확실한 개념을 잡기 위해서는 한가지를 잡고 밑바닦까지 파내는 작업은 상당한 도움을 줍니다. 물론 저는 이제 새로운 버전의 워드프로세서가 나와도 모든 기능을 다 알아보려는 행동은 하지 않습니다. 사용할 때마다 워드프로세서라면 이런이런 기능이 여기 근처에 있을텐데 하고 찾아봅니다. ^_^

Turbo C 2.0을 구해서 Turbo C관련 책을 한권 산 다음에 그 책에 있는 모든 연습문제를 풀어 봤습니다. 프로그래밍에 대한 개념이 제대로 없는 상태에서 개념을 잡을 수 있었습니다.

모뎀을 가지고 천리안에 가입해서 PC통신을 시작했습니다. 동호회 활동도 해보고 채팅도 해보고 제가 C언어 연습용으로 작성한 프로그램도 업로드해봤습니다. 지금은 상상하기 힘들겠지만 286 PC의 초당 약 250바이트가 전송되는 2400bps modem을 가지고 인터넷도 사용하기 시작했습니다. 외국 사람들과 채팅도 해 보고 nasa에 접속해 혜성 사진을 보기도 했습니다. 사실 혜성에 관심이 있었다기 보다는 외국에서 사진이 전송된다는 사실 자체가 신기했습니다. 이렇게 인터넷의 사용을 시작했습니다.

이렇게 여러가지를 하면서 많은 것을 배우고 1995년 고등학교 2학년 때 PC를 한대 새로 구입했습니다. 사양은 486DX-2, ET4000/W32 비디오카드, 삼성 샘트론 14인치 모니터, 8메가바이트 메모리, 500메가바이트 하드디스크, 14400bps 모뎀이었고 당시에 무난하게 사용할 수 있는 컴퓨터였습니다.

이 컴퓨터에 일단 MS-DOS 6.22와 MS Windows 3.1을 설치하고 가장 중요한 Borland C++ 3.1을 설치해서 MS Windows Programming을 시작했습니다. 그 당시에는 MS Windows Programming을 할 때는 Visual C++보다 Borland C++을 많이 사용했었습니다. 그리고 SLIP(PPP이전에 사용하던 프로토콜)을 사용해서 인터넷에 접속해서 Web Browser를 사용하기 시작했습니다. 여러 웹 브라우저가 나와 있었는데 저는 QEMM으로 유명한 Quarterdeck에서 만든 Quarterdeck Mosaic을 사용했었습니다. 당시에는 Netscape가 1.1beta버전이 나오던 때였던 것으로 기억합니다. 이 당시의 Netscape는 loading하다가 stop버튼을 누르면 OS거 죽어버리는 등 버그가 매우 많은 상태였습니다.

1995년 말에 MS의 야심작(?) MS Windows 95가 출시되었습니다. 그당시에 MS-DOS에 익숙한 사람은 누구나 겪는 MS Windows 95를 설치하고 MS-DOS용 NDD(Nortan Disk Doctor)를 실행했다가 하드디스크가 날라가는 문제도 당해 보았습니다. 누구의 말대로 MS Windows 95는 95번도 설치를 해 봐야 제대로 설치를 할 수 있을 듯 할 정도로 사용이 매우 어려웠습니다. 불만은 많았지만 그래도 별다른 대안이 없었기 때문에 열심히 익숙해지기 위해 노력을 했습니다.

결국 열심히 인터넷을 사용하고 컴퓨터를 배운 결과 중앙일보사주최 정보사냥대회에서도 입상을 하기도 하고 삼성 SDS주최 96명인한마당에서 같은 반 친구들과 함께 팀을 만들어서 금상을 받기도 하는 등 가시적인 성과를 거둘 수가 있었습니다. 당시에 96명인한마당은 제가 학교 몰래 학교 대표로 (구정고등학교) 신청을 했지만 지도교사가 없으면 안된다는 말을 듣고 대회준비를 모두 끝낸 뒤에 마지막에 학교에 통보를 했었습니다.

그 당시에 다른 모든 한국의 학교가 마찬가지였겠지만 대학 입시에 도움이 되지 않는 다른 행동은 학교에서 환영을 전혀 받을 수가 없었기 때문에 몰래 하는 것이 불가피했습니다. 참고로 96명인한마당은 수학능력시험 일주일 전이었습니다. 사실상 쓸데없는 교과서 달달 외우기를 해서 좋은 대학에 가는 것보다 저는 제가 좋아하는 일을 좇아서 열정적으로 하는 것을 좋아했고 집에서도 저의 그런 자세를 적극적으로 지지해 주었습니다.

인터넷 사용의 개념을 이해한 이때 제 머리속에 고리가 하나 끊어져 있는 것이 느껴졌습니다. PC사용자 입장에서 client에 대한 이해는 높아졌지만 관리자 입장에서 server의 이해는 매우 낮았습니다. 그리고 가끔 신문이나 방송을 통해 보도되는 컴퓨터 관련 범죄나 해킹에 대한 뉴스는 저에게 있어서는 이해가 되지 않는 딴세상 이야기였습니다. 관심을 가지고 관련 해킹에 대한 것을 찾아보기는 하였으나 sniff,ip spoofing, buffer overflow와 같은 용어들은 접할 수 있었을 뿐 그것의 실체는 도저히 접근을 할 수가 없었습니다.

저는 1996년에 server를 만들어서 운영을 해보기 위해서는 전용선이 필요하고 이것은 상당한 비용이 필요하다는 것을 알게 되었습니다. 물론 전화선을 이용해서도 운영을 할 수도 있지만 저는 많은 전화료를 감당할 수가 없었습니다. 그 당시에는 연구기관을 제외하고 거의 모든 곳에서 인터넷을 사용하기 위해서는 전화선을 모뎀에 연결해서 사용을 했습니다. 지금과 같은 VDSL, ADSL과 같은 것은 꿈도 꾸지 못했습니다. 그리고 이때 일반 PC에서 사용할 수 있는 유닉스 계열 OS로 리눅스가 있다는 사실을 알게 되었습니다. 그래서 리눅스 슬렉웨어 3.0을 구해서 설치를 해보면서 공부를 해보려 했지만 24시간 연결되는 전용선 서비스를 받을 수 없으면 실질적인 재미있는 공부가 매우 힘들다는 것을 느꼈습니다.

이 때부터 전용선 서비스를 무한대로 받으면서 원하는 공부를 할 수 있는 곳을 찾다가 발견한 곳이 바로 포항공대였습니다. 시설이 매우 좋고 인터넷을 학교 곳곳에서 사용할 수 있으며 server운영도 원한다면 마음껏 할 수 있다는 것을 알게 되었습니다. 그리고 이때 PLUS에 있는 여러 사람들과 email을 교환하면서 학교의 분위기를 파악할 수가 있었습니다. 그리고 저는 가능하다면 포항공대에 입학을 하고 싶었지만 거의 가능성이 희박하다고 개인적으로 생각하고 있었습니다.

당시에 제 수학능력시험 점수는 299점 정도로 그렇게 좋은 점수는 아니었습니다. (일반적으로 고등학교에서는 점수가 좋으면 서울대 가라고 강하게 압력을 넣지만 저한테는 그런 압력이 전혀 없었습니다) 그래서 포항공대 지원은 생각도 못하고 있었는데 그때 처음으로 점수가 다소 낮으면서 뭔가 가능성이 있는 학생을 선발하려는 의도로 고교장추천제가 신설이 되었습니다. 그리고 수리탐구 I, II에 200%가중치를 준다는 (수리탐구 I, II 점수에 곱하기 2) 것이었습니다.

저는 수학성적이 전교 1등이었고 물리, 화학과 같은 과학관련 과목의 점수는 높았지만 국사, 세계사, 국어, 영어 등의 과목은 점수가 매우 형편없었습니다. 고교장 추천제의 내용을 보면 마치 저를 뽑기 위해 신설된 것처럼 보였습니다. 저는 가느다란 희망을 가지고 지금까지 나왔던 신문기사들을 챙겨서 지원서에 첨부해서 지원을 했고 예상치 못하게 합격을 할 수 있었습니다. 그 뒤로 200%가중치를 주는 제도가 사라졌습니다. 아마 제가 1살이라도 어렸거나 많았다면 포항공대에 입학하지 못했을 것입니다.

제가 입학할 당시 1997년에는 기숙사에서는 전용선을 사용할 수 없었지만 연구실에서는 사용할 수 있었습니다. ( 현재는 기숙사 전지역에서 사용 가능) 그래서 저는 사람들한테 수소문하고 부탁해서 연구실에 제 PC를 가져다 놓고 전용선을 연결해서 server운영을 해볼 수가 있었습니다. PC에는 redhat linux 4.2를 설치했습니다.

server운영을 1년동안 해보면서 머리속에 끊어져 있던 고리가 연결되기 시작했습니다. 예전에 뉴스에서 보았던 해킹사고들이 어떻게 일어났었는지 하나씩 이해가 되기 시작했습니다. server운영을 1년동안 해 보고 PLUS에 가입해서 "Security PLUS for Unix III"를 집필하는데 참여하고 교내 시스템들의 보안을 점검하면서 점검을 위한 실제적인 해킹을 해보기 시작했습니다.

그리고 제가 학교에서 컴퓨터공학을 공부를 하면서 해킹을 동시에 접했기 때문에 상당히 빠른 속도로 관련 지식을 습득할 수가 있었습니다.


3. 귀하는 1999년 8월 해커스랩 프리해킹존 명예의 전당에 1호로 등록하셨습니다. 당시 이틀밤을 꼬박 새운 끝에 최고 난이도인 13레벨을 뚫는 데 성공했다던데, 당시의 상황을 기억나시는 대로 들려 주시겠습니까?

당시 저는 대학 3학년이었고 여름방학동안에 학교에 있는 소프트웨어공학 연구실에서 연구참여를 하고 있었습니다. 제가 3년간 집에 간 때는 추석과 설날을 제외하고는 없었는데 (집보다 학교가 더 편하고 아늑했기 때문입니다.) 그래서 부모님이 포항에 잠시 내려오셨습니다. 교내에 잠시 방문하는 학생의 학부모를 위한 아파트가 있는데 그곳에 자리를 잡고 저는 연구실에서 노트북 PC를 하나 빌려와서 아파트에서 이곳 저곳 인터넷 사이트를 돌아다니다가 마침 제가 쉬는 동안 해커스랩 프리해킹존이 열리는 것을 알게 되었습니다. 아마 그때 부모님이 포항에 오시지 않았다면 그냥 지나칠 수도 있었을 것입니다.

저는 그때 "Security PLUS for Unix III"와 "Security PLUS for Unix IV"를 집필했었기 때문에 해킹 관련으로 기본적인 개념이 막 잡힌 상태였습니다. 하지만 알고 있는 내용을 다른 곳에서는 사용하지 못하고 교내 보안 점검을 위해 모의해킹을 할 때만 사용했기 때문에 공식적으로 외부에서 해킹을 할 수 있다는 것이 상당히 마음에 들었습니다.

drill이 open되자마자 바로 시작해서 계속 1위를 달리며 레벨을 올리고 있는데 뒤에서 겁나게 쫓아오는 사람이 한명 있었습니다. linux.sarang.net 관리자 적수(redhands)였습니다. 저는 쫓기는 마음으로 계속 레벨을 올려서 간발의 차로 프리해킹존 명예의 전당에 1호로 등록했고, 적수는 2호로 등록을 했습니다.

1호로 등록한 뒤에 해커스랩에 혹시 무슨 구체적인 보상이 있는지 알아보았지만 그런 것이 없다는 것을 알고 다소 실망하였습니다. -_-+ 하지만 이로 인해 신문과 방송을 통해 제 이름이 알려지는 것을 보면서 위안을 삼을 수 있었습니다.


4. 귀하의 모교 포항공대는 카이스트와 더불어 대한민국 컴퓨터 관련 최고 학부라 할 수 있습니다. 포항공대 입학을 희망하는 미래의 후배들을 위해 포항공대의 역사, 전통, 분위기, 기타 정보를 들려 주시겠습니까?

일반적인 다른 대학과 비교해 봤을 때 특이한 점을 설명드리도록 하겠습니다.

학생수가 한 학년이 300명 정도, 1학년부터 4학년생까지 모두 합해야 간신히 1000명을 넘을만큼 적습니다. 또한 서로 이전부터 전혀 모르던 상태에서 모여서 전원 기숙사 생활을 하기 때문에 서로간의 관계가 가족처럼 매우 끈끈합니다.

전원 기숙사 생활이라는 특수성 때문에 다른 학교에서 전혀 보기 힘든 재미있는 스타일로 수업이 진행되기도 합니다. 예를 들어 시험을 저녁 9시에 시작, 시험시간을 무제한으로 줘서 밤새도록 시험문제를 풀기도 합니다. 또 가끔 수업에 학생이 못따라 오면 교수님이 보강을 하기도 하는데 이것이 밤 12시를 넘어가는 경우도 있습니다. 이처럼 공부를 하고자 하는 학생에게는 확실하게 공부를 하고 실력을 발휘할 수 있는 환경이 제공됩니다.

수업과정은 살펴보면 다른 학교와 별다른 차이가 없는 것처럼 느껴지지만 수업의 강도가 매우 높아서 뭔가에 대해 심도있게 공부를 할 수가 있습니다. 나오는 숙제나 기말 프로젝트를 보면 과연 내 힘으로 저것을 하는 것이 가능할까 라는 의심을 항상 하게 됩니다. 하지만 그러면서도 그것을 결국 자기 힘으로 하게 됩니다.

다른 학교에서는 대학원생과 대학교 학부생의 생활이 분리가 되어서 단절되어 있는 경우가 대부분인데 포항공대에서는 대학원생과 학부생의 관계가 매우 긴밀합니다. 학부생도 대학원수업을 자유롭게 수강할 수 있으며 이때 수강한 수업은 대학원을 진학했을 때도 인정이 됩니다. 또한 모든 학부생은 일정기간 이상 연구실에 들어가 대학원생의 연구를 옆에서 도와줘야 졸업을 할 수가 있습니다. 저같은 경우에는 소프트웨어 공학 연구실에서 2년간 일을 해 봐서 연구실에서 연구가 어떻게 진행되는지 이해하는데 많은 도움을 받을 수 있었습니다.

자신이 무언가 하고자 하는 뜻이 있다면 그것을 할 수 있는 최적의 환경이 될 수 있지만 한국의 고등학교 분위기에 익숙해서 시키는 것만 따라서 하는 자세로 포항공대를 다닌다면 그것은 그 학생한테나 학교한테나 많은 손실을 입히게 됩니다. 그 한 학생으로 인해 다른 뜻있는 학생 한명이 뜻을 펼칠 기회를 잃게 되기 때문입니다. 다른 대학에서는 학부생이 학교에 어떤어떤 연구를 하고 싶은데 저런저런 것이 필요하고 이것은 어느정도의 비용을 필요로 하는데 지원해 줄 수 있냐고 요청한다면 대부분 무시할 것입니다. 하지만 포항공대에서는 저런 요청을 하는 학생을 간절이 원합니다. 돈이 없어서 뜻을 펼칠 수 없다는 말을 포항공대 학생이 한다면 그것은 핑계일 뿐입니다.

마지막으로 한가지...
포항공대 화장실은 호텔급의 청결함을 자랑합니다.
포항공대 화장실에는 항상 휴지가 있습니다. -_-b
일부는 포항공대를 청소중심대학이라고 부르기도 합니다. -_-;


5. 귀하가 소속된 PLUS는 과거 카이스트의 KUS와 더불어 명실공히 우리나라 최고의 명 해킹그룹이라 할 수 있습니다. PLUS에 관해 좀 더 자세히 말씀해 주시겠습니까?

KUS는 현재 아쉽게도 해체가 된 상태이고 제가 PLUS에 몸담기도 전에 해체가 되어서 자세한 것을 알지 못합니다. 하지만 여러가지 간접적으로 수집한 정보를 통해 PLUS와 비교를 간단히 해 보자면 PLUS의 구성원은 주로 보안에 관한 학문적인 연구를 중심으로 활동하는 동아리이고 KUS는 실전적인 해킹을 중심으로 활동하는 동아리입니다. 이 두 동아리는 제가 생각하기에는 어느쪽이 더 좋거나 한게 아닌 둘 다 장단점을 가지고 있다고 생각합니다.

과거에는 PLUS의 구성원이 대학원생을 중심으로 이루어 졌었는데 요즘에는 학부생을 중심으로 완전한 대학교 동아리 형태로 운영이 되고 있습니다. 그래서 요즘은 PLUS도 실전적인 해킹도 다루며 PLUS의 U가 Unix를 뜻하지만 Unix에만 국한되지 않고 보안의 전반적인 것에 대해 연구를 하고 있습니다.

그리고 또 한가지 오래전부터 이어오던 활동이 있는데 "Security PLUS for Unix" 시리즈의 출판입니다. PLUS에서의 연구 내용을 책 한권에 담아서 주기적으로 출판해 다른 여러 사람들의 컴퓨터 보안에 대한 이해를 높입니다.


6. 그동안 해킹과 연관된 재미난 에피소드가 있으면 들려주시겠습니까? 예를 들어 가장 인상에 남는다던가 가장 보람되었다던가...

해킹과 관련된 재미난 에피소드는 말로 하기 힘들 정도로 많습니다. 어떤 해킹사고가 발생하면 언론의 보도와 사실은 판이하게 다르다는 것은 이미 거의 모든 사람들이 알고 있습니다.

예를 들자면 예전에 기자가 저한테 어떤 사건의 진실에 대해 말해 달라고 해서 사실대로 말해 줬더니 기자가 대답하기를 그렇게 말하면 재미가 없기 때문에 기사화가 불가능하다는 대답을 했습니다. 그리고 제가 말한 내용은 모두 무시하고 관련 사건의 기사를 쓰는 것을 보았습니다.

이런 일은 제 주변에서 아주 여러번 반복이 되었습니다. 이렇듯이 다른 여러가지 해킹사건사고에 대한 진실을 저는 많은 언더그라운드 해커들에게 전해 들었습니다.

하지만 이런 진실 하나하나가 공개를 하게 되면 상당히 많은 사람들에게 피해를 줄 수 있는 내용들이기 때문에 이런 곳을 통해서 공개할 수 있는 것은 없다는 것이 매우 아쉽습니다.

보람된 일이 있다면 제가 "Advanced buffer overflow exploit" 라는 제목의 문서를 작성한 것입니다. 이 문서를 저는 1999년에 작성을 해서 배포했습니다. 처음에 Buffer Overflow의 문서로 가장 많이 읽히던 Aleph1(Elias Levy)의 "Smashing The Stack For Fun And Profit" 에서 다루지 않은 것들을 추가하는 형식으로 작성했습니다.

저는 이 문서가 지금까지 이렇게 인기를 끌 줄은 상상도 하지 못했습니다. 현재 이 문서는 매우 많은 곳에서 Buffer Overflow에 대한 내용을 다룰 때 빠짐없이 등장하는 문서가 되었습니다. 정확히 파악은 되고 있지 않지만 이 문서는 중국어, 일본어, 스페인어, 러시아어, 한국어로도 번역이 되어서 인터넷에 떠돌고 있는 것을 확인할 수 있습니다. 그리고 대학 강의를 하면서 강의자료에도 포함되기도 하는 것을 보았으며 여러 논문에도 인용이 되며 각종 서적에서도 언급이 되고 있습니다.

그리고 제가 쓴 문서중에 두번째로 유명한 문서는 "Buffer overflow exploit in the alpha linux"입니다. 이 문서는 정확히는 기억이 나지 않지만 해커스랩에서 있었던 해킹대회중 alpha linux가 나온 적이 있었는데 이때 alpha linux에서 Buffer Overflow은 가능성은 있지만 쉽지 않다고 알려져 있던 것을 제가 쉽게 가능하다고 설명한 문서였습니다. 이전까지는 alpha가 상당히 안전하다고 잘못 알려져 있었는데 제가 쓴 이 문서로 인해 사람들이 alpha도 다른 것과 마찬가지로 여러가지 심각한 문제점들을 가지고 있다는 것을 알리는데 기여를 할 수 있었습니다.


7. 귀하는 PLUS 멤버 당시 "Security PLUS for Unix IV"를 공동 저술했습니다. 공동 저술이라고는 하나 귀하가 거의 절반 이상을 쓴 것으로 알려져 있습니다. 책을 써서 돈은 얼마나 버셨습니까?

제가 지금까지 집필에 참여한 책은 "Security PLUS for Unix III", "Security PLUS for Unix IV"와 정식으로 출판사를(영진닷컴) 통해서 출판한 책 "Security PLUS for Unix" 이렇게 3권입니다. 그리고 정확한 분량은 밝히지 않겠습니다. 제가 쓴 분량양이 상당히 많기는 했지만 절반 보다는 적은 분량이었습니다. (^_^;;) 돈은 공동집필이기 때문에 PLUS 동아리 운영비로 전액 사용되었고 제가 받은 돈은 한푼도 없습니다. (T_T)

참고로 영진닷컴을 통해 출판된 "Security PLUS for Unix"는 약 5000권정도가 판매되었습니다.


8. 귀하는 해커스랩에서 주최한 제1회 왕중왕 해킹대회 준우승, 제2회 올림페어 국제 해킹대회 준우승을 하는 등, 귀하가 도전하는 모든 대회의 준우승을 휩쓸었습니다. 귀하가 준우승을 하는 대회의 우승은 반드시 mat가 차지했습니다. 그래서 혹자는 귀하를 mat의그림자, 혹은 mat의 영원한 2인자라고들 말했습니다. mat와의 이 악연(?)에 대해 어떻게 생각하시는지? 귀하와 mat는 어떤 사이입니까?

하나하나 정확히 기억은 나지 않지만 여러 해킹대회에서 저의 우승을 빼았은 사람은 mat뿐만이 아니라 다른 여러 사람이 번갈아서 했던 것으로 기억합니다.

이것의 원인은 제가 단순이 뒷심이 부족해서가 아니라 전혀 다른 곳에 원인이 있었습니다. 요즘은 이제 해킹대회들이 많이 성숙이 되었지만 이전에 해킹대회를 할 때는 해킹대회 규칙들에 애매모호한 점이 상당히 많았습니다. 그리고 일반 시험으로 생각한다면 부정행위라고 할 수 있는 모든 행동도 해킹대회라는 특성상 상황에 따라서 허용되기도 했고 허용되지 않기도 했습니다.

저는 여러 수많은 해킹대회에서 해킹을 처음으로 성공하는 사람은 항상 저였지만 우승자는 항상 다른 사람이었습니다. 그리고 신기한 것은 해당 대회에서 어떤 기술이 사용되었는지 인터넷을 통해 찾아보면 제가 사용했던 기술만을 찾을 수 있고 우승자가 어떻게 해서 우승을 하게 되었는지는 베일에 싸여 있습니다. 물론 제 자신은 그것들이 무엇이었는지 알고는 있지만 그것을 이곳에서 밝히면 저에게 수많은 DoS 공격시도가 있을 것이기 때문에 밝힐 수가 없습니다.

저는 저런 일들이 제 주변에서 계속 반복되는 것을 보고 나서 보안/해킹 분야에서의 의욕을 거의 상실했습니다. 물론 오랜 시간이 지나면 다시 의욕이 생길 수도 있겠지만 예전같이 불타오르는 의욕을 회복하는데는 상당히 오랜 시간이 걸릴 것으로 생각됩니다.

그리고 저는 mat와는 개인적으로 절친한 사이라는 것을 밝혀 둡니다. ^_^


9. 귀하는 일본 게임 번역기를 무료로 제작/배포할 정도로 일본 게임을 좋아한다고 들었습니다. 귀하가 가장 좋아하는 일본 게임은 무엇이며, 좋아하는 이유는 무엇입니까?

어쩌다가 저렇게 사실과 많이 다르게 알려졌는지 잘 모르겠군요. ^_^

설명을 드리자면 저는 머리를 식히며 노는 시간이 너무 아까웠습니다. 하지만 저도 인간이기 때문에 가끔은 컴퓨터에 대한 생각만 하며 지내지는 못합니다. 그래서 생각해 낸 것이 발전적으로(?) 놀아보자 였습니다. 그래서 외국어 공부를 목적으로 일본 게임을 즐기게 되었습니다.

처음에는 일본 만화책으로 일본어를 공부하기 시작했습니다. 하지만 한가지 문제가 있었는데 모르는 한자가 나왔을 때 사전을 찾기가 매우 힘들어서 학습의 속도가 매우 느렸습니다. 그래서 일본신문 웹사이트나 일본소설 웹사이트를 돌아다니면서 모르는 한자가 나오면 copy & paste로 일본어 사전을 찾아보았는데 이것은 내용이 너무 졸려서 쉽지 않았습니다. 그 다음으로 생각한 것이 일본 게임이었습니다.

하지만 이것도 만화책과 마찬가지의 문제를 가지고 있었습니다. MS Windows 2000부터는 IME에 마우스로 한자를 그려서 입력을 할 수 있어서 다소 편하게 사전을 찾을 수 있었지만 이것 역시 매우 불편했습니다. 그런데 그때 생각이 난 것이 일본게임에 나오는 일본어를 외부로 추출해서 사전을 찾을 수 있도록 하는 것이 어렵지 않게 가능하다는 것이었습니다.

저와 같은 생각을 하는 사람은 세상에 수도 없이 많이 있을 것으로 예상하고 그런 프로그램을 사용하기 위해 찾아다녔지만 찾을 수가 없었습니다. 그래서 결국 그런 프로그램이 없다고 생각하고 제가 직접 하나를 만들게 되었습니다.

처음에는 사전을 쉽게 찾으려고 만들었는데 만들고 생각해 보니 일한 번역기를 붙이면 많은 사람들이 좋아할 것 같다는 생각을 하게 되어서 웹으로 제공하는 일한 번역기를 붙여 보았습니다. 일본게임의 게임내용이 실시간으로 한국말로 번역되어서 나오는 모습을 보니 많은 사람들이 좋아할 것 같았습니다.

하지만 웹번역기를 사용했기 때문에 얼마 지나지 않아 서비스 제공업체에서 서비스를 막았습니다. 그래서 현재 번역기는 작동하지 않는 상태로 남아 있습니다. 유니소프트의 바벨이나 창신소프트의 이지트랜스를 한번 붙여보고 싶어서 해당 업체에 연락을 해 보았지만 도움을 받을 수가 없었고 그래서 아쉽지만 현재는 번역기능이 빠진 상태입니다. 하지만 저는 제 목적인 일본게임을 하면서 모르는 한자를 사전에서 쉽게 검색할 수 있는 목적은 달성했기 때문에 제 개인적인 불편함은 없습니다. 제가 만든 이 프로그램의 이름은 "Oh! Text Hooker"이고 홈페이지는 http://ohhara.sarang.net/ohthk 이며 현재까지 받아간 사람은 약 1,000명입니다.

요즘은 그래서 가끔 쉬고 싶을 때 일본게임을 하면서 모르는 단어를 사전에서 손쉽게 찾으며 일본어 공부를 겸해서 쉬고 있습니다. 그리고 영어공부를 위해 유명한 시트콤 프렌즈도 즐겨서 봅니다.

쓰다보니 질문에 대한 답변은 빠졌습니다. 저는 여러가지 일본게임을 즐기기는 하지만 그것을 공개적으로 공개하기는 매우 곤란합니다. 이 말의 의미를 생각해 보시면 제가 어떤 게임을 즐기는지 상상하실 수 있을 것입니다. ^_^


10. 오늘날의 실력을 갖추게 되기까지는 각고의 노력과 무수한 좌절, 역경이 있었으리라 생각됩니다. 해킹을 배우고 싶어하는 후배들에게 해주고 싶은 말씀이 있다면?

만약에 어디 웹사이트를 해킹해서 페이지를 변조하고 다른 사람의 시스템을 파괴하고자 한다면 뭔가를 힘들여 배우는 수고를 할 필요가 없습니다. 단지 영어로 의사소통에 문제가 없기만 하는 정도의 실력이면 충분합니다. 수많은 해킹툴 사이트를 뒤져서 해킹툴을 받은 다음, 해킹툴의 사용법을 읽은 후 그대로 따라하기만 하면 되기 때문입니다. 이런 사람들은 흔히 스크립트 키디라고 불립니다.

만약에 이런 스크립트키디가 되고 싶지 않고 진정한 해킹을 하고 싶다면, 해킹을 하고 싶어서 하는게 아니라 해킹이라는 행위 자체가 별것 아닌 상식으로 느껴져야 합니다. 해킹을 배우는 것이 아니라 CPU는 어떻게 작동하는지 컴파일러는 어떻게 작동하는지 운영체제는 어떻게 작동하는지 인터넷은 어떻게 작동하는지와 같은 기본적인 것 자체에 흥미를 느껴서 파고들면서 느껴야 합니다. 저렇게 깊숙하게 파고들다가 가끔 눈을 감고 조용히 생각해 보면 뭔가 스쳐지나가는 생각들이 생기는데 그것을 따라가다 보면 해킹을 아주 자연스럽게 하게 됩니다.

만약에 컴퓨터 전반적인 것에 대해 이해를 하고 싶은데 아무 것도 감이 잡히지 않는다면 C언어를 깊숙하게 배울 것을 추천합니다. C언어는 프로그래밍 언어의 관점에서 봤을 때는 매우 좋지 않은 언어입니다. 프로그래머에게 지나치게 많은 책임을 요구하기 때문입니다. 책임을 많이 요구한다는 것은 제대로 C언어를 사용하기 위해서는 상당히 깊숙한 수준의 컴퓨터에 대한 이해가 필요하다는 뜻입니다. 그렇기 때문에 C언어는 프로그래밍언어의 관점에서 봤을 때는 좋지 않지만 컴퓨터에 대한 이해를 위해서는 매우 적합한 언어입니다.

만약에 컴퓨터 프로그래밍에 흥미를 느끼고 있다면 C++언어를 깊숙하게 배울 것을 추천합니다. C++언어를 배우면서 객체지향프로그래밍 개념을 익힌다면 현재 존재하는 거의 모든 프로그래밍언어를 사용하는데 전혀 문제가 없습니다. C와 C++이 다른 프로그래밍언어에 비해서 비교적 사용이 힘든 언어이기 때문에 C와 C++을 자유자재로 사용할 수 있다면 다른 프로그래밍 언어는 사용하게 될 때 그 때 배워서 그 때 사용할 수 있습니다. 예를 들어서 저와같은 경우에는 php를 몇 시간 동안 살펴보고 사용법을 익혀서 사용한 다음에 그 뒤로 사용법을 완전히 잊어버렸습니다. Visual Basic으로 뭔가를 만들어야 되는 일이 있었는데 저는 그때 하루 동안에 필요한 내용을 배우고 하루 동안에 쓰고 하루 동안에 모두 잊어버렸습니다.

말을 다소 두서없이 적었는데 결국 결론은 기초를 탄탄히 하면 어떠한 변화도 두렵지 않게 되며 해킹은 상식으로 느껴진다는 것입니다.


11. 존경하는 사람이 있다면? 그리고 본인이 생각하는 해커의 이상형은 무엇입니까?

없습니다. 존경하는 사람을 바라보면 그 사람과 같이 되기 위해 노력하게 된다면 아무리 제가 노력을 해서 잘 되어 봤자 그사람 보다 못한 사람이 될 수 밖에 없다는 두려움을 저는 가지고 있습니다. 그래서 저는 존경하는 사람이 없습니다.


12. 관리하는 컴퓨터가 있습니다. 해킹을 당하지 않기 위해서는 어떻게 해야 합니까?

http://ohhara.sarang.net/history/info/howpc_ohhara-199909.htm 를 참고하시기 바랍니다.


13. 요사이 컴퓨터 바이러스, 웜, 해킹사고 등이 빈번히 발생하고 있습니다. 앞으로 이런 현상이 점점 심해질 것으로 보십니까?

더욱 더 심해질 것으로 생각됩니다. 저는 이번에 MS Windows의 RPC 버그를 봤을 때 전세계에 있는 수많은 컴퓨터가 이로 인해 동시에 format이 되고 CMOS의 Flash Memory가 지워져서 막대한 피해를 입힐 것으로 예상했습니다. 하지만 다행스럽게도 이 버그를 이용한 웜이 매우 조잡하게 만들어져서 사용자를 다소 놀래키는 수준에서 조용히 마무리가 되었습니다.

MS Windows를 지금처럼 많이 사용하고 MS의 Windows의 보안 버그에 대한 안이한 의식이 변하지 않고 어떤 똑똑한 사람이 이 세상에 대한 적대감을 품는다면 머지않은 미래에 커다란 제가 예견한 것과 같은 커다란 재앙이 닥칠 것이라는 것은 쉽게 예상할 수 있습니다.


14. 귀하는 3년간 모 회사에서 산업기능요원으로 근무해 병역의 의무를 마치고 최근 복학을 한 것으로 알고 있습니다. 어떤 일을 회사에서 했었고 앞으로의 계획은 어떻습니까?

저는 알티캐스트(예전 사명 4DL)에서 3년간 디지털방송용 Settop Box에 사용되는 자바가상기계(Java Virtual Machine)을 만들고 포팅하는 일을 했습니다. 수많은 여러가지 Settop Box를 가지고 작업을 했었고 이로 인해 Embedded System에서의 작업에 상당히 익숙해지게 되었습니다. 제가 만든 것은 제품화 되어서 현재 SkyLife 디지털 위성방송용 Settop Box에 사용되고 있습니다.

http://ohhara.sarang.net/history/info/embedded_system_faq.txt 이것은 Embedded System에서 개발을 하면서 겪는 여러가지 어려움을 정리한 문서입니다. 한번 보시면 제가 회사에서 어떤 일을 겪었는지 짐작을 하실 수 있을 것입니다.

보통 사람들은 회사에서 엔지니어로 몇년간 일을 해 보면 엔지니어를 하기를 매우 싫어합니다. 그런데 저는 신기하게도 제가 할 일은 엔지니어밖에 없다는 생각을 하게 되었습니다. 회사에서 경영을 하는 사람들을 가까이서 보았습니다. 장사는 역시 전문 장사꾼이 해야 된다는 생각을 저는 3년간 회사생활을 하면서 하게 되었습니다.

저는 회사생활을 하면서 소프트웨어 전문가는 하드웨어에 대해 무지하고 하드웨어 전문가는 소프트웨어에 대해 무지한 경향이 있다는 것을 알게 되었습니다. 저는 그래서 학교로 돌아와 전자공학과 부전공(혹은 복수전공)을 하려는 계획으로 전자공학 관련 수업을 수강하고 있습니다. 졸업은 2004년 말로 예상하고 있으며 졸업후에는 해외로 취업을 해서 여러 유능한 엔지니어들과 함께 일하며 많은 경험을 쌓고 싶습니다. 혹시 좋은 해외 일자리를 보시면 저에게도 연락을... ^_^






Taeho Oh(ohhara at postech.edu, ohhara at plus.or.kr)
http://ohhara.sarang.net
Postech(Pohang University of Science and Technology)
http://www.postech.edu
PLUS(Postech Laboratory for Unix Security)
http://www.plus.or.kr

P.S: Oh! Text Hooker가 몇주전에 버전업을 했는데 그 뒤로 반응이 좀 좋군요.
[15] [14] [13] [12] [11] [10] [9] [8] [7] [6] [5]
F.H.Z Server 접속자
2014/04/16 10:08 PM
DRILL 23명 / IRC 6명
Errata
BBUWOO


시작하는 모든 사람들을 위한 필독서 "질문은 어떻게 하는것이 좋은가"로 "시원한데 긁어줬다", 혹은 "너 잘났다"는 등의 극에서 극을 달리는 반응으로 리눅스계에 일대 센세이션을 일으켰던 장본인, OOPS.ORG를 통해 약 1만 8천...
Book Review
Spidering Hacks


[Anonymous님 曰] 서핑만으로는 부족하다고 느껴질 때가 있는 법이다. 좋아하는 책이 판매순위 몇위인가를 체크하는 것도 지겹고, 다운로드하...
Free Hacking Zone
Copyright © 1999-2003 by (주)해커스랩
개인정보 보호 정책