PHP 취약점 공격에 방화벽·관리 서버 25대 장악…한국 피해는 미확인

약 13분 읽기

외부 공격을 막아야 할 방화벽의 관리 서버가 PHP 취약점을 타고 거꾸로 침투 통로가 됐다. 더팩트에 따르면 이스라엘 사이버보안 기업 드림(Dream)의 연구조직 드림리서치가 분석한 공격에서 공격자는 외부 방화벽 24대와 미국 정부 관련 기관의 방화벽 관리 서버 1대 등 총 25대를 장악했다.

한국은 공격 대상 4개국에 들었다. 하지만 장악된 장비 가운데 국내 장비가 있는지는 보도마다 설명이 다르고, TJB는 국내 피해 여부는 아직 파악되지 않았다고 전했다. 악용된 PHP2Shell은 21일 공개된 취약점이고, 과학기술정보통신부는 22일 민간 분야 사이버위기 경보를 ‘주의’로 올렸다.

방화벽 등 보안 장비를 운영하는 조직이 먼저 할 일은 인터넷에 노출된 관리 화면 점검, 패치 적용, 웹셸 같은 침입 흔적 확인이다. 아래에서는 이 점검의 근거와 함께 1만9천 대 탐색에서 25대 장악까지의 숫자, 보도마다 다르게 전한 대목을 차례로 짚는다.

공격의 첫 관문은 웹사이트가 아니라 방화벽 관리 서버였다

방화벽 관리 서버를 통한 단계별 침투 흐름을 나타낸 개념 일러스트
본문 내용을 정리한 개념도 · AI 생성

PHP는 로그인이나 상품 주문 같은 이용자 요청을 웹사이트 서버에서 처리하는 프로그래밍 언어다(경향신문).

드림리서치가 분석한 공격은 홈페이지가 아니라 보안 장비를 노렸다. TJB에 따르면 공격자는 방화벽 관리 서버에 탑재된 PHP 기능의 원격 코드 실행 취약점을 악용해 침투했다. PHP를 쓰는 웹 서버만이 아니라 PHP가 들어간 장비도 같은 결함에 노출될 수 있음을 보여 준 사례다(이 글의 해석).

악용된 PHP2Shell은 PHP 실행 엔진에서 발견된 두 건의 치명적인 보안 취약점으로, 식별번호는 CVE-2026-109618과 CVE-2026-109619다(직썰).

더팩트와 TJB의 설명을 단계별로 놓으면 다음과 같다.

  1. 1차 침투: 방화벽 관리 서버의 PHP2Shell을 악용했다(TJB).
  2. 권한 상승: 리눅스 커널 권한 상승 취약점(CVE-2026-46300)을 연계해 활용했다(더팩트).
  3. 루트 확보: 최고 관리자 권한인 루트(root)를 확보했다. 연구진은 별도 인증 없이 공격을 시작해 15분 이내에 서버를 장악할 수 있었다고 설명했다(더팩트).
  4. 흔적 남기기: 드림리서치는 공격자가 미국 정부 관련 기관의 방화벽 2대를 제외한 22대에 웹셸을 설치한 채 추가 공격 없이 남겨뒀다고 밝혔다(TJB).

웹셸은 서버에 심는 원격조종 파일이다(매일신문). TJB에 따르면 드림리서치는 이 웹셸들이 여전히 활성화돼 있을 가능성을 제기했지만, 활성 상태가 확인된 것은 아니다.

1만9천 대에서 25대로: 숫자는 피해 규모보다 경로를 말한다

방화벽 장악까지 좁혀지는 깔때기와 내부망으로 이어진 별도 경로를 나타낸 개념 일러스트
본문 내용을 정리한 개념도 · AI 생성
드림리서치 분석 공격의 규모(TJB 보도) 인포그래픽
드림리서치 분석 공격의 규모(TJB 보도)

공격 기록상 숫자는 방화벽을 장악하는 단계까지 깔때기처럼 좁혀진다. 아래 값은 표에 적은 매체가 전한 그대로다.

단계규모전한 매체
탐색방화벽 약 1만9000대더팩트·TJB
응답 확인약 5000대더팩트
공격 대상 선별240대더팩트·TJB
루트 권한 확보방화벽 24대더팩트·TJB

탐색 범위를 더팩트는 ‘인터넷에 노출된 방화벽 약 1만9000대’로, TJB는 ‘전 세계 방화벽 약 1만9천대’로 표현했다. 더팩트에 따르면 응답이 확인된 약 5000대 가운데 취약한 서버 240대를 공격 대상으로 추렸고, TJB는 240대를 한국과 미국, 일본, 대만에 있는 장비라고 설명했다(더팩트, TJB).

25대는 이 깔때기의 다음 단계가 아니다. TJB에 따르면 전체 침해 규모는 방화벽 24대와 미국 정부 관련 기관의 내부 관리 서버 1대를 합한 25대다. TJB는 미국 기관에서 방화벽 2대 침해에 이어 내부 관리 서버 1대까지 공격당했다고 전했다. 선별 과정이 아니라 장악한 방화벽에서 내부망으로 이어진 경로까지 더한 값이다(이 글의 해석).

TJB는 대상 240대 가운데 24대가 뚫려 성공률은 10% 수준으로 계산된다고 전했다.

숫자를 읽을 때 구분할 점은 세 가지다.

  • 1만9천 대는 피해가 아니라 탐색 범위다. 탐색한 약 1만9000대 가운데 루트 권한이 탈취된 방화벽은 24대다. 내부 관리 서버 1대를 포함한 전체 침해 규모는 25대다(TJB).
  • 10%는 TJB가 공격 대상 240대를 기준으로 계산한 값이다. 탐색 대수를 기준으로 한 비율과 혼동하지 않는다.
  • 한국 장비가 24대에 포함됐는지는 보도마다 설명이 다르다. 아래 절에서 나란히 놓는다.

TJB가 전한 보안업계 시각도 숫자 너머를 본다. 서버 25대가 장악됐다는 피해 규모보다 보안 장비인 방화벽이 조직 핵심 시스템으로 가는 침투 경로가 됐다는 점이 이번 사건의 본질이라는 것이다.

TJB는 미국 정부 관련 기관에서 그 경로가 어떻게 이어졌는지도 전했다. 공격자는 이 기관의 방화벽으로 내부망에 들어간 뒤 중앙 관리 서버까지 장악했고, 관리 대상인 다른 방화벽의 설정과 인증정보에 접근할 수 있었던 것으로 파악됐다. 실제 민감정보 유출 규모와 추가 시스템 침해 여부는 확인되지 않았다.

드림리서치는 이번 공격이 “외부에 노출된 관리 인터페이스가 조직의 계정·인증 관리 인프라로 침투하는 경로가 될 수 있음을 보여준다”고 지적했다(TJB).

한국 장비는 뚫렸나: 보도가 엇갈려 아직 확정할 수 없다

더팩트는 장악된 외부 방화벽 24대를 ‘한국과 미국, 일본, 대만에 있는’ 장비로 적었다. 와이드경제도 침투 피해 대상에 미국과 일본, 대만은 물론 우리나라에 위치한 서버 장비까지 포함된 것으로 파악됐다고 썼다.

반면 TJB는 한국 소재 방화벽이 장악된 24대에 포함됐는지 등 국내 피해 여부는 아직 파악되지 않았다고 전했다. 한국은 공격 대상 4개국 가운데 하나로 거론됐을 뿐, 특정 국내 피해 기관은 확인되지 않았다는 설명이다.

globale.co.kr은 공격 대상 리스트에 한국 소재 방화벽 시스템이 올라와 있었다고 전하면서, 최종 장악된 방화벽 24대에 국내 시스템이 포함됐는지는 당국의 정밀 조사가 진행 중이라고 썼다.

더팩트는 장악된 방화벽의 소재국에 한국을 포함해 서술했지만, TJB는 국내 피해 여부가 파악되지 않았다고 전했다. 보도가 엇갈려 국내 피해를 확정하기 어렵다(이 글의 판단). 이 글은 국내 피해를 ‘확인되지 않음’으로 두고, 국가별 피해를 밝힌 당국이나 드림리서치의 공식 설명이 나오면 판단을 갱신한다.

보도에서 구분할 시점·피해 장비 범위·배후·AI 역할

드림리서치의 분석을 전한 매체들은 몇 가지 대목에서 표현이 다르다. 표현이 다르다고 곧 서로 모순되는 것은 아니어서, 각 보도가 무엇을 가리키는지부터 나눠 읽는다(이 글의 해석).

쟁점보도별 표현읽는 법(이 글의 해석)
시점TJB: 23~24일 공격 / globale.co.kr: 23~24일 공격 정황 확인 / 와이드경제: 25일 연구진 정황 포착공격일과 포착일은 다른 날짜 개념이다
미국 정부 관련 기관더팩트: 방화벽 관리 서버 1대 / TJB: 방화벽 2대 침해 뒤 내부 관리 서버 1대 / 와이드경제: 내부 시스템 3대 포함포함한 장비 범위와 명칭이 달라 대수만으로 충돌을 단정하기 어렵다
배후globale.co.kr: 중국 연계 해킹 조직 지목 / TJB: 중국 연계 의심 정황, 특정 조직은 지목 안 함연계 의심과 특정 조직 지목은 다른 단계다
AI 역할와이드경제: AI가 스크립트 작성 주도 / TJB: 직접 작성 증거 없음단정의 강도가 다르다(다음 절)

공격이 일어난 날과 정황을 포착한 날은 같은 개념이 아니다. TJB는 드림리서치가 지난 23~24일 공격이 있었다고 분석했다고 전했고, globale.co.kr도 23일부터 24일까지의 공격 정황을 전했다(TJB, globale.co.kr). 와이드경제는 연구진이 25일 정황을 포착했다고 썼다(와이드경제). 두 날짜는 서로 다른 것을 가리킬 수 있어 하나로 합치지 않는다(이 글의 해석).

미국 정부 관련 기관 피해는 보도에 포함한 장비 범위와 명칭이 달라 대수만으로 보도 간 충돌을 단정하기 어렵다(이 글의 해석). 더팩트는 이 기관의 방화벽 관리 서버 1대가 장악됐다고 전했다. TJB는 방화벽 2대가 침해된 데 이어 내부 관리 서버 1대까지 공격당했다고 전했고, 와이드경제는 미국 정부 기관의 내부 시스템 3대를 포함해 25대를 장악했다고 썼다(더팩트, TJB, 와이드경제).

배후에 대해 globale.co.kr은 중국과 연계된 해킹 조직이 지목됐다고 썼다. TJB가 전한 드림리서치의 중국 연계 의심 정황은 공격 대상이 한국과 미국, 일본, 대만 4개국에 집중된 점, 중국의 인터넷 자산 검색 엔진 FOFA와 중국에서 개발된 네트워크 연결 도구가 쓰인 점, 공격 인프라의 시간대가 중국 표준시와 일치한 점, AI 기반 보안 플랫폼의 실행 기록에서 중국어 프롬프트가 나온 점이다.

그러나 드림리서치는 특정 위협 조직을 지목하지는 않았고, 와이드경제도 연구진이 배후가 특정 국가나 유명 해커 집단인지 여부는 명확히 짚어내지 못했다고 전했다(TJB, 와이드경제). 중국 연계는 ‘의심 정황’ 단계로 읽는 편이 TJB가 전한 드림리서치의 설명에 가깝다(이 글의 해석).

AI는 어디까지 관여했나: 도구 설치는 확인, 코드 작성·자율 수행은 미확인

TJB가 전한 드림리서치의 판단은 세 층으로 나뉜다.

  • 확인된 것: 공격 인프라에 앤트로픽의 AI 코딩 도구 클로드 코드가 설치돼 있었다. AI 기반 공격 보안 플랫폼 aiscan에는 딥시크와 키미를 쓰기 위한 설정이 들어 있었다.
  • 가능성으로 제기된 것: 공격용 스크립트 약 40개의 코드 구조와 주석 작성 방식이 일관된 점을 들어 AI를 활용한 개발 가능성을 제기했다.
  • 증거가 없거나 그렇게 보이지 않는다고 밝힌 것: AI가 실제 공격 코드를 직접 작성했다는 증거는 없다고 했고, 공격 전 과정이 AI에 의해 자율적으로 수행된 것으로 보이지는 않는다고 설명했다.

와이드경제는 AI가 해킹 스크립트 작성을 주도한 것으로 분석됐다고 전했고, globale.co.kr은 정찰부터 방화벽 우회, 익스플로잇 결합까지의 공격 주기를 AI로 극단적으로 단축했다는 평가를 실었다(와이드경제, globale.co.kr). 두 보도의 표현은 TJB가 전한 드림리서치 설명보다 단정의 강도가 높다(이 글의 해석).

AI 도구가 공격 인프라에 있었다는 것과 AI가 공격을 수행했다는 것은 서로 다른 주장이다. TJB가 전한 드림리서치의 설명으로 말할 수 있는 것은 앞쪽까지다(이 글의 해석).

배경: 패치 공개 전 공격과 10월 22일 보도된 노출 현황

방화벽 공격에 앞선 흐름을 날짜별로 정리하면 다음과 같다.

날짜일전한 매체
17일AWS가 자체 감시 시스템 매드팟으로 PHP2Shell 악용 시도 탐지직썰
20일취약점 식별번호 온라인 확산직썰
21일PHP 개발팀 업데이트 배포(당초 22일 예정에서 하루 앞당김)직썰
22일 낮 12시과기정통부, 민간 분야 사이버위기 경보를 관심에서 주의로 격상직썰

직썰은 20일 취약점 식별번호가 온라인에 퍼졌다고 전했다. 이어 캘리프의 공격 시연 영상까지 공개됐다고 썼다. 직썰에 따르면 AWS는 이후 여러 공격 주체의 활동을 관측했지만, 실제 운영 중인 서버에 대한 침해 성공 여부는 확인하지 못했다.

위험도와 노출 규모를 보여 주는 수치는 다음과 같다.

  • 위험도: 두 취약점은 국제 보안 취약점 평가체계(CVSS) 4.0 기준 모두 9.2점을 받았다(직썰).
  • 구버전 비중: 경향신문이 전한 켄시스(Censys)의 21일 초기 조사에서는 버전이 확인된 PHP 서버 약 157만7000대 중 115만대(73%)가 공식 보안 업데이트가 중단된 8.1 이하 구버전이었다.
  • 국내: 직썰의 2026년 10월 22일 보도가 인용한 안랩 관측에서 국내 취약 PHP 호스트는 11만2183개로 집계됐다. 직썰은 이를 전 세계의 4.35%이며 미국·중국·독일·일본·프랑스에 이어 여섯 번째라고 전했다(직썰).

이 수치는 PHP를 쓰는 서버와 호스트를 센 것이어서, 드림리서치가 탐색한 방화벽과는 측정 대상이 달라 서로 더하거나 비율을 내지 않는다(이 글의 해석). 두 집계 모두 10월 22일 보도에 실린 값이라 지금 규모로 읽지도 않는다.

구버전 비중이 크다는 점은 아래 점검 순서에서 업데이트와 별도로 버전 전환을 확인해야 하는 이유다(이 글의 해석). 경향신문은 이들 구버전에 공식 보안 업데이트 버전이 제공되지 않아 호스팅업체나 서버 운영자가 별도로 패치를 적용하거나 새 버전으로 교체해야 한다고 전했다.

지금 무엇을 확인하면 되나: 방화벽 운영 조직과 PHP 서버 운영자

피해 방화벽의 제조사와 제품 버전은 공개되지 않았고, 와이드경제는 해당 업체에는 이미 취약점 사실이 통보된 상태라고 전했다(더팩트, 와이드경제). 연구진이 강조한 점검은 제품명이 공개되지 않아도 할 수 있는 일이다(이 글의 해석).

방화벽 등 보안 장비를 운영한다면

  1. 인터넷에 노출된 방화벽 관리 화면이 있는지 점검한다.
  2. 웹셸이나 원격 접속 통로 등 공격자가 남긴 흔적이 있는지 확인한다. 1·2번은 더팩트가 전한 연구진의 권고다.
  3. 낯선 계정이 생기지 않았는지 본다. 와이드경제는 공격자들이 장악한 방화벽에서 사용자 계정 정보를 수집하고 몰래 새로운 계정을 생성하려 시도했다고 전했다. 이를 점검 항목으로 넣은 것은 이 글의 판단이다.
  4. PHP가 내장된 장비·솔루션도 점검 범위에 넣는다. 매일신문이 전한 KISA 권고문은 PHP가 내장된 장비·솔루션과 도커 등 컨테이너 이미지를 별도 확인 대상으로 꼽았다.

PHP 웹서버를 운영한다면

  1. 자산 목록에만 기대지 말고 실제 동작 중인 서버를 기준으로 PHP 사용 여부와 버전을 확인한다(매일신문이 전한 KISA 권고문).
  2. PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35 이상으로 업데이트하고 웹 서비스를 재시작한다. KISA는 재시작하지 않으면 메모리에 남은 이전 버전이 계속 돌아가 여전히 취약하다고 경고했다(매일신문).
  3. 공식 업데이트가 제공되지 않는 8.1 이하 구버전은 지원되는 상위 버전으로 전환한다.
  4. 업데이트 전에 이미 침해됐을 가능성도 본다. AWS는 최소 17일부터의 접속 기록과 비정상적인 명령 실행, 파일 변경 여부 등을 확인하도록 요청했다(직썰).

즉시 업데이트가 어렵다면 매일신문이 소개한 임시 대책이 있다. memory_limit을 -1로 설정하고 post_max_size를 줄이는 방법, session.upload_progress.enabled를 0으로 바꾸고 모든 작업 프로세스를 재시작하는 방법이다. 다만 관리팀은 이런 설정 변경만으로는 전체 안전을 보장하지 못한다고 강조했다.

아직 확인되지 않은 것과 판단을 바꿀 근거

  • 국가별 피해: 당국이나 드림리서치가 국가별 피해를 밝히면 한국 장비 포함 여부를 다시 판단할 수 있다.
  • 피해 방화벽의 제조사와 버전: 공개되면 운영 중인 제품이 해당되는지 바로 대조할 수 있다.
  • 웹셸 22대의 현재 상태: 활성 여부가 확인되면 추가 침해 위험에 대한 판단이 달라진다.
  • 날짜와 피해 장비 범위: 공격일, 포착일, 미국 기관 피해 장비는 드림리서치 보고서 원문과 대조해야 정확히 맞출 수 있다.
  • 미국 측 조치: TJB는 미국 사이버보안청(CISA)이 연방기관에 ‘오늘까지’ 완화 조치를 이행하라고 지시한 것으로 외신이 전했다고 보도했다. ‘오늘’은 TJB 기사 기준 표현이며 이행 결과는 확인되지 않았다.

관련 글: PHP 취약점 2건에 정부 ‘주의’ 경보…버전별 업데이트 기준 · PHP 취약점에 사이버위기 ‘주의’…운영자와 이용자가 할 일

참고 자료

블로그 네클이 함께 운영하는 무료 서비스

접속 - | 오늘 - | 어제 - | 전체 -
위로 스크롤