인터넷 최대의 위협은 인터넷이 실제로 설계된 적이 없다는 사실이다. 대신에 상황에 따른 필요를 충족시키기 위해 적당히 꿰어 맞춘 프로토콜 덕분에 발전했다. 이런 프로토콜 중 보안을 염두에 것들은 거의 없다. 보안을 고려했다면 시끄러운 이웃이나 악의를 가진 공격자들을 상대할 필요도 없었을 것이다.
그 결과, 인터넷에서의 악용에 취약한 노후화된 프로토콜이 다수 존재하게 되었다. 이런 프로토콜에 대한 공격 중 일부는 수정을 통해 완화되었지만 프로토콜 자체를 더욱 탄탄한 것으로 교체해야 한다는 것은 확실하다. 오늘은 머지 않아 교체해야 하거나 현재 작업을 진행 중인 6가지 인터넷 프로토콜에 관해 살펴보도록 하자. editor@itworld.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
BGP(Border Gateway Protocol)
BGP는 인터넷 라우터가 인터넷 네트워크 토폴로지의 변화에 관한 정보를 교환하기 위해 사용하는 것으로, 가장 오래되고 가장 중요한 인터넷 프로토콜 중 하나이다. 또한 인터넷 상호 접속이 상호간의 신뢰에 기초해 이루어지던 시대에 개발된 것으로, 가장 근본적인 약점을 가지고 있는 프로토콜이기도 하다. 약간의 작업만으로도 인터넷 라우팅 정보를 일명 BGP 스푸핑이라고 불리우는 가짜 라우팅 정보로 오염시킬 수 있다.
BGP 스푸핑은 적지 않게 발생한다. 이로 인한 피해는 일반적으로 간단한 조치를 통해 감지 및 수정할 수 있지만, 공격자에게는 심각한 피해를 유발하는 공격을 위한 충분한 여지를 제공한다. 가장 큰 문제는 현 상황에서 해결이 불가능하다는 점이다. 중앙의 통제권을 통해 특정 주소가 특정 네트워크에 속해 있는지 여부를 확인할 수 없기 때문이다. 그리고 BGP는 기본적인 프로토콜이기 때문에 짧은 시간에 교체할 수도 없다. 그나마 CII(Core Infrastructure Initiative)가 "BGP 수정"을 할 일 목록에 추가해 두긴 했으니 다행이다. Image courtesy Wikimedia
SMTP(Simple Mail Transfer Protocol)
수 년 동안의 노력에도 불구하고 이메일은 여전히 기본 프로토콜인 SMTP와 함께 널리 사용되고 있다. SMTP의 가장 큰 문제점은 순수했던 시절에 만들어진 탓에 보안이 내재되어 있지 않다는 점이다. "SMTP는 인터넷 초기에 프로토콜 설계자들이 악당들의 위협을 인지하기 전에 인터넷에서 사용자들 사이의 이메일 전송을 위한 하나의 단순한 수단으로 여겨졌다."
시간에 지나면서 SMTP의 보안을 강화하려는 여러 시도가 있었다. 그 중에서 역 DNS 확인은 전송자의 실제 신원을 확인하는 것이다. 하지만 프로토콜 자체는 이런 보안을 의무화하지 않으며, 순전히 사용자의 선택에 달려 있다. 수신한 이메일을 검사하지 않는 게이트웨이가 있다면, 모든 것이 끝이다. 아마도 받은편지함이 이메일 미로를 빠져 나오는 길을 보여줄 수 있겠지만 너무 크게 기대하지는 말자. Image courtesy Wikimedia
DNS(Domain Name System)
IP 주소를 도메인 이름으로 해석하는 인터넷 프로토콜은 인터넷에 있어서 아주 기본적이기 때문에 이를 이행하는 소프트웨어의 프로토콜과 보안 취약성의 결함을 이용한 공격이 자주 벌어진다. 이란 사이버부대는 트위터의 도메인용 DNS 서버를 탈취했고 시리아의 전자부대는 뉴욕타임즈의 도메인 등록 계정을 가로챘다.
2008년 보안 연구가 댄 카민스키가 프로토콜의 디자인에 내재된 엄청난 결함을 발견하면서 DNS 보안에 대해 경종을 울렸다. 이로 인해 위조 데이터를 DNS 서버에 삽입하지 못하도록 하는 DNS의 보안 확장기능인 DNSSEC 개발에 착수하게 되었다. 하지만 DNSSEC가 제 기능을 발휘하려면 처음부터 이행해야 한다. 게다가 큰 부하가 DNS 서버의 성능에 영향을 끼칠 수 있으며 이를 이용해 DoS 공격을 실시할 수도 있다. 치료법이 있다는 사실이 다행스럽기는 하지만 여전히 개발 중인 것만은 확실하다. Image courtesy Wikimedia
NTP(Network Time Protocol)
NTP의 고귀한 목적은 서버 팜부터 데스크톱까지 전 세계 컴퓨터의 시계를 동기화하는 것이다. 하지만 이 제품이 개발될 당시에도 보안은 크게 중요하지 않았다. 그래서 프로토콜의 동작 방식과 결합해 일련의 해킹된 컴퓨터를 이용해 DoS 공격을 실시할 수 있게 되었다.
다행히도 해킹에 대비한 NTP 서버 패치가 개발되었으며, 공격이 발생하지 않도록 애초에 적절히 구성할 수 있게 되었다. 하지만 NTP 해킹이 영원히 불가능하다고 말할 수는 없으며, 특히 프로토콜과 과거에 구현된 요소에 관한 정밀한 조사가 없는 상황에서는 더욱 그렇다. Image courtesy Wikimedia
IPv4
IPv4 주소 공간의 고갈문제를 해결하려는 여러 시도에도 불구하고 마이크로소프트같은 대기업조차도 IPv4 할당 주소가 빠르게 고갈되고 있음을 부정할 수 없다. 수 년 동안 논의되어 온 유일한 장기적인 해결책은 IPv6로 이행하는 것이다.
IPv6는 모바일 세계 등 새로운 기술 시장으로 잘 발전하고 있으며, 여기에서 IPv6는 4G 네트워크를 위해 널리 사용되고 있다. 그 외에는 IPv6로 이행할 때의 장애물이 끝도 없이 존재하는 것 같다. 단순한 관성이 가장 큰 문제점이다. 많은 사람들이 강제성이 없다면 굳이 업그레이드를 하지 않을 것이다. CITF(California IPv6 Task Force)의 공동 회장 에드 홀리(Ed Horley)는 자격을 갖춘 IPv6 전문가가 여전히 극소수에 불과하다고 말했다. 그리고 NIST는 공격자들이 스위치를 끄는 순간에 공격할 만반의 채비를 갖추고 있을 수 있다는 점을 우려하고 있다. 다시 한 번 말하지만, 그 누구도 인터넷의 기본적인 인프라를 변경하기가 쉽다고 생각하지 않는다. Image courtesy Wikimedia
SSL(Secure Sockets Layer)
경험상 프로토콜이 오래될수록 어떤 식으로든 문제를 일으킬 수밖에 없으며, 후속물로 더욱 긴급하게 대체해야 할 필요성이 존재한다. SSL의 대체물이 개발된 지 수 년이 지났지만, 최근에 재난이 발생하고서야 SSL 폐기의 움직임이 일고 있다.
SSL은 HTTP 등의 애플리케이션 계층 접속을 위한 암호 보호를 제공하도록 개발된 것으로, 최종 버전은 1996년도에 개발된 것이다. 대체 프로토콜인 TLS(Transport Layer Security)는 3년 후 등장했으며, 널리 사용되는 1.2 버전은 2008년에야 등장했다. 하지만 SSL 자체는 하위 호환성 때문에 여전히 사용되고 있다. 이 때문에 모든 주요 브라우저는 전체 온라인 거래의 0.3%에 불과하지만 여전히 SSL을 지원하고 있다.
이제 SSL을 폐기할 확실한 이유가 생겼다. 악명 높은 푸들(POODLE) 공격을 완화시킬 최선의 방법은 SSL을 포기하는 것이다. 모질라와 구글이 현재 이런 작업을 진행 중이기 때문에 그 어떤 이유로든 내부적으로 SSL을 사용하고 있던 기업들 또한 포기해야 한다. 아마도 하위 호환성 외에도 다른 문제점들이 발견될 것이다. Image courtesy Andrew Mason via Flickr