PHP2Shell 대응의 핵심은 PHP 운영 환경을 즉시 업데이트하고 재시작하는 것이며, 침해가 의심되면 재시작보다 격리와 증거 확보가 먼저예요.
- 변경점
- 2026년 10월 22일 낮 12시부터 민간 분야 사이버위기 경보가 ‘관심’에서 ‘주의’로 상향됐어요. 공식 발표
- 확인 대상
- PHP 기반 홈페이지·쇼핑몰·관리자 페이지 운영자와 호스팅 이용자가 대상이며, PHP가 내장된 장비와 컨테이너도 확인해야 해요.
- 제한 조건
- 파일만 업데이트하고 실행 중인 서비스를 재시작하지 않으면 이전 버전이 계속 작동할 수 있어요. 임시 설정도 업데이트를 완전히 대신하지 못해요.
광고
PHP2Shell: 10월 22일 ‘주의’ 상향으로 무엇이 달라졌나
과학기술정보통신부와 한국인터넷진흥원은 PHP 취약점을 악용한 대규모 해킹 가능성에 선제적으로 대응하기 위해 민간 분야 사이버위기 경보를 높였어요. ‘주의’ 발령에 따라 침해대응 인력을 늘리고 비상출동조를 상시 대기시키는 비상대응 체계를 가동해요. 경보 상향과 대응 체계 설명
이번 발표에서 중요한 변화는 정기 점검 일정에 맞춰 나중에 업데이트하는 방식으로는 대응이 늦을 수 있다는 점이에요. 공식 자료는 보안 업데이트 전에 취약점 정보가 유출됐고 해외에서 공격 시도가 보고되고 있다고 설명하며, 인터넷에 노출된 자산의 즉각적인 조치를 강조해요.
피해는 개발팀의 문제로 끝나지 않아요. 쇼핑몰의 고객정보 유출, 홈페이지 변조와 서비스 마비로 이어질 수 있어 이용자의 개인정보와 사업자의 일상 업무에 직접 영향을 줘요. 다만 경보 상향 자체가 모든 PHP 사이트의 침해를 뜻하는 것은 아니에요.
| 대상 | 지금 확인할 내용 | 놓치기 쉬운 범위 |
|---|---|---|
| 서버 직접 운영 기업·기관 | PHP 사용 여부, 실행 버전, 업데이트와 재시작 적용 여부 | 외주 제작 사이트, 이벤트·테스트 서버, 오래된 관리자 페이지 |
| 호스팅 이용 사업자 | 호스팅 업체의 보안 업데이트 적용 여부 | 업데이트 안내와 실제 서비스 반영 여부의 차이 |
| 장비·솔루션 운영자 | 내장 PHP 사용 여부와 제조사의 보안 조치 | 장비 관리 화면, 설치 패키지, 외부 컨테이너 이미지 |
| 일반 이용자 | 백신과 최신 보안 업데이트 등 기본 수칙 | 출처가 불분명한 공격 시험 코드 내려받기·실행 금지 |
표의 근거는 과기정통부 보도자료와 붙임 대응 수칙이에요. 일반 국민에게 서버 보안 설정을 직접 바꾸라는 안내는 없으며, 실제 조치 주체는 서버를 관리하는 운영자나 업체예요.
PHP2Shell의 작동 원리와 대응 방식의 차이
PHP는 홈페이지와 온라인 쇼핑몰 등을 작동시키는 프로그래밍 언어예요. 워드프레스나 그누보드처럼 홈페이지를 만드는 도구도 PHP를 기반으로 동작할 수 있어요.
PHP2Shell은 공격자가 로그인하지 않고도 조작된 요청을 보내 서버에서 명령을 실행할 수 있는 취약점이에요. 공격에 성공하면 서버를 몰래 조종하는 파일인 웹셸을 설치하거나, 고객정보를 빼내고 내부망으로 침투할 수 있다고 공식 자료는 설명해요.
개별 홈페이지의 코드가 아니라 PHP 자체의 취약점이라는 점이 핵심이에요. 홈페이지를 안전하게 제작했더라도 실행 기반이 취약하면 영향을 받을 수 있으므로, 화면이나 게시판 프로그램을 수정하는 것만으로 대응을 끝내면 안 돼요. 취약점과 예상 피해 설명
업데이트·웹방화벽·접속 차단은 역할이 달라요
이번 사안에서는 다른 개발 언어로 바꾸는 제품 비교보다, 현재 서비스에서 적용할 수 있는 대응 수단을 비교하는 것이 실용적이에요. 아래 표는 공식 대응 수칙에 제시된 조치의 역할과 제약을 정리한 것이며, 별도로 성능을 측정한 결과는 아니에요.
| 대응 수단 | 역할·장점 | 제약·후속 조치 |
|---|---|---|
| 보안 업데이트와 재시작 | 취약점을 해결한 PHP를 실제 서비스에 적용해요. | 이미 남은 웹셸이나 유출된 인증정보는 별도로 점검해야 해요. |
| 웹방화벽 차단 규칙 | PHP 앞단에서 공격 요청을 차단하도록 대응해요. | 최신 규칙 적용 여부를 확인해야 하며 업데이트를 대체하지 않아요. |
| 요청 제한과 임시 설정 | 즉시 업데이트하기 어려운 환경에서 임시로 적용해요. | 공격을 완전히 막지 못하므로 업데이트 계획을 함께 세워야 해요. |
| 외부 접속 차단·일시 중단 | 업데이트와 임시 조치가 어려울 때 검토하는 대응이에요. | 서비스 이용이 제한될 수 있어요. |
비교 근거: 공식 기업 보안 대응 수칙. 중요한 판단 기준은 어떤 도구를 구매했는지가 아니라, 실제 노출된 서버에 필요한 조치가 적용됐는지예요.
PHP 운영자와 호스팅 이용자의 긴급 대응 준비
먼저 자산 관리 목록과 실제 작동 중인 서버가 일치하는지 확인해야 해요. 공식 수칙은 인터넷에 공개된 홈페이지뿐 아니라 외주 제작 사이트, 테스트 서버, 관리자 페이지와 PHP 내장 장비까지 점검 대상으로 포함해요.
호스팅이나 제조사가 PHP를 관리한다면 해당 업체가 조치를 수행해야 해요. 이용자는 “보안 업데이트를 했나요?”라는 질문에 더해, 내 서비스에 적용됐는지, 재시작까지 끝났는지, 침해 흔적도 점검했는지를 구분해 확인하는 것이 좋아요.
공식 해결 버전표와 적용 확인 방법
| 사용 계열 | 해결 버전 | 추가 확인 |
|---|---|---|
| PHP 8.5 | 8.5.12 이상 | 실제 웹 서비스의 실행 버전 확인 |
| PHP 8.4 | 8.4.27 이상 | 실제 웹 서비스의 실행 버전 확인 |
| PHP 8.3 | 8.3.36 이상 | 실제 웹 서비스의 실행 버전 확인 |
| PHP 8.2 | 8.2.35 이상 | 보안 지원 종료 전 상위 버전 전환 준비 |
| PHP 8.1 이하 | 지원되는 상위 버전으로 전환 | 전환 지연 시 공급자 패치나 공식 임시 조치 검토 |
버전표 출처: 공식 보도자료의 해결 버전 안내. 리눅스 배포판이나 제조사 제공 패키지는 보안 패치를 적용해도 표시 버전이 그대로일 수 있으므로, 패키지 변경 이력에서 해당 취약점 수정 여부를 확인해야 해요.
업데이트 뒤에는 PHP를 실행하는 모든 웹 서비스를 재시작해야 해요. PHP-FPM, Apache mod_php 등 실제 운영 방식에 맞게 적용하고, 컨테이너 환경에서는 새 이미지로 재배포해야 한다고 안내돼 있어요.
명령어 php -v로 보이는 버전과 웹 서비스가 사용하는 버전이 다를 수 있다는 점도 중요해요. 한 서버에 PHP가 여러 개 설치돼 있다면 각각 확인하고, 실제 요청을 처리하는 PHP가 바뀌었는지까지 검증해야 해요. 업데이트·재시작 예외 조건
구버전이거나 바로 업데이트할 수 없다면
구버전 운영자는 지원되는 계열로 전환하는 계획을 세워야 해요. 공식 자료는 PHP 8.2의 보안 지원도 2026년 12월 31일 종료될 예정이라며, PHP 8.3 이상으로 전환할 것을 권장해요. 지원 종료와 전환 권고
전환에 시간이 걸리면 리눅스 배포판이나 장기지원 업체의 보안 패치, 공식 자료가 안내한 구버전용 소스 패치의 적용 가능성을 검토할 수 있어요. 적용할 패치가 없다면 임시 조치를 사용하고, 그것도 어렵다면 외부 접속 차단이나 서비스 일시 중단을 검토하도록 권고돼 있어요.
| 조치 위치 | 확인할 내용 | 조건·예외 |
|---|---|---|
| 웹방화벽·웹 서버·프록시 | 요청 크기를 제한하고 최신 차단 규칙을 적용해요. | 요청 크기 정보가 없는 요청도 제한 대상에 포함해요. |
| 파일 업로드 | 업로드가 필요 없는 서비스는 파일 업로드 요청을 차단해요. | 업로드가 필요한 서비스와 구분해야 해요. |
| PHP 설정 | session.upload_progress.enabled = 0을 적용해요. |
설정 적용 후 모든 PHP 프로세스를 재시작해야 해요. |
| 메모리 설정 | memory_limit = -1을 관리자 설정으로 지정해요. |
프로그램이 변경할 수 없도록 해야 하며 요청 크기 제한 등 전체 조건을 함께 적용해요. |
| 업로드 용량 설정 | post_max_size는 업로드 불필요 시 8M, 필요 시 32M 수준으로 낮춰요. |
upload_max_filesize는 그보다 작게 유지해요. |
| PHP 8.5 추가 설정 | fatal_error_backtraces = 0을 추가해요. |
해당 계열의 추가 조건이에요. |
설정값과 적용 조건 출처: 붙임의 임시 조치 안내. 설정 일부만 골라 적용한 뒤 안전하다고 판단하면 안 되며, 공식 자료도 임시 조치가 공격을 완전히 막지는 못한다고 명시해요.
업데이트 이후에는 무엇을 찾아야 하나요?
공식 수칙은 최소한 취약점 정보 유출일인 2026년 10월 20일 이후의 기록 전체를 점검하고, 가능하면 그 이전 기록도 확인하도록 안내해요. 비정상적으로 큰 요청 뒤에 반복되는 서버 오류, 원인을 알 수 없는 PHP 종료·재시작과 메모리 부족 오류가 점검 항목이에요. 로그 점검 기간과 항목
웹 서버가 명령 실행 프로그램이나 다운로드 도구를 실행했는지, 웹·업로드·임시 폴더에 낯선 PHP 파일이 생겼는지도 확인해야 해요. 결제 페이지에 몰래 추가된 외부 스크립트와 알 수 없는 외부 주소로의 연결 역시 점검 대상이에요.
기록에서 이상이 발견되지 않아도 안전이 보장되지는 않아요. 업데이트 전 인터넷에 노출됐던 서버는 데이터베이스 비밀번호, 외부 서비스 연동 키와 관리자 비밀번호 교체가 권장되며, 침해 흔적이 발견됐다면 반드시 교체해야 해요.
침해가 의심되면 증거를 남긴 뒤 조치해요
평상시 업데이트에서는 재시작이 필수지만, 침해사고 대응에서는 순서가 달라져요. 서버를 먼저 재시작하면 메모리에 남아 있는 공격 흔적이 사라질 수 있으므로, 공식 수칙은 다음 순서를 안내해요.
- 1
격리서버를 끄거나 재시작하지 말고 네트워크에서 외부 접속만 차단해요.
- 2
신고공식 자료에 안내된 보호나라의 ‘침해사고 신고’에서 ‘신고하기’를 진행해요.
- 3
증거 확보서버 로그, 실행 중인 프로그램 목록과 네트워크 연결 정보를 보존해요.
- 4
조치증거 확보 후 업데이트와 재시작, 웹셸 제거, 인증정보 교체를 진행해요.
절차 근거: 기업 보안 대응 수칙의 침해사고 대응 순서. 업데이트를 서두르는 것과 조사에 필요한 흔적을 보존하는 것을 함께 고려해야 해요.
쇼핑몰 운영에 적용하면 이렇게 달라져요
복잡해 보이나요? 원리는 간단해요. 다음은 공식 수칙을 쇼핑몰 운영 상황에 적용한 편집부 예시이며, 실제 피해 사례나 직접 시험한 결과는 아니에요.
외주 제작 쇼핑몰을 운영한다면 제작사에는 PHP 사용 환경을, 호스팅 업체에는 해당 서버의 보안 업데이트와 재시작 여부를 확인할 수 있어요. 결제 페이지에 알 수 없는 스크립트가 발견됐다면 단순 삭제부터 하기보다 침해 의심 상황으로 보고 격리·신고·증거 확보 순서를 적용해야 해요.
2026년 남은 기간의 과제는 자동 대응과 버전 전환이에요
공식 발표는 수동 점검 후 며칠 안에 패치하는 통상적인 관리 방식의 한계를 지적하고, 인터넷 접점의 즉각적인 차단과 웹방화벽 규칙의 선제 적용을 강조해요. 이를 바탕으로 보면 남은 기간의 운영 과제는 노출 자산 파악, 신속한 패치 적용, 실제 반영 확인을 연결하는 것이에요.
이는 새로운 제품의 성능을 예측하는 전망이 아니라 이번 발표에서 도출한 운영상의 시사점이에요. 당장의 PHP2Shell 조치를 마치더라도 지원 종료 예정인 계열의 전환 준비까지 이어져야 대응을 다음 장애로 미루지 않을 수 있어요. 자동화 대응과 버전 전환에 관한 공식 안내
PHP2Shell 대응의 한계·자주 묻는 질문
워드프레스나 게시판 프로그램만 업데이트하면 되나요?
그것만으로 대응이 완료됐다고 볼 수 없어요. 이번 취약점은 PHP 자체의 문제이므로 실제 웹 서비스가 사용하는 PHP의 보안 조치와 재시작 여부를 별도로 확인해야 해요. 영향 대상과 조치 기준
호스팅 업체가 업데이트했다고 하면 끝인가요?
내 서비스에 업데이트가 반영됐고 재시작까지 완료됐는지 확인하세요. 공식 수칙은 업데이트 후에도 침해 흔적 점검을 요구하며, 인터넷에 노출됐던 서버의 중요 인증정보 교체도 권장해요. 호스팅 이용자와 후속 점검 안내
공격 시험 코드로 취약한지 확인해도 되나요?
출처가 불분명한 코드는 내려받거나 실행하지 마세요. 공식 수칙은 악성코드가 숨겨진 가짜 파일을 경고하며, 취약 여부는 버전과 기록 점검으로 확인하고 분석이 꼭 필요할 때만 업무망과 분리된 환경을 이용하도록 안내해요. 공격 시험 코드 관련 주의사항
PHP2Shell 대응 완료 전 설정 점검
PHP2Shell 대응은 설치 파일을 교체한 순간 끝나지 않아요. 아래 항목은 공식 수칙을 운영자가 스스로 확인하기 위한 목록이며, 체크를 마쳤다는 사실만으로 침해가 없다고 판정할 수는 없어요.
개인 점검용입니다. 다른 방문자와 공유되지 않으며 새로고침하면 초기화됩니다. 실제 신청·설정·진단을 수행하지 않습니다.
-
대상 누락실제 작동 중인 홈페이지·관리자 페이지·장비·컨테이너의 PHP 사용 여부를 확인했는지 점검해요.
-
패치 반영해결 버전이나 공급자 패치 적용 여부를 실제 웹 서비스 기준으로 확인했는지 점검해요.
-
실행 환경필요한 서비스 재시작 또는 컨테이너 재배포를 완료했는지 점검해요.
-
침해 점검접속 기록·파일 변경·외부 연결을 확인하고 의심 상황에서는 증거 확보를 먼저 했는지 점검해요.
-
인증정보노출됐던 서버의 중요 비밀번호와 연동 키 교체 여부를 확인해요.
운영자는 실제 적용을 확인하고, 호스팅 이용자는 관리 업체의 조치 결과를 확인하는 것이 이번 경보에 대응하는 출발점이에요. 침해가 의심될 때는 재시작 전에 증거를 보존한다는 예외까지 기억해 두세요. 공식 대응 수칙 확인
광고
확인한 공식 자료
공식 사이트로 이동합니다
공식 사이트에서 최신 정보를 확인하세요
댓글이 닫혔습니다.