
보안팀이 오늘 오전 6시 12분에 나에게 전화를 걸어왔다.
"모든 PHP 서버를 즉시 패치하세요."
무슨 일이 일어났냐고 물었다.
"두 개의 치명적 취약점. 원격 코드 실행. 인증 불필요."
멋지네.
우리가 PHP 서버를 몇 대나 가지고 있지?
재고 목록에 따르면: 12대
현실에 따르면:
아무도 모른다.
우리는 WordPress를 실행 중인 하나를 발견했다.
오래된 내부 도구를 실행 중인 세 대.
누군가의 책상 아래에 있는 하나.
벤더 기기 내부에 있는 두 대.
2016년의 잊힌 직원 디렉토리.
그리고 이름이 붙은 서버:
PHP-OLD-DO-NOT-TOUCH
당연히, 그 서버는 급여 내보내기를 실행 중이다.
그 다음에 PHP 5.6 박스를 발견했다.
누가 소유했냐고 물었다.
문서에 적혀 있었다:
BRIAN.
브라이언은 2019년에 퇴사했다.
우리는 브라이언에게 전화를 걸었다.
그가 말했다:
"오 와, 아직도 실행 중이야?"
훌륭하다.
오전 8시까지 경영진이 인시던트 통화에 참여했다.
CEO:
"해커들이 실제로 침입할 수 있나요?"
보안팀:
"잠재적으로 가능합니다."
CEO:
"비밀번호 없이?"
보안팀:
"네."
CEO:
"그럼 왜 우리가 비밀번호를 써야 하죠?"
그게 교훈이 아니다.
재무팀은 주말까지 패치를 미루면 안 되냐고 물었다. 다운타임이 매출에 영향을 주기 때문이다.
보안팀은 대안이 낯선 사람들이 우리 서버에서 코드를 실행하게 두는 것이라고 설명했다.
재무팀은 비용 비교를 요청했다.
9시 17분에 누군가 취약한 웹사이트를 일시적으로 오프라인으로 전환하자고 제안했다.
마케팅팀이 거부했다.
"우리 캠페인이 라이브 중이에요."
그래서 다음 한 시간 동안, 회사는 공식적으로 웨비나 등록 20% 할인 랜딩 페이지를 유지하는 것이 원격 서버 장악을 방지하는 것보다 더 중요하다고 결정했다.
우리는 마침내 찾을 수 있는 모든 것을 패치했다.
그런 다음 스캐너가 또 다른 PHP 서버를 발견했다.
호스트 이름:
TEMP-PHP-2014
가동 시간:
4,512일.
아무도 그게 뭘 하는지 모른다.
아무도 소유하지 않는다.
아무도 종료할 수 없다.
하지만 네트워크 액세스를 차단할 때마다 창고에서 배송 라벨 인쇄가 멈춘다.
보안팀은 그것을 핵심 인프라로 분류했다.
그건 PHP 5.4를 실행 중이다.
취약점은 우리 직원의 절반 이상이 근무한 기간보다 오래됐다.
긴급 패치는 4시간 걸렸다.
PHP가 실제로 무엇을 실행하는지 알아내는 데는 11시간이 걸렸다.
인터넷은 코드로 연결되어 있지 않다.
모두가 끄는 걸 두려워하는 서버들로 연결되어 있다.
----------
머루아저씨
✨ Full-stack Developer | 최신 기술 애호가
💻 현개발환경: PHP 8.4, Swoole, MongoDB, Redis, Docker
⚙️ Ubuntu/Linux 환경 & VS Code SSH 기반 작업
📚 "지속 가능한 개발, 효율적인 코드"를 지향합니다.