Top Coder RAW novel - Chapter (113)
탑 코더-113화(113/303)
# 113
치고 박고
선진 전자 마케팅 담당 황수찬 대리는 망연자실 한 표정으로 모니터를 보고 있었다.
“시발······.”
옆에서 보조하던 신입사원이 상체를 기울이며 물었다.
“네?”
“재부팅 됐어.”
“헐··· 그 보고서 오늘까지 보내야 한다고 하셨잖아요.”
“내 말이······.”
황수찬은 넋이 나간 표정으로 모니터를 보고만 있었다. 화면은 저절로 재부팅이 되며 익숙한 윈더 로고가 나타나다.
“비정상 종료 되면 윈더 오피스에서 자동 저장 할 겁니다. 너무 걱정 마세요.”
신입사원의 위로에도 황수찬의 굳어진 표정은 풀리지 않았다.
“너 못 들었냐. 요새 사내 PC들 원인 불명으로 자꾸 재부팅 되는 거.”
“설마······.”
“나도 그건 것 같다.”
이내 떨리는 손길로 작업하던 문서를 클릭해 보았다.
Å★●●◇∪∂⌒≤《
????′▷♤♭▷↕㏂
특수문자의 향연.
다른 PC에서 일어났던 현상과 정확히 일치했다.
-원인불명의 재부팅.
-당시 열어두었던 작업 파일 깨짐.
-복구 불가.
근래 회사에서 갑자기 일어나고 있는 현상이었다.
“어제 백업 해둔 파일 밖에 없는데······.”
그 걸 막는 유일한 방법은 복사본을 만들어 두는 것.
복사본을 만들어 놓지 않았다면 그때 까지 하던 작업은 전부 날아갔다고 봐도 무방했다. 신입사원이 마른 침을 삼키며 물었다.
“그러면 오늘 하루 종일 작업 하신 게······.”
황수찬이 무겁게 고개를 끄덕였다.
지금 시간이 오후 3시.
아침 9시에 출근해 오후 3시까지 점심도 거르며 일했던 게 전부 날아가 버렸다.
“젠장.”
밀려드는 허탈함에 온 몸에 힘이 쭉 빠져버렸다. 손 끝 하나 까딱하기 싫어졌다.
“PC 지원 팀에 한 번 연락해보세요. 복구 될 수도 있잖아요.”
“거기 사정 모르냐? 일이 너무 많아서 아무리 전화해도 안 받잖아. 시발 뭐가 어떻게 돌아가는 건지.”
황수찬이 깊은 한숨을 내쉬며 푸념을 늘어놓았다.
고동만의 PC 라고 해서 예외는 아니었다.
벌써 다섯 번째.
지원팀에서 바꿔준 PC만 세 대였다. 지원팀 직원이 4번째 노트북을 들고 올라와 설치했다.
“뭐야 이거. 왜 또 이래.”
“아무래도 윈더 OS 문제 인 것 같습니다. 그래서 현재 문의를 넣어 놨는데··· 아직 답변이 도착하지 않았습니다.”
“우리 쪽 소견은?”
“포맷을 하면 당분간 멀쩡해지는 걸로 봐서 바이러스에 감염 된 게 아닌가.”
“바이러스? 매일 V7에서 나온 바이러스 검사 프로그램을 돌리는 데 무슨 바이러스.”
고동만이 몰아치자 지원팀 직원은 입맛만 다셨다.
“그, 그것 까지는 저도 잘······.”
고동만이 한숨을 내쉬며 말했다.
“알았으니까 나가봐.”
지원팀 직원이 나가고 고동만이 비서에게 물었다.
“아무리 생각해도 뭔가 이상해······.”
“현재 문제가 커지고 있습니다. 외부로 서비스 되는 서버쪽에서도 재부팅 현상이 나타나고 있어. 당장 선진전자 홈페이지부터 접속이 안 되는 현상이 5배나 늘었습니다.”
“윈더 쪽에서 답변은?”
“지원팀 말대로 기다려보라는 입장입니다. 자신들의 문제는 아니라고 합니다.”
“강 대표라면 어땠을까.”
“······.”
“아마 해결 했을 것 같아. 그렇지?”
비서도 같은 생각이었다. 그러나 현재 선진과 시내소프트가 어떤 관계 인지 알기에 아무 말도 할 수 없었다.
“예카테리나 박사도 넘어갔고, ZONE이 선 탑재 앱 에서 빠지면서 미 국방부 APL에서도 빠지고. 선진 전자도 ZONE 서비스 사용을 대폭 축소. 이런 상황에서 도움을 요청한다는 건 어불성설이겠지?”
비서가 무겁게 고개를 끄덕였다.
“잘못하면 전체 PC를 전부 바꿔야할 사태가 올지도 모르는 마당에. 방법이 없다니.”
선진에서 사용하는 PC만 수 만 대.
그걸 전부 바꿔야 한다는 건 생각만으로도 끔찍했다.
***
승호는 요즘 매일 벌어지고 있는 희한 한 풍경이 아직도 잘 적응이 되지 않았다.
“다들 가까이 다가가길 무서워해요.”
“왜?”
“무섭다기 보다는 뭐랄까··· 그런 느낌 있잖아요. 같은 세계 사람이 아닌 것 같은? 연예인 중에 정우성을 실제로 본 사람들이 느끼는 그런 감정?”
“네 말은 예카테리나 박사가 연예인 같다는 거 야?”
“사실··· 연예인 보다 더 빛이 나요.”
“으, 응?”
“회사에 팬클럽도 결성 된 거 아세요?”
승호가 고개를 흔들자 고동수가 수줍게 말을 꺼냈다.
“예카예카 라고······.”
“설마 너도 회원이냐?”
“열심히 인공지능 공부하려고요. 보니까 박사님은 똑똑한 사람을 좋아하시는 것 같더라고요. 대화가 안 통하는 사람은 아예 상대도 안 해주시니.”
그런 것 같기는 했다. 예카테리나 시내 소프트로 옮겨 온지도 벌써 일주일. 그 동안 자신을 제외하고 대화 자체를 하지 않는 것 같았다. 둘의 대화에 최기훈이 끼어들었다.
“그러니까 참 다행이야. 만약에 네가 외국에 있을 때 회사로 왔어봐. 어휴 생각만 해도 끔찍하다.”
승호가 피식 웃음을 흘릴 때 모니터에서 시선을 옮기던 예카테리나와 눈이 마주쳤다. 이내 예카테리나가 입을 열었다.
“미스터 강. 잠깐 대화 좀 할까요?”
승호가 고개를 끄덕이며 예카테리나에게 다가갔다.
아직은 업무에 적응하는 단계였다. 예카테리나는 알고리즘과 코드를 살피다 모르는 게 있으면 이렇게 종종 질문을 해왔다. 예카테리나가 코드의 한 부분을 가리키며 말했다.
“여기 활성화 함수를 보면 가장 최근에 많이 사용되고 있는 ReLU가 아니라 시그모이드를 사용하는 것 같은데 이유가 있나요?”
예카테리나는 대답을 기다리지 않고 말을 이었다.
“ReLU가 학습의 속도가 빠르고, 사용하기에 더 편리하다는 장점이 많잖아요.”
말이 끝나길 기다린 승호가 질문을 던졌다.
“활성화 함수의 목적이 무엇일까요?”
승호의 질문에 예카테리나가 살짝 입술을 깨물었다. 일주일 동안 언제나 이런 식이었다. 자신이 질문을 하면 승호는 언제나 질문으로 대답했다.
“딥 러닝 네트워크에서 노드를 통해 들어온 입력 값들은 곧바로 다음 레이어로 전달하지 않고, 비선형 데이터로 바꾸기 위해서죠. 비선형이 신경망을 깊게 만들어 주기 때문에.”
승호가 빙그레 웃으며 말했다.
“맞아요. 망을 깊게 하면 매개 변수가 줄어들고, 필요한 연산의 수가 줄어들게 되면서 결과는 더욱 정확해 지죠. 인공지능이란 것도 결국에는 입력 값에 대한 최적의 출력 값을 찾아내는 것이니.”
사무실 한 가운데서 벌어진 토론에 직원들이 귀를 기울였다. 이는 승호가 의도한 바였다. 예카테리나와의 대화를 통한 직원 교육.
“시그모이드 함수를 사용한 이유를 아직 말해주지 않았어요. 학습이 느려질 수 있고, Gradient Vanishing 현상이 발생해 출력 값이 0으로 수렴해 버리는데.”
“초기 버전의 시그모이드 함수라면 그렇게 될 수 있을 겁니다.”
승호가 허리를 숙여 모니터의 한 부분을 손가락으로 가리켰다.
“전체 구조는 시그모이드 함수이지만 그 내부 내용은 약간 다릅니다. 이 부분을 보시면 함수를 호출 하는 도중에 Gradient Vanishing 현상을 막기 위한 보완 코드가 들어가 있어요. 그걸 실행하게 되면 Gradient Vanishing 현상을 막고 시그모이드 함수의 장점은 살리고 단점은 보완 되죠. 즉 인간과 비슷한 창의적인 사고를 할 수 있게 된다는 말이에요.”
예카테리나가 눈을 가늘게 뜨고 모니터에 집중했다. 마우스를 움직여 승호가 가리킨 부분을 따라가 빠르게 코드를 훑었다.
“그러니까 ONE에서는 시그모이드 함수의 단점을 보완하고 장점을 살리는 방향으로 설계 되었다. 이 말인가요?”
승호가 고개를 끄덕였다.
“맞아요. 시그모이드 뿐만이 아니라 활성화 함수에서 계산을 끝낸 출력 값을 검증하는 옵티마이징 작업에서도 기존에 사용하고 있는 Momentum, Nag를 그대로 사용한 경우는 없습니다.”
승호의 말이 이어질수록 예카테리나는 입술을 깨물었다. 실제로 이곳에 와서 보니 ONE은 시내 소프트만의 고유 기술이 수도 없이 적용되어 있었다. 그리고 그건 자신이 빅스를 만들며 했던 고민들을 해결 할 수 있는 기술 들.
이 남자의 실력은 자신이 생각한 것 그 이상이었다.
어쩌면.
정말 포트의 델타를 넘어 설 수도 있다는 기대감에 가슴이 두근거렸다. 승호가 더 자세히 설명해 주기 위해 손을 뻗었다.
“잠시.”
그리고 마우스 위에 손을 올리려 할 때.
예카테리나의 손위에 승호의 손이 겹쳐졌다.
“아, 죄송합니다.”
화들짝 놀란 승호가 손을 땠다. 그러나 예카테리나는 아무런 반응을 보이지 않았다.
“옵티마이징 함수 쪽으로 이동하면 되나요?”
“네.”
모니터에 표시되는 코드가 변했고, 예카테리나의 볼에도 발간빛이 감돌기 시작했다.
“그쪽을 보시면 옵티마이징 함수의 한 종류인 Momentum 함수를 변형한 코드가 있습니다. 이 코드 구조가 어떻게 되느냐 하면······.”
승호의 설명이 이어졌고, 예카테리나 볼에 감 돌던 붉은 빛도 조금씩 사그라 들었지만.
‘뭐지······.’
심장의 두근거림은 잦아들 기미가 보이지 않았다.
***
선진 전자 본사 대강당.
SA 팀 팀장이 지금까지의 분석 결과를 발표하고 있었다.
“대부분의 보안 SW가 작동하는 방식은 화이트 리스트입니다. 즉 등록된 프로그램만이 실행될 수 있도록 하는 겁니다. 문제는 이번 랜덤 리붓 악성 코드는 화이트 리스트 방식으로 해결이 되지 않는 다는 겁니다. 다음.”
화면의 PPT가 넘어가고, 또 다른 장표가 나타났다.
“보시다 시피. 해당 악성 코드가 윈더 OS의 필수 서비스인 taskschedule.exe에 자동 등록되어 실행되고 있습니다. 이 taskschedule.exe는 윈더 내부에서 스케쥴링에 의해 돌아가는 작업으로 예를 들어 업데이트를 체크 하거나, 내부 시스템 파일 상태를 체크 하는 작업을 하는데 이 프로세스는 멈춰도 재시작이 되기 때문에 서비스를 중지 시키는 걸로는 해결이 되지 않습니다.”
그러자 대 강당에 모여 있던 사람 중 한 명이 손을 들었다.
“그러면 윈더 쪽 문제라는 말씀 아닌가요? 저희 가 받은 메일에서는 윈더에서는 아무런 문제가 없다고 했는데.”
“그게 약간 애매 합니다. taskschedule.exe에는 관리자 권한이 있으면 특정 서비스가 등록되는 것이 정상 프로세스입니다.”
“그러면 문제가 뭐라는 말씀이십니까?”
“문제는··· 어디에서 관리자 권한이 탈취되고 있는지 알 수 없는 게 문제입니다.”
“네?”
“해당 악성코드 내부가 분석이 돼야 어디에서 관리자 권한을 탈취. 재부팅을 시키는지 알아 낼 텐데··· 아직 그 부분 까지 파악 하지 못했습니다.”
SA 팀 팀장의 이마에서 식은땀이 한 방울 떨어져 내렸다. 등 뒤는 이미 축축해졌다. 한 임원이 어이가 없다는 듯 말했다.
“지금 그걸 말이라고.”
SA 팀장이 겨우 입을 열었다.
“디텍트, V7, 시멘트 3사에 전부 의뢰를 해놓은 상태입니다. 빠른 시일 내에 해결이 될 거라 기대하고 있습니다.”
“하아······.”
맨 앞좌석에 앉아 있던 고동만이 긴 한숨을 내쉬었다.
그때.
마치 기다렸다는 딧이 PPT가 떠 있던 스크린이 시커멓게 변했다.
“이게 또······.”
스크린을 지켜보던 직원들이 한숨을 내쉬었다. 당연히 또 다시 재부팅 되는 걸로 생각했다.
그러나.
수초가 지나도 아무런 반응이 없었다. 발표를 하던 SA 팀 팀장이 당황한 표정으로 전원 버튼을 눌렀다.
“어······.”
꾸욱.
아무런 반응이 없자 또 한 번 눌러 보았다. 그래도 반응이 없었다. 노트북 전원 버튼 부분에 밝은 빛은 들어와 있었지만 스크린에는 아무런 글자가 나타나지 않았다.
또 한 번 꾹.
전원은 껐다 켜졌지만.
까맣게 변한 스크린은 다시 밝아질 기미가 보이지 않았다. 상황을 지켜보던 팀장이 입맛을 다셨다.
“이거··· 아무래도 MBR이 파괴된 것 같습니다. 이런 경우는 파괴형 부트킷이 동작했다는 건데.”
MBR (Master Boot Record).
컴퓨터가 부팅하는데 필요한 정보가 저장되는 곳으로 전원을 켜면 가장 먼저 MBR 영역을 읽어 OS를 띄운다. 즉 MBR이 파괴 되었다는 것은 OS를 띄울 수 없다는 말.
컴퓨터가 깡통이 되었다는 말이었다. 설명을 전해 들은 고동만이 중얼 거렸다.
“그러면··· 서버들 MBR이 파괴되면 어떻게 되나?”
“아마··· 서버가 죽을 겁니다.”
고동만이 재차 물었다.
“엔진 앱 스토어를 비롯해 홈 페이지. 우리가 사용하는 ERP 전부 죽는다는 말인가?”
“···네.”
그때.
띠링 소리와 함께 핸드폰이 울리며 문자가 한 통 도착했다.
[긴급] 보안조치레드.-현 시간 부로 전 임직원은 ‘보안조치레드’ 상황에 따른 행동 절차를 준수해 주시기 바랍니다.
1. PC 점검 및 결과 보고.
2. 타 부서 이동 자제.
3. 거동수상자 확인.
4. 중요 작업 문서 보관 철저.
고동만이 망연자실한 표정으로 문자를 확인했다. 우려했던 일이 일어나고 있었다.