홈로봇·테크PHP2Shell 패치 적용 더뎌…국내 서버 수정판 사용 비율 5.5% 추정

PHP2Shell 패치 적용 더뎌…국내 서버 수정판 사용 비율 5.5% 추정

지원 버전 서버도 27.3%만 패치…구버전 전환과 보안조치 시급

PHP 공식 안내 확인해 수정판 설치…버전 숫자만으로 취약 여부 단정은 어려워

PHP 원격 코드 실행 취약점 ‘PHP2Shell’의 보안패치가 공개된 지 일주일이 지났지만, 국내 서버의 대응은 여전히 더딘 것으로 나타났다. 지원이 종료된 구버전 사용 비중이 높아 수정판 설치와 함께 운영환경 전환을 서둘러야 한다는 지적이다.

보안뉴스와 에스케어가 지난 29일 오전 기준 조사한 결과, PHP 8.2∼8.5를 사용하는 국내 서버 약 6500대 가운데 수정판을 적용한 서버는 1773대로, 적용률은 27.3%였다. 나머지 4731대는 수정판 사용이 확인되지 않았다.

PHP2Shell 취약점과 서버 보안패치의 필요성을 표현한 이미지.(사진편집=스토리스팟)
PHP2Shell 취약점과 서버 보안패치의 필요성을 표현한 이미지.(사진편집=스토리스팟)

PHP 8.1 이하 구버전까지 포함하면 패치 적용 비율은 약 5.5%로 추산됐다. 조사 대상 서버의 약 80%가 구버전을 사용하고 있어, 지원 버전의 패치율 상승만으로는 전체적인 위험을 해소하기 어려운 상황이다.

다만 이번 조사는 인터넷 자산 검색엔진 쇼단에서 버전을 확인할 수 있는 서버를 대상으로 진행됐다. 따라서 국내 전체 서버의 실태를 보여주는 전수조사는 아니다. 특히 기존 버전에 보안 수정사항을 반영하는 ‘백포트’나 별도 완화조치 여부까지 확인한 결과가 아니므로, 나머지 약 94%를 모두 ‘무방비 서버’로 단정하기는 어렵다.

지원 버전에서도 대응 속도에는 차이가 있었다. 수정판 적용률은 PHP 8.5 계열이 45.7%로 가장 높았고, 8.4 계열 34.6%, 8.3 계열 29% 순이었다. 조사 대상 중 서버 수가 가장 많은 8.2 계열은 17.5%에 그쳤다.

PHP 공식 발표에 따르면 이번 두 취약점은 CVE-2026-109618과 CVE-2026-109619로, 인증 없이 원격 코드 실행을 허용할 수 있다. PHP-FPM과 아파치의 mod_php 등 웹 요청을 처리하는 PHP 환경이 점검 대상이다.

버전별로 무엇을 해야 하나

PHP 공식 안내에 따른 두 취약점의 수정판은 다음과 같다. 단순히 ‘PHP 8 사용’ 여부가 아니라 세부 버전과 공급업체의 패치 내역을 확인해야 한다.

현재 사용 버전 필요한 조치 공식 보안지원 종료일
PHP 8.5 8.5.12 또는 이후 수정판 적용 2029년 12월 31일
PHP 8.4 8.4.27 또는 이후 수정판 적용 2028년 12월 31일
PHP 8.3 8.3.36 또는 이후 수정판 적용 2027년 12월 31일
PHP 8.2 8.2.35 또는 이후 수정판 적용 후 상위 버전 전환 준비 2026년 12월 31일
PHP 8.1 이하 지원 버전으로 전환하거나 공급업체의 백포트 적용 여부 확인 공식 지원 종료

※ 수정판 기준은 PHP 공식 보안공지, 지원 종료일은 공식 지원정책 기준이다.

구버전이라고 수정 방법이 전혀 없는 것은 아니다. PHP 보안팀은 7.4·8.0·8.1용 최소 소스 백포트도 제공했다. 다만 이는 구버전의 정규 지원 재개를 뜻하지 않는다.

패치와 함께 추가 설정도 확인해야

PHP 측은 추가 취약점 CVE-2026-115560과 관련해 다음 정기 수정판까지 아래 설정을 권고했다. 특정 세션 설정과 실행 중 설정 변경이 결합할 때 발생하는 문제다.

session.upload_progress.enabled = 0

설정은 요청 처리 전에 적용되는 php.ini나 FPM 풀·서버 설정에 반영하고, 모든 작업 프로세스를 재시작해야 한다. 애플리케이션의 ini_set()이나 FPM의 .user.ini에만 의존해서는 안 된다. PHP 8.5에서는 fatal_error_backtraces=0도 일부 공격 경로를 줄이는 임시 조치다. 이러한 설정은 보안 업데이트를 대체하지 못한다.

운영자는 전환에 앞서 파일과 데이터베이스를 백업하고, 시험 환경에서 홈페이지·플러그인·테마의 호환성을 점검할 필요가 있다. 호스팅 이용자는 업체에 실제 웹서비스용 PHP 버전과 패치 적용 여부를 확인해야 한다. 구버전을 유지해야 한다면 백포트 제공 여부와 적용 일정을 확인하고, 지원 버전으로 옮길 계획도 함께 마련해야 한다.

구형 홈페이지, PHP 버전 변경과 소스코드 수정 함께 추진해야

PHP 5.x∼7.x 환경에서 개발된 웹사이트는 서버의 PHP 버전만 8.x로 변경하면 정상적으로 작동하지 않을 수 있다. 버전이 올라가면서 일부 함수가 삭제되고 클래스와 오류 처리 방식도 달라졌기 때문이다. 따라서 기존 코드의 호환성을 점검하고, 변경사항에 해당하는 함수·클래스·문법을 수정하는 작업을 함께 진행해야 한다.

대표적으로 PHP 5.x에서 사용하던 `mysql_*` 함수는 PHP 7.0에서 제거돼 해당 코드를 유지한 사이트는 데이터베이스 연결 부분부터 수정해야 한다. PHP 8.0에서는 `each()`와 `create_function()`이 삭제돼 각각 `foreach`와 익명함수 등으로 대체해야 한다.

클래스 관련 코드도 확인 대상이다. PHP 8.0에서는 클래스와 같은 이름의 메서드를 생성자로 인식하지 않으므로 `__construct()` 방식으로 변경해야 한다. 비정적 메서드를 정적으로 호출하는 코드나 부모·자식 클래스의 메서드 선언이 호환되지 않는 코드 역시 오류를 일으킬 수 있다. 이러한 변경사항을 반영하지 않으면 홈페이지 접속이나 일부 기능 실행이 중단될 수 있다.

이에 따라 구형 홈페이지 운영자는 콘텐츠관리시스템(CMS)과 플러그인·테마·위젯의 목표 PHP 버전 지원 여부를 확인하고, 호환 버전으로 업데이트하거나 개별 소스를 보완해야 한다. 실제 전환 전에는 파일과 데이터베이스를 백업하고 별도 시험 환경에서 로그인, 게시글 작성, 검색, 파일 업로드 등 주요 기능을 검증하는 절차가 필요하다. PHP 공식 문서도 운영 서버의 버전을 변경하기 전에 호환성 문제를 시험하도록 안내하고 있다.

다만 소스코드 호환성 수정만으로 PHP 엔진 취약점이 해결되는 것은 아니다. 보안 수정판 적용과 웹사이트 코드 정비를 함께 추진해야 안전성과 서비스 안정성을 확보할 수 있다.

- Advertisement -
광고
햇빛소득마을
스토리스팟(강대구 기자)
스토리스팟(강대구 기자)https://storyspot.kr
스토리스팟 발행인 및 대표기자 입니다.
RELATED ARTICLES

댓글 남기기

spot_img
- Advertisment -spot_img

최근기사