요약:
계정이나 비밀번호를 사용하지 않고도 해커는 웹사이트 서버가 자신의 명령을 받도록 만들 수 있습니다! 어제 OpenAI는 스릴 넘치는 비하인드 스토리를 공개했습니다. GPT-5.6 Sol은 전 세계 웹사이트의 70%가 사용하는 PHP 언어에서 두 가지 치명적인 취약점을 찾아냈습니다.

악용되면 공격자는
계정 비밀번호를 입력하지 않고도 서버가 악성 코드를 실행하도록 직접 만들 수 있습니다.
사실 일반적으로 다른 사람들에게 해커 방지 방법을 가르치는 네덜란드 국립 인터넷 보안국(Dutch National Internet Security Agency)에서도 소식을 접한 후 첫 번째 반응은 재빨리
자체 공식 웹사이트를 폐쇄
하는 것이었습니다. !구멍을 메우기 위해 OpenAI와 PHP 관리자들은
두 달 동안 비밀리에 작업했습니다
, 주저하지 말고 다시 시작하세요.PHP 엔진의 메모리 관리 메커니즘도 변경되었습니다
.그러나 두 달 동안 비밀을 유지하다
지난 48시간
만에 완전히 무너졌습니다. ——취약점 정보가 먼저 유출되어 예정보다 하루 일찍 패치가 출시되었습니다. 그러다 실수로 공격 시연 영상이 유출됐고, 수리 영상도 예정보다 빨리 공개됐다.

전 세계 웹마스터가 대응하고 패치를 적용하기도 전에 실제 공격의 첫 번째 물결이 이미 진행 중이었습니다.
더욱 소름 끼치는 점은 OpenAI가 이스터 에그도 묻혀 있다는 것입니다. 이 두 가지는 단지 전채 요리일 뿐이며 다른 몇 가지 주요 취약점은 여전히 수리 대기 중입니다...

이번에는 PHP가 폭발적으로 증가하므로 이해해야 할 세 가지 사항은 다음과 같습니다.
두 가지 고위험 취약점:
PHP는 웹사이트에 일반적으로 사용되는 백엔드 언어입니다. 영향을 받는 배포에서 공격자는 로그인하지 않고도 서버가 악성 코드를 실행하도록 허용할 수 있습니다.GPT가 구멍을 찾는 데 참여합니다.
Calif는 GPT의 도움으로 취약점을 발견했으며 Wiz도 독립적으로 이를 발견했습니다. PHP 관리자가 수정을 주도했고 OpenAI가 모든 당사자를 조정했습니다.패치가 출시되었습니다:
웹사이트 운영자는 PHP를 업그레이드해야 하며 임시 보호는 패치를 대체할 수 없습니다.PHP가 갑자기 폭발해, 네트워크 보안 기관이 먼저 사이트를 폐쇄했습니다
이번 비밀긴급복구에서는 해커방지를 담당하는 기관조차 위험을 피하기 위해 홈페이지를 폐쇄해야 했다.
패치가 도착하기 전에는 공식 웹사이트가 오프라인 상태입니다.
10월 21일 네덜란드 국립사이버보안센터(NCSC)는 사이트를 먼저 폐쇄하고 수리를 기다리기로 결정했다.

폐쇄된 것은 이뿐만이 아닙니다. 네덜란드 사법제도 채용 홈페이지와 사법연수기관 홈페이지도 서비스를 중단했고, 기자들에게 법원 재판 정보를 전송하는 문서함까지 잠정 폐쇄했다.
일본 재무부도 공식 홈페이지의 일부 콘텐츠와 서비스를 중단하고 긴급히 서버를 점검해 설치 및 수리를 진행했습니다.
웹사이트를 종료시키는 두 가지 PHP 엔진 취약점을 총칭하여 PHP2Shell이라고 합니다.
CVSS 위험 점수는 10점 만점에 9.2점에 도달했습니다
.
가장 위험한 결과 중 하나는
원격 코드 실행, 약어로는
입니다.RCE
. 방문자의 요청만 처리하도록 되어 있는 웹 사이트는 공격자가 지정한 코드를 실행하기 시작할 수 있습니다.Wiz는 최신 WordPress, Drupal, Joomla 이미지를 사용하여 테스트 환경을 구축하고, 로그인 없이 원격 공격을 재현했으며, 메모리에서 비밀번호, 토큰, API 키를 읽는 공격 경로를 검증했습니다.
일부 Apache 및 mod_php 배포에서도 웹사이트 자체 프로그램이 시작되기 전에 공격이 발생할 수 있습니다.
페이지에 "Hello World"라는 한 줄만 쓰더라도 여전히 감염될 수 있습니다.
문제는 PHP를 사용하는 웹사이트가 너무 많다는 것입니다.
W3Techs가 서버 언어를 인식할 수 있는 웹사이트 중 69.3%가 PHP를 사용합니다.
기본 엔진에 문제가 있어 수많은 웹사이트를 점검하고 업그레이드해야 합니다.GPT는 큰 기여를 했습니다
하나의 취약점에서 전체 카테고리를 포착하세요
7월 30일로 돌아가 캘리포니아 연구원 Ryan Austin은 PHP 감사를 시작했습니다. 그는 AI를 사용하여 오픈 소스 프로젝트가 허점을 찾고 복구하도록 돕는 OpenAI의 Patch the Planet 프로그램에 참여했습니다.
8월 1일까지 여러 원격 공격 경로가 발견되었습니다.
2004년 초, PHP의 메모리 제한 메커니즘에 원격 공격 취약점이 있는 것으로 밝혀졌습니다. Ryan은 GPT-5.6 Sol을 진입점으로 사용하여 유사한 문제가 기존 코드에 여전히 숨겨져 있는지 확인했습니다.

프로그램이 요청을 처리하고 일시적으로 데이터를 메모리에 저장합니다. PHP는 각 요청에 할당량을 할당하며, 해당 요청이 모두 소모되면 처리가 중단됩니다. 이러한 상황을
메모리 고갈, 즉
이라고 합니다.줌
.Calif가 공개한 공격 경로에서
8MiB 미만의 요청 데이터는 처리 중에 PHP의 기본 128MiB 메모리 할당량을 소진하기에 충분합니다.
작은 요청이 PHP에 들어오면 많은 수의 레코드로 분할되며 각 레코드는 추가 메모리를 차지합니다. 공격자는 이 증폭 계층을 사용하여 프로그램이 특정 단계에서 크레딧을 소진하도록 허용합니다.
PHP 규칙에 따르면 이때 작업이 중단되고 오류 보고 및 치료로 전환되어야 합니다.
현재 데이터는 절반만 채워져 있을 수 있습니다.
모델은 PHP 내부에 데이터를 저장하는 해시 테이블에서 위험한 시퀀스를 발견했습니다. 새 레코드를 추가할 때
먼저 레코드 수에 1을 추가한 다음 메모리를 적용하고 내용을 채우세요
.
메모리 신청 시 할당량이 소진되면 프로그램이 점프합니다. 새 레코드가 아직 채워지지 않았지만 개수가 이미 추가되었습니다.
정리 프로그램은 개수를 확인하고 준비되지 않은 메모리를 유효한 기록으로 사용합니다.
아직 작성되지 않고 완전한 기록으로 사용된 형태의 행에 해당합니다.
이러한 오류를 원격 공격으로 전환하려면 관련 메모리 내용을 정리하고 특정 작동 조건을 충족해야 합니다. 연구원들은 프로그램이 영향을 받는 배포에서 공격자가 지정한 코드를 실행하도록 했습니다.
연구원들은 구멍에서 멈추지 않았습니다. 그들은 모델에게
새롭게 발견된 오류 패턴을 반복적으로 사용할 수 있는 감사 가이드인 SKILL.md에 기록하도록 요청했습니다
, 그리고 동일한 단서를 따라 조사합니다.이 조사 후에 에이전트는 파일 업로드 진행 상황을 기록하는 코드에서 또 다른 문제를 발견했습니다.
요청이 비정상적으로 종료되고
메모리가 해제되지만 요청을 처리하는 프로그램은 여전히 이전 주소를 유지합니다
. 다음 요청을 받으면 이 주소를 사용하여 만료된 메모리를 읽을 수 있습니다.이것은
출시 후 사용되며 UAF라고도 합니다
. 이는 무효화된 등록과 동일하지만 프로그램은 여전히 이전 주소에 따라 데이터를 찾고 있으며 해당 메모리가 재할당되었을 수 있습니다.한편, 위즈도 독립적으로 두 가지 취약점을 발견했습니다. PHP 버전이 변경되거나 운영 환경이 변경되면 원래 공격이 효과적이지 않을 수 있으며 모델을 분석하고 충돌시키고 조정하고 검증해야 합니다.
Wiz 연구원 Sagi Tzadik이 X에 대해 썼습니다:
"
AI
대부분의 작업은 여기서 수행됩니다. ”

PHP 엔진 수술 수행
2개월 간의 비밀 수리
공격 경로를 찾는 데는 며칠이 걸렸지만, 수리를 준비하는 데는 두 달이 걸렸습니다.
이번에는 OpenAI가 수정 사항 조정에 앞장섰고 PHP 관리자가 수정 사항을 주도했습니다. 그러나 두 가지 취약점은 엔진의 메모리 관리 및 오류 처리에 영향을 주어 즉각적인 공격 경로를 차단하며 다른 곳에서도 유사한 문제가 발생할 수 있습니다. 기본 레이어를 정밀 검사하는 경우 이전 프로그램과 확장이 계속 실행될 수 있는지 확인해야 합니다.
PHP 재단은 팀이 주말에도 밤낮으로 조율하고 있다고 말했습니다. 패치는 여러 버전에서 테스트되어야 하며 게시자가 패키징하고 보안 공급업체에서 보호해야 합니다.
결국 PHP는 작업 중지 시점까지 변경했습니다.
패치된 PHP에는 두 가지 메모리 제한이 있습니다.
소프트 한도 도달
, 반쯤 완료된 데이터를 남기지 않도록 처리하기 전에 프로그램이 안전한 위치에 도달할 때까지 기다리십시오. 더 높은하드 제한
건드리기 , 프로세스를 종료하고 위험한 상태가 계속 사용되는 것을 방지합니다.지난 48시간 동안 비밀이 잇달아 유출됐고, 공격이 먼저 이뤄졌다
원래 모든 당사자는 10월 22일 오후 10시에 공개하기로 합의했습니다.
그런데 20일 오후 11시경, 잘못된 출시 시간과 만점 10점이 뒤섞여 갑자기 인터넷에 취약점 번호 2개가 돌았습니다. 이때는 최초 공개까지 48시간도 채 안 남았습니다.

21일 오전 3시 30분, PHP 팀은
공식 출시를 24시간 앞당기겠다는 사전 공지를 발표했습니다
.그러나 알림이 전송되었다고 해서 업데이트가 설치될 수 있는 것은 아닙니다. 게시자는 여전히 패키징 중이며, 고급인 경우 사용자는 위험에 처해 있음을 알지만 설치하기 쉬운 업데이트를 받을 수 없습니다.
30분쯤 전에 예고편이 공개됐는데, 공격 시연 영상도 빠졌다.
PHP 재단은 Calif가 실수로 공격 데모를 보냈다고 검토한 후 밝혔습니다. 영상은 빠르게 삭제됐으나 사본이 유포됐다.
21일 오후에는 수리된 빌드 이미지까지 미리 공개됐다. Chainguard가 이러한 이미지를 공개한 후 외부 세계에서는 이전 코드와 새 코드를 비교하고 취약점이 있는 위치를 추론할 수 있습니다.
같은 날 오후 3시 43분, Cloudflare 최고 기술 책임자인 Dane Knecht는 X에 다음과 같이 게시했습니다.
조기 공격이 목격되었습니다.

그가 글을 올렸을 때는 그날 밤 10시가 되어야 패치가 나올 예정이었습니다.
공격이 시작됐고, 아직 6시간 이상 남았습니다.
Cloudflare는 공격자가 보호 규칙을 우회하기 위해 이미 요청을 변경하고 있다는 사실을 나중에 공개했습니다.
Cloudflare는 웹 애플리케이션 방화벽을 사용하여 무료 및 유료 고객에게 보호 기능을 배포했지만 Dane은
이는 임시 조치일 뿐이며 패치가 나오면 설치해야 한다고 강조했습니다
.21일 저녁,
PHP8.5.12, 8.4.27, 8.3.36, 8.2.35
드디어 출시되었습니다. 또한 PHP 팀은 게시자와 장기 지원 서비스가 업데이트 패키지를 생성할 수 있도록 7.4, 8.0 및 8.1에 대한 최소한의 소스 코드 수정 사항을 준비했습니다.
OpenAI 미리보기
아직 더 많은 주요 취약점이 발견되지 않았습니다.
22일 0시 35분, OpenAI는 웹사이트 운영자가 PHP 버전을 확인하여 영향을 받을 수 있는지 확인할 수 있도록 또 다른 Codex 검사 기술을 출시했습니다.

PHP 버전을 확인했지만 웹사이트 업그레이드를 완료할 수 없습니다. 버전을 확인할 수도 없다면 이를 기준으로 안전하다고 볼 수 없습니다.
그리고 OpenAI는 이미 다음과 같이 발표했습니다.
PHP는 팀이 발견하여 수정 중인 많은 주요 취약점 중 하나일 뿐입니다.
이러한 유형의 발견은 앞으로 몇 달 동안 크게 증가할 것으로 예상됩니다!
댓글