마이크로소프트는 윈도우 운영체제에서 웹서비스의 일부분으로 제공하는 ASP.NET의 취약점에 대한 사항을 정리하여 공개했습니다.

이 취약점은 Microsoft Security Advisory (2416728) 또는 CVE-2010-3332 로 이름붙여진 상태입니다.

이 취약점은 .NET FrameWork가 지원되는 IIS 버전에서 발생하며, 윈도우 XP/Vista/7과 같은 클라이언트 운영체제 뿐만 아니라 Windows 2003/2008/2008R2에서도 문제가 있습니다. 다만 Windows 2000 운영체제에서는 문제가 발생하지 않습니다.

이 취약점을 통해 웹서버에서 암호화되어 전송되는 View State(__VIEWSTATE)와 같은 데이터를 공격자가 알아 낼 수 있습니다. 또한, 웹 서버에 저장된 파일 - 예를 들어 ASP.NET의 환경 설정 파일인 web.conifg - 을 읽을 수 있습니다.



이렇게 암호화된 데이터를 예상하여 알아내는 기술을 패딩 오라클(padding oracle) 기법이라고 하며, 최근에 이에 대한 뉴스가 잠시 나온 적이 있어 ASP.NET에 관련된 무언가에 대한 문제점이 있다는 추측이 나오기도 했습니다.

현재까지 이 취약점을 이용하여 공격하는 코드가 출현했다는 보고는 들어오고 있지 않지만, 나타날 가능성도 배제할 수는 없습니다.

마이크로소프트는 이 문제점을 해결하기 위해 조사를 진행 중에 있으며, 대안으로는 오류 페이지를 하나로 통일하여 보여 주는 방식이 유일한 것으로 알려져 있습니다.

아래 코드는 web.config 파일과 C#으로 작성된 ErrorPage.aspx 예제입니다.

<configuration>
 <location allowOverride="false">
   <system.web>
     <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/ErrorPage.aspx" />
   </system.web>
 </location>
</configuration>


<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Threading" %>

<script runat="server">
        void Page_Load() {
        byte[] delay = new byte[1];
        RandomNumberGenerator prng = new RNGCryptoServiceProvider();

        prng.GetBytes(delay);
        Thread.Sleep((int)delay[0]);
       
        IDisposable disposable = prng as IDisposable;
        if (disposable != null) { disposable.Dispose(); }
    }
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
        An error occurred while processing your request.
    </div>
</body>

보다 자세한 자료는 MS의 기술 자료를 참고하십시오.

https://www.microsoft.com/technet/security/advisory/2416728.mspx

이 취약점에 대한 공격코드가 아직 나타나지 않은 점에 대해 안도해야 할 수도 있을 것입니다. 만약, 공격코드가 있다면 전세계 수백, 수천만대의 웹서버가 위험에 처해질 수도 있는 매우 광범위하게 피해를 입힐 수 있는 문제점이기 때문입니다.

감사합니다.

2010년 9월 20일자로 마이크로소프트는 해당 취약점을 통해 제한적이지만 실제적으로 공격이 가능하다는 연구 결과를 발표했습니다.

reTweet
Posted by 문스랩닷컴
blog comments powered by Disqus

    댓글을 달아 주세요



    Web Analytics Blogs Directory