VoIP는 외부 공격에 얼마나 취약하며, 치명적인 사고 위험에 노출되어 있을까. 

VoIP 인프라스트럭처를 구조적으로 분석한 신간 VoIP 네트웍보안 강화하기(Securing VoIP Networks)에 따르면 VoIP는 기술 자체도 문제점을 상당수 안고 있지만, 관리 소홀로 인한 인재(人災)도 이에 못지 않게 많은 것으로 나타났다.

신간은 주요한 VoIP 보안 문제점을 크게 14가지로 요약해 설명했다.

1. 데이터 검증(verification of data) 부족: VoIP는 이를 구현하는데 있어 MITM(man-in-the-middle attack)에 노출될 가능성이 높다. MITM은 공격자가 메시지를 주고 받는 두 당사자 간의 메시지를 마음대로 읽고 수정하거나 추가 데이터를 삽입하거나 가로채는 공격 형태다. 이 때 양단에서 메시지를 주고 받는 두 피해자는 이러한 사실을 전혀 알아채지 못한다.

특히 웹 브라우저 이용시, 웹 브라우저에 기본적으로 내장되지 않은 기관이 발행한 인증서를 확인하는 것은 전적으로 이용자의 확인 클릭에만 의존하고 대부분의 이용자는 이를 철저히 확인하지 않거나 확인할 수 없다는 데 문제점이 있다. 즉, 허위 인증서를 내보내도 이용자들은 이것이 가짜인 줄을 모르는 것이다.

MITM 공격 위험을 최소화하기 위해 공개 키(public key), 철저한 상호 인증, 비밀 키, 패스워드, 음성 인식/생체 인식 등의 대책이 필요하다.

2. 실행 결함 (execution flaws): VoIP 서비스나 등록의 백본으로는 통상 표준 데이터베이스가 쓰인다. VoIP를 구현할 때는 모든 액티브 콘텐츠를 철저히 필터링해야한다. 이것은 아무리 강조해도 지나침이 없다.

액티브 콘텐츠는 액티브X 컨트롤이나 스크립트 코드로 구성되며 웹 페이지 내에 포함, 배포되고 클라이언트 PC 내에 설치되어 동적으로 작동하는 콘텐츠. 이용자 이름, 비밀번호 같이 유저가 제공한 데이터로 부터 나오는 SQL 쿼리, 그리고 접속 설정 프로토콜 (session initiation protocol (이하 SIP)) 주소 등을 말한다.

3. 스트링/어레이/포인터 조작 결함: 예상치 못한 구조나 콘텐츠를 포함하는 비정상(malformed) 패킷은 프로토콜 메시지라면 어디에나 존재할 수 있다. 음성패킷망(VoIP)에서 이용하는 대표적인 프로토콜은 SIP, H.323(서비스 품질이 보증되지 않은 LAN에서의 음성, 동영상 데이터 통신 단말 규정 중 하나로 VoIP 서비스나 제품에 널리 채용되고 있으며 우리나라의 VoIP 장비는 2003년경부터 대부분 이 프로토콜을 이용하고 있음), 서비스 검색 프로토콜(service discovery protocol, 이하 SDP), MGCP(media gateway control protocol), RTP(real-time transport protocol), SRTP(secure RTP: 기밀성 및 메시지 인증을 제공하는 RTP의 한 종류) 등이다.

통상적인 비정상 메시지는 대부분 버퍼 오버플로우 공격이나 다른 형태의 경계값 조건(boundary-value conditions)을 포함한다. 결과적으로 공격자는 임의로 임력한 값을 레지스터나 포인터와 같은 다른 내부 메모리 콘텐츠에 덮어 쓸 수 있으며 따라서 보안상 취약한 프로세스를 맘껏 제어하게 된다.

4. 자원 부족: VoIP 구현에 사용되는 자원(resources) 부족 현상은 특히 임베디드 장치에서 많이 발견된다. 메모리 용량이 작거나 처리 능력이 떨어지면 임베디드 장치에서 서비스되는 VoIP는 외부 침입에 무력화되기 십상이다.

5. 대역폭 부족: VoIP가 원활히 서비스되려면 모든 접속자가 동시에 접속을 시도할 때에도 부하를 견딜 수 있도록 설계돼야한다. 사실, 동시 접속자 수가 많지 않으면 대역폭은 그다지 문제될 것이 없다. 그러나 공격자가 의도적으로 수천개의 봇(bot: 로봇과 같이 스스로 움직이지는 못하나 명령자의 명령에 의해 원격 제어나 실행이 가능한 프로그램 코드. 여기에서 bot는 robot의 약어) 클라이언트에서 접속을 시도하는 경우라면 서비스 전체가 마비될 수 있다.

6. 파일/자원 조작 결함: 전형적으로 발생하는 VoIP 구현상의 인재(人災). 안전하지 않은 프로그래밍 구조 등을 이용한데서 기인하는 프로그래밍 오류로 보안 문제를 야기한다. 파일에 안전하게 접근하지 않아서 발생하기도한다.

7. 비밀번호 관리: VoIP 이용자가 가진 식별수단은 전화번호나 SIP 주소, 그리고 이를 이용해 서비스에 접근할 때 쓰이는 비밀번호 뿐이다. 비밀번호는 클라이언트의 단말기와 서버에 모두 저장된다. 이 때 서버에 저장된 패스워드가 가역적(암호화한 방법을 역으로 응용하여 다시 암호화하기 전의 비밀번호로 풀어낸다는 뜻)이라면 서버나 프락시에 접근하는 사람은 누구나 이용자 이름과 비밀번호의 조합을 알아낼 수 있다.

8. 접근 허가와 특권: 모든 자원은 운영 체계와 플랫폼 관점에서, 또 동시에 네트워크 관점에서 철저히 보호돼야한다.

플랫폼에 기반에서 서비스되는 VoIP는 특권(사용자, 프로그램, 프로세서에 부여된 특권은 시스템 접근 통제권에 우선한다)을 반드시 고려해야한다. 일반적으로 VoIP 서비스가 구현될 때 관리자나 루트 특권이 반드시 필요한 것은 아니기 때문이다.

9. 암호화 및 변칙화(randomness): VoIP를 통해 신호를 보낼 때, 보안이 필요한 데이터는 도청당하지 않게 철저히 보호해야한다. 이 분야에서 가장 일반적인 취약점은 부실한 암호화다. 이런 낭패는 암호화 메커니즘을 갖춘 경우에도 종종 발생한다.

10. 인증 및 인증서 오류: 이용자와 장치는 인증받아야한다. VoIP 장비에는 이 뿐 아니라 장치 관리와 같이 이용자 인증을 필요로하는 많은 서비스가 있다.

SIP에서 발생하는 레지스트레이션 하이재킹(registration hijacking: 공격자가 다른 이용자의 장치나 아이드를 자신의 장치나 아이디와 바꿔치기 해 등록하는 것)도 결함의 하나다. 이 경우 침임자는 가짜 등록 메시지를 만들어내고 자신을 인증받은 이용자로 재등록할 수 있다.

11. 오류 처리 결과: 예를 들어, 비정상적인 전화번호 때문에 발생한 등록 메시지는 오류 번호 코드 ‘404’로, 정상적인 전화번호로 오류가 발생한 ‘401’로 구분된다. 따라서 침입자는 무차별 대입 공격(brute force attack: 성공할 때까지 가능한 모든 조합을 이용하는 공격)과 SPIT(spam over Internet telephony, 전화 스팸)에 필요한 번호를 쉽게 추출할 수 있다.

12. 균일 네트워크(homogeneous network: 특정 벤더의 동일 모델과 호스트 컴퓨터로 구성돼 시스템 호환성을 높인 네트워크): 네트워크 인프라스트럭쳐가 제한된 수의 벤더와 모델에 지나치게 의존하면 예상치 못한 보안 위험에 빠질 확률도 따라 커진다.

전체 네트워크가 한 종류의 벤더 브랜드가 공급한 전화기, 프락시, 방화벽으로만 구성된 경우, 바이러스나 웜과 같은 자동 공격 하나가 전체 네트워크 시스템 작동을 중단하기도한다.

13. 고장 대체 시스템 부족: VoIP 네트워크가 다운됐을 때라도 이용자를 수용할 수 있는 백업 시스템이 필요하다. 인프라스트럭쳐에 대한 체계적인 전략이 필요한 부분이기도하다.

14. 물리적 접속 품질과 패킷 충돌: 두개 이상의 스테이션이 동시에 하나의 네트워크를 통해 패킷을 전송하려할 때 패킷 충돌이 발생한다. 데이터 인프라스트럭쳐에 패킷 손실이 발생하면 VoIP 서비스는 불가능하다. 네트워크 정체와 지터는 최소화돼야한다. 전통적인 데이터 통신에서는 명확히 밝혀지지 않았던 통신상의 모든 병목현상들이 VoIP가 도입되면서 속속 드러나고 있다.

저자 피터 써모스(Peter Thermos)는 팰린드롬(Palindrome Technologies, palindrometech.com)의 CTO, 아리 타카넨(Ark Takanen)은 코데노미콘(Codenomicon Ltd., codenomicon.com)의 설립자이며 CTO다.

 

 

 

저작권자 © 데일리그리드 무단전재 및 재배포 금지