보안이 허술해 보이는 이유

내 사회 생활의 시작은 2000년 4월이었다. 당시 한풀 꺾인 벤처 열풍에도 불구하고 꽤 많은 IT 벤처들이 있었는데, 그중에서도 확실한 수익 모델을 자랑하던 것이 IJ(인터넷 자키)란 신종 직업으로 이슈가 됐던 인터넷 성인방송국.

당시 나는 공짜 성인 만화 보는 재미에 빠져 있었다. 무슨 대단한 해킹씩이나 한 건 아니고, 맛보기 후 뜨는 결제 페이지 무시하고, URL 파라미터를 ‘comics.com/view.asp?title=oops&page=10‘에서 ‘comics.com/view.asp?title=oops&page=11‘로 고치는 식.

사실 URL의 구조를 알면 누구나 시도해볼 수 있는, 해킹이라고 하기에도 민망한 꼼수라고 할 수 있다. 그런데 KT와 아이핀이 털릴 때도 이런 구닥다리 방식이 사용됐다. 그때 여자친구가 생기면서 흥미를 잃었기에 망정이지 안 그랬으면 지금쯤 국가의 보살핌을 받는 신세가 되지 않았을까 싶으니 아찔.

솔직히 부끄러운 과거이고, 업계에서 매장당해도 할 말이 없을 경험을 떠벌리는 이유는 (어차피 4년 전 책에서 떠벌린 내용이기도 하고) 보안을 바라보는 일반적 시각에 대한 오해를 풀고 싶어서다.

왜 이리 허술할까?

그 시절 보안에 대한 IT 업계의 인식은 대충 이랬다. 다니던 회사에서는 마이크로소프트의 MS-SQL 데이터베이스 6.5 버전을 사용했는데, 설치할 때 관리자 패스워드를 요구하지 않았다. 7.0 버전 넘어와서 패스워드를 설정할지 물어보기는 했으나, 디폴트는 그냥 패스.

설치 후 별도 설정하지 않으면 패스워드 없이 관리자 접속이 가능했다는 얘기다. 데이터베이스에 대한 망분리 개념도 없던 때라 맘만 먹으면 누구나 관리자 권한으로 데이터베이스에 접근할 수 있었다는 뜻. 그리고 당시 인터넷 성인방송국들이 MS-SQL을 많이 사용했었다(..)

지금은 귀찮을 만큼 보안 업데이트를 챙기는 IT 공룡 마이크로소프트도 그땐 그랬다. 왜 그랬을까? 악용될지 몰랐으니까.

90년대에 완성된 HTTP는 원래 읽기만이 아니라 쓰기도 자유로웠다. 내 블로그의 글을 내가 아닌 누구라도 수정, 삭제할 수 있었다는 얘기. 지금은 다 막혔지만 그땐 그랬다. 왜 그랬을까? 악용할지 몰랐으니까. 누가 알았겠나, 몰랐지.

안 좋은 기술은 없다. 악용하는 인간이 있을 뿐이다.” – IDS와 보안관제의 완성 (17페이지)

제도건, 기술이건 허점을 악용하려는 창의적 인간의 도전과 그에 대한 응전은 역사에서 부지기수였고, 그 덕에 세상은 조금씩 나아졌다.

난 단지 치킨을 주문했을 뿐인데 범죄의 대상이 될 수 있다니‘란 글도 응전의 하나라고 생각한다. 병은 알려야 낫는다고, 문제는 까발려질수록 해결 가능성이 높아지니까.

다만 글 말미의 ‘사이트 이따위로 만든 너, 혹은 너희들‘ 식의 표현은 문제 해결에 별로 도움이 안 될 것 같다. 생선 살 알뜰하게 도려내라고 만든 사시미칼이 형님(?)들이 애용하는 연장됐다고, 칼 만든 사람 비난해봐야 문제는 해결되지 않는다.

이렇게 쓸 줄 몰랐다니까 ㅡ_ㅡ

일단 개발자가 일부러, 타인의 정보를 널리 공유할 목적으로 만들지는 않았을 것이다. 그런데 결과물이 왜 이럴까? 우리가 좋아하는 ‘효율’ 때문이다. ‘최소 비용, 최대 이익’이란 경제법칙이 지배하는 세상에서 보안이 설 자리는 매우 좁다. 이익은커녕, 돈만 까먹기 십상이기 때문.

‘이따위 사이트’는 갑이 쥐어준 최소의 자원으로 을이 뽑아낸 최대의 아웃풋일 가능성이 높다. 인정하자. 우리는 대부분 돈 주는 사람이 원하는 일을 잘 하려고 노력한다.

결국 돈 문제. 그래서 보통 보안에 대한 투자가 적극적으로 이루어지는 곳은 금융권이나, 게임 업계 등등 캐쉬를 향한 직접 해킹이 가능한 곳, 그래서 해킹 당하면 돈 주는 사람들이 질색하는 그런 곳이다.

그리고

소프트웨어는 원래 버그 투성이다.

연방 사이버시큐리티 파트너십의 소프트웨어 라이프사이클 워킹 그룹의 4월 보고서에 따르면, 상업적인 코드는 일반적으로 코드 1000줄 당 하나에서 일곱 개 정도의 버그를 가지고 있다고 한다.

사람은 실수하는 존재이기 때문. 그런데 버그가 꼭 실수의 결과만은 아니다. 사실 타인의 정보를 보여주는 ‘이따위 사이트’의 버그는 ‘주문 확인’이란 목적에 충실한 기능 구현 관점에서 전혀 버그가 아니다. 지나치게 창의적인 인간이 다른 용도를 발견한 것뿐.

예술을 해킹한 마르셀 뒤샹의 작품(?)

이제 버그가 알려졌으니 새로운 코드가 새로운 버그의 가능성과 함께 덧씌워질 것이다. 알려진 버그는 사라지고, 사람들은 마음의 위안을 얻게 될 것이다. 창의적인 인간이 또 다른 용도를 발견할 때까지.

사람의 문제로 접근했으면 좋겠다

난 앞만 보고 운전했는데도 졸음 운전의 피해자가 될 수 있으니 예비 졸음 운전자를 모두 없애자. 묻지마 살인의 피해자가 될 수도 있으니 예비 살인자를 모조리 잡아 넣자.

가능 여부를 떠나, 모든 문제의 해결책으로 인류 제거를 선택하는 인공지능의 전 단계를 보는 것만 같아 섬찟하다. 하지만 완벽한 보안을 위해 모든 취약점을 없애야 한다는 주장을 들으면 이상하게 고개가 끄덕여진다.

사회가 보안을 편향된 시선으로 바라보는 이유는 그 문제를 사람이 아닌, 기술의 문제로 바라보기 때문이다. 마치 모든 취약점을 한꺼번에 없앨 수 있는 버튼이 있는데 안 누르고 있다고 생각하는 듯.

예전엔 나도 ‘이거 할 수 있는데 왜 안 하지?’란 생각에 많이 답답했었다. 하지만 아무리 찾아봐도 그런 버튼은 없더라.

몰라서, 게으르고, 도덕적으로 해이해서 그러는 게 아니다. 안 그런 사람이 더 많다. 결국 환경에 지배 받고, 실수하게 마련인 사람, 완벽하고 싶지만 완벽할 수 없는 사람이 하는 일이기 때문이다.

농담이 아니라 이불 밖 세상은 원래 위험하다. 전쟁이나 범죄처럼 해킹 역시 인류 문명이 유지되는 한 사라지지 않는다. 서로 (친절하게) 문제를 알려주면서, 조금씩 나아지는 세상에 적응하는 수 밖에 없는 거라고 생각한다.