The Evolution of Security at Riot

Bài tóm tắt Riot Games 2017 4. Điều chỉnh Độ khó: Dễ

Riot Games · 2017 · 4. Điều chỉnh · Độ khó: Dễ — bài gốc

Bài mở đầu một series về bảo mật, thiên về tổ chức; phần kỹ thuật chủ yếu là công cụ tự động hoá AWS (Cloud Inquisitor).

Bối cảnh

  • Khoảng 4 năm trước bài, đội bảo mật của Riot là đội "nói không": người gác cổng chặn việc giao tính năng, nên các team đi vòng qua. Thời gian bị nuốt vào ứng cứu sự cố; có sự cố công khai (mất dữ liệu từ cơ sở dữ liệu mật khẩu khu vực Bắc Mỹ, tài khoản Twitter của nhà sáng lập bị chiếm).
  • Hỏi trực tiếp các engineer, họ phàn nàn: bị từ chối mà không có lý do, hướng dẫn mâu thuẫn, đổi mật khẩu toàn nền tảng không báo trước, đội bảo mật xa cách.

Thay đổi chính

  • Nguyên tắc: bảo mật phục vụ văn hoá chứ không lái nó; dựa trên phản hồi, nói ngôn ngữ của người nghe; đưa ra phương án chứ không chặn.
  • Không bắt buộc kiểu truyền thống: không áp code review bắt buộc, training bắt buộc hay static analysis bắt buộc; thay vào đó ngồi vào stand-up, hỏi "bạn muốn gì từ bảo mật", cho team thấy dữ liệu lỗ hổng và bug bounty của chính họ. Kết quả engineer muốn: checklist, review theo kịp tiến độ, công cụ giúp việc dễ hơn. Nhúng engineer bảo mật vào team có ích nhưng không scale, kiến thức mất khi người đổi team.
  • Chuẩn qua RFC (quy trình thiết kế chung của Riot) để có đồng thuận từ dưới lên:
    • RFC0026 (AWS): bắt đầu từ quyền sở hữu EC2 bằng tag. Công cụ tự động gửi email cho chủ account/instance không tuân thủ, rồi tắt và cuối cùng xoá instance không gắn tag đúng sau nhiều lần nhắc; kiểm cả cấu hình DNS gây chiếm subdomain. Lần triển khai đầu làm suy giảm tính năng production của League; đội làm RCA công khai, tăng truyền thông, triển khai lại. Mở mã thành Cloud Inquisitor (re:Invent 2017). Engineer sau đó xin thêm kiểm EBS; RFC đang được đề xuất lại để áp tag cho mọi loại tài nguyên AWS.
    • RFC0242 (văn phòng): giả định mọi mạng đã bị xâm nhập, ưu tiên khả năng thấy, phát hiện, cô lập; RFC gây tranh cãi, số dòng bình luận gấp 6 lần nội dung, cuối cùng giữ khoảng 70–80% bản gốc. Bài học về công cụ: năng lực theo đúng mối đe doạ (90% thời gian là phishing thì đừng mua thiết bị forensic mạng), log phải theo chuẩn (syslog, JSON) nếu không thì loại vendor, thừa nhận BYOD.
    • RFC0650: hướng dẫn bảo mật sản phẩm (quyền tối thiểu, lưu ít dữ liệu, vá đều, dùng hạ tầng chung cho log/xác thực/phân quyền, và "hãy hỏi chúng tôi").
  • Security champion: thẻ checklist "Definition of Done" đặt trên bàn mỗi engineer (ba năm sau vẫn còn), áo cho người ủng hộ bảo mật trong team.

Vì sao

  • Theo Riot, đội bảo mật không thể ngồi cùng mọi team và không thể tuyển hàng trăm người; muốn scale phải để chính các team mang thực hành bảo mật.

Bài học cho SWE

  • Công cụ tự động hoá có quyền tắt/xoá tài nguyên production là một thay đổi rủi ro như mọi deploy: lần đầu của Riot đã gây sự cố cho người chơi.
  • "Biết mình có gì" (inventory, ownership qua tag) là nền cho cả bảo mật lẫn chi phí.

Liên quan