PHP2Shell, 쉽게 정리해 보기

JBLEE·2026년 10월 22일
post-thumbnail

PHP2Shell, 쉽게 정리해 보기

어제(10/21) 전 세계 웹사이트를 긴장하게 만든 보안 사고가 있었다.
이름은 PHP2Shell. 나도 보안 전문가는 아니라서, 최대한 쉽게 이해한 만큼 정리해 봤다.


1. PHP가 뭔데?

웹사이트는 크게 두 부분으로 나뉜다.

  • 화면 : 우리가 브라우저에서 보는 부분
  • 서버 : 뒤에서 "로그인 확인해 줘", "글 저장해 줘" 같은 일을 처리하는 부분

PHP는 이 서버 쪽 일을 하는 프로그래밍 언어다.
워드프레스 블로그, 위키백과, 오래된 쇼핑몰, 학교·동네 홈페이지 게시판까지… 전 세계 웹사이트의 약 70% 가 PHP를 쓴다고 한다.


2. 무슨 일이 생긴 거야?

PHP 안에서 구멍 두 개가 발견됐다.
이 구멍을 이용하면 로그인도 안 한 낯선 사람이, 멀리서, 남의 서버에 명령을 내릴 수 있다.

비유하면 이렇다.

아파트(웹사이트)마다 문을 잘 잠갔는데,
알고 보니 모든 아파트에 쓰인 같은 회사의 자물쇠에 결함이 있었던 것.
집주인이 아무리 조심해도, 자물쇠 자체가 문제라서 뚫린다.

그래서 이번 일은 "어떤 사이트가 실수했다"가 아니라 "PHP를 쓰는 모두가 위험하다" 라서 큰 뉴스가 됐다.


3. 구멍은 어떻게 생긴 거야?

둘 다 컴퓨터가 메모리(작업 공간)를 정리하는 방식에서 생긴 실수다.

구멍 ① 정리하다 말고 멈춰 버림

손님 주문서를 쓰다가 종이가 떨어져서 중간에 멈췄는데,
나중에 그 반쯤 쓴 주문서를 완성된 것처럼 그냥 처리해 버린 상황.

나쁜 사람은 일부러 종이(메모리)가 떨어지게 만들어서, 엉터리 주문서를 끼워 넣을 수 있다.

구멍 ② 치운 자리를 아직 내 거라고 믿음

사물함을 비우고 반납했는데, 열쇠 번호를 아직 기억하고 있다가
다음에 그 사물함을 열어서 안에 든 걸 내 물건인 줄 알고 꺼내 쓰는 상황.

그 사이 나쁜 사람이 그 사물함에 이상한 물건을 넣어 두면, 서버는 그걸 믿고 실행해 버린다.


4. 왜 이렇게 난리였어?

  • 너무 많은 사이트가 쓴다 → 전 세계 웹의 70%
  • 10년 넘게 아무도 몰랐다 → 아주 오래된 버전부터 다 해당
  • 고치기 전에 소문이 먼저 퍼졌다 → 원래 공개일보다 하루 일찍 정보가 새어 나가서, 급하게 고친 버전을 앞당겨 냈다
  • AI가 찾아냈다 → 사람이 찾기엔 너무 복잡해서 숨어 있던 걸 AI 도구가 발견했다

미국 정부 기관(NSA)이 "당장 못 고치면 서버를 꺼 두라"고 할 정도였다.


5. 그럼 어떻게 해야 해?

답은 간단하다. PHP를 최신 버전으로 업데이트하기.
스마트폰 보안 업데이트 알림이 뜨면 미루지 말고 바로 하는 것과 같다.

쓰는 버전이 버전 이상으로 올리기
8.58.5.12
8.48.4.27
8.38.3.36
8.28.2.35
8.1 이하더 이상 공식 지원 X → 새 버전으로 이사 필요

서버를 관리한다면 이 명령어로 버전을 확인할 수 있다.

php -v

그리고 업데이트한 뒤에는 혹시 이미 누가 들어왔다 갔는지도 확인해야 한다.
(모르는 파일이 생겼는지, 서버가 이상하게 꺼진 적이 있는지 등)


6. 느낀 점

  • 내가 조심해도, 내가 쓰는 도구가 뚫리면 위험하다. 그래서 업데이트가 중요하다.
  • 잊어버린 사이트가 제일 위험하다. 옛날에 만들어 두고 관리 안 하는 홈페이지가 공격 통로가 될 수 있다.
  • AI는 양날의 검이다. 좋은 사람이 먼저 찾아서 다행이지만, 나쁜 사람도 같은 AI를 쓸 수 있다.

참고

0개의 댓글