← 블로그로
Ai약 11 분 읽기

OpenAI가 PHP 취약점을 찾았다. 하지만 중요한 건 그 후 두 달이다

게시일 2026년 10월 23일
OpenAI가 PHP 취약점을 찾았다. 하지만 중요한 건 그 후 두 달이다

웹의 약 70%는 PHP로 돌아갑니다. 이번 달 OpenAI는 GPT-5.6 Sol을 포함한 자사 모델이 PHP의 치명적인 보안 결함을 찾는 데 기여했다고 밝혔습니다. 여기까지가 헤드라인이고, 그다음 문장부터가 진짜 이야기입니다. 이 회사는 그 후 두 달을 관리자들과 보안 업체들로 구성된 연합 안에서 수정안을 만들고 검증하는 데 썼고, 그 전까지는 아무것도 공개하지 않았습니다.

두 달의 침묵은 홍보 주기가 아닙니다. 취약점 대응에서 아무도 스크린샷을 찍지 않는 부분이 바로 거기입니다.

협조적 공개가 곧 결과물이다

모델로 버그를 찾는 일은 이제 쌉니다. 셸과 소스 한 벌, 몇 시간만 주어진 쓸 만한 에이전트는 같은 코드를 사람이 읽는 것보다 훨씬 빠르게 후보 크래시를 뽑아냅니다. 대부분은 쓰레기이고, 쓰레기와 진짜 메모리 안전성 문제를 갈라내는 지점으로 비용이 옮겨 갔습니다.

OpenAI가 여기서 한 일, 적어도 회사가 그렇게 말하는 일은 눈에 안 띄는 중간 단계입니다. 연합을 만들고, 후보를 하나씩 검증하고, 패치를 쓰고, 생태계 전체에 대해 테스트하고, 공개 날짜를 합의한 다음에야 세상에 내놓는 것. 이 순서 덕분에 PHP 결함이 WordPress 사이트를 겨냥한 주말 파티로 번지지 않았습니다.

그래서 진짜 질문은 “모델이 뭔가를 찾아냈느냐”가 아니라 “이 방식이 반복될 수 있느냐”입니다. 연합은 자원이 넉넉한 한쪽이 소집할 때 작동합니다. PHP와 같은 의존성 그래프에 매달려 있으면서 아무것도 소집할 사람이 없는 수천 개의 오픈소스 프로젝트에 그대로 적용되지는 않습니다.

{{INLINE1}}

이 검사기는 자기가 못 하는 일을 솔직하게 말한다

공개와 함께 OpenAI는 PHP 버전 검사기를 내놨습니다. Codex 스킬 하나와 Node CLI 도구 하나입니다. 사이트를 지정하면 HTTP 헤더를 읽고 OK, VULNERABLE, UNKNOWN 중 하나를 알려줍니다.

방식은 뜯어볼 만합니다. 헤더에 있는 버전 문자열을 알려진 패치 경계와 비교할 뿐, 따로 검증하지는 않습니다. 의도된 설계 선택이고, 그 대가로 정직한 출력 세 개를 가진 도구가 됐습니다. 정직하지 않은 출력 두 개를 가진 도구가 아니라.

헤더 기반 탐지에는 잘 알려진 실패 모드가 있습니다. 운영 환경의 PHP 배포 상당수가 버전에 대해 거짓말을 합니다. 리버스 프록시가 헤더를 다시 쓰거나, 헤더가 제거되거나, 몇 년 전에 누군가 expose_php를 꺼두고 아무도 기억하지 못하는 경우죠. UNKNOWN은 그걸 위한 자리입니다. “판단할 수 없다”고 말하는 도구가 “괜찮다”고 말하는 도구보다 쓸모 있습니다.

배포 경로도 흥미로운 대목입니다. 웹 앱도 GitHub Action도 아닌 Codex 스킬로 나왔습니다. 앞으로 보안 1차 분류가 어디서 일어날지에 대한 선언입니다. 이미 당신의 저장소를 읽고 있는 그 에이전트 안에서.

모델은 메모리 버그를 어떻게 찾는가

“AI가 취약점을 찾았다”는 말은 서로 다른 세 가지를 가리키는 데 쓰입니다. 그래서 구조를 정확히 짚고 갈 필요가 있습니다.

첫째는 더 똑똑한 스케줄러를 붙인 퍼징입니다. 커버리지 기반 퍼저는 10년째 PHP 버그를 찾아왔습니다. 모델이 더하는 건 패치를 읽고, 인접한 어느 코드 경로가 이제 도달 가능해졌는지 추측하고, 거기까지 실행하는 하네스를 쓰는 능력입니다. 실제로 유용하고, 전혀 마법이 아닙니다.

둘째는 소스에 대한 추론입니다. 길이 프리픽스를 파싱한 뒤 할당하는 함수를 주면, 강한 모델은 정수 오버플로를 짚고 후보 입력을 제안합니다. 아무것도 실행하지 않고서요. 오탐의 대부분이 여기서 나옵니다. 세 파일 떨어진 곳에서 이미 값을 제한하고 있는 호출자를 모델이 볼 수 없기 때문입니다.

셋째는 분류입니다. 수백 개의 후보를 “아마 진짜”, “아마 노이즈”, “사람이 필요”로 나누는 일은 가장 덜 이야기되고 아마 가장 값진 용도입니다. 보안 팀이 무언가를 들여다볼 시간이 있느냐를 결정하는 단계가 바로 그것이기 때문입니다.

연합 없이 확장되는 건 셋째뿐입니다. 이번 발표 전체의 조용한 문제가 여기 있습니다. 모델 쪽 작업은 API 키만 있으면 누구나 재현할 수 있고, 조정 쪽 작업은 그렇지 않습니다.

10억 달러어치의 접근 권한

OpenAI는 최전선 방어자들을 위해 Daybreak 접근 권한 10억 달러어치도 약속했습니다. 자선이 아니라 인프라로 읽어야 합니다. 탐지 도구는 공격이 오는 빈도만큼 돌릴 여유가 있는 사람에게만 도움이 됩니다. 무료 티어는 병원 IT 팀이 한 번 확인하게 해줍니다. 10억 달러어치의 컴퓨팅은 계속 확인하게 해줍니다.

그 아래에는 이름 붙여둘 만한 전략적 논리가 있습니다. 모델 제공자가 보안 도구의 상류가 되면, 어떤 취약점이 먼저 발견되고 누구에게 먼저 알려질지를 정하는 쪽도 됩니다. 상업적 연구소에 상당히 집중된 판단이고, 위의 공개 절차가 바로 그 구조를 신뢰할 수 있는지를 가르는 지점입니다.

채용 논리이기도 합니다. 보안 연구자는 귀합니다. 웹에서 가장 흔한 언어를 두 달에 걸쳐 협조적으로 고쳤다고 내세울 수 있는 연구소는 벤치마크를 발표하는 연구소보다 할 이야기가 많습니다.

사이트를 운영한다면 이것이 뜻하는 것

이번 주에 PHP 버전을 확인하세요. 그리고 반드시 자기 네트워크 바깥에서 확인하세요. 공격자가 보는 게 그것이니까요. 헤더가 아무것도 알려주지 않는다면, 어떤 스캐너도 대신해줄 수 없는 일이 남아 있습니다. 믿을 만한 답은 서버의 패키지 관리자 안에만 있으니까요.

그다음엔 사건이 아니라 패턴을 보세요. 모델이 보안 팀을 대체한 게 아닙니다. 비율을 바꿨습니다. 후보는 늘고, 분류할 일은 늘고, 판단할 자격이 있는 사람 수는 그대로입니다. 이 도구들을 들이는 조직은 어딘가에 분류 역량을 만들어야 하고, 만들지 않는 조직에는 읽지 않은 발견이 쌓입니다. 스캔을 아예 돌리지 않은 것과 똑같은 모습으로.

잊히게 될 부분

하나 더 짚고 갈 게 있습니다. 이번에 나온 건 버전 검사기이지 패처가 아닙니다. 사이트 운영자에게 원클릭 수정을 준 사람은 없습니다. 웹의 70%에 한 번에 배포되는 원클릭 수정은 그 자체로 대형 장애이기 때문입니다. 여기서 보수적으로 간 건 옳은 선택이고, 동시에 패치되지 않은 설치가 길게 남을 것을 보장하는 선택이기도 합니다. 다음 사고는 거기서 나옵니다.

6개월 뒤 이 사건의 요약은 “AI가 PHP 버그를 찾았다”가 될 겁니다. 지금 쓸 수 있는 참인 문장 가운데 가장 재미없는 문장입니다. 가져갈 만한 교훈은 더 심심합니다. 가치는 두 달의 협조 작업에 있었고, 모델의 기여는 그 과정의 첫 주를 조금 빠르게 만든 것뿐입니다.

그래도 큰일입니다. 다만 발표문이 파는 그 큰일은 아닙니다. 보안 작업은 늘 대부분이 조정이었고, 가장 도움이 되는 도구는 조정을 싸게 만드는 도구이지 발견을 더 크게 외치는 도구가 아닙니다.

관련 글