보안 제품정보


ASP.NET 해킹되다! 정보 노출 우려 심각 2010.09.28

Ekoparty 컨퍼런스에서 해킹 시연해

[보안뉴스 호애진] 보안 연구자 두 사람이 ASP.NET 웹 애플리케이션이 암호화된 세션 쿠키를 처리하는 방식 즉, 공격자가 사용자의 온라인 뱅킹 세션을 가로채 취약성을 지닌 애플리케이션에서 다른 심각한 문제를 일으킬 수 있게 하는 취약점을 이용한 해킹에 성공했다고 외신은 보도했다.


Thai Duong과 Juliano Rizzo는 최근 아르헨티나에서 개최된 Ekoparty 컨퍼런스에서 수 백만 개의 웹 애플리케이션에 영향을 미치는 이 버그에 대해 구체적으로 논의하며 이를 직접 해킹하는 시연을 선보였다.

 ▲ Thai Duong과 Juliano Rizzo가 ASP.NET을 해킹하는 시연을 선보이고 있다. @보안뉴스

외신에 따르면 마이크로소프트(Microsoft)의 유명한 웹 프레임워크 ASP.NET에서 AES 암호화 알고리즘을 써 이들 애플리케이션이 사용자 세션 중에 정보를 저장하는데 쓸 목적으로 생성하는 쿠키의 무결성을 보호하는 과정에서 문제가 나타난다.


Duong과 Rizzo는 이 공격에 쓰기 위해 패딩 오라클 익스플로잇(Padding Oracle Exploit)이라는 전용 툴을 개발했다. 이번 공격은 2002년 Serge Vaudenay가 Eurocrypt에서 이와 관련 주제를 다룬 논문을 제시한 이후 알려진 기법을 응용한 것이다.


이 사례에서 ASP.NET이 AES를 구현하는 과정에서 쿠키에 든 암호화 데이터가 변경됐을 때 그 오류를 처리하는 방식에 버그가 있다. 암호화 텍스트가 변경됐다면 취약 애플리케이션이 오류를 발생시키는데 이를 통해 공격자는 이 애플리케이션의 암호해독(복호화) 프로세스 작동 방식에 관해 일부 정보를 얻게 된다. 오류가 많을수록 데이터도 많다는 뜻이다. 그리고 이들 오류를 충분히 들여다본 공격자는 작은 암호화 키를 추측해내는데 필요한 바이트 수를 만들 수 있는 데이터를 충분히 확보할 수 있다.

 

이 공격 방식을 쓰면 은행 계좌, 사회보장번호(SSN) 또는 암호 키 등 소중한 자료를 담고 있을 수도 있는, 엿본(sniffed) 쿠키를 해독할 수 있게 된다. 공격자는 중요한 웹 애플리케이션의 인증 티켓을 만들거나 애플리케이션의 암호화 API를 쓰는 다른 프로세스를 악용할 수도 있다.


Duong과 Rizzo는 올해 이보다 먼저 JavaServer Faces와 기타 웹 프레임워크를 대상으로 이와 비슷한 일을 벌여 그 결과를 블랫햇 유럽(Black Hat Europe)에서 발표한 바 있다. 둘은 연구를 계속해 ASP.NET이 동일한 유형의 공격에 취약하다는 점을 밝혀냈다.


이 공격 유형은 패딩 오라클 공격(Padding Oracle Attack)으로 알려져 있으며 많은 애플리케이션이 그러하듯이 암호 블록 체인 모드(cipher-block chaining, CBC) 모드를 써서 암호화를 하는 웹 애플리케이션에 기반을 두고 있다.


블록 암호(Block cipher)에서는 암호화하는 메시지를 -예를 들어 8바이트 등- 지정된 크기의 블록 여러 개로 쪼개야 한다. 메시지가 항상 8바이트 크기에 엄밀하게 들어맞는 것은 아니기 때문에 지정 크기에 도달하려면 패딩(Padding)이 필요한 경우가 적지 않다.


Duong과 Rizzo가 ASP.NET을 대상으로 실행한 공격의 전제 조건은 웹 사이트에 암호화를 구현할 때 텍스트를 복호화할 뿐 아니라 전송자에게 암호화 텍스트에 든 패딩이 유효한지 여부를 알리는 메시지도 제공하는 오라클이 있어야 한다는 점이다.


패딩이 유효하지 않은 경우 전송자는 접수한 오류 메시지에서 해당 사이트의 복호화 프로세스 작동 방식에 대해 얼마간 정보를 얻게 된다. Duong과 Rizzo는 성공 시간이 폭넓은 차이를 보일 수 있지만 ASP.NET 애플리케이션을 대상으로 한 이 공격은 100% 신뢰도를 보인다고 말했다. 이 공격에서 실제로 제약 요소는 서버 속도와 가용 대역폭이다.


또한 공격자는 부 채널(side-channel) 누출로 확보한 정보를 이용해 오류 메시지를 기다리지 않고도 이 공격 기법을 실행할 수 있다.


Duong은 “공격 신뢰도가 100%라는 점, 다시 말해 이 공격을 개시하기만 하면 이를 타깃으로 익스플로잇할 수 있다는 점을 염두에 둬야 한다”며 “이는 단지 시간 문제일 뿐”이라고 밝혔다. 그는 또 “공격자가 운이 좋다면 몇 초 안에 어떤 ASP.NET 웹사이트든 탈취할 수 있다”며 “공격 평균 완료 시간은 30분으로 이제까지 걸린 가장 긴 시간은 50분 미만”이라고 덧붙였다.


ASP.NET은 현재 인기 있는 웹 프레임워크로 Duong과 Rizzo는 온라인 애플리케이션 중 25%는 ASP.NET을 이용해 제작된다고 추산했다. 하지만 기업과 금융 서비스 업계의 경우 그 수치는 훨씬 높아 전문가들은 온라인 뱅킹과 전자상거래 등의 애플리케이션이 이 공격의 주요 타깃이 될 것으로 우려하고 있다.

[호애진 기자(is@boannews.com)]


<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>