EXPLORINEER
vi

Hatena

pixiv đã ứng phó với bản phát hành khẩn cấp PHP 8.5.12 như thế nào

Bảo mậtLần đầu xuất hiện 723 điểm


pixiv, một trang web tranh vẽ lớn của Nhật, đã kể lại cách họ xử lý lỗ hổng bảo mật nghiêm trọng trong PHP (gọi là PHP2Shell) chỉ trong khoảng 30 phút. Họ đã nâng cấp PHP lên bản vá khẩn cấp 8.5.12.

Chuyện gì đã xảy ra

Ngày 21/10/2026, người ta phát hiện một lỗ hổng nghiêm trọng trong PHP, ngôn ngữ lập trình dùng để chạy nhiều trang web. Nhóm phát triển PHP báo trước sẽ có một bản cập nhật bảo mật khẩn cấp. pixiv đã bật chế độ bảo trì trước cho các dịch vụ có thể bị ảnh hưởng, rồi chờ bản vá để áp dụng. Bản vá được phát hành lúc 22:41, và pixiv đã gỡ chế độ bảo trì lúc 23:16, tức là khoảng 30 phút sau.

Các con số chính

  • Bản vá được phát hành lúc 22:41. Chế độ bảo trì được gỡ lúc 23:16.
  • Việc build toàn bộ ảnh container (khoảng vài GB) chỉ mất khoảng 6 phút.
  • Hệ thống CI của pixiv hỗ trợ khoảng 30 lần phát hành mỗi ngày.
  • Đây là lần nâng cấp PHP đầu tiên sau khi pixiv chuyển toàn bộ hệ thống từ máy chủ vật lý sang Kubernetes.

Vì sao pixiv làm vậy

pixiv không đợi ảnh PHP chính thức trên Docker Hub. Họ tự build PHP từ mã nguồn để có thể làm nhanh hơn. Họ đã chuẩn bị trước các script và cấu hình để chỉ cần đổi số phiên bản PHP là build được ngay. Hệ thống build dùng bộ nhớ đệm (cache) được giữ trên máy chủ, nên không phải tải lại dữ liệu từ mạng mỗi lần.

Vì sao chuyện này quan trọng

Lỗ hổng bảo mật có thể bị kẻ xấu lợi dụng rất nhanh. Vì vậy, đội ngũ cần vá lỗi thật nhanh nhưng vẫn an toàn. Câu chuyện này cho thấy việc chuẩn bị trước, tự động hóa và hệ thống build nhanh có thể giúp một dịch vụ lớn xử lý sự cố bảo mật trong thời gian rất ngắn.

Điều cần theo dõi

  • Phần còn lại của bài viết nói về các việc đã diễn ra khi triển khai lên cụm Kubernetes và các vấn đề phát sinh trong ngày.
  • Các lỗi chưa hoàn hảo, như một số chỗ chưa có chế độ bảo trì và việc build Wiki mất nhiều thời gian hơn dự kiến.

Chú giải

PHP
Ngôn ngữ lập trình dùng để viết và chạy nhiều trang web.
Kubernetes
Công cụ quản lý và chạy nhiều container (gói phần mềm đóng sẵn) trên nhiều máy chủ.
Docker Hub
Kho lưu trữ trực tuyến, nơi tải về các image (mẫu) container có sẵn.
CI
Hệ thống tự động build và kiểm tra phần mềm mỗi khi có thay đổi mã.

Nguồn: Đọc bản gốc trên Hatena ↗

Bài giải thích này được AI viết lại bằng lời dễ hiểu từ bài gốc. Hãy kiểm tra bài gốc để xác nhận thông tin.