Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

보안이 정말 그렇게 중요한가

개개인이 가진 보안의 적정수준이란 건 당연히 다르기 마련이고 상황이나 입장에 따라 달라지게 마련이지만 평소 주위에 만연해 있는 보안에 대한 인식은 너무 과도하다고 생각한다.

큰 의미에서 보안이란 것은 대부분 어떤 가치 있는 무언가를 허가받지 않은 사람이 이용하지 못하도록 막는 것인데 내가 가진 보안에 대한 입장은 이용을 편하게 할 수 있는 수준을 보장한 뒤에 보안을 논해야 한다고 본다. 왜냐하면, 원래의 목적은 그 무언가를 이용하는 것이 1차적인 목적이고 그에 대한 부작용으로 허가받지 않은 사람이 사용하게 돼서 생기는 문제를 막기 위해 보안이 추가된 것이기 때문이다. 하지만 현실은 보안이 너무 과도해져서 이용 자체를 크게 저해하고 있다. 마치 이용을 막는 게 1차 목표인 것처럼...(물론 어디는 보안이 너무 과도하고 어딘가는 보안이 너무 빈약한 문제는 있다.)

예를 들어 보면 나는 집에 들어갈 때 우리 집 현관문에 달린 자물쇠를 열고 들어간다. 자물쇠는 2개가 달렸지만 보통 1개만 사용하고 장기간 비울 때만 2개를 사용한다. 다른 집도 비슷할 거라고 생각하는데 여태 살면서 가정집에 자물쇠 3개 이상 달린 집은 본 적이 없다. 만약 자물쇠가 종류별로 다른 인증체계를 가지고 자물쇠가 10개쯤 달려있다면 하나만 사용하는 것보다 당연히 더 안전할 것이다. 하지만 그렇게 하지 않는 이유는 현관문을 하루에도 수십 번씩 열어야 하기 때문이다. 지문인식부터 시작해서 열쇠를 다발로 가지고 다니면서 현관문을 오갈 때마다 일일이 십여 개씩 열고 다닌다면 보통 제정신이 아니라고 생각할 것이다. 영화에서 편집증에 걸린 사람이 이렇게 하는 거 외에는 실생활에서는 본 적이 없다. 현관문은 아니더라도 창문 등을 통해서 집에 들어오는 방법도 있다. 만약에 나갈 때 버튼 하나만 누르면 쇠로 된 셔터가 내려와서 모든 창문을 막아버리면 당연히 더 안전할 것이다. 마찬가지로 그렇게 하는 사람은 없다. 여기에는 비용문제도 있고 현관문과 마찬가지로 매일 사용해야 하므로 이런 짓거리는 하지 않는다.

좀 과해 보이는 예시일 수도 있지만 내가 느끼기에는 IT에서 이러한 일은 빈번하게 일어난다. 보안은 중요하다는 명목하에서...

앞의 예제를 다시 보면 가장 쉬운 보안해결책은 집에 값진 물건을 두지 않는 것이다. 값진 물건을 두지 않으면(그래서 은행 같은 게 있는 거지...) 설사 보안체계가 뚫리더라도 위험이 크지 않다. 하지만 값진 물건이 있을 수밖에 없긴 한데 그렇다면 이 값진 물건에만 별도의 보안을 추가하면 된다. 당연히 생각해도 온 집안에 물건이 다 중요하진 않을 테니 절대 잃어버리면 안 되는 것만 별도의 금고에 넣거나 하면 된다. 이럴 때는 별도의 인증과정이 들어가도 아무도 불만을 품지 않는다. 번거로운 인증과정을 거칠 정도로 그 안에 들어 있는 것이 중요하기 때문이다. 그리고 이 부분은 이용성에도 문제가 되지 않는다. 내가 냉장고를 열고 물통을 꺼내는 횟수랑 금고에서 황금 송아지를 꺼내볼(우리 집에 그런 건 없다.) 횟수는 당연히 다를 수밖에 없다. 그러므로 물통을 꺼낼 때는 추가로 인증과정을 거치지 않지만 황금 송아지를 꺼낼 때는 추가로 인증과정을 요구해도 크게 문제가 되지 않는다.

하지만 IT 환경을 보면 보안이라는 이유로 너무 많은 걸 보안영역 안에 넣어버린다. 그래서 원래는 이용하는 게 목적이었는데 너무 불편하므로 꼭 필요한 상황이 아니면 이용하지 않으려고 하게 된다. 내가 느끼기에 이 중에 80% 정도는 물통에서 물을 먹기 위해서 냉장고에 자물쇠가 걸려있는 꼴이다. 혹시 냉장고에 들어있는 물통이 나중에 값지게 될지도 모를 일이므로... 심지어 일해서 수익을 내는 회사에서도 이런 역전현상이 수시로 발생한다는데 당혹감을 감출 수 없는데 수많은 개발방법론을 도입해서 생산성을 조금이라고 올리는 것보다 보안을 조금 낮추는 게 훨씬 더 생산성을 높일 수 있을 거라고 본다.

왜 이런 일이 발생했는지는 나도 알 수 없다. 하지만 간단한 애플리케이션을 너무 과도하게 설계에서 성능이 제대로 나오지 않는다면 개발자가 해결해야 할 이슈이듯이 보안 때문에 생산성이 떨어진다면 이를 해결해야 하는 건 보안 쪽이다. 그리고 이런 무리한 요구도 아니고 이미 보안도 어느 정도 지키면서 생산성도 유지할 수 있는 기술은 충분히 개발되었다고 본다.



덧) 물론 이런 얘기를 하면 나중에 보안 문제로 재판 갔을 때 회사가 얼마나 보안에 대해 노력했느냐 하는 부분이 중요하다느니 어쩌느니 하는 얘기가 나오는데 재판을 안 가봐서 그런지 몰라도 별로 동의는 되지 않는다. 그거 해결하기 위해서 보안전문가가 있는 거 아닌가? 내가 개발을 더 쉽고 잘하기 위해서 원래 만들려던 서비스의 목적을 잃어버리고 야크 털만 깎고 있으면 잘했다고 해주나? 개발 열심히 잘했다고? 개발 자체가 목적이 아니라 서비스(혹은 무언가)를 만드는 게 목적이므로 그 중간은 어찌 되었든 내가 알아서 해결하고 결과물이 나와야 하는 거 아닌가?

덧) 왜 개발과 보안이 붙으면 항상 개발 쪽이 지는 걸까....

2014/01/10 23:55 2014/01/10 23:55