보안뉴스 창간 18주년을 축하합니다!!

Home > 전체기사

PHP 생태계에서 발견된 임의 명령 주입 취약점, 빠른 업데이트 필요

입력 : 2024-06-10 18:27
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기 네이버 블로그 보내기
PHP의 오래된 취약점을 되살리는 방법이 발견됐다. 다행히 연구원들이 먼저 발견했기에 대책이 마련될 수 있었다. 하지만 그 대책이 나오면서 취약점이 같이 공개되자 공격이 시작됐다는 것이다.

[보안뉴스 문정후 기자] 보안 업체 데브코어(DEVCORE)가 널리 사용되는 프로그래밍 언어인 PHP에서 아규먼트(argument)를 임의로 주입하게 해 주는 취약점을 발견했다. 익스플로잇 난이도가 낮으며 피해자에게 미치는 영향력이 크기 때문에 초고위험도로 분류됐다. 데브코어는 PHP 공식 관리자들에게 이 내용을 은밀히 전달했고, PHP 측에서는 6월 6일부터 공식 패치를 배포하기 시작했다.

[이미지 = gettyimagesbank]


데브코어가 자사 블로그를 통해 밝힌 바에 따르면 이 취약점은 CVE-2024-4577으로, PHP CGI에서 발견된 것이며, 12년 전에 발견되고 패치된 취약점인 CVE-2012-1823에 대한 보호 장치를 우회할 수 있게 해 준다고 한다. 그 결과 공격자는 피해자의 PHP 서버들에서 임의의 코드를 실행시킬 수 있게 된다. 윈도 생태계에서만 공격이 가능한 것으로 파악됐다. PHP 모든 버전에 영향을 준다.

데브코어는 이번 취약점이 윈도 OS에 있는 베스트핏(Best-Fit) 기능과 관련이 깊다고 설명했다. 베스트핏은 윈도 환경에서의 인코딩 처리 방식 중 하나며, 블로그에 의하면 “PHP 팀이 윈도에서의 인코딩 전환 방식을 간과했고, 이 때문에 기존 취약점(CVE-2012-1823)에 대한 보호 장치를 우회하는 게 가능해진다”고 한다.

특히 윈도 OS의 언어 설정이 전통 중국어(Traditional Chinese), 간체 중국어(Simplified Chinese), 일본어로 되어 있을 경우 공격자는 원격 서버에 직접 임의 코드를 실행할 수 있는 것으로 나타났다. 데브코어는 “한국어, 영어, 서유럽어로 지정되어 있는 경우, PHP가 너무 광범위하게 사용되고 있어 모든 공격 시나리오를 다 상정하고 실험할 수 없었다”며 “어떤 언어권이든 PHP 최신 버전으로 업데이트하는 게 안전하다”고 권장했다.

PHP 최신 버전은 다음과 같다.
1) PHP 8.3 계열은 8.3.8
2) PHP 8.2 계열은 8.2.20
3) PHP 8.1 계열은 8.1.29
4) PHP 8.0, 7, 5 계열은 지원 종료라 패치 없음

패치가 불가능한 경우를 위해서도 데브코어는 임시 조치를 추천해 두었다. 다만 이 방법은 말 그대로 ‘임시’로 취할 수 있는 조치이므로 결국에는 8.1.29, 8.2.20, 8.3.8 버전으로 업그레이드 해야 할 것이라고 강조하기도 했다. 또한 PHP CGI 자체가 낡은 플랫폼이자 아키텍처이므로 보다 나중에 나온 것들로 옮기는 것도 강력하게 권장했다. “Mod-PHP나 FastCGI, PHP-FPM 등이 PHP CGI보다 기본적으로 훨씬 안전합니다.”

다음은 당장의 패치가 불가능한 사용자나 관리자들을 위한 임시 조치이다.
1) 다음과 같이 재작성규칙(Rewrite Rules)을 구성하면 공격을 차단할 수 있다. 다만 이는 위에서 설명한 문제의 언어들로 설정된 윈도 환경에서만 통한다. 즉 전통 중국어, 간체 중국어, 일본어 윈도에서만 사용할 수 있는 방법이라는 것이다.

RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? - [F,L]


2) 윈도용 XAMPP(XAMPP for Windows)를 사용하는 경우라면, 아직 이 XAMPP 자체가 업데이트 되지 않고 있기 때문에 패치를 하고 싶어도 할 수 없다. 참고로 모든 버전의 윈도용 XAMPP가 이 취약점에 노출되어 있다고 데브코어는 이번 보고서를 통해 경고한 바 있다. 즉 XAMPP도 패치 대상이므로 관리자들은 이를 기억해둘 필요가 있다. 이 경우 C:/xampp/apache/conf/extra/httpd-xampp.conf라는 아파치 HTTP 서버 설정을 바꿔서 어느 정도 안전을 꾀할 수 있다.

먼저 다음 행을 찾는다.
ScriptAlias /php-cgi/ "C:/xampp/php/"

그리고 다음과 같이 주석 처리를 한다.
# ScriptAlias /php-cgi/ "C:/xampp/php/"

벌써 시작된 공격
IT 분야 외신인 테크웜에 따르면 이 취약점이 공개되고서 24시간도 되지 않아 해당 취약점에 대한 스캔이 시작됐다고 한다. 특히 이집트에서부터 공격의 조짐이 발견되고 있다고 경고했다. 하지만 PHP의 편만함을 생각했을 때 공격자들은 지역에 상관없이 익스플로잇을 시도할 것으로 예상된다. PHP처럼 전 세계적으로 사용자가 많은 생태계는 공격자들이 선호할 수밖에 없다.

아직까지 본격적인 피해가 발견되지는 않고 있지만, 이제 막 공격자들의 탐구가 시작됐으므로 거센 공격을 미리 예상하고 대응하는 게 현명할 것이라고 보안 전문가들은 말한다. 현재까지는 다음과 같은 공격 시나리오가 가능하다고 한다.

1) 민감 정보에의 불법적 접근
2) 디도스 공격
3) 임의 코드 실행 공격

3줄 요약
1. PHP CGI에서 매우 위험할 수 있는 취약점 발견됨.
2. 12년 전에 등장하고 패치된 취약점과도 관련이 있음.
3. 최신 PHP로 업그레이드 하는 게 가장 근본적인 대책.

[국제부 문정후 기자(globoan@boannews.com)]

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

  •  
  • 0
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기 네이버 블로그 보내기

  •  SNS에서도 보안뉴스를 받아보세요!! 
 하이젠 파워비즈 23년 11월 16일~2024년 11월 15일까지 아스트론시큐리티 파워비즈 2023년2월23일 시작 위즈디엔에스 2018
설문조사
3월 15일부터 시행되고 있는 개정 개인정보보호법과 관련해 가장 까다롭고 이행하기 어려운 조항은 무엇인가요?
인공지능(AI) 등 자동화된 결정에 대한 정보주체 권리 구체화
접근권한 관리 등 개인정보 안전성 확보조치 강화 및 고유식별정보 관리실태 정기조사
영향평가 요약본 공개제도 도입 등 개인정보 영향평가제도
영상정보처리기기 및 안전조치 기준
개인정보 보호책임자의 전문성 강화 위한 전문CPO 지정
국외 수집·이전 개인정보 처리방침 공개 등 개인정보 처리방침 평가제도
손해배상책임 의무대상자 변경 및 확대
공공기관 개인정보 보호수준 평가 확대
기타(댓글로)