Home > 전체기사
[벌레사냥꾼-1] 파브르 곤충기와 벌레, 그리고 버그
  |  입력 : 2019-12-05 16:15
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기
‘벌레사냥꾼’ 조현숙 박사가 소개하는 재미 있는 ‘사이버 보안’ 이야기

통신, 암호 분야에서 사이버보안에 이르기까지. 40여년의 세월을 정보통신 및 사이버보안 분야 최고 여성 전문가로 명성을 이어온 조현숙 박사가 그간 끝없이 지속해온 ‘벌레(Bug)’와의 싸움을 총정리해 펴낸 ‘벌레사냥꾼’이 보안종사자들 뿐만 아니라 보안의 기초를 배우고자 하는 사람들에게도 큰 관심을 불러 모으고 있다. 이에 본지에서는 단행본 ‘벌레사냥꾼’에 등장하는 재밌는 사이버보안 이야기들을 발췌해 소개하는 시간을 마련했다. [편집자 주]

[보안뉴스= 조현숙 국가보안기술연구소 소장] 초등학생 시절에 학교에서 나누어주는 『필독도서집』에는 항상 ‘우수 권장 도서’라는 별도의 목록이 있었다. 《플루타르크 영웅전》, 《안데르센 동화집》, 《이솝 우화》, 《플랜더스의 개》 등이 적혀있던 목록 말이다. 그 중에서도 파브르 곤충기가 지금도 가장 많이 떠오른다. 쇠똥구리가 겨우내 먹을 먹이를 쇠똥이나 말똥에서 채취하여 자기 몸체보다 수십 배는 더 크고 둥글게 만든 후에 뒷발로 자신의 집까지 굴려가는 모습을 표현한 것들이다.

[이미지=iclickart]


《파브르 곤충기》에도 나오듯이, 우리가 살고 있는 세상에는 아주 다양한 곤충들이 우리와 공존하고 있다. 메뚜기, 잠자리, 여치, 무당벌레 등 귀여워 보이거나 심지어 식량자원이 될 수 있는 곤충들도 있고, 모기나 파리와 같이 인간의 적이나 다름이 없는 곤충도 존재한다. 그러고 보면 곤충을 자연의 일부로 보지 않고 조각조각 나눠서 보기 시작한 것이 중학교에 들어가면서였던 것 같다. 입시 위주의 교육에 따라 모든 곤충들을 머리·가슴·배의 마디 구조를 가진, 날개와 다리가 각각 3쌍씩이며 더듬이가 1쌍인 ‘개체’라는 식으로 말이다. 그래서 시험문제도 항상 이런 식이었다. “그러면 곤충이 아닌 개체는 무엇일까요?” 답은 다른 것 다 무시하고 거미만 체크하면 되었다.

“거미는 곤충이 아니다”라는 교육을 어릴 때 받아서인지 거미를 보면 혐오스럽다는 생각마저 들곤 한다. ‘다르다’라는 인식이 머릿속에 주입되면서 곤충과 거미 사이에 벽을 만들어 놓았기 때문이리라. 하긴 이런 경우가 어찌 곤충과 거미에 대한 것만이겠는가. 아무튼 영화 <스파이더맨> 덕분에 거미가 친근하게 느껴질 법도 한데, 지금도 나는 거미만 보면 섬뜩하다. 이런 식의 부정적인 마음의 벽은 곤충의 범위를 확대한 ‘벌레’에 이르면 더욱 높아지는 것 같다.

그래서인지 사이버공간에서도 벌레(Bug)의 이미지는 영 좋지 않다. 특히, 할리우드의 영화감독들이나 게임 제작자들은 ‘악당’ 외계인 캐릭터를 벌레로 이미지화하기를 좋아한다. 예를 들면, 우리나라에서도 많은 젊은이들이 즐기는 ‘스타크래프트’ 같은 게임에서 무지막지하게 등장하는 벌레들은 게이머에게 괴로움을 준다. 하지만 게임은 즐기기 위한 놀이용 컨텐츠이고, 게임에서 벌레를 무찌르면 다음 스테이지로 넘어갈 수 있기에 도전의 대상이기도 하다. 그래서 게임을 하는 젊은이는 벌레와의 전투에서 카타르시스를 느끼기 마련이다.

▲벌레사냥꾼 책 표지[표지=인포더북스]

그런데 게임을 비롯한 각종 소프트웨어를 개발하는 엔지니어들은 오늘도 현실에서 또다른 ‘벌레’와의 전쟁을 벌이고 있다. 바로 소프트웨어 내부에 존재하는 버그(Bug)가 그것이다. 과거에는 버그를 ‘에러’나 ‘결함’이라고 불렀다. 그러나 에러나 결함은 개발자의 실수 때문에 발생하며, 전문가는 이러한 실수를 줄일 수 있다. 그런데 버그는 이러한 상식에서 벗어난 문제라고 볼 수 있기에 ‘버그’라고 따로 부르게 된 것이다.

이제 막 개발한 소프트웨어를 작동시킬 때까지만 해도 버그는 나타나지 않는다. 하지만 수많은 사용자들이 동시에 그 소프트웨어를 작동시키거나 특정한 행동을 하라는 명령어가 입력되면 소프트웨어가 혼란을 일으키면서 오동작하기 마련이다. 즉, ‘버그’가 나타나는 것이다. 이렇듯 버그는 소프트웨어 내부에 꽁꽁 숨은 채 여간해서는 잘 나타나지 않는다. 위에서처럼 특정한 환경이나 특수한 경우에만 발생한다. 그래서 버그를 찾아내어 제거하기가 쉽지 않은 것이다. 그런데 이쯤에서 《파브르 곤충기》를 읽었거나 곤충에 대해 아는 것이 많은 독자라면 “어, 이건 아닌데?” 할 부분이 있을 것이다. 바로 이 설명이 버그에 대한 것이라기보다는 버그가 살아가는 ‘둥지’에 관한 것이 아닌가 싶을 것이다.

버그의 둥지를 전문용어로는 ‘취약점(Vulnerability)’이라고 한다. 그런데 대다수 사람들은 왜 이러한 ‘둥지(취약점)’나 ‘소프트웨어의 결함’을 ‘버그’라고 부를까? 이는 미국 수학자 폴 니케트가 1953년에 ‘소프트웨어’라는 개념을 만들어내기 전, 즉 ‘콜로서스(Colossus)’나 ‘애니악(ENIAC)’처럽 집채만한 컴퓨터(계산기) 같은 하드웨어만 있던 시절의 영향이다. 그러니까 당시 하드웨어에 숨어들어간 나방 등 버그(벌레)를 찾아서 떼어내자 하드웨어가 다시 정상적으로 작동하는 일이 빈번했기 때문이다. 그래서 이러한 오동작 사유와 정비 과정을 ‘버그’ 와 ‘디버그(Debug)’라고 부르게 되었다. 다시 말해서 정상적으로 작동하는 하드웨어에 벌레(Bug)가 붙어 오동작이 발생한 것이고, 이 벌레를 제거하니 하드웨어가 다시 정상적으로 작동하더라는 의미다. 이를 소프트웨어에 적용하면, 소프트웨어가 정상적으로 작동하고 있을 때 벌레가 숨어들어와 고장을 일으켜 비정상적 작동을 하게 만든다는 뜻이 된다. 물론 ‘버그’에 공격을 당한 소프트웨어는 좀 더 복잡한 반응을 하게 된다.

▲벌레사냥꾼을 펴낸 조현숙 박사[사진=보안뉴스]

자연계에는 알려진 것만도 수만 종에 달하는 벌레들이 존재한다는 이야기가 있다. 이와 마찬가지로 사이버공간에도 다양한 버그들이 존재한다. 그리고 사이버공간의 버그들의 종류는 ‘의도적이냐, 비의도적이냐’ 혹은 ‘사람이 개입해서 생긴 것이냐, 아니냐’ 등으로 크게 구분된다. 예를 들면 다음과 같다. 사람이 개입한 경우지만 비의도적인 것으로는 프로그램 코드 작성상의 실수, 혹은 프로그램 설계 때의 잘못 등으로 인한 경우를 들 수 있다. 이런 버그는 프로그램이 끝없이 작동하는 무한 루프(Infinite Loop)에 빠져 사용자가 결과물을 출력할 수 없게 하거나, 컴퓨터가 과부하를 일으켜 망가지게 한다. 소프트웨어 제작자가 수치를 잘못 입력하거나, 존재하지도 않는 프로그램을 참조하라고 명령어를 집어넣어서 발생하는 경우도 해당된다.

컴퓨터 게임에 발생한 버그 때문에 게임을 즐기는 사람들이 말하는 소위 ‘치트’라는 무적의 캐릭터가 등장하여 해당 게임에 대한 관심도를 높여주는 경우도 있다. 하지만 하드웨어의 운영 프로그램 같은 소프트웨어에 버그가 발생하면 막대한 돈을 들여 개발한 해당 프로그램을 시장에서 회수하여 폐기처분해야 할 수도 있다. 그러고 보니 냉전 시대를 배경으로 한 어느 전쟁영화에서 핵폭탄을 탑재한 폭격기들을 통제하는 기지의 통신장비에 들어간 벌레 한 마리 때문에 “통신이 안 되는 걸 보니 기지가 공격당한 것 같다”는 식의 오해가 발생해 핵전쟁이 발발하는 결말이 나왔던 것이 생각난다. ‘고작 벌레 한 마리’가 우리의 사이버공간과 현실에 정말 끔찍한 결과를 초래할 수도 있는 것이다
[글_ 조현숙 국가보안기술연구소 소장]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

  •  
  • 0
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기


  •  SNS에서도 보안뉴스를 받아보세요!! 
모니터랩 파워비즈 6개월 2020년6월22~12월 22일 까지넷앤드 파워비즈 진행 2020년1월8일 시작~2021년 1월8일까지위즈디엔에스 2018파워비즈배너 시작 11월6일 20181105-20200131
설문조사
코로나19 팬더믹 이후, 가장 기승을 부리고 있는 사이버 공격 유형은 무엇이라고 보시나요?
랜섬웨어
피싱/스미싱
스피어피싱(표적 공격)/국가 지원 해킹 공격
디도스 공격
혹스(사기) 메일
악성 앱
해적판 소프트웨어
기타(댓글로)