보통 보는 사이트가 오늘도 평범하게 열립니다.
페이지도 표시되고 로그인도 가능하지만, 특별한 이상은 없습니다.
그렇다면 일단은 괜찮은 것 같다.
그렇게 생각하게 된다.
하지만 생각해보면, 우리는 사이트의 어떤 부분을 보고 '괜찮다'고 판단하고 있는 걸까.
화면이 정상적으로 표시되는가?
평소처럼 사용할 수 있나요?
혹시 뒤쪽까지 문제가 없음을 확인된 사항인가요?
보통은 그런 일들을 하나하나 생각하지 않습니다. 사이트를 열면 바로 사용하니까요. 그게 제 생각에 당연한 일입니다.
그런데 2026 년 10 월에 공개된 취약점인 'PHP2Shell'에 대해 조사하다 보니, 이 당연한 사실이 조금 의아해졌습니다.
사이트가 정상적으로 작동하고 안전성이 검증되었다는 사실은 서로 다른 이야기일 수도 있습니다.
PHP 는 그렇게 친숙한 언어인가?
이번에 문제가 된 것은 PHP 이라는 프로그래밍 언어입니다.
프로그래밍이라는 말을 들으면 자신과 무관해 보일 수도 있습니다.
하지만 PHP 는 웹사이트를 구동하는 방식 중 하나입니다. 예를 들어, WordPress 로 만든 사이트에서도 활용되고 있습니다.
즉, 이번 뉴스는 평소 인터넷을 사용하는 사람들과 무관하다고 단정할 수 없습니다.
PHP 개발 팀은 2026 년 10 월 21 일 2 개의 취약점을 수정하는 업데이트를 공개했습니다.
대상은 CVE-2026-109618 과 CVE-2026-109619 입니다.
어려운 번호를 외우지 않아도 됩니다. 중요한 것은 조건에 따라 공격자가 인증 없이 프로그램을 실행할 수 있다는 점입니다.
이러한 문제는 '원격 코드 실행'이라고 불립니다.
간단히 말하면, 외부 공격으로 인해 본래 실행되지 않아야 하는 프로그램이 실행될 수 있다는 것입니다.
그것은 분명히 심각한 문제입니다.
하지만 PHP 를 사용하는 모든 사이트가 동일하게 위험한 것은 아닙니다. 실제 위험도는 PHP 버전이나 서버 구성 등에 따라 달라집니다. 또한 취약점이 공개되었다고 해서 모든 사이트에서 피해가 발생한 것은 아닙니다.
지금까지 알았습니다.
그런데, 또 다른 궁금증이 있습니다.
만약 공격을 당한다고 가정하면, 운영자가 이를 어떻게 발견할 수 있을까요?
"찾을 수 없으니 안심해도 되나요?"
예를 들어, 사이트 운영자가 의심스러운 접속을 조사했다고 가정해 봅시다.
이상한 기록은 찾아볼 수 없었고, 사이트도 평소와 같이 정상 작동하고 있었습니다.
그렇다면 "좋아, 아무 일도 일어나지 않았구나"라고 생각하고 싶을 것이다.
그러나 JPCERT/CC 의 주의보를 읽어보니, 그렇게 쉽게 단정할 수 없는 사실이 밝혀졌습니다.
따라서 공격 흔적이 남지 않는 경우도 있으므로, 확인할 수 있는 흔적이 발견되지 않았다고 해서 공격을 받지 않았다고 단정할 수 없습니다.
이 글을 읽고 나는 '찾을 수 없다'와 '없었다'가 다른 것임을 다시 한번 깨달았다.
물론, 흔적이 발견되지 않는 것 자체가 나쁜 정보라고 할 수는 없다. 아무것도 발견되지 않았다면 그것은 조사 결과 중 하나일 뿐이다.
하지만 그것만으로는 '공격이 없었다'고 증명할 수 없다.
이 부분이 이번에는 가장 궁금했던 부분이었다.
우리가 평소 보는 것은 화면에 표시된 사이트일 뿐입니다. 공격 여부를 확인하려면 백엔드의 로그나 시스템 상태 등을 확인해야 합니다.
사용자가 보는 '평소와 같다'와 운영자가 조사한 '문제가 없다'는 근본적으로 다른 것이다.
사이트가 평범하게 사용 가능하다는 것은 이용자에게는 편리하고 감사한 일입니다. 하지만 그것만으로는 뒷면의 보안까지 확인되었음을 알 수 없습니다.
그렇다고 해서 평소 사용하는 사이트 하나하나를 의심해야 한다는 뜻은 아니다.
'안전하다고 단정할 수 없다'와 '위험하다고 확인되었다'는 서로 다른 일이라니.
그럼 우리는 무엇을 확인해야 할까요?
이렇게까지 조사해 보니 결국 어떻게 해야 할지 고민이 됩니다.
하지만 사이트를 이용하는 사람과 사이트를 운영하는 사람이라면 할 수 있는 일이 다릅니다.
일반적으로 사이트를 이용하는 사용자라면 이번 뉴스만 보고 '내 개인정보가 유출되었다'고 단정 짓는 것은 불필요합니다.
관심 있는 서비스라면 운영사의 공식 발표나 공지사항을 확인하세요. 영향과 대응에 대한 안내가 있다면 그 내용을 확인하세요. 안내가 없더라도 피해가 없다고 단정할 수는 없습니다.
반면, 사이트를 운영하는 사람은 더 구체적인 확인이 필요할 것입니다.
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
또한, 이는 이번 공지 시 안내된 수정 버전입니다. 실제 대응 시에는 최신 공식 정보와 사용 중인 환경의 제공처 안내를 반드시 확인해야 합니다.
그리고, 잊지 않으려는 것이 수정과 이미 공격을 받지 않았는지 확인하는 것을 구분한다는 점입니다.
업데이트를 적용했다고 해서 그 이전에는 아무 일도 일어나지 않았다고 단정할 수 없습니다.
이번 주의보에서 이 곳의 중요성을 다시 깨달았습니다.
뉴스에서 '수정 프로그램이 공개되었다'고 보도하면, 이를 설치하면 모든 문제가 해결되는 것처럼 오해할 수 있습니다.
그러나 취약점 대응과 과거 피해 유무 확인은 별개로 고려해야 합니다.
사이트가 열립니다. 그것만으로는 알 수 없는 일도 있습니다.
이번 조사로 인해 사이트의 보안에 대해 조금 더 다른 시각을 갖게 되었습니다.
우리는 화면이 표시되는지, 로그인이 가능한지, 평소처럼 사용 가능한지 확인할 수 있습니다.
그 화면 너머에서 어떤 시스템이 작동하고 있는지, 필요한 수정이 적용되어 있는지, 공격 흔적이 없는지까지, 평소에는 사용만으로는 알 수 없습니다.
그래서 사이트가 정상적으로 작동하고 있다는 점을 무의미하다고 말하고 싶은 것은 아닙니다.
단순히 '사용 가능'이라는 말과 '안전성이 확인되었다'는 말을 같은 의미로 받아들이는 것은 좋지 않습니다.
이번 PHP2Shell 뉴스에서 제가 가장 궁금해한 점은 바로 그 부분이었다.
평소에는 사이트의 뒷부분까지 고려하지 않고 사용합니다. 그런 상황도 충분히 많다고 생각합니다.
하지만 문제가 공개되면 뉴스에 게재된 내용만으로 판단하지 말고 공식 안내를 확인하세요. 운영자는 수정뿐만 아니라 조사도 진행해야 합니다.
이러한 차이를 알기만 해도 불필요한 두려움이나 근거 없는 안심함을 줄일 수 있지 않을까요.
사이트가 정상적으로 열립니다.
그건 평소처럼 쓸 수 있다는 뜻이다.
하지만 화면 밖도 확인하지 않으면 안전 여부를 알 수 없는 경우도 있습니다.
참조한 공식 정보
- PHP 공식: 2026 년 10 월 21 일 보안 정보
- JPCERT/CC: PHP 에서 발견된 다수의 취약점에 대한 주의보
출처: note 원문
번역: Qwen 3.5(.48) 초벌 + 교정 44청크
원문 보기 | 출처: note.com