2012년 2월 24일 금요일

이길환 정보보호소장의 새로운 이론과 반론

 이길환 정보보호소장님이 장문의 기술적 글을 올리셨습니다. 처음부터 이렇게 하셨으면 얼마나 좋았을까 하는 생각을 해봅니다. 그러면 기술적인 반론을 제시해 드리며 기술적 논의임으로 존칭은 생략함을 양해해 주시기 바랍니다. 검정 글씨가 이길환씨의 주장 입니다. [트윗에 올린 주장 바로가기]






#닥치코패쓰 한글 읽을 줄 알면보세요 ㅡ
 이 부분은 누가 보아도 이길환씨의 기술적 이야기를 반대하면 나꼼수빠로 일반화 시킬 수 있는 논리적 오류입니다. 한나라당을 반대하면 민주당으로 보는 시각과 크게 다르진 않습니다.




특정 페이지만 열리지 않는 것이 DDoS 공격인가?
(1)결론부터 말씀드리면 DDoS 공격이 맞다.
 DDoS 공격은 존재했습니다. 제 의견은 "DDoS공격에 따른 증상이 아니다" 이고 이길환씨의 주장은 "DDoS공격에 의한 증상이 맞다" 입니다.




(2)DDoS 전문가인 제 견해는 정확히 L7 보안장비인 웹방화벽의 자동 필터기능의 약점을 이용한 공격이다.
 기본적 개념에서 L7 Application Gateway Firewall 은 L7 스위치 까지 도달한 정보를 모두 조회하는 방식이며, 웹방화벽은 80,443,20,21 Port 로 들어오는 정보를 조회하여 분석/차단 하는 방식입니다. L7은 OSI Layer-7 를 간단하게 이야기한 것이라 생각 됩니다. 자동 필터기능의 약점 이라는 부분은 Positive Security Model 에 있는 자동학습 기능에 대한 약점을 이야기 하는 것으로 보입니다.



(3)좀비 PC가 선관위 웹페이지에 정상적으로 접속을 하고 투표소 위치에 요청에 대해 반복적으로 수백 수천 건의 정보요청 보내면
(4)웹방화벽에 설정된 반복 쿼리에 대한 필터가 자동으로 만들어지고 WAS와 DB서버의 부하를 줄이기 위해 같은 형식의 쿼리 요청 차단하게 된다.

 이길환씨와 미팅이 있던 날 이길환씨의 주장인 "페이지 디도스는 일반인의 이해를 위해 사용한 용어이고 정확히는 UDT CC"다 라는 의견보다는 진보된 의견으로 보입니다. UDT CC는 UDP based application layer Data Transfer protocol 을 통한 Cache Control 방식의 공격을 의미 하는데 HTTP Request가 아닌 Cache Control 공격이 어떻게 이루어질 수 있는지 상상이 가지 않습니다. 제가 모르는 공격 방식일 수 있음으로 검색을 시도하여 보았으나 검색 결과가 없는 것으로 보아 아직 정식으로 보고된 바는 없습니다.


 웹 방화벽은 웹서버 앞단에서 Network Packet 을 조회하는 Hardware방식과 Web Service Application 으로 부터 Header와 Data Stream을 받아서 조회하는 Software 방식이 있습니다. "공격이 웹페이지에 정상적으로 접속을 했다" 라는 전제가 필요한 것으로 보아 Software 방식의 웹방화벽을 이야기 하는 듯 합니다.

 웹방화벽의 동작은 안전하다 여겨지는 것을 제외한 모든 트래픽을 차단하는 PSM(Positive Security Model) 과 위험하다고 정의되는 트래픽만을 차단하는 NSM(Negative Security Model) 두가지 모델이 있으며 요즘은 두가지 모델을 동시에 적용하는 제품이 주를 이룹니다. 


 앞서 이길환씨가 주장한 자동필터링(자동학습기능)은 PSM의 기능 중 하나입니다. 공격방식과 공격자 IP에 대하여 Reputation Based 방식으로 주변의 웹 방화벽과의 교류를 통한 자동학습을 이야기 하는 것이지 Query를 검증하는 기능이 아닙니다. 


 가장 큰 논리적 오류는 Query란 Web Service Application(Apache, webtoB 등)을 거쳐 Java Servlet Container(WAS포함),ASP,PHP 등의 Framework에 전달된 정확한 Data를 기반으로 Framework 가 DB에 요청하는 요청문이지 Web Service Application 단에있는 웹방화벽이 검증할 부분이 아라는 것 입니다. 또한 SQL Injection은 웹방화벽에서 차단되지만 정상적인 사용자는 Network packet 안에 Injection요소를 가지고 있지 않음으로 공격과 확연히 구별되며 차단될 여지가 전혀 없습니다.


 결론적으로 반복적인 쿼리 요청에 의한 WAS와 DB의 부하를 막기위해 웹방화벽이 쿼리를 차단한다는 이길환씨의 주장은 선후관계 및 인과관계가 뒤바뀐 오류이며 어떠한 기술적, 논리적 근거도 찾을 수 없습니다.



(5)그 결과, 검색 결과 페이지를 요청하는 정보가 WAS에 도달하지 않아 투표소 결과 페이지를 제공하지 못하는 것이다.

 ?!




(6)DDoS는 분산 서비스 거부 공격을 통칭하는 용어이다.현재 미국 NIST에서는 DDoS의 분류를 소모성(Attrition)공격으로 분류한다.*< Attrition*: An attack that employs brute force methods to compromise, degrade, or destroy systems, networks, or services (e.g., a DDoS intended to impair or deny access to a service or application; a brute force attack against an authentication mechanism, such as passwords, captchas, or digital signatures).
(7)DDoS의 공격은 서버 마비 뿐만 아니라, 시스템 가용성에 대한 전반적인 부분을 다루고 있다.
(8)실제 DDoS 방어를 해본 사람이면, 이러한 문제가 쟁점화 되지 않는다. 왜냐하면,
(9)DDoS 공격자 입장에서는 가장 적은 노력으로 가장 큰 효과를 내려고 한다. 그리고 공격 중에 DDoS 방어에 따라 시시각각 공격의 양상을 바꾸어서 소기의 목적을 달성한다.
(10)DDoS 방어자 입장에서는 보안장비간의 설정충돌(이율배반)상태가 계속 발생할 수 밖에 없다. 공격의 양상에 따라서 계속적으로 방어 설정을 바꾸어야만 한다. DDoS 공격의 특징이 그러하다. 정상 사용자와 좀비의 공격을 구별할 방법을 기술적으로는 개별 개체가 과도한가 아닌가를 판단 할 수 밖에 없으며 과도하다는 정도를 주관적으로 판단해야 할 경우가 많이 발생한다.
(11)일반인이 생각할때, DDoS 장비가 있으니 DDoS를 방어하고, 침입차단 장비가 있으니 해킹이 방지되고, 웹방화벽이 있으니 웹은 안전하다고 판단 할 것이나, 이런식으로 말하는 자체가 보안의 기초만 알고 실제 보안 세계를 알지 못하는 사람들의 발상이다.


 위 내용들은 지식자랑 과 몇가지 소소한 오류를 제외하면 보안 전문가로서 충분히 이야기 할 수 있는 내용임으로 굳이 반론을 달지 않겠습니다.








 마지막으로 이길환씨에게 드리고 싶은 말은, 미팅이 있던 날 저는 기술검증을 위해 그자리에 간 것이지 이길환씨의 강의를 듣기위해 간 학생이 아니었다는 점, 그러므로 자세에 대해 기분이 나빴다는 것에 대하여 인간적으로 사과한것 뿐이지 결코 기술적 사과가 아니었다는 점, 그리고 저의 기술적 논지는 확고하며 이길환씨의 정치적 방향성은 기술적 논지에서 제외된다는 점 입니다. 


 방송을 통해 페이지 디도스가 가능하다는 주장을 하고 이러한 비논리적 이야기를 용어의 현란함을 이용하여 비종사자들로 하여금 비판없이 수용하도록 한 부분에 대해서는 책임감을 느끼실 수 있기를 바라며 조금 더 전문가적인 접근을 기대해 봅니다.