[보안뉴스 문가용 기자] 영화 <러브 액츄얼리>에 나오는 영국 총리(휴 그랜트)는 영국의 자랑거리로 셰익스피어와 처칠, 비틀스, 숀 코너리, 베컴의 오른쪽 발, 그리고 왼발을 꼽는다. 볼 때마다 자동으로 멈춤 버튼을 누르게 되고, 탄식과 같은 질문이 절로 나오는 대목이다. ‘아니, 월레스와 그로밋은? 대사 쓴 사람 누구야? 내가 써도 저거보다 잘 쓰겠다.’
▲<월레스와 그로밋> 포스터[이미지 = 네이버영화]
영국의 자랑 <월레스와 그로밋>이 오랜 침묵을 깨고 신작으로 찾아왔다. 새해를 맞아 보다 현명하고 절제된 소비를 위해 OTT 서비스의 구독을 끊어야 하나 말아야 하나 고민하고 있을 때, 하필 그런 미묘한 타이밍에 등장하는 바람에 모든 시청자들이 현명한 소비 생활을 한 달 미루게 됨으로써 넷플릭스마저 연명케 한 구원투수이기도 하다(근거는 없다).
<월레스와 그로밋> 최신작의 부제는 ‘복수의 날개’다. 93년 작품인 <전자바지 소동>의 후속편 정도 되는 내용으로, <전자바지 소동>의 빌런이었던 펭귄이 자신의 체포에 크나큰 공을 세운 월레스에 대한 복수를 감행하는 게 이번 작품의 줄거리다. 복수의 방법은 최근 트렌드에 맞는 ‘해킹’이었다. 다만 멀리서 키보드만 두드리는 해킹이 아니라, 핵심 시스템에 진땀나게 접근하는 방식의 해킹이라 보는 맛이 있다. 시스템에 접속한 이 펭귄은 월레스의 최신 발명품 속으로 침투해 ‘악마화’ 버튼을 누르고, 이 최신 발명품들은 그 때부터 악마로 변해 월레스를 큰 곤경에 빠트린다.
허드렛일을 도맡아 하는 로봇 속에, 쓸데라고는 전혀 없는 ‘악마화’ 버튼이 미리 만들어져 있었다는 건 <월레스와 그로밋> 시리즈가 보여주는 특유의 유머 코드라고 할 수 있다. 원래 이 시리즈가 재미있는 건 큰 이야기가 진행되는 과정 곳곳에 세밀한 유머 요소들이 영리하게 배치되어 있기 때문이다. 펭귄의 그 평평하고 굴곡없는 날개에 수갑을 채운다든가, 공포 영화에나 나올 것 같은 깊은 감옥이 사실 동물원이었다거나, 난쟁이 요정(gnome - 놈이라고 발음한다)의 모습을 한 로봇이라 이름이 ‘노봇’이라거나 하는 것들이 쉴새 없이 나온다. 인간을 돕기 위해 만들어진 로봇의 내부 깊은 곳에 악마화 버튼이 있다는 것도 마찬가지로 피식 웃음을 자아내는 장치라고 할 수 있다.
그런데 이게 현실에서는 유머 코드가 아니라는 게 유머다. ‘하드 코딩’이라는 말이 보안 분야에서는 자주 등장하는데, 이게 바로 현실 세계에서 볼 수 있는 악마화 버튼이나 다름이 없다. 하드 코딩(hard coding)이 무엇인가? 소프트웨어를 개발하는 과정에서 소프트웨어 작동에 필요한 데이터를 소스코드 안에 직접 심어두는 것을 말한다. 원래 데이터는 외부 소스에서 임포트해서 가져오거나, 런타임 때 생성되도록 해야 하는데 말이다. 개발을 편리하게 해 주기는 하나, 보안을 엉망으로 만드는 주요 요인이다.
예를 들어 개발하고 있는 소프트웨어가 반드시 어떤 서버나 플랫폼에 로그인 해서 접속해야 기능을 발휘할 수 있다면? 다 그런 건 아니지만 일부 개발자들은 그런 소프트웨어 소스코드 내부에 로그인 정보(ID와 비밀번호)를 평문으로 넣어놓기도 한다. 그리고 시간이 흘러 소프트웨어가 완료되어 출시해야 할 때, 자신이 소스코드 내에 비밀번호를 적어 두었다는 걸 잊어버리고 그대로 시장에 내보낸다. 그 정보는 고스란히 보안 취약점이 된다.
그나마 유료 소프트웨어에서 이런 일이 일어나면 일이 일파만파 커지지 않는 편이다. 그런데 그 소프트웨어가 오픈소스로 풀리면 어떻게 될까? 오픈소스는 무료라 누구나 부담없이 다운로드 해서 사용하며, 심지어 개발자들은 오픈소스를 받고 소스코드로까지 들어가 맞춤형으로 개조하기도 한다. 그런 과정에서 비밀번호가 발견되고, 조금이라도 악의가 있던 사람 혹은 해킹 공격이 크게 나쁜 일이라고 생각하지 않아왔던 사람은 악마화 버튼이 눌리는 걸 경험한다. 그 정보를 가지고 온갖 플랫폼에 접속을 시도한다든가, 그 오픈소스가 업로드 되어 있던 플랫폼으로 돌아가 하드 코딩된 ID와 비밀번호로 로그인을 해 개발자 권한을 가져가보려 한다. 그리고 이 공격이 통할 때가 적지 않다.
최근 공격자들은 개발자들이 소스코드에 중요한 데이터를 아예 박아둔 채로 개발을 하고, 그런 사실을 나중에 가서 잊어버린 채 제품을 출시한다는 걸 알고, 주기적으로 코드 리포지터리에 접속해 들어가 하드 코딩된 정보를 스캔한다. 로그인 정보라면 원래 어렵사리 구하거나 비싼 돈 주고 구매해야 마땅할 정도로 고급 자원이었는데, 개발자들이 여기 저기 흘리고 다니니 요즘엔 쓸어담기만 하면 된다. 그러면서 다크웹 안에서는 로그인 정보가 넘쳐나게 되고, 이 넘쳐나는 자원 덕분에 해킹 시도들 역시 늘어나고 있다. 월레스식 발명 행위가 만연하다.
마감과 빠듯한 일정에 늘 쫓기는 개발자들의 입장을 모르는 건 아니다. 하드 코딩이라도 해서 일정을 단축시키면, 그게 개발자들 편에서는 더 큰 이익이라는 것도 맞는 말이다. 나중에 하드 코딩 취약점이 불거지면 그 때 가서 슬쩍 소스코드 내에 있는 정보를 지우기만 하면 되니, 후속 조치가 어려운 것도 아니라고 생각할 수 있다. 즉, 하드 코딩이 개발 행위를 그만큼 편리하게 해주니 그런 행위들이 만연하고, 그러니 매주 빠짐없이 ‘하드 코딩된 크리덴셜이 노출되는 보안 사건’이 발생하는 것이다. ‘편리’만큼 설득력 높은 것도 없으니 당연한 전개다.
‘편리’는 친구의 얼굴을 가장한 위험이다. 세상의 기본 질서는 ‘기브 앤 테이크’이기 때문에, 어딘가에서 편리함을 얻었다면 그만큼 치러야 하는 대가가 있는 법이다. 그런데 그 대가라는 게 줄어드는 통장 잔액처럼 가시적이거나 즉각적이지 않을 때, 우리는 편리함에 안심하고, 편리함을 칭송하며 추구하게 된다. 하드 코딩도 여기에 해당되고, 사용하는 모든 계정의 비밀번호를 password라고 지정하는 것도 마찬가지이다.
보안만 대가를 치르는 게 아니다. 성능이 좋은 최신 칩셋은 편리를 제공하는 대신 많은 전기를 잡아먹지만 고지서가 날아오기 전까지 느껴지지 않는다. 안전 장치 전혀 없는 멀티탭은 값이 싸기 때문에 누전 차단 장치 같은 게 달려 있는 안전한 제품보다 많이 팔린다. 불이 나봐야 고급 탭의 진가를 알 수 있는데, 그렇기 때문에 사실 많은 이들이 안전 멀티탭의 필요성을 못 느낀다.
여기 저기 ‘보안 실천사항’들이 많기도 하다. 비밀번호 어쩌고, 공공 와이파이 어쩌고, 회사 계정 관리는 또 어쩌고, 수상한 링크가 어쩌고... 이걸 쭉 목록으로 만들어 들이밀면 모두 얼굴을 찌푸린다. 귀찮기 때문이며, 그 귀찮음을 무릅썼을 때 얻는 것도 별로 없기 때문이다. 그래서 기자는 그 많은 보안 실천사항들을 이 글을 통해 단 한 줄로 줄여보고자 한다. ‘편리함을 추구하지 않는다’ 혹은 ‘불편함을 누린다’ 정도의 문장이 될 수 있을 것 같다.
정말로 불편을 친구로 삼으면 삼을수록 보안이라는 측면에서는 얻을 게 많아진다. 반대로 편리를 친구로 삼으면 삼을수록 보안이라는 측면에서는 잃을 것만 생긴다. 그렇다고 한쪽으로만 치우치는 것도 건강한 건 아니다. 적당히 불편해도 참을 수 있는 정도, 편리함에 대해 끝없이 의심하며 미리 대가를 찾아 지불할 수 있는 중도의 지혜가 담보되는 게 중요하다.
[문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>