본격 웹-시대, 기업-보안의 3대 요소
본격 웹-시대의 정보보안 2/2
“제발 좀 간단하게 말해 다오!” 항의메일을 받았다. “네, 알겠습니다.”
하지만 간단하기에 앞서 우선 조금은 복잡하게,
앞 편에서, 어떤 필요에 따라 웹 기술이 소통의 인터페이스로 사용되게 됨에 따라 오늘날 전산환경은 그 자체로 거대한 웹사이트라 할 수 있는 꼴로 변모했다..는 내용을 알아보았다. 따라서, 웹사이트는 (흔히들 “홈페이지!” 그러면 딱 떠올리는 그런) 홈페이지(만은) 아니다.
그러하야 오늘날 대부분의 ICT 시스템 일반적인 구조는 아래와 같다.
우선 ‘웹 서버’는 클라이언트를 통한 사용자의 요청을 접수하고 처리한다. HTTP 프로토콜에 대응하며 정적인 페이지를 전송한다. ‘정적’이라 함은 간단히 말해 그냥 저장해 둔 페이지를 볼 수 있게끔 떡하니 내민다는 뜻이다. 요즘은 거의 없지만 90년대까지만 하더라도 대다수의 ‘홈페이지’가 정적이었다.
반대로 ‘동적’이라 함은 사용자가 페이지 내용에 관계하는, 즉 데이터에 영향을 미칠 수 있는 페이지를 말한다. 예를 들어 ‘게시판’은 아무리 간단하게 생겼어도 일단 동적이다. 사용자가 직접 글을 쓰니까.
동적 페이지가 필요한 경우, 즉 데이터의 처리와 조작이 필요한 경우 웹 서버는 ‘WAS’를 부른다. WAS란 ‘Web Application Server’, 웹 애플리케이션 서버다. 정적인 웹 서버와는 달리 데이터에 직접 영향을 미치는 동적 처리를 수행한다.
그럼 ‘Biz 서버’는? WAS와 더불어 그냥 ‘애플리케이션 서버’라고 함께 부를 수 있지만 필요에 따라 기능을 분리한 경우다. 흔히 ‘엔터프라이즈’라 통칭하는 비즈니스 로직을 처리하고 복수의 트랜잭션을 처리한다.
웹이든 비즈든 애플리케이션 서버는 SQL 등 일정한 언어를 통해 ‘데이터베이스’와 연동한다. 이 작용을 통해 데이터는 저장되고 호출되고 처리되어 다시 저장된다.
이것이 대략 일반적인 전산환경의 구조다. 그새 다소 변화가 있었는데,
‘웹 서버’는 점차 사라지는 추세다. 버릇처럼 WAS 앞에 HTTPD, 즉 “톰캣 앞에 아파치!” 식으로 붙여 썼지만 요즘 톰캣이 옛날 톰캣 같지 않다. 최근 WAS는 정적 파일을 거뜬히 처리해낸다. 사전작업을 따로 할 필요가 없는 것이다. 부하 조절이나 여타 기능과 모듈이 필요한 경우가 아니라면 ‘클라이언트-WAS’ 구조를 피할 까닭이 없다. 그리고 뭐든지 간단한 구조가 좋은 구조다.
그리고 ‘웹 애플리케이션 서버’와 ‘비즈 애플리케이션 서버’를 따로 생각하는 버릇도 많이 퇴색되었다. 그냥 ‘애플리케이션 서버’로 합쳐 생각한다. 말하자면, JSP와 EJB로 분리해 생각하던 관행이 그냥 ‘서버 사이드 환경’으로 통합해 생각하게 되었다는 뜻이다. 보다 가볍고 효율적인 애플리케이션 컨테이너들이 큰 몫을 했다. “데이터베이스를 웹과 직접 연결하기는 어째 좀 불안하지 않아?” 괜한 걱정이 줄었다는 점에도 기인하는 현상이고.
그럼 이제 간단하게,
오늘날 기업-보안의 3대 요소 = 인증보안 + 웹보안 + 데이터암호화
그래서, 오늘날 기업의 전산환경은 아래와 같다.
전산환경의 3개 요소는 따로 존재하지만 서로 느슨하게 연결되어 함께,
“사용자와 주고 받은 데이터를 처리해 저장한다.”
구조가 이러하다면,
다들 중요하다고 떠드는 것들 말고 진짜로 중요한 정보보안 문제는 뭘까?
3개의 질문으로 압축된다.
“올바른 사용자인가?”
“문제 없는 데이터인가?”
“누가 훔쳐가면?”
지난 정보보안 사건 사고들을 쪼르르 나열해 살펴보면 무지 복잡하고 천태만상 보이지만 종합해 보면 거의 전부 위 3개의 질문으로 귀결된다.
“올바른 사용자인가?”
내가 아닌 누군가가 나인 척하며 내게 피해를 준다, 악의를 품은 자를 적절한 사용자로 오해하는 바람에 서버 다 털렸다, 정상적인 방법으로 접속한 뒤 프록시 툴을 악용해 다른 사람의 개인정보를 빼돌렸다 등등, 수많은 사건 사고들이 모두 “올바른 사용자인가?” 문제에 적절히 답하지 못했기 때문에 일어났다.
“문제 없는 데이터인가?”
그래도 그나마 가장 집중 받는 문제이긴 하다. 하지만 그만큼 허구도 많고 그릇된 신화도 많다. 할 말 참 많은데 간단히 줄이면, “백신만으로는 절대 막을 수 없다.”
문제 있는 데이터는 주로 웹 컨텐츠 속에 숨어 있다. 뭔지 모르고 그냥 클릭했는데 다 털렸다, 뭔가 설치되나 싶긴 했지만 큰 문제 없어 보이길래 대수롭지 않게 여겼는데 회사 전체 컴퓨터에 다 퍼졌다, 요즘 컴퓨터가 이상하게 느려졌는데 이유를 모르겠네 등 어째 참 익숙한 상황의 90% 이상이 정상인 것처럼 보이는 웹 컨텐츠를 통해 일어난다. “요즘 어떤 성실한 해커가 네트워크 털고 있어, 모르게 살짝 심으면 되는데” 시대인 것이다.
“누가 훔쳐가면?”
여기 지키고 저기 막고 별짓을 다 했는데도 데이터를 털렸다면? 대부분 내부자에 의해 일어나는 일이라 막기 정말 힘들다. 그런 최악의 상황에 마지막으로 꺼내 들 수 있는 카드는, 훔쳐가도 쓸 수 없게 만드는 일이다. 즉, 데이터 암호화다.
자 그럼, 그것들만 조심하면 되겠네? 그렇다. 조심하면 된다. 단,
위 그림은 옳지만, 옳지 않다. 앞서 “전산환경의 3개 요소는 따로 존재하지만 서로 느슨하게 연결되어 함께”라 했던 까닭은,
인증보안을 통해 올바른 사용자인지 판단하고 통제한다.
웹보안을 통해 문제 없는 데이터인지 감별해 제거한다.
데이터암호화를 통해 데이터 유출 시 악용을 방지한다.
옳다. 단지, 그게 3개로 딱딱 끊어지는 일은 아니라는 점은 유의해야 한다.
“올바른 사용자인가?”
인증보안은 클라이언트 사용자의 확인 시 가장 집중되긴 하나 그(녀)의 활동은 단지 그 영역에만 한정되지 않고 데이터에까지 영향을 주게 되니, 최초 인증뿐 아니라 이후 로그인 상태 내내 지속적으로 신원을 확인, 즉 ‘세션’을 관리해야 한다. 그러니 결국 전 영역에 걸친다.
“문제 없는 데이터인가?”
이건 영역 문제도 초월해버린다. 아무리 반복해도 지나치지 않은 메시지, “웹은 이제 세상 전부!” 본격 웹-시대다. 웹은 전산환경뿐 아니라 세상 모든 것을 먹어치우고 있다. 딱 몇 년만 지나도 ‘웹 보안’이란 말 자체가 어째 좀 새삼스럽게 느껴지게 될 것이다. 사실 웹의 개방성을 생각해 보면 정말 아슬아슬한 일이긴 하다. 웹이 소통의 인터페이스로 쓰인다는 사실만 보더라도 웹보안, 보다 정확히 말해 웹 애플리케이션 보안은 단지 ‘WAS 보안’을 뜻하는 말은 아니라는 걸 알 수 있다.
이건 너무너무 중요하니 이후 ‘궁극의 웹-보안’ 편을 통해 따로..
“누가 훔쳐가면?”
사용자 인증 잘했다, 오가는 데이터도 문제 없다, 그런데도 누가 훔쳐가면? 흔히 일어나는 일이다. 대개의 경우, 내부자의 소행. 그러니 인증? 문제 없고, 권한? 원래 갖고 있는 자고, 악의적 데이터? 내부자가 그런 방법까지 동원할 까닭이 없으니, 털면 털린다. 막을 방법은? 효과적(이란 말은 좀 애매하긴 하지만,,)인 정책과 교칙에 따라 데이터 암호화, 그리고 암호화 키 관리, 그리고 로그 관리 및 관제를 열심히 하는 수밖에 없다.
이것도 이후 ‘최악의 적, 내부의 적’ 편을 통해 따로..
이렇듯 인증보안, 웹보안, 데이터암호화 등 기업-보안의 3대 요소는 ICT 시스템 전 영역에 걸쳐 있다. 그러니 결국 정보보안은 대충 솔루션 몇 대 구입한다고 해결되는 문제가 아닌 것. 어렵다. 쉬운 일이 아니다. 쉽다고 말하는 건 장사꾼들뿐.
그래도 다행인 건,
대응 방법의 방향성만큼은 그리 불투명하지 않다.