2024-04-20 17:10 (토)
PHP 슈퍼글로벌 변수 취약점 심각! 논란 수면위로
상태바
PHP 슈퍼글로벌 변수 취약점 심각! 논란 수면위로
  • 호애진
  • 승인 2013.09.11 04:26
이 기사를 공유합니다

원격 코드 실행, 원격 파일 삽입, 보안 필터 우회 공격 가능해
페이스북과 위키피디아 등 여러 대형 웹사이트를 포함해 전세계 81%의 웹사이트에서 사용 중인 PHP 웹 애플리케이션 개발 플랫폼을 대상으로 한 취약점들이 최근 공격자들의 주목을 받고 있다.
 
PHP에는 POST, GET, COOKIES, FILES 등 슈퍼글로벌(SuperGlobal)이라 불리는 9개의 정의된 변수가 있다. 이는 개발자들에게 유연성을 제공해 주는 역할을 하지만, 악용되면 원격 코드 실행, 원격 파일 삽입 및 보안 필터 우회 공격이 가능한 것으로 나타났다.
 
보안업체 임페르바(Imperva)는 ‘해커 인텔리전스 이니셔티브(Hacker Intelligence Initiative)’ 보고서를 발표하고, 이와 관련 두가지 취약점에 대해 지적했다. 해당 취약점들은 PHP로 구동되는 서버에서 코드를 실행하는데 사용되며 PHP 슈퍼글로벌 파라미터 변수가 쿼리 파라미터 또는 쿠키와 같은 외부 소스를 통한 변경을 가능케 한다.
 
첫번째 취약점은 CVE-2011-2505으로, PhpMyAdmin(PMA)의 인증 기능 취약점에 관한 것이며 이를 통해 공격자가 _SESSION 슈퍼글로벌 변수를 변경하는 것이 가능하다.

두번째는 CVE-2010-3065으로, PHP의 세션 직렬화 메커니즘 취약점에 관한 것이다. PHP의 슈퍼글로벌 메커니즘을 사용하는 내부 변수에 악의적인 수치를 주입함으로써 공격자는 애플리케이션 흐름을 변경하고 서버를 제어할 수 있는 임의적인 명령을 실행하는 것이 가능하다.
 
임페르바 연구진은 슈퍼글로벌 변수를 악용하는 공격을 발견한 바 있으며, 슈퍼글로벌 파라미터와 관련된 공격 벡터가 포함된 샘플 애플리케이션 당 공격 횟수가 한 달에 평균 144개에 이르는 것을 확인했다.
 
이러한 공격들은 한 애플리케이션에 분당 최대 20회와 90회의 요청을 수행하는 요청 폭주의 형태로 수행됐으며, 일부는 5개월 이상 동안 공격이 진행된 것으로 나타났다.

 
연구진은 슈퍼글로벌 변수 조작이 최근 공격자들 사이에서 인기를 얻고 있다고 밝혔다. 해당 취약점들은 이미 알려져 있고, 네소스(Nessus)나 닉토(Nikto) 등 일부 취약점 스캐너가 이러한 취약한 벡터를 특정적으로 찾고 있지만, 개발자들이 PHP 애플리케이션을 계속해서 사용하고 있다는 점이 문제로 지적되고 있다.
 
특히, PHP 코드를 호스팅하고 있는 웹사이트는 81%에 이르기 때문에 위험성은 더욱 커진다. 반면, ASP.NET은 19%, 자바는 3%에 불과하다.
 
이에 연구진은 취약점들을 통해 내부 변수가 이름이 동일한 외부 파라미터를 통해 값이 덮어 씌어질 수 있기 때문에 각 리소스에 파라미터 네임의 지정을 허용하는 것만이 공격자가 외부 변수 조작 취약점을 이용하지 못하도록 할 수 있는 유일한 방법이며, 특히, 슈퍼글로벌 파라미터에는 이러한 요청이 이뤄질 필요가 없기 때문에 이러한 파라미터 접근은 차단돼야 한다고 조언했다.
 
데일리시큐 호애진 기자 ajho@dailysecu.com
■ 보안 사건사고 제보 하기

▷ 이메일 : mkgil@dailysecu.com

▷ 제보 내용 : 보안 관련 어떤 내용이든 제보를 기다립니다!

▷ 광고문의 : jywoo@dailysecu.com

★정보보안 대표 미디어 데일리시큐 / Dailysecu, Korea's leading security media!★