얼마전 발생한 VGXvgx.dll exploit나 XSS 데모를 보면 인터넷 서핑하기 무서워지네요. IE도 문제지만 FireFox도 보안버그가 많이 발견되고 있습니다. FireFox가 안전하다고 하고, 여러가지 추가 기능들을 모듈(addon)을 통하여 설치할수 있지만… 아직 한국 사이트에서는 제약이 많습니다. IE 외의 브라우저에서는 정상적으로 보이지 않는 사이트들이 아직 많습니다. FireFox에 IE Tab을 설치하여 정상적으로 보이지 않는 페이지를 볼수는 있지만, IE로 볼때 마우스 제스처등이 안되는등 불편한 점이 많습니다. 또한 발표되는 FireFox 버그들을 보면 소스가 공개되서 그런건지 모르지만, 보안 버그들이 자주 발견됩니다.
buffer overflow에 대한 해결책으로 최근 나오는 프로세서들에서 지원하는 데이타 실행 방지(Data Execution Prevention) 기능을 사용하는 방법이 있습니다. 자세한 것은 모르겠지만, 스택 영역을 실행하려고 할때 CPU에서 이에 대한 예외(exception)을 발생시켜주는 것입니다. 많은 버퍼 오버플로우 공격이 이 기능을 통해서 막아지며 이번 dll 공격도 이 기능이 활성화 되어 있다면 영향을 받지 않았다고 합니다. DEP 기능은 XP SP2와 최신 CPU에서만 동작하며, 디폴트는 시스템과 서비스 내에서만 활성화 되어 있습니다. 모든 프로그램에서 실행되도록 변경하기 위해서는 “시스템 등록 정보-고급 탭-성능 설정-데이타 실행 방지(DEP) 탭” 에서 “데이타 실행 방지(DEP)를 …. 모든 프로그램 및 서비스에서 사용”을 선택하면됩니다. 프로그램에 따라서 예외를 등록할수도 있습니다. 옛날에 최적화가 과하게(?) 된 프로그램은 예외를 등록해야 동작되는 프로그램이 있다고 하는군요.
VMware, Parallels, Virtual PC등의 Virtualization 기술을 이용하여, Sandbox 안에서 좀더 안전하게 서핑할수 있는 방법도 있지만, 세팅하기도 힘들고 무겁습니다. 비록 쉐어웨어지만 Sandboxie라는 프로그램을 통하여 IE나 필요한 임의의 프로그램을 Sandbox 내에서 실행할수 있습니다. 라이센스는 30일간 사용 가능하며 등록비도 그리 비싸지는 않습니다. 그리고 아직 30일이 지나지 않았지만 별다른 제약은 없는거 같습니다. Sandbox에서 실행될때는 원래 하드디스크에 쓸수 없기때문에, 악의적인 코드가 실행되더라도 Sandbox 내의 드라이브만 영향을 줄수있습니다.
위에 설명한 방법으로 어느정도 공격은 막을수 있습니다. “IE 대신 XX 브라우저를 쓰면 안전하다”라는건 그냥 선전문구 정도만 될수 있고, 실질적으로 안전한 서핑을 하기 위해서는 좀더 근본적인 접근 방법이 필요할것 같습니다. 위에서 언급한 XSS 공격 데모는 정말 충격적이었습니다. 데모에서 보여진 공격들은 위에서 얘기한 공격방지 방법으로는 모두 해결되지 않습니다.
웹 클라이언트쪽의 보안 분야가 현재까지보다 앞으로 훨씬 더 많은 이슈가 발생할 것이고, 많은 공격이 시도될것이라 생각합니다. 앞으로 어떤 해결책이 나올지 지켜봐야겠네요. 지금으로서는 보안 전문가들 보다 크래커들이 한발 앞서있는 느낌입니다.