2017년 8월 6일 일요일

보안이 허술해 보이는 이유

해당 글을 보고 놀란 분들이 꽤 많은 듯하다. 보안 위협이 어제 오늘 일은 아니지만 이렇게 생활 가까이에서 벌어질 거라는 생각을 하는 사람은 많지 않으니까.

그런데 여러 논란의 결론이 주로 사이트 개발자의 무능력, 비윤리를 질타하는 쪽으로 모아지는 듯해서, 보안 분야에 종사한 죄로 변명을 좀 해볼까 한다.

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

당시 나는 유료 성인만화를 공짜로 보는 재미에 빠져 있었는데, 무슨 대단한 해킹을 한건 아니고, 맛보기 후 뜨는 결제 페이지 무시하고, URL 경로 및 파라미터를 어림잡아 고쳐보는 식이었다. 세션 관리 안하드라 배달앱 고발 글이 지적한 바로 그 취약점.

사실 URL의 구조를 알면 누구나 시도할 수 있는, 해킹이라고 하기에도 민망한 꼼수라고 할 수 있다. 그런데 십여 년을 훌쩍 뛰어넘은 2014년부터 매년 KT아이핀 그리고 코레일이 털릴 때도 이런 구닥다리 방식이 사용됐다.

해당 보안사고를 바라보면서, 과거 성인만화에 대한 흥미를 잃게 해준 당시 여친에게 새삼 고마움을 느끼기도 했다. 안 그랬으면 지금쯤 국가의 보살핌을 받는 신세가 됐을 수도 있었으니까.

솔직히 부끄러운 과거이고, 업계에서 매장당해도 할 말 없는 경험을 떠벌리는 이유는 어차피 4년 전 책에서 다 떠벌림 보안에 대한 사소한 오해를 풀고 싶어서다.

왜 이리 허술할까?

2000년대 초까지 보안에 대한 IT 업계의 인식은 대충 이랬다. 내가 다니던 회사에서는 MS-SQL 데이터베이스 6.5 버전을 사용했는데, 설치할 때 관리자 패스워드를 요구하지 않았다. 7.0 버전부터 패스워드를 설정할지 물어보기는 했지만, 기본 설정은 그냥 패스.

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

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

알면 그랬겠나...

90년대에 완성된 HTTP는 원래 읽기만이 아니라 쓰기도 자유로웠다. 내 블로그의 글을 내가 아닌 누구라도 수정, 삭제할 수 있었다는 얘기. 지금은 다 막혔지만 그땐 그랬다. 왜 그랬을까? 악용될지 몰랐으니까.
안 좋은 기술은 없다. 악용하는 인간이 있을 뿐이다. - IDS와 보안관제의 완성 (17페이지)

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

법적으로 아무 문제 없음

구조나 원리를 악용하면 열쇠도, 비밀번호도 필요 없음 

배달앱 취약점 고발 글 역시 응전의 하나라고 생각한다. 병은 알려야 낫는다고, 문제는 까발릴수록 해결 가능성이 높아지니까.

다만 글 말미의 '사이트 이따위로 만든 너, 혹은 너희들 ' 식의 표현은 문제 해결에 별로 도움이 안 될 것 같다. 생선 살 알뜰하게 도려내라고 만든 사시미칼이 형님(?)들 연장됐다고, 칼 만든 사람 비난해봐야 문제는 해결되지 않는다. (구조 문제를 개인 책임으로 희석하는 게 간편한 건 인정)

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

일단 개발자가 일부러, 타인의 정보를 널리 공유할 목적으로 그따위로 만들지는 않았을 것이다. 그런데 결과가 왜 이럴까? 우리가 좋아하는 '이익'과 관련이 있다. '최소 비용, 최대 이익'이란 경제법칙이 지배하는 세상에서 우리는 종종 이익을 위해 안전을 무시한다.

이런 세상에서 이익은 커녕, 돈만 까먹기 십상인 보안이 설 자리는 매우 좁다. '이따위 사이트'는 갑이 쥐어준 최소의 자원으로 을이 뽑아낸 최대의 아웃풋일 가능성이 높다. 인정하자. 우리는 대부분 돈 주는 사람이 시키는대로 일한다.

싸고 좋은 물건은 없다

결국 돈 문제. 그래서 보통 보안 투자가 그나마 효과적으로 이루어지는 곳은 금융권이나, 포털, 게임 업계 등등 해킹당하면 금전 피해가 피부에 와닿기 쉬운 그런 곳이다.

그리고 소프트웨어는 원래 버그 투성이

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

예술을 해킹한 마르셀 뒤샹의 작품들
이제 버그가 알려졌으니 새로운 코드가 새로운 버그의 가능성과 함께 덧씌워질 것이다. 알려진 버그는 사라지고, 사람들은 마음의 위안을 얻게 될 것이다. 창의적인 인간이 더 새로운 버그를 발견할 때까지.

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

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

마이너리티 리포트

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

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

물론 이런 배경에는 IT 유토피아만을 보여주는 마케팅의 영향이 크며, 털려도 자물쇠공을 비난하지 않는 자물쇠나 매년 수만 명이 죽거나 다쳐도 메이커를 비난하지 않는 자동차만큼 익숙해지기엔 아직 역사도 너무 짧다.

결국 시간이 해결해줄 문제. 하지만 그때까지 못참겠다면 방법은 사람이 하는 일이 완벽할 수 없음을 인정하는 것.

배달앱, KT, 아이핀과 코레일 그리고 수많은 온라인 세상을 설계한 기술자들이 몰라서, 게으르고, 도덕적으로 해이해서 보안이 허술해지는 게 아니다. 안 그런 사람이 더 많다. 결국 우리 모두 환경에 지배 받고, 실수하게 마련인 사람이기 때문.
무언가 잘못됐을 때 사람들은 '아래를 보는 ' 경향이 있다. 마지막에 관련된 사람을 비난하고 그에게 책임을 묻는 식... 그러나 여러 사람이 동일한 실수를 반복한다면 그 원인은 개인이 아닌 조직에 있을 가능성이 높다. 실수의 많은 부분은 문화의 부산물 - '우리는 왜 실수를 하는가' 중

나가며

농담이 아니라 이불 밖 세상은 원래 위험하다. 전쟁이나 범죄와 같은 사회병리 현상은 인류 문명과 불가분의 관계이며, 인류가 생존하는 한, 문명이 유지되는 한 사라지지 않는다. 보안 위협도 마찬가지.
기계는 삶을 더 여유 있게 만들어줄 것이라고 예상되었다... 하지만 내가 좀 더 느긋한 삶을 살고 있는가?... 우리는 시간을 절약한다고 생각했지만, 실은 인생이 돌아가는 속도를 과거보다 열 배 빠르게 만들었다. 그래서 우리의 일상에는 불안과 걱정이 넘쳐난다. – 사피엔스 (136페이지)

물론 우리는 세상을 더 안전하게 만들 수도 있다. 이익을 조금만 포기한다면. 하지만 아마 힘들 것이다. 그렇다면 차선은 (친절하게) 서로 문제를 알려주면서 조금씩 세상에 적응하는 것 아닐까?

관련 글

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스