보시는 것은 수많은 0과 1이라는 숫자 입니다.
흔히 우리가 2진 정보라고 하는 것이죠.
컴퓨터가 소통하고
정보를 저장하는 방법입니다.
컴퓨터가 사고하고
컴퓨터가 행하는
모든 일을 해나가는 방식이기도 합니다.
저는 사이버 보안 연구원입니다.
제 직업은 이런 정보를 가지고 앉아서
의미를 찾아내려고 하거나
이런 0와 1들이 어떤 의미인지 이해하려는 것입니다.
불행하게도 저한테는
화면에 나타난 0과 1들 정도가 아니고
몇 페이지 정도의 0과 1을 말하는 것도 아닙니다.
수백억 개의 0과 1을
말씀드리는 겁니다.
사람들이 이해할 수 있는 것보다 훨씬 많죠.
지금, 이 얘기가 신나게 들리는 만큼
제가 처음 사이버 관련 일을 시작했을 때
(웃음)
제가 처음 사이버 관련 일을 시작했을 때
0과 1을 샅샅이 뒤지는 일이
남은 일생 동안 하고 싶은 일인지 확신이 없었습니다.
왜냐하면 제게 사이버란 그저
할머니의 컴퓨터가 바이러스에 걸리지 않게 하는 것이었으니까요.
사람들이 쓰는 마이페이지가 해킹되는 것을 막는 정도였어요.
어쩌면, 어쩌면 기껏해봐야
누군가의 신용카드 정보가 도난되는 것을 막는 것일 수도 있고요.
그런 것들은 중요한 일이었지만
제 인생을 투자할 만한 일은 아니었습니다.
하지만 국방 관련 업무에
겨우 30분 일해보고는
곧바로 제가 가진 사이버에 대한 생각이
약간 틀렸다는 것을 알게 되었습니다.
사실, 국가 안보와 관련하여
할머니의 컴퓨터에서 바이러스를 막는 것은
우선 우선순위 목록에서 놀라울 정도로 낮은 순위였습니다.
그 이유는 사이버가
그런 것들 중에 어떤 것보다도 더 방대했기 때문입니다.
사이버는 우리들의 삶에서 중요한 부분입니다.
왜냐하면 컴퓨터가 우리들의 삶에 중요한 부분을 차지하니까요.
컴퓨터를 갖고 있지 않아도 그렇습니다.
컴퓨터는 GPS 에서 에어백까지 자동차의 모든 것을 통제합니다.
전화도 통제하죠.
그 덕분에 911에 전화하면
반대 편에서 응답하는 겁니다.
컴퓨터는 우리나라 전체의 기반 시설을 통제합니다.
그 덕분에 사람들은 전기도,
난방이나 깨끗한 물, 음식을 얻을 수 있어요.
컴퓨터는 또한 군사 장비
미사일 기지에서 위성,
핵 방어 체계까지 모든 것을 통제합니다.
이런 모든 것들이 컴퓨터 덕분에 가능합니다.
즉, 사이버 덕분에 가능해지는 것이죠.
뭔가 잘못되면
사이버가 이 모든 것들을 불가능하게 만들 수 있습니다.
거기에 제가 개입합니다.
이런 모든 것을 방어하는 것은 제 직업의 중요한 부분입니다.
이런 것들이 작동하도록 유지하는 것이죠.
하지만 이런 것들을 파괴하는 경우도 있어요.
왜냐하면 사이버는 방어만 하는 게 아니라
공격과도 관련이 있습니다.
우리는 지금 사이버 무기를
논하는 시대에 접어들고 있죠.
실제로 사이버 공격의 잠재력이 엄청나기 때문에
사이버는 전쟁의 새로운 영역으로 간주되고 있습니다.
전쟁이요.
꼭 나쁜 일만은 아닙니다.
한편으로 우리를 방어할 완전히 새로운 전선을 가졌다는 뜻이고
다른 한편으로 완전히 새로운 공격 방식을 가졌다는 뜻입니다.
악한 사람들이 나쁜 일을 못하게 하는
완전히 새로운 방법이죠.
예를 들어보죠. 완전히 이론적인 예입니다.
테러리스트가 건물을 폭파하려 한다고 가정해 보죠.
앞으로도 계속해서 이런 일을
하려고 한다고 가정합시다.
테러리스트는 폭발이 일어날 때 건물 안에 있으려고 하지 않겠죠.
테러리스트는 휴대전화를
원격 기폭 장치로 사용할 겁니다.
이런 경우에 테러를 막을 수 있는 유일한 방법은
총을 쏘거나 차를 추적하는 것이었는데
더 이상은 그렇지 않다는 겁니다.
우리는 천 마일이나 떨어진 곳에서 단추만 눌러서
그걸 막을 수 있는 시대에 살고 있어요.
왜냐하면 테러리스트가 알든 모르든
휴대전화를 사용하려는 순간
테러리스트는 사이버의 영역으로 들어갑니다.
정교하게 만든 사이버 공격을 통해 그의 휴대전화로 숨어들어
밧데리에 있는 과전압 장치를 무력화하고
회로에 과부하가 걸리게 하여
밧데리가 과열로 폭발하게 만들 수 있으니까요.
전화도 기폭제도 필요없고
어쩌면 테러리스트도 없앨 수 있습니다.
이 모든 것이 수천 마일 떨어진 곳에서
단추 하나만 누르면 됩니다.
어떻게 그렇게 할 수 있을까요?
이 모든 것이 아까 그 0과 1로 귀착됩니다.
전화기는 이진 정보를 통해 작동하므로
잘만 하면, 전화기를 폭파할 수도 있는 것이죠.
이런 측면에서 사이버를 바라보면
이진 정보를 뒤지면서 인생을 사는 것은
어찌보면 흥분되는 일이기도 하죠.
그런데 문제가 있습니다. 이게 굉장히 어렵습니다.
정말, 정말 어려워요.
그 이유를 말씀드리죠.
휴대전화에 든 모든 것을 생각해보세요.
찍어 둔 사진도 있고
음악도 있으며
연락처와
이메일 주소, 그리고 500개나 되는 앱도 있어요.
평생 한번도 안쓸지라도요.
이런 모든 것에는 소프트웨어 즉, 코드라는 프로그램이 있어서
휴대전화를 조종합니다.
그런 코드 안 어딘가에 숨어서
밧데리를 조정하는 작은 부분이 있거든요.
제가 그것을 찾아내려고 하죠.
그런데 이 모든 것은 그저 수많은 0과 1이란 숫자 뿐이고
그 숫자들이 엉켜있습니다.
사이버에서는 수많은 바늘 속에서 바늘을 찾는 일이라고 하죠.
왜냐하면 모든 것들이 서로 비슷하기 때문이에요.
저는 한 가지 종류만 찾지만
이게 다른 모든 것들과 함게 섞여있습니다.
이제 테러리스트의 전화기를 폭파하는
이런 이론적 상황은 그만하구요.
실제로 일어났던 일을 보도록 하죠.
제가 뭘하든
제 일은 자리에 앉아
수많은 이진 정보를 가지고 시작합니다.
저는 딱 한가지 중요한 정보만 찾아서
뭔가 특별한 일을 합니다.
이 경우에 저는 아주 첨단의
고급 기술로 만들어진 코드를 찾습니다.
제가 해킹할 수 있는 것이지만
수십억개의 0과 1 사이에 묻혀있죠.
제겐 안된 일이지만, 정확하게
제가 뭘 찾고 있는지도 모릅니다.
정확하게 어떻게 생겼는지도 모르는거죠.
그게 문제를 정말 어렵게 만듭니다.
그런 일을 할 때, 할 수 있는 일이란
이런 이진 정보 가운데
여러 종류의 부분을 들여다 보고
각 부분을 해석해서 제가 찾는 것이 있는지
찾아내려고 하죠.
시간이 지나 제가 찾으려는 것을
발견했다는 생각이 듭니다.
이걸지도 몰라.
거의 맞는 것 같은데 확신하지 못합니다.
그 안에 든 0과 1이 뭘 나타내는지 모르는 거죠.
그러면 그걸 조합해보려고 합니다.
운도 많이 따르지 않아서
이렇게 마음 먹죠.
이걸 해내고 말겠어.
주말에도 와서 일하고
이게 무슨 뜻인지 알 때까지
포기하지 않을거야.
그리고는 토요일 아침에 자리에 나와
10시간 정도 집중합니다. 퍼즐의 모든 조각은 갖고 있지만
다 맞추지 못한 것과 비슷합니다.
이들 0와 1이라는 숫자의 의미를 모르는 겁니다.
15시간 째에,
그 안에 무엇이 들었는지 좀 더 나은 그림을 갖게 되지만
제가 들여다보고 있는 것이
찾고 있는 것과는
아무런 관련이 없다는 생각이 들기 시작합니다.
20시간이 되자, 조각들이 맞춰지기 시작합니다.
아주 천천히요. --(웃음)--
이 시점에서 제가
길을 잘못 들어섰다는 확신이 듭니다.
하지만 포기하지 않았습니다.
실험실에서 30시간을 보낸 후,
제가 찾고 있는 것을 정확하게 알아냈습니다.
제가 옳았어요. 그건 제가 찾고 있던게 아니었습니다.
30시간이나 0과 1의 조각을 맞춰
찾아낸 것이 겨우 새끼고양이 사진이었죠.
(웃음)
이 고양이를 찾느라 제 인생의 30시간이나 허비했는데
제가 찾으려고 했던 것과는
아무런 관련도 없는 것이었어요.
맥빠지고 지쳤습니다.
실험실에서 30시간을 보내고 몸에서 냄새가 많이 났겠죠.
그만두고 집에 가는 대신에
한 걸음 물러나
제 자신에게 물었습니다. 뭐가 잘못 된거지?
어떻게 그런 바보같은 실수를 했담.
난 이런 걸 정말 잘했잖아.
이건 내 직업이기도 한데
도대체 어떻게 된거지?
이런 수준에서 정보를 보면
무엇을 하고 있었는지 잊어버리기 쉽다고 생각했습니다.
나무를 보다 숲을 못 볼 때가 있죠.
틀린 토끼 굴을 찾거나
잘못된 일을 하느라 엄청난 시간을
낭비하기도 하고요.
하지만 이런 운수 대통한 날도 있었습니다.
첫 날부터 완전히 틀린 자료를
보고 있었습니다.
컴퓨터는 0과 1을 사용해서 생각합니다.
사람은 그런 방식으로 생각하지 않지만
컴퓨터처럼 생각하도록 적응해서
이런 정보를 이해합니다.
우리의 생각을 문제에 맞추는 대신에
문제가 우리 생각에 맞도록
해야 했죠.
왜냐하면 인간의 두뇌는 많은 양의 자료를 분석하는데
엄청난 잠재력을 갖고 있으니까요.
이런 식은 아닙니다.
이것을 올바른 정보로
변환시켜서 그런 잠재력을
풀어낼 수 있다면 어떨까요?
이런 생각을 가지고
저는 지하 실험실을 뛰쳐나와
집의 지하실로 뛰어갔죠.
비슷한 환경이긴 하지만
차이점이라면 직장에서는
사이버 관련 물건에 둘러싸인다는 점이고
현 상황에서 사이버가 문제점인 것 같았거든요.
집에서 이제껏 배웠던 모든 것이 있습니다.
그래서 찾을 수 있는 모든 책을 뒤지고
생각했던 모든 아이디어도 둘러보고
어덯게 이 문제를 하나의 영역에서
완전히 다른 영역의 것으로 바꿀 수 있을지 생각해봤죠.
가장 큰 문제는
이 문제를 어떤 형태로 바꿀까 하는 것이었습니다.
두뇌가 완전히 자연스럽게
탐구할 수 있는 것에 뭐가 있을까?
제 답은 시각적인 것이었어요.
인간은 시각 정보를 분석하는데 엄청난 능력이 있습니다.
우리는 색의 변화나 깊이의 차이,
서로 다른 이런 신호를 종합하여
우리를 둘러싼 세상을 일관된 그림으로 인지합니다.
대단한 일이죠.
만약 우리가 이진 패턴을
시각 신호로 변형하는 방법을 찾는다면
우리의 뇌가 가진 능력을 사용하여
이런 과정을 수행할 수 있을 겁니다.
그래서 저는 이진 정보를 보면서
스스로 물었습니다.
이런 걸 처음 봤을 때 무엇을 하지?
제가 하고자 했던 첫번째,
답하고 싶었던 첫번째 질문은
"이게 뭐지?" 였어요.
그것이 하는 일이나 작동방식에는 관심이 없었습니다.
제가 알고 싶은 것은 "이게 뭘까?" 였죠.
그걸 알아내는 방법은
뭉치를 보는 겁니다.
이진 정보가 순서대로 이루어진 뭉치들 말이죠.
그리고 이 뭉치들의 관계를 봅니다.
이렇게 순서를 충분히 모으면
저는 이 정보가 정확하게 무엇인지
아이디어를 갖기 시작합니다.
자 이제 테러리스트의
전화기를 폭파시키는 경우로 되돌아가 보죠.
이것은 영어 문장이 2진 단위에서
보이는 형태입니다.
이것은 제가 검사를 하면 보게 될
연락처 목록의 모습이예요.
이 목록을 이런 수준에서 분석하기란 굉장히 어렵지만
제가 찾고자 하는
2진 정보의 뭉치를 보는 대신
그것을 시각적으로 표현하고
그 관계도 표시해 보면
이런 것을 얻게 됩니다.
이것은 영어 문장을
시각적으로 추출해서 본 모습입니다.
한 순간에
그것으로부터 0과 1로 된
똑같은 정보를 볼 수 있지만
완전히 다른 방식으로 보입니다.
곧바로 알아볼 수 있는 방식이죠.
우리는 즉각적으로 여기서 모든 패턴을 인식할 수 있습니다.
제가 여기서 패턴을 찾는데 몇 초 밖에 걸리지 않지만
0과 1로부터 그런 자료를 얻는데
몇 시간, 며칠이 걸리기도 하죠.
이런 패턴이 무엇을 나타내는지 배우는 데에는
누구든 몇 분이면 됩니다.
하지만 그런 동일한 패턴이
0과 1로 되어 있을 때는 사이버에서
몇 년의 경험이 필요합니다.
이 부분은 소문자로 되어 있고
그 연락처의 목록 안에서
그 뒤로 소문자가 이어집니다.
이것은 대문자가 이어졌고
대문자 뒤에 소문자, 소문자 뒤에 대문자가 있죠.
이것은 빈칸이고 이것은 엔터가 만든 패턴입니다.
저희는 몇 초 만에 2진 정보를 매우 세밀하게
조사할 수 있습니다.
반면에 이런 수준에서는 몇 주, 혹은 몇 달이 걸리기도 하죠.
이것은 휴대 전화에 들어있는
이미지의 모습입니다.
그런데 이것은 시각적으로 추출했을 때
보이는 모습입니다.
이것은 음악의 모습이고
이것을 음악을 시각적으로 추출한 것입니다.
제게 가장 중요한 것은
휴대전화 내에 있는 이런 코드의 모습니다.
제가 궁극적으로 찾고자 하는 것인데
시각적으로 추출한 것입니다.
제가 이것을 찾았다고 해서 휴대전화기를 폭파시킬 수는 없습니다.
0과 1로 된 이런 것을 찾는데
몇 주씩 걸리기도 하지만
이런 시각적 추출물을 얻는 데에는
몇 초면 됩니다.
이 모든 과정에서 가장 대단한 것 가운데 하나는
이를 통해 새로운 정보, 즉 이제까지는 보지 못했던 것을
볼 수 있는 완전히 새로운 방법을 알게 된다는 것입니다.
저는 2진 수준에서 영어가 어떤 모양인지도 알고
영어의 시각적 추출 결과도 알고 있습니다.
하지만 제 일생에 러시아어의 2진 정보는 본 적이 없습니다.
가공 이전의 0과 1에서 제가 찾고 있는 것을
알아내는 데에는 몇 주가 걸립니다.
하지만 인간의 두뇌는 이런 시각적 추출물의 내부에 있는
이런 미묘한 패턴을 금방 배우고
인식하기 때문에
우리는 새로운 상황에서
그런 것들을 무의식적으로 적용할 수 있습니다.
이것은 시각적으로 추출한
러시아어의 모습입니다.
이제 저는 한 언어가 어떻게 생겼는지 알기 때문에
잘 모르는 다른 언어도 알아볼 수 있습니다.
이것은 사진의 모습이고
이것은 클립 아트입니다.
이것은 휴대전화에 들어있는 코드의 모습이고요.
반면에 이것은 컴퓨터에 든 코드의 모습이예요.
우리의 두뇌는 가공 전의 0과 1을 보고는
절대 알아낼 수 없는 방법으로
이런 패턴을 알아냅니다.
하지만 사실 이런 방법으로 할 수 있는 것을
겨우 수박 겉핥기 정도 한 것이예요.
이제 겨우 시각 정보를 처리할 수 있는
잠재력을 풀어내기 시작한 것입니다.
똑같은 개념을 사용하여 현재의 자료를
3차원으로 바꾸면
정보를 알아내는 완전히 새로운 방법을 얻게 됩니다.
순식간에 여기에 담긴 모든 패턴을 알아내고
코드와 관련된 X자를 볼 수 있고
글자와 관련된 사각형도 볼 수 있죠.
아주 작은 시각적 인공물도 알아낼 수 있어요.
0과 1에서는 수 주일,
몇 달이나 걸렸던 것이
바로 분명하게 보입니다.
일종의 시각적 추출법을 사용한 것인데요.
이 방법을 계속해 나가
그 안에 정보를 점점 다 많이 넣어보면
수십 억개의 0과 1을 겨우 몇 초안에 처리할 수 있는
능력이 있다는 것을 알게 됩니다.
그저 우리 머리에 내장된 패턴 분석 능력을
이용하는 것만으로요.
이건 정말로 도움이 되고 대단한 것이지요
그런데 이 모든 것이 제가 찾고 있는 것을 알려줍니다.
이 지점에서, 시각 패턴을 근거로
전화기에 있는 프로그램을 찾아낼 수 있습니다.
하지만 그것으로 밧데리를 폭파하기엔 불충분합니다.
그 다음에 찾을 것은 밧데리를 제어하는 코드에요.
바늘 통에서 바늘을 찾는 문제로 되돌아왔죠.
그 코드는 시스템 안에 있는 다른 대부분의 프로그램과
거의 비슷하거든요.
밧데리를 제어하는 코드를 찾지 못할 수도 있지만
그와 비슷한 것들이 상당히 많습니다.
화면을 관리하는 코드,
단추를 관리하는 코드, 마이크를 관리하는 코드.
밧데리를 관리하는 코드를 못 찾아도
한 가지는 확실하게 찾아낼 수 있습니다.
자 이제 2진 정보 분석에서 다음 단계는
서로 비슷해 보이는
정보의 조각들을 보는 겁니다.
2진 수준에서 하기엔 정말 힘든 과정이죠.
하지만 그런 유사성을 시각적 추출물로 변형시키면
원 자료를 검토할 필요도 없습니다.
제가 해야 할 일은 비슷한 조각들을 볼 때
이미지가 나타나기를 기다리는 거죠.
제가 찾고 있는 것을 정확하게 알아내기 위해
빵부스러기를 따라가듯 이런 일련의 유사성만 따라가면 됩니다.
전체 과정의 이 지점에서
저는 밧데리를 관장하는
코드를 찾아냈습니다.
하지만 여전히 전화기를 폭파하기엔 불충분합니다.
퍼즐의 마지막 조각은
그 코드가 밧데리를 어떻게 관장하는지
알아내는 겁니다.
그러려면 그 2진 정보 안에서
엄청나게 미세하고 자세한 관련성을
찾아내야 하죠.
0과 1을 다루면서 생기는
또 다른 어려움입니다.
하지만, 그 정보를
물리적 표현으로 변형하면
등을 기대고 앉아 시각영역이 나머지 어려운 일을 하도록 두면 됩니다.
시각영역이 모든 세세한 패턴을,
중요한 모든 패턴을 찾아줍니다.
그 코드 조각들이 어떻게 조합하여
밧데리를 조작하는지 알아내는 거죠.
이 모든 과정은 몇 시간 만에 수행됩니다.
과거에는 이런 과정을 수행하는데
몇 달씩 걸리곤 했죠.
이제 모든 일이 순조롭고
이론적으로 테러리스트의 전화기를 폭파하기에도 좋습니다.
저는 이것이 일상 생활에서도 작동하는지
알고 싶었습니다.
그래서 제가 과거에 봤던 몇몇 자료에
똑같은 개념을 적용하여 실험해 봤습니다.
하지만 엄청나게 많은 2진 정보 안에서
아주 미세하고 특수한 프로그램 조각을
찾으려고 해봤습니다.
이런 수준에서 그걸 봤는데요.
옳은 것을 보고 있다는 생각이 들었습니다.
다만 여기에는
제가 찾고있는 프로그램에서 기대할 수 있는
연결성은 없었습니다.
사실 저는 이것이 뭔지 확신할 수 없었지만
한 단계 물러나 프로그램 안에서
유사성을 들여다 보자
저는 다른 프로그램들에 들어있는 유사성을
갖지 않는다는 것을 알게 되었습니다.
사실 저는 코드를 들여다 볼 수도 없습니다.
이런 관점에서 보면
사실 이건 코드가 아니에요.
이것은 일종의 영상이죠.
그리고 저는 그 영상으로부터
영상이 아니라 사진임을 알 수 있죠.
이제 저는 그것이 사진임을 알고 있으며
그런 정보를 몇초안에 시각화하고 이해할 수 있는
십여가지의 다른 2진 정보 변환 기술을 갖고 있으므로
이런 정보를 가지고
십여가지의 시각적 변환 기술을 적용해볼 수 있습니다.
정확하게 우리가 찾고 있는 것을 찾아내려는 것이지요.
제가 본 --(웃음)--
이것은 다시 복원한 새끼고양이 사진입니다.
이런 것이 가능한 이뉴는
매우 어려운 문제를
우리의 두뇌가 자연스레 다룰 수 있는 형태로
변형하는 방법을 찾을 수 있기 때문입니다.
이게 어떤 의미일까요?
음, 새끼고양이로서는
더 이상 0과 1 사이에 숨을 수 없다는 뜻이죠.
제게는 더 이상 쓸데없이 주말을 허비하지 않아도 된다는 뜻입니다.
사이버로서는 가장 불가능해 보였던 문제에 도전해볼 수 있는
완전히 새로운 방법이 생겼다는 뜻입니다.
진화하고 있는 사이버 전쟁이라는 무대에서
새로운 무기를 가지게 되었다는 뜻입니다.
하지만 우리 모두에게는
이제 사이버 공학자가
비상 상황에 대응하는 첫번째 대응자가 될 능력을
가진다는 의미입니다.
초를 다투는 상황에서
나쁜 놈들을 멈춰서게 할 방법을 찾아냈다는 뜻입니다.
감사합니다.
(박수)