PHP2Shell은 40년 기술부채가 AI 시대 공격 표면임을 보여준다
10월 말 공개된 PHP2Shell 취약점은 PHP 기반 웹사이트를 대규모로 위협한 사건이다. NASA·위키백과·백악관 등이 운영하는 WordPress·Drupal 기반 사이트가 위험에 노출될 수 있었고, 민감 데이터를 읽거나 서버에서 악성 코드를 실행할 가능성이 제기됐다.
다행히 실제 대규모 악용은 확인되기 전에 패치가 나왔다. 보안 연구진이 문제를 발견해 PHP Foundation에 알렸고, 공격자가 악용하기 전에 수정본이 배포됐다. 하지만 이 사건은 AI 시대에 레거시 소프트웨어의 기술부채가 어떻게 보안 사고로 이어질 수 있는지 보여주는 경고로 받아들여진다.
출발점은 2024년부터 보고된 메모리 오류였다. 할당된 메모리보다 큰 데이터가 들어가 프로그램이 비정상 종료되는 유형의 버그였고, 일반적으로는 서비스 장애 수준으로 여겨져 우선순위가 낮았다.
이를 원격 코드 실행 취약점으로 끌어올린 것은 AI 보조 감사였다. OpenAI가 후원한 보안 기업 Calif의 PHP 독립 감사에서 연구자는 AI 도구를 활용해 2주 안에 메모리 구조를 따라가며 공격 경로를 완성했다. Wiz가 이를 확인하고 범위를 확장했다. 서버에서 임의 코드를 실행해 악성코드를 심거나 중요 데이터를 읽을 수 있는 취약점으로 성격이 바뀌었다.
공격 난이도는 낮지 않다. 특정 프로그램의 메모리 위치로 점프하고, 어떤 비트를 어떤 순서로 덮어쓸지 정밀하게 계산해야 한다. 콜롬비아대의 수만 자나 교수는 이 작업이 로켓 과학은 아니지만 매우 구체적인 추론을 요구한다고 설명했다. AI는 바로 그 지루하고 정교한 추론에서 성과를 내고 있다.
보안 업계는 이번 사건을 40년치 레거시 소프트웨어가 드러나는 신호로 본다. 1994년 만들어진 PHP는 오래된 사이트에서 여전히 널리 쓰인다. 널리 쓰이면서도 수익 구조가 약한 오픈소스 프로젝트는 취약점을 고칠 인력과 자금을 확보하기 어렵다. Tolmo의 AI 보안 연구 책임자 매트 수이슈는 인간이 지난 40년간 작성한 레거시 소프트웨어가 드러나고 있다며 기술부채를 갚을 시점이라고 말했다.
패치 작업은 공격 경로를 모두 닫으면서 기존 기능을 깨뜨리지 않아야 해서 발견보다 훨씬 무겁다. PHP2Shell 수정에는 엔지니어 네 명이 약 두 달을 투입했다. 오픈소스 유지보수에 자금과 최신 보안 AI 모델 접근권을 제공해야 한다는 요구가 나오는 이유다.
패치 자동화와 형식 검증도 대안으로 떠오른다. Anthropic이 10월 22일 내놓은 릴리스처럼 LLM이 패치를 만들고 그 패치가 맞다는 증명을 생성하는 방식이 논의된다. 다만 증명 검사기는 LLM이 맡을 수 없다. hallucination 가능성 때문에 최종 확인은 형식적 도구가 필요하다.
AI가 취약점을 혼자 찾아내고 고친다는 뜻은 아니다. 이번 감사에는 보안과 PHP에 정통한 연구진이 있었고, AI는 그들의 판단을 증폭하는 역할에 가까웠다. 자나 교수는 AI의 발전으로 상위 0.1% 전문가의 처리량이 늘고, 그 아래 계층도 세부 구현을 모두 알지 않고 더 멀리 갈 수 있게 됐다고 평가했다.