알파고, 시큐리티
알파고 충격의 허와 실
‘알파고 충격’이란 말이 이리도 널리 회자된다는 게 오히려 충격이다,, 기계는 원래 계산을 사람보다 잘한다. 지금껏 엑셀보다 계산 잘하는 사람 본 적 없다. 물론 바둑은 여러 게임들 중에서 경우의 수가 압도적으로 많은 편이라 당분간은 사람이 이기지 않을까 예상했지만 그래 봤자 결국엔 지게 되어 있는 일이라, 내심 기대했고 또 실망했다만 아주 이상한 일이 벌어진 건 아닌 것. 이제 바둑은 끝났다? 체스는 이미 옛날에 기계한테 졌다. 그래서 체스가 끝났나?
유일한 인간 승리자는 “이건 불공정 사기극!” 주장했던 모 변호사뿐이라는 말도 돌던데,, 비전문가의 발언이니 굳이 따질 만한 건도 아니겠다만, 직접 목격한 SNS 링크 공유가 수십 회가 넘고 해당 발언에 기반해 작성된 기사도 너무 많이 유포되다 보니 “이세돌 혼자서 프로기사 수천 명과 맞붙은 아주 비겁한 판이었다!” 식의 말도 흔히 볼 수 있다. 역시 대응 가치 없다 싶지만 떠도는 풍문의 오류 중 몇 가지는 중요하니까, 짚어 두자.
우선, 알파고의 작동은 “브루트 포스” 방식이 아니다. 오히려 브루트 포스 방법론으로는 바둑을 이길 수 없기 때문에 인공지능, 아니 머신러닝, 아니 ‘딥러닝(Deep Learning)’을 시도한 것으로 보는 게 옳다. 필터링 없이 모든 경우의 수를 싹 다 계산하는 브루트 포스 방식으로는 경우의 수가 우주적 스케일에 이르는 바둑 문제를 현재 해결할 수 없다. 그런데도 구글이 그렇게 했다? 그렇다면 구글한테 노벨슈퍼컴퓨팅상이라도 줘야 한다. -_-
“알파고는 KGS 바둑 서버의 기보 수십만 개를 때려박고 대국 중에 컨닝했다”는 말도 사실이 아니다. 머신러닝의 학습을 간단히 나눠 보면 1)인간이 가르쳐서 배운다, 2)바둑판과 돌만 쥐어 주고 기계가 시행착오를 통해 학습한다, 3)게임의 룰 파악을 위한 데이터를 던져 주면 그걸로 일단 좀 배운 뒤 시행착오 통해 학습한다.. 정도로 나눌 수 있는데, 알파고는 그 중 3)에 해당한다. 다시 말해, ‘교사학습(Supervised Learning)’을 통해 학습된 정책망들끼리 서로 대전하며 그 결과에 따라 정책망과 가치망의 성능을 개선하는 ‘강화학습(Reinforcement Learning)’을 반복함으로써 점차 강력해진다. KGS 기보는 학습 초반의 교사학습(Supervised Learning) 과정에만 사용되었다. 따라서 전문가들은 알파고의 강화학습 이후 기존 정석과 다른 정석이 나타나리라 예상했고, 실제로도 그리 되었다.
“컴퓨터 수천 대를 한꺼번에 동원했기 때문에 비겁하다!” 이건 뭐,, 여타 바둑 프로그램에 비해 알파고의 가장 큰 차별성은 하드웨어가 아니라 소프트웨어 알고리즘이다. 이세돌 9단과의 대국에 투입된 CPU 1920개와 GPU 280개로 중무장한 알파고가 CPU 1개짜리 싱글 알파고를 이길 확률은 77% 정도에 불과한데 향후 알고리즘 개선에 따라 그마저도 점차 낮아질 것이다.
다시 못 올 것에 대하여, 낭만에 대하여
“알파고는 바둑을 둔 게 아니다.” 이 말은 옳기도 하고 그르기도 하다. 알파고는 오로지 이세돌 타도를 노려 소위 ‘도장 깨기’ 하려고 만든 프로그램은 아니다. 오직 바둑을 위해 만든 게 아니란 뜻이니, 해당 방식의 딥러닝은 이후 정말 많은 분야에서 두루 쓰일 것이다. 상황을 노골적으로 적나라하게 말하자면, 지금껏 너무 많은 돈을 썼는데 앞으로는 훨씬 더 많이 써야 하니까 모종의 ‘흥행쑈’가 필요했을 뿐.
반면 달리 보면, 알파고는 너무나 바둑만을 둔 것이다. 대국 중 오로지 판과 돌만을 본 것. 우리네 인간들은 바둑판 위에서 참 많은 것들을 읽는다. 대국장에 당연히 있어야 할 게 없어서 이세돌 9단을 괴롭혔던 기세, 상대의 기분을 살피는 눈치 등 인간적인 게임 요소들 외에도, 사람들은 바둑판 위에서 세상만사 흥망성쇠의 알레고리를 읽기도 하고 통찰과 교훈 그리고 처세의 길을 발견했다고 느끼기도 한다. 포석과 전투, 정석과 변칙, 미생과 완생, 판세와 국면 등 바둑의 여러 면면은 그 자체로 대단히 흥미롭다. 바둑이 어마어마하게 위대한 그 무엇이라 여기는 지나친 정신주의는 사실 좀 웃기지만,, 그럼에도 그 나무판 위에 인간정신을 그려내는 뭔가, 말하자면 ‘유리알유희’가 있음은 부정할 수 없다. 그러니 이세돌 9단이 말했던 “바둑의 낭만”은 여전히 인간의 몫이다. 기계는 기계가 잘할 수 있는 일을 잘할 것이고.
이런 이야기를 패배한 인간의 ‘정신승리’일 뿐이라 하더라도 뭐, 할 말 없다. 사실이 그러하니까,, 아무튼, 그래서, 괜히 물 드니까 배 띄우는구나 싶은 빈 수레 호사가들 말고 보다 적확한 근거를 가지고 기계의 승리를 점쳤던 전문가들은 인간의 패배 이후 호들갑 떨지 않고 오히려 조용했던 것 아닌가 싶기도 하다. 아마도 만감이 교차했으리라..
인공지능의 강습, 어떤 직업의 종말
하지만 이거 하나만큼은 무조건 옳다. 어떤 직업들은 사라질 것이다. 왜 무조건 옳아? 애초 인공지능 연구개발에 그 어마어마한 돈을 쏟아붓는 까닭이 어떤 직업들을 없애기 위해서니까. 일도 하지만 퇴근도 하고 놀기도 하고 밥도 먹고 잠도 자고 불평불만도 많은 인간 노동자는 막 다루기 영 피곤하다. 24시간 일만 하는 기계로 대체한다면, 아 그 얼마나 편하겠나? 그래서 그 방향 연구개발에 그렇게 많은 돈이 투입되는 것이다. 반면 기술적으로 더 유의미한 명실상부한 인공지능, 그러니까 ‘강-AI’는 돈이 없어서 연구를 아예 못하고 있다. 피곤한 인간이 싫어서 기계 쓰려고 돈 투자하는 건데 인간 비슷한 걸 만들 까닭이 없기 때문.
요 며칠 ‘인공지능에게 뺏길 일자리 목록’이란 제목의 기사를 스무 개쯤 봤다. 아마도 그 목록에 ‘기자’가 들어 있어서 그런가 보다,, 로봇 기자는 지금도 활발히 활동하고 있다. 스포츠 경기 스코어 중계, 일기예보, 증권동향 등 데이터를 단순히 텍스트로 전환하는 작업과 페이지 클릭 수 등 독자반응에 따라 기사 배치 순서를 결정하는 편집 작업 등에 쓰인다. 어쨌든 지금껏 기자들이 하던 일이긴 하지만 기자라는 직업을 ‘대체’하리라는 전망은 지나친 비약이고, 목록에 오른 대부분의 직업들도 마찬가지. 지나치게 과장된 공포다.
하지만 어떤 직업들은 확실히 사라질 것이다. 그러니까, 기계적 단순동작을 반복하고 사회적 커뮤니케이션이 일에 미치는 영향이 적고 작업환경이 유해한 직업들. 일단 목록 상위에 오른 건 콘크리트공, 정육도축사, 고무 및 플라스틱 제품 조립원, 청원경찰, 조세행정 공무원 등이다. 하지만 딱 그 직업이 사라질 것이다..라기보다는 바탕에 깔린 맥락에 집중해 볼 일이다.
배운 게 도둑질이라, ICT 보안 관련 직업 중 인공지능 때문에 사라질 일이 뭘지 생각해 본다. 우선, ‘보안관제’. 보안관제란 어떤 기업에서 지속적으로 수행해야 하는 정보보안 업무를 위탁받아 제공하는 일종의 서비스업이다. 24시간 모니터링, 정책실정 및 침입시도 탐지, 분석 및 대응 등의 일을 한다. 딱, 인공지능이 할 만한 일들 아닌가? 인공지능은 잠도 안 자고 밥도 안 먹고 놀지도 않고 퇴근도 안 하며 온 종일 성실하게 그 일들을 훌륭히 해낼 것이다. 달리 보면, 해커들도 인공지능을 이용할 것이고 지금도 그러하니, 창과 방패의 기계적 진화에 따라 지금도 치열한 정보보안 전쟁터는 앞으로 점점 더 치열해질 것이다.
물론 모든 보안관제 직업이 사라진다는 말은 지나치다. 어떤 주제든 “모두 다” 그러면 대개 오류 아니던가. 인간적인, 즉 기계적으로 대체하기 힘든 역량이 뛰어난 소수는 살아남겠지. 인간적인 역량? 비판적 사고와 문제해결 능력, 네트워크 협업 및 사회적 영향력 통한 리더쉽, 호기심과 상상력, 순발력과 적응력, 효과적 구술/문서 커뮤니케이션, 자기주도적 사고 및 기업가 정신, 정보 분석 및 통찰 능력 등, 함축적으로 말하자면 ’21세기 생존기술’들이다.
인공지능을 이용한 정보보안의 미래
어차피 벌어질 일, “아 이제 우린 어떡해,,” 괜한 불안은 저만치 구석에 접어 두고 한 걸음 더 내딛어, 인공지능을 이용한 정보보안이 앞으로 나아가야 할 방향성에 대해 생각해 보자. 한창 연구가 진행되고 있는 분야라 아직 구체성 논하기엔 이르다 싶으니 대략의 뼈대만 간추려 보자.
지금까지의 보안기술 연구개발의 양상은 제약회사 연구소와 닮았다. 어떤 질병이 발견되면 그 병을 치료할 약을 만드는 식이다. 약 만들기 전에 당하는 게 그 유명한 ‘제로데이’ 공격이다. 근데 모든 사람의 체질이 하나 같진 않으니 사람마다 걸리는 병이 서로 다르고 병균 그리고 약제 성분에 노출되었을 때의 반응 또한 다르다. 그럼에도 그 모든 특수성을 총망라해 ‘일반적으로 병으로 볼 만한 것들의 목록과 그 치료제’를 연구하는 것이 오늘날 정보보안의 방법론이다. 여기서, 두 가지 문제가 발생한다. 방패의 한계 그리고 일반성의 오류.
우선, 방패의 한계
질병의 수가 늘면? 그만큼 치료약의 수도 늘어야 한다. 창이 커지면 방패도 커지고 창이 많아지면 방패도 많아져야 하는 것. 근데 질병 수가 갑자기 엄청나게 확 늘면? 즉, 창이 너무 커지면? 방패도 그만큼 커져야 하는데, 그러질 못한다. 전 지구의 악당들이 우루루 떼로 몰려들어도 그 수만큼 연구인력을 투입해 치료제를 만들어낼 수 없다. 그래서 위협 하나를 해법 하나로 막는 1:1 대응전략은 결국 질 수밖에 없는 전략이다. 해법을 찾기 위한 공격 패턴 분석 작업도 공격이 폭발적으로 늘어나면 인력을 초월한다. 그 와중에, 웹은 정말이지 말뜻 그
대로 폭.발.적.으로 팽창하고 있다.
이 문제를 해결하기 위해 공격의 수법을 프로파일링해서 위협의 논리를 파악해 역시 논리로써 대응하는 전략이 ‘로지컬 보안’이다. 로지컬 보안은 기존 ‘시그니처’ 즉 질명 목록 뒤지면서 치료제를 찾지 않고 공격의 위험성 자체를 논리적으로 탐지해 대응한다. 아직까지 알려지지 않아 치료제도 개발되지 않은 공격까지 논리 통해 탐지해 차단하는 ‘COCEP(Contents Classification and Evaluation Processing)’ 논리연산탐지 엔진 등이 대표적인 예다.
그리고, 일반성의 오류
앞서 말했듯 오늘날의 보안은 ‘일반적으로 병으로 볼 만한 것들의 목록’을 살핀다. 하지만 실제 현장에서의 가장 큰 위험은 사이트마다 제각각 다른 비즈니스 로직의 허점을 노리는 공격이다. 정상적인 접근으로 가장해 웹 어플리케이션의 허점을 노리는 공격이 전체 공격의 무려 9할을 차지한다.
해커 입장에서 보자면 무지 편한 일이다. 마치 정상적인 접근인 것처럼 위장해 네트워크와 시스템 계층의 보호막을 뚫고 들어와 서버와 인터랙티브하게 대화를 주고받으며 다 털어먹는다. 대표적 수법이 SQL 인젝션, 작년에 ‘뽐뿌’ 사이트 회원 196만 명의 개인정보를 털었다. 이런 공격은 그 자체로는 정상적 접근과 다를 바 없기 때문에 기존에 하듯 질병 찾듯 찾으면 찾을 수 없다. 해당 사이트의 허점을 노리는 거라 해당 사이트의 논리에 따라 찾아내야 하는데, 아니 그걸 어떻게 일일이 사람 손으로 하나,, 자본력과 기술력 차고 넘치는 대기업 아니면 못 해낼 일이다. 그래서, 기계에게 시키자는 전략이 ‘머신러닝 보안’이다.
로지컬 + 머신러닝, 인공지능 보안
공격 수법을 논리적으로 분석해서 얻은 대응논리로써 공격을 막고, 사이트마다 서로 다른 환경에 각각 최적화된 맞춤형 대응논리로써 정상으로 위장한 비정상 접근을 막는, 로지컬 + 머신러닝 보안, 이게 답이다. 근데,
그게 정말 답일까? 그렇다기엔 인공지능은 아직 너무 비싼 기술이다. 일단 데이터는 다다익선이라 제대로 써먹으려면 어마어마하게 많은 데이터를 가지고 있어야 하고 이를 모두 분석하고 가공할 기술력도 필요한데 데이터 사이언티스트 등 인력의 값이 유행 틈타 너무 비싸졌다. 그마저도 거의 모두 다 미국 독식. 그러니 뻔히 뭐가 문제고 뭘 어떻게 해야 할지도 알지만, 못한다.
그래서, 일반 개발자를 위한 머신러닝 툴킷이 절실하다. 공구 세트 구성품들 이리저리 짜맞춰 초대기업의 인하우스 머신러닝 툴에 준하는 기능성을 갖출 수 있는 툴킷. 그렇게 구현한 기능을 로지컬 보안 방법론에 더하면, 그것이 당장 생각해 볼 수 있는 인공지능을 이용한 정보보안의 미래 아닌가 싶다.
원래 알파고 이야기와 인공지능 보안의 필요에 대해 짧게 쓰려 했던 게 자판 또각또각 두드리다 보니 쓸데없이 너무 길어졌는데,, 간단히 정리하자면,
기존 ‘질병 찾아 치료하기’ 방법으로는 해결할 수 없는 각 사이트 맞춤형 보안,
로지컬 + 머신러닝, 인공지능 보안을 통해 해결할 수 있다.