세상에 어디 마냥 쉽기만 한 일이 있겠냐만은 정보보안 분야는 그중에서도 유난히 어려운 것 같다. 공대를 다니고 이 분야에서 오랫동안 일한 분들도 모르는 것 천지라고 불평들이니, 완벽한 문과형 두뇌를 가진 초보자인 나는 나름 열심히 공부한다고 하는데도 참 쉽지가 않다. 그래도 꾹 참고 책을 한참 들여다보고 있으면, 난 인간인가 뭐든 3초 만에 다 잊는다는 금붕어인가, 뭐 그런 한심한 생각마저 든다. 정말 그냥 막 포기하고 싶은 마음이 굴뚝같아진다.
그러나 지금은 초 정보시대, 누구든 어디서 무슨 일을 하든 정보보안의 굵은 뼈대만이라도 이해해야 한다. 생존의 문제니까. 특히, 스타트업 사업을 하고 있다면 더욱 그렇다. 신문을 보면 온통 대기업과 정부기관 등 큰 조직의 해킹 기사만 뜨니까 해커들도 너무 작아서 뜯어먹을 것도 없는 스타트업 따위는 노리지도 않나 보다 안심하곤 하지만, 실제로는 스타트업이 훨씬 더 많이 당한다. 대기업보다 뉴스로서의 가치가 떨어져서 기사화되지 않을 뿐이고, 사고가 발생하면 대기업보다 상황을 수습할 자본력과 기술력이 턱없이 부족하므로 못 버티고 그대로 망해버리는 경우가 태반이다 보니 뒤늦게나마 기사로 쓰고 싶어도 쓸 대상이 없어졌기 때문일 뿐이다.
그럼 뭘 어떻게 해야 할까? 딱 이 정도까지만이라도 알아 두자. 그러면 직접 기술자가 되어 정보보안 시스템을 구축하진 못하더라도 적어도 기술자와의 대화는 어느 정도 가능해진다. 기획자와 기술자 사이 순조로운 대화 없이는 제대로 된 시스템은 절대로 만들어지지 않는다.
정보보안이란? 안전한 IT 시스템 만들기
정보보안이라 하면 이것저것 머리 어지러운 용어들이 막 뒤엉켜 엄청 복잡해 보이지만 결국엔 '안전한 IT 시스템'을 만드는 일에 불과하다. 근데 IT 시스템이란 뭘까?
이 그림을 보자. 모든 IT 시스템은 위와 같은 계층 구조로 이루어진다. 네트워크 위에 시스템 위에 애플리케이션, 각 계층은 맡은 바 임무가 서로 다르고, 따라서 각 계층이 다루는 정보의 성질도 다르다. 편의상 복잡한 것들 다 빼고 간단히 말하자면, 오늘날의 '네트워크'는 그냥 인터넷이라고 생각해도 상관없고, '시스템'은 윈도즈나 리눅스 등 운영체제, '애플리케이션'은 우리가 직접 조작하는 각종 프로그램이라고 보자. 실제론 개념이 좀 다르지만, 일단은 그렇게 이해하자.
이 구조도가 왜 중요하냐면, 각 계층의 성질이 다르니 각 계층에서 일어나는 보안사고의 유형 또한 달라진다. 즉, 어떤 계층에서 어떤 사고가 발생하는지 그 원리를 이해하고 해당 계층에 대해 그 계층 성질에 부합하는 보안기술을 적용하면? 종합적으로 '안전한 IT 시스템'을 만들 수 있다는 뜻이다.
쉽고 간단하다고 말해놓고선 갑자기 태도 돌변해 어려운 이야기 막 꺼낸다 싶긴 하지만 그래도 꼭 필요한 이야기니까 아주 조금만 더 해보도록 하겠다. '네트워크'는 정보를 담은 택배 상자인 '패킷'을 다루고, '시스템'은 정보의 형식인 '파일'을 다루고, '애플리케이션'은 정보의 내용인 '콘텐츠'를 다룬다. 계층마다 취급하는 대상이 다르므로 해당 계층에 적용하는 보안기술도 달라지는 것이다. 이렇게만 말하면 너무 딱딱하고 이해도 어려우니까 각 계층 보안기술의 실제 예를 보되, 요즘 언론에 자주 뜨는 것들을 골라 허와 실을 살펴보자.
'네트워크' 계층: SSL 통신
'SSL(Secure Socket Layer)'은 웹을 통해 데이터를 안전하게 전송하기 위해 만들어진 암호화 통신 방법이다. SSL이 적용된 웹페이지의 URL은 'https'로 표시되고 일반적인 'http'와는 다른 포트를 사용한다. SSL은 '네트워크' 계층에 적용되는 기술이기 때문에 그 계층에서 취급하는 정보의 택배 상자인 '패킷'을 다룬다. 안전하게 통신하기 위해서는, 특히 전자상거래 서비스에서는 필수적으로 적용해야 하는 기술이지만, 만능은 아니다. 왜? '네트워크' 계층에서만 안전하므로 전체 IT 시스템이 안전해지는 건 아니다. 그럼에도 'SSL'을 키워드로 뭐든 검색해 보면? "어떤 회사는 통신정보를 암호화할 수 있는 SSL을 통해 외부 해킹을 원천적으로 차단하는 데 성공"이라는 내용의 기사를 쉽게 접할 수 있는데 이는 사실이 아니다. 앞서 언급한 대로 SSL은 '네트워크' 계층에만 해당하므로 시스템과 애플리케이션을 노리는 해킹과는 무관하다. "본 사이트는 SSL 통신을 사용하기 때문에 안전하다"도 역시 완벽히 해킹을 차단할 수는 없다. SSL은 패킷이 데이터가 되고 콘텐츠가 되기 전까지 배달만 맡기 때문에 감히 시스템의 안전을 우길 순 없다.
'시스템' 계층: 백신
시스템은 잘게 쪼개진 패킷을 하나로 합친 '데이터'를 다루는데 주로 파일 형태로 취급한다. 시스템 계층에서 동작하는 여러 보안기술 중 가장 유명한 건, '백신'이다. 백신은 보안상 문제가 있는 파일을 찾아내 치료하거나 제거함으로써 시스템을 보호한다. 개인 영역에서는 가장 일반적이고 또 그만큼 흔한 장치이므로 필수적으로 설치해 두면 좋지만, 지나치게 믿고 안심해서는 안 된다. 백신으로 탐지할 수 있는 보안위협은 극히 제한적인 일부에 불과하고 또 새로 등장한 신종공격에는 매우 취약하다. 해커들이 백신도 안 돌려보고 바이러스를 살포할까? 백신에 뻔히 걸리는 걸 왜 굳이 보내겠는가? 재미를 위해 해킹하는 중고등학생들도 많긴 하지만 아무튼, 백신은 '일단 깔아는 둔다' 또는 '깔려는 있다' 그리고 '수동은 아무래도 좀 귀찮으니까 업데이트는 자동으로 설정해 둘까?' 정도로 인식하는 게 안전에 이롭다.
'애플리케이션' 계층: 시큐어 코딩
결론부터 말하자면, IT 시스템 3개의 계층 중 '애플리케이션' 계층이 가장 중요하다. 최근 발생한 보안침해 사고의 대부분이 애플리케이션 계층에서 발생한다. 애플리케이션은 정보의 내용인 콘텐츠를 다룬다. 편의상 사람의 눈으로 읽을 수 있는 정보라고 이해해도 좋다. 패킷과 데이터는 사람 눈으로는 못 읽지만, 애플리케이션에서 다루는 정보는 '코드' 레벨이므로 판독할 수 있다. 따라서, 해커 입장에서 보자면 무척 편리하다. 마치 정상적인 접근인 것처럼 위장해 네트워크와 시스템 계층의 보호막을 뚫고 들어와서 서버와 인터랙티브하게 대화를 주고받으며 다 털어먹는다. 대표적 수법이 SQL 인젝션이다. 이 수법으로 작년에 '뽐뿌' 사이트 회원 196만 명의 개인정보가 유출되었다. 이를 막기 위해 취약점 없이 완벽하게 안전한 애플리케이션을 만들자는 원론적 주장이 '시큐어 코딩'이다. 참 아름다운 이야기긴 하다. 하지만 현실적으로, 아니 해커들도 나날이 진화하는데 그런 일이 가능할 리가 있을까 싶다. 안타깝지만 회의적이다.
안전한 IT 시스템? 문제는 애플리케이션
유명한 보안기술을 통해 IT 시스템 각 계층의 동작에 대해 알아보았다. 그 3개 계층을 모두 다 안전하게 만들면? 정보보안의 애초 목적을 훌륭히 달성하는 것이다.
그럼 보다 현실적이고 또 구체적으로 대책을 생각해 보자면, 역시나 '애플리케이션' 계층이 문제다. 네트워크와 시스템 계층은 정말 많은 보안기술과 장치들이 동원된다. 기업 보안비용의 대부분이 여기 다 들어간다. 뻔한 예산 쪼개 나누는 일이다 보니 그만큼 애플리케이션 보안은 허술해진다. 하지만 최근 정보보안 사고의 무려 90%가 애플리케이션 계층에서 발생한다. 특히 웹 애플리케이션이 가장 위험하다. 가장 위험한 부분을 가장 소홀히 여기는 셈이니까, 사고가 터질 수밖에 없다. 만약 이러고도 아무 일 없이 안전하다면 해커들 품질 저하를 걱정해야 할 판이다.
제발 시큐어하게 코딩도 좀 하고 '웹 애플리케이션 방화벽(WAF)'도 설치하는 등, 애플리케이션 보안에 집중하자. 우리 회사는 작은 스타트업이라서 서버를 직접 운영하지 않기 때문에 WAF를 설치하고 싶어도 할 수가 없다? 찾아보면 하드웨어 없이 온라인 서비스 형태로 제공되는 WAF도 있다. 클릭 몇 번만 하면 최근 일어나는 대부분의 보안 사고를 막을 수 있다. 다시 한 번 더 강조하자면, 최근 정보보안 사고의 무려 90%는 애플리케이션, 특히 웹 애플리케이션 계층에서 발생한다. 물 새는 곳은 뻔히 여긴데 왜 엉뚱한 곳을 땜질해 막고 있는지 참 안타까울 따름이다.
이것이 나름 엄청 고생해 파악한 정보보안의 굵은 뼈대다. 겨우 짜 맞춘 거라서 기술적으로 엄격하게 따지자면 정확하지 않을 수도 있다. 그래서 소심하게 기술자들 앞에선 감히 말 한마디 못 꺼낸다. 그렇지만 아주 틀린 이해는 아니니, 이를 토대 삼아 이것저것 두루 공부하고 있다. 갈 길이 까마득하니 멀고 또 험하지만 그래도 보람차다. 초정보시대에 정보보안은 정말 중요한 일이니까.
아래 메일로 ‘스타트업 정보 보안’에 대해 궁금한 점을 질문해주세요. 가장 많은 질문이 나온 이슈 혹은 정말 꼭 짚고 넘어가야 하는 이슈를 칼럼 주제로 삼고 글을 연재할 예정입니다. 평소 궁금했던 점이 있었다면 주저하지 말고 이메일 보내주세요. 클라우드브릭 칼럼니스트 박지원 support@cloudbric.com