인터넷 페이지 열 곳 중 일곱 곳을 움직이는 프로그래밍 언어 'PHP'에서 치명적인 보안 구멍이 드러나면서 전 세계가 해킹 비상에 걸렸다. 유럽 각국 정부는 공식 웹사이트를 스스로 내렸고, 미국 정보·수사기관은 "업데이트가 안 되면 사이트를 꺼라"는 이례적인 권고를 내놨다. 우리 정부도 22일 민간 분야 사이버위기 경보를 한 단계 끌어올렸다.
◆ PHP란 무엇인가…'웹의 엔진룸'
PHP는 웹사이트를 만들 때 서버 쪽에서 돌아가는 프로그래밍 언어다. 사용자가 게시판에 글을 쓰거나 쇼핑몰에서 결제 버튼을 누르면, 그 요청을 받아 데이터베이스와 주고받고 화면을 만들어 돌려주는 '보이지 않는 엔진' 역할을 한다.
1990년대 초 개인 홈페이지 제작 도구로 출발했지만, 지금은 워드프레스·드루팔·줌라·마젠토 등 세계적인 콘텐츠관리시스템(CMS)과 전자상거래 플랫폼 상당수를 구동하는 인터넷의 기초 인프라가 됐다. 웹 기술 분석업체 W3Techs에 따르면 사용 언어를 식별할 수 있는 웹사이트의 약 75%가 PHP를 쓰고, 전체 웹사이트의 약 43%에서 쓰이는 워드프레스 역시 PHP 기반이다.
우리 주변도 예외가 아니다. 관공서·학교 홈페이지, 지역 언론사 사이트, 소상공인 쇼핑몰, 동호회 게시판 상당수가 PHP 위에서 돌아간다. 국내 보안업체 티오리 박세준 대표는 그누보드나 오래된 쇼핑몰처럼 PHP 5·7 버전에 멈춰 있는 사이트가 한국에 특히 많아 더 주의해야 한다고 지적했다.
◆ 무엇이 뚫렸나…"요청 한 번에 서버가 넘어간다"
이번 사태는 'PHP2셸(PHP2Shell)'로 명명된 취약점 2건에서 시작됐다. 두 결함(CVE-2026-109618, CVE-2026-109619)은 인증받지 않은 외부 공격자가 원격으로 코드를 실행할 수 있게 해준다.
원리는 서버의 메모리 처리 과정에 숨어 있었다. 첫 번째 결함은 메모리 부족으로 PHP 실행이 중단될 때 불완전한 요청 데이터가 정상 정보처럼 처리되는 문제이고, 두 번째는 이미 메모리에서 해제된 내부 요청 정보를 다음 요청에서 다시 쓰면서 생기는 문제다. 쉽게 말해 서버가 '정리했다고 생각한 서랍'을 공격자가 다시 열어 자기 물건을 넣어둘 수 있는 구조다.
위험도는 최상급이다. 국제 보안취약점 평가기준(CVSS v4.0)으로 10점 만점에 9.2점이다. 특히 아파치 웹서버에 PHP를 직접 연결하는 'mod_php' 방식이 가장 위험한 것으로 나타났는데, 이 환경에서는 인증 없는 요청 한 번만으로 웹 애플리케이션이 실행되기도 전에 악성 코드가 작동한다는 사실이 시연됐다.
더 무서운 점은 홈페이지를 아무리 잘 만들어도 소용이 없다는 것이다. 과기정통부는 이번 취약점이 개별 홈페이지 프로그램이 아니라 PHP 자체의 결함이어서 홈페이지를 안전하게 만들었더라도 영향을 받을 수 있다고 설명했다. 공격에 성공하면 서버에 원격조종 파일인 웹셸을 심거나 고객 정보를 빼내고 홈페이지를 변조·마비시키는 피해로 이어질 수 있다.
◆ 왜 이런 사태가 났나①…AI가 찾아낸 '10년 묵은 폭탄'
이번 결함은 사람이 아니라 인공지능(AI)이 찾아냈다. 보안기업 위즈(Wiz)와 캘리프(Calif)에 따르면 이 결함은 구글 제미나이 4 아르곤, 오픈AI GPT-5.6 솔, 자율 AI 보안도구 '위즈 아틀라스' 등의 심층 코드 탐색을 통해 드러났다.
위즈는 이 취약점이 10년 넘게 PHP 코드에 방치돼 있었고, 연결 구조가 너무 복잡해 사람이 수작업으로 찾아내 악용하기는 사실상 불가능했지만 고도화된 AI가 투입되면서 그 장벽이 무너졌다고 설명했다.
양날의 검이다. 방어자가 AI로 구멍을 찾을 수 있다면 공격자도 마찬가지다. 실제로 공격에 쓰이는 도구 중에는 AI로 작성된 프로그램도 포함된 것으로 파악됐다.
◆ 왜 이런 사태가 났나②…엠바고 붕괴와 '6시간 공백'
통상 치명적 취약점은 개발진이 패치를 만든 뒤 관련 기업·기관과 날짜를 맞춰 한꺼번에 공개한다. 공격자가 끼어들 틈을 줄이기 위해서다. 이번엔 그 질서가 무너졌다.
PHP 개발진은 당초 22일 패치를 공개할 계획이었지만, 20일 온라인 게시판에 관련 정보가 유출되면서 일정을 하루 앞당겼다. 여기에 패치 배포업체 체인가드가 공식 시각보다 6시간 이상 먼저 패치가 적용된 이미지를 공개했고, PHP 재단은 체인가드가 일방적으로 엠바고를 깼다며 강하게 비판했다. 이 때문에 공격자들은 다른 이용자들이 공식 배포를 기다리는 동안 바이너리 형태로 패치를 미리 분석할 수 있게 됐다.
공격 징후는 그보다 먼저 있었다. 아마존 CJ 모세스 최고정보보안책임자는 공식 발표 나흘 전인 10월 17일 자사 허니팟(미끼 탐지망)에서 해당 취약점을 노린 정교한 악용 시도가 감지됐다고 밝혔다.
◆ 왜 이런 사태가 났나③…'공짜 인프라'의 구조적 취약성
근본에는 오픈소스의 고질적 문제가 깔려 있다. 전 세계 웹의 7할이 기대는 소프트웨어를 지키는 인력이 턱없이 적다. PHP 보안 작업은 여전히 재단 지원을 받는 소수의 개발자와 일부 자원봉사자에게 의존하고 있으며, 재단은 PHP를 쓰는 이들의 자금 지원이 있어야 보안팀 역량을 키울 수 있다고 호소했다.
관리 부실도 피해를 키운다. 보안업체 디텍티파이의 연구원은 PHP 기반 웹사이트의 절반가량이 구형 버전을 쓰고 있을 것으로 추정했다. 인터넷 자산 분석기관 센시스는 분석 대상 웹서버 260만 대 가운데 약 150만 대가 아직 패치를 적용하지 못한 상태라고 집계했다.
◆ 세계는 지금…'셧다운'으로 버티는 유럽
각국은 사이트를 내리는 극약 처방까지 동원했다. 미국 국가안보국(NSA)은 PHP를 쓰는 모든 기관·기업에 업데이트 준비를 권고했고, 연방수사국(FBI)은 즉시 업데이트할 수 없다면 웹사이트를 오프라인으로 전환하라고 호소했다.
네덜란드는 국가사이버보안센터가 자체 사이트를 차단한 데 이어 정부 공식 포털, 로테르담 항만청, 주요 정당과 대형 병원 사이트가 접속을 중단했다. 프랑스는 내무부 관할 대민 행정 사이트를 전면 차단했고, 위키피디아와 인터넷 아카이브도 일부 서버를 일시 중단했다. 닌텐도를 비롯한 기업과 단체들도 일부 서비스를 일시 폐쇄했다.
피해 현황에 대한 평가는 엇갈린다. 와치타워 위협 인텔리전스 책임자는 공개된 개념증명(PoC) 도구가 실제 공격에 쓰이고 있지만 아직 성공 사례는 확인되지 않았다면서도, 그 상태가 오래가지 않을 것이라고 경고했다. 반면 아마존은 금수 조치 해제 직후 침투 시도가 급증했으며 실제 환경에서 광범위한 악용이 벌어지고 있다고 경고했다.
◆ 한국 정부 대응…경보 '주의' 상향
과기정통부와 한국인터넷진흥원(KISA)은 22일 낮 12시부로 민간 분야 사이버위기 경보를 '관심'에서 '주의'로 상향했다. 최고정보보호책임자(CISO) 신고기업 약 2만8000곳, 주요정보통신기반시설 111곳, ISMS 인증기업 1068곳, 웹호스팅사·데이터센터 등 688곳, 위협정보 공유 회원사 5900곳에 관련 내용을 긴급 전파했다.
배경훈 부총리 겸 과기정통부 장관은 수동 점검 후 수일 내 패치하는 기존 관리 주기로는 공격을 막을 수 없으며, 인터넷 접점 자산의 즉각 차단과 웹방화벽 룰셋 선제 적용 같은 자동화된 대응이 필수라고 강조했다.
다만 숙제는 중소기업이다. 보안업계에선 보안 인력이 부족한 중소기업이 신속한 패치에 어려움을 겪을 수 있어 정부가 긴급 패치 지원 등 실질적 대책을 마련해야 한다는 지적이 나오고, 과기정통부는 중소기업 긴급 패치 지원을 검토 중이라고 밝혔다.
◆ 어떻게 대응해야 하나…단계별 체크리스트
첫째, 내가 가진 PHP를 모두 찾아야 한다. KISA 권고문은 인터넷에 공개된 모든 홈페이지와 시스템의 PHP 사용 여부와 버전을 확인하라고 했다. 외주 제작 사이트, 오래 방치된 사이트, 이벤트·테스트 서버, 관리자 페이지가 대상이며, 자산 목록에만 의존하지 말고 실제 동작 중인 서버를 기준으로 확인해야 한다. PHP가 내장된 장비·솔루션과 외부에서 받아 쓰는 도커 등 컨테이너 이미지도 별도 확인 대상이다.
둘째, 즉시 업데이트하고 반드시 재시작하라. PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35 이상으로 업데이트해야 하며, 업데이트 후 웹 서비스를 재시작해야 보안 조치가 적용된다. KISA는 재시작하지 않으면 메모리에 남은 이전 버전이 계속 돌아가 여전히 취약하다고 경고했다. 인터넷에 공개된 서버부터 우선 조치해야 한다.
셋째, 구버전이라면 '이사'가 답이다. 공식 업데이트가 제공되지 않는 PHP 8.1 이하 구버전은 지원되는 상위 버전으로 전환해야 한다. PHP 보안팀이 7.4·8.0·8.1용 최소 수정 코드를 내놓긴 했지만, 직접 빌드하는 이들을 위한 것이어서 결국 업그레이드가 필요하다는 게 전문가 설명이다.
넷째, 당장 못 하면 임시 차단이라도. 즉시 업데이트가 어려운 환경에는 'memory_limit'을 -1로 설정하고 'post_max_size'를 줄이는 방법, 'session.upload_progress.enabled'를 0으로 바꾸고 모든 작업 프로세스를 재시작하는 방법이 임시 대책으로 제시됐다. 다만 관리팀은 이런 설정 변경만으로는 전체 안전을 보장하지 못한다고 강조했다. 웹방화벽·프록시 등 PHP 앞단에서 요청 크기를 제한하고, 파일 업로드가 필요 없는 서비스는 해당 요청을 차단하는 방법도 거론된다. 그래도 불가능하면 외부 접속을 막는 것이 최후의 수단이다.
다섯째, 패치 후에도 이미 뚫렸는지 확인하라. KISA는 업데이트 후 로그 전체를 점검하고, 가능하면 그 이전 기록까지 확인해야 한다고 했다. 패치는 앞으로의 침입을 막을 뿐, 이미 심어진 웹셸을 지워주지 않는다.
여섯째, 침해가 의심되면 '끄지 말고' 끊어라. 서버를 끄거나 재시작하지 말고 외부 접속만 먼저 차단한 뒤, KISA 보호나라로 신고하고 로그·실행 프로그램 목록·네트워크 연결 정보 등 증거를 확보해야 한다. 재시작하면 메모리에 남은 공격 흔적이 사라질 수 있다. 이후 업데이트·재시작, 웹셸 제거, 비밀번호 등 인증 정보 교체가 뒤따라야 한다.
호스팅을 쓰는 소상공인이라면 할 일은 단순하다. 이용 중인 호스팅 업체에 업데이트 적용 여부를 확인하면 된다. 국내 호스팅업체 카페24는 PHP 5.4 이상 전체 서비스에 업로드 진행률 기능을 끄는 선제 완화 조치를 적용했지만, 100% 방어를 보장하지는 않는다며 최신 버전으로 옮길 것을 권했다.
◆ 남은 과제…"패치는 끝이 아니라 시작"
전문가들은 이번 사태를 'AI 시대 보안의 예고편'으로 본다. 공격자는 패치 전후 코드를 비교해 구멍 위치를 역추적한다. 보안업체 산섹은 패치 공개 후 단 15분 만에 대량 공격이 시작될 것으로 내다봤다. AI가 이 역설계 속도를 더 끌어올리고 있다.
결국 핵심은 '내가 무엇을 운영하는지 아는 것'이다. 이번 사태에서 조직이 존재조차 몰랐던 노후 시스템, 즉 오래된 홍보용 사이트와 호스팅 관리 도구, PHP가 탑재된 기기 등이 주요 위험 요인으로 지목됐다. 만들어 놓고 잊어버린 홈페이지 하나가 조직 전체의 뒷문이 될 수 있다는 경고다. 아울러 전 세계가 공짜로 쓰는 오픈소스 인프라의 보안을 소수의 개발자와 자원봉사자에게 맡겨온 구조를 어떻게 바꿀지도 이번 사태가 남긴 질문이다.






































댓글 많은 뉴스
지역 중학교 나왔는데 '지역의사제' 대상 제외?…영남삼육중 학생·학부모들 분통
[농지 전수조사 후폭풍] "나이들어 농사 못 지으면"…귀농·귀촌인들도 발길 돌린다
'가장 존경하는 영부인' 2위 이희호, 3위 권양숙, 4위 김정숙…1위는?
"20%마저 붕괴 위기"…李대통령 30대 지지율 21.3%
[단독] 이대통령, 제주서 2박3일 머물려 했나…최은석 "공역통제 신청했다 돌연 취소"