Vụ hack 700 triệu tài khoản Electronic Arts
(battleda.sh)- Tài liệu Swagger bị lộ của API xác thực/gateway EA kết hợp với lỗi kiểm tra quyền cập nhật persona, khiến dữ liệu tài khoản của người dùng khác và cả luồng đăng nhập có thể bị ảnh hưởng
- Điểm cốt lõi là request PUT tới
/identity/pids/{pidId}/personas/{personaId}có thể được truy cập bằng scopedp.client.defaultcủa OAuth client EA Desktop thông thường, trong khi việc kiểm tra quyền sở hữu giữa pidId trong body và personaId trên path không đầy đủ - Kẻ tấn công có thể kết hợp đổi tên người dùng persona, đặt trạng thái
BANNED, di chuyển persona, tìm ID persona của tài khoản ẩn, và vượt qua đăng nhập dựa trên persona Xbox để cuối cùng đăng nhập được vào web tài khoản - Phạm vi ảnh hưởng bao gồm đánh cắp tên người dùng và một phần dữ liệu game, chặn truy cập game online, vượt qua lệnh cấm game, cho đến đăng nhập tài khoản EA qua Xbox; mức độ nghiêm trọng được đánh giá là CVSS 10.0
- Lỗ hổng được báo cáo cho EA ngày 16/6/2024; EA phân loại là critical vào ngày 25/6, rồi triển khai các bản vá từ 8/7 đến 8/10, bao gồm kiểm tra quyền sở hữu persona và gỡ bỏ tài liệu
Lộ tài liệu API bắt đầu từ môi trường xác thực của EA
- Điểm khởi đầu là thử nghiệm môi trường phát triển integration được phát hiện trong EA Desktop
- API xác thực production là
accounts.ea.com - Host xác thực integration là
accounts.int.ea.com
- API xác thực production là
- Có thể lấy access token có quyền trong môi trường integration, và bắt đầu tìm tài liệu bị lộ để kiểm tra các API có thể truy cập bằng token này
- Endpoint xác thực nằm sau reverse proxy; định dạng phản hồi 404 của path
/connectkhác với path/thông thường, và headerserverlàistio-envoy /connect/api-docstrả về 404 rỗng khác với các path/connectkhác, cho thấy khả năng được route tới một service riêng; tài liệu Swagger 1.1 được tìm thấy tại/connect/api-docs/index.json- Tài liệu Swagger trỏ tới
/api-docs/connect; tài liệu này được chuyển đổi sang đặc tả OpenAPI 3.0 bằngswagger-codegen-clirồi kiểm tra trong Swagger UI cục bộ
Danh sách API nội bộ lộ ra từ Gateway
- EA Desktop sử dụng một API GraphQL gọi là “Service Aggregation Layer”, nhưng SAL trong môi trường integration nằm sau tường lửa
- Gateway API của
gateway.ea.com, có vẻ là phiên bản cũ hơn, sử dụng endpoint dạngproxy/{service}/{route} gateway.int.ea.com/proxy/api-docs/index.jsontrả về danh sách tài liệu của hơn 80 service- Bao gồm nhiều service như
addresses,agerequirements,billing,commerce
- Bao gồm nhiều service như
- Tải từng tài liệu API xuống, chuyển đổi sang đặc tả OpenAPI mới nhất, rồi kiểm tra các chức năng có thể truy cập
- Một số endpoint trả về dữ liệu “projects” liên quan đến các đội game của EA, cần scope quyền
basic.domaindata, và cũng tìm thấy client có scope đó trong production- Dữ liệu ví dụ có mục hiển thị một game Star Wars đã bị hủy và Apex Legends với tên nhóm liên quan đến
Titanfall3
- Dữ liệu ví dụ có mục hiển thị một game Star Wars đã bị hủy và Apex Legends với tên nhóm liên quan đến
- Trong môi trường integration cũng có tài liệu về cách cấp entitlement game tùy chỉnh, nhưng tính thực dụng thấp vì các service integration cần cho tải xuống và chơi game nằm sau tường lửa
- Cũng có endpoint trả về Xbox Live Server Token, nhưng do sandbox ID không phải
RETAILnên không điều tra sâu hơn
Thông tin tài khoản production và cấu trúc persona
- Mỗi endpoint trong tài liệu hiển thị scope xác thực cần thiết, và việc kiểm tra tập trung vào các endpoint có thể truy cập bằng OAuth client production
/identity/pids/metrả về thông tin chung của tài khoản- Bao gồm giá trị email đã che, trạng thái email, một phần ngày sinh, quốc gia, ngôn ngữ, trạng thái tài khoản, phiên bản điều khoản, thời điểm tạo/sửa đổi/xác thực lần cuối, trạng thái bật 2FA, v.v.
/identity/pids/me/personastrả về danh sách persona được liên kết với tài khoản- Tài khoản EA mặc định dùng namespace
cem_ea_id - Các tài khoản bên ngoài đã liên kết như Steam, Xbox cũng được hiển thị dưới dạng từng persona
- Tài khoản EA mặc định dùng namespace
- Game thường có thể lưu dữ liệu như thống kê, inventory bên dưới persona, nên dữ liệu theo từng nền tảng có thể được tách riêng
- Từ đây về sau, persona trong namespace
cem_ea_idđược gọi là persona “Origin”
Lỗ hổng cốt lõi: lỗi kiểm tra quyền cập nhật persona
- Endpoint
/identity/pids/{pidId}/personas/{personaId}nhận các request GET, PUT, DELETE - Request PUT cho phép scope
dp.client.defaultvàdp.server.default, trong khi client xác thực EA Desktop thông thường códp.client.default - Body request có thể nhận
displayName,namespaceName,status,statusReasonCode,lastAuthenticated,nickName,pidId, v.v. - Request PUT đổi
displayNametrên persona Origin của chính mình thành công, và tên người dùng trên website tài khoản EA bị thay đổi- Request này vượt qua thời gian chờ đổi tên người dùng và bước xác minh email khi đổi tên người dùng
- Thay đổi
namespaceNamekhông có tác dụng - Giá trị
statuscó thể làACTIVE,DISABLED,PENDING,DELETED,BANNED; khi đổi trạng thái persona Origin của chính mình thànhBANNED, EA Desktop vẫn dùng được nhưng đăng nhập game bị chặn - Vấn đề lớn hơn là có thể đổi pidId trong body request thành ID tài khoản khác
- Request di chuyển persona Steam của mình sang tài khoản EA của bạn bè đã thành công
- Sau đó cũng có thể chuyển lại về tài khoản của mình
Kiểm tra đăng nhập và thử XSS
- Sau khi chuyển persona Steam của mình sang tài khoản bạn bè, khi thử đăng nhập website EA bằng Steam, quy trình xác minh email dựa trên vị trí mới/thiết bị không tin cậy xuất hiện
- Một phần email hiển thị không phải của mình, nghĩa là đã đi tới luồng cố đăng nhập vào tài khoản bạn bè, nhưng bị chặn ở bước 2FA dựa trên vị trí
- Request đổi tên người dùng persona thành dạng
BattleDash <script>alert(1)</script>cũng thành công - Alert được thực thi trên trang liên kết tài khoản, nên XSS là khả thi
- Nếu dụ người dùng đang đăng nhập tài khoản EA truy cập trang liên kết đó, có thể thực thi mã trong trình duyệt để trích xuất session
Thao tác trực tiếp persona của tài khoản khác
- Để kiểm tra liệu
personaIdtrên path cũng thiếu kiểm tra quyền sở hữu hay không, đã thử đổi tên người dùng bằng một persona ID không thuộc sở hữu của mình - Sau khi lấy persona ID của một tài khoản thử nghiệm mới, request đổi tên người dùng của tài khoản đó mà không cần xác thực tài khoản nạn nhân đã thành công
- Theo cách tương tự, có thể đổi
statusthànhBANNED, khiến tài khoản đó không thể đăng nhập game /identity/personastìm kiếm persona theodisplayNamevà trả về persona ID, tài khoản ID, ngày tạo, thời điểm đăng nhập lần cuối- Tuy nhiên không hiển thị người dùng đã ẩn tài khoản
/identity/namespaces/{namespace}/personastìm kiếm trong một namespace cụ thể, chỉ trả về tên người dùng và persona ID nhưng cũng trả về tài khoản ẩn- Chỉ riêng endpoint này cũng đủ để lấy persona ID cần thiết
Hạn chế của việc di chuyển persona và chiếm đoạt tài khoản một phần
- Khi thử chuyển persona Origin của người dùng khác sang tài khoản của mình, lỗi
TOO_MANY_PERSONAS_FOR_NAMESPACExảy ra- Vì tài khoản của mình đã có persona Origin
- Dựa trên nhận định rằng tài khoản đăng ký bằng console có thể chỉ có persona của nền tảng đó và không có persona Origin, đã dùng tài khoản console để tránh xung đột namespace
- Có thể chuyển persona Origin của tài khoản thử nghiệm sang tài khoản console, rồi chuyển persona Origin của nạn nhân sang tài khoản của mình
- Khi đăng nhập ở trạng thái này, tên người dùng của nạn nhân, thống kê game không cross-platform và một số thông tin tài khoản khác được hiển thị
- Khi đăng nhập bằng tài khoản nạn nhân, luồng “Finish setting up my account” xuất hiện, yêu cầu chọn tên người dùng như thể đang tạo tài khoản mới
- Entitlement, bạn bè và dữ liệu lưu của các game cross-platform mới như Battlefield 2042 được lưu trên chính tài khoản EA chứ không phải persona, nên không được chuyển đi
- Tuy vậy, kẻ tấn công vẫn có thể cấm người dùng, vượt qua lệnh cấm game, đánh cắp tên người dùng và bắt dữ liệu tài khoản làm con tin
Vượt qua đăng nhập bằng persona Xbox
- Ở trạng thái hiện có, các thao tác khả thi gồm di chuyển persona linked account của mình sang tài khoản EA bất kỳ, di chuyển persona bất kỳ sang tài khoản của mình, cấm persona và đổi tên người dùng
- Khi di chuyển persona của mình để đăng nhập vào tài khoản người khác, xác minh email xuất hiện
- Từ việc chưa từng thấy prompt 2FA khi chơi game EA trên console, đã kiểm tra đăng nhập dựa trên token Xbox/PSN
- Tài liệu Nexus Connect API có cách truyền token Xbox/PSN; sau khi lấy PSN client ID từ luồng đăng nhập PSN của site EA, đã thử đăng nhập bằng token PSN
- Đăng nhập bằng token PSN tạo persona namespace
ps3và có thể đăng nhập tài khoản mà không cần 2FA, nhưng client códp.client.defaultkhông thể xử lý namespaceps3 - Khi thêm header
X-Include-Namespacevào/connect/tokeninfo, phát hiện mỗi OAuth client có danh sách namespace persona có thể thao tác- Ví dụ
JUNO_PC_CLIENTbao gồm các namespacecem_ea_id,steam,epic,xbox
- Ví dụ
- Namespace Xbox được cho phép, nhưng không thể tự tạo thủ công Microsoft XSTS token hợp lệ cho game, nên đã thử trên Xbox thật
- Tạo tài khoản Microsoft mới, liên kết persona Xbox với tài khoản EA thử nghiệm, rồi di chuyển persona Xbox đó sang tài khoản nạn nhân
- Khi đăng nhập bằng tài khoản Xbox trên website EA, xác minh email vị trí mới xuất hiện; nhưng khi cài Battlefield 2042 trên Xbox và đăng nhập game, đã truy cập được vào tài khoản nạn nhân
- Sau đó, khi đăng nhập website EA bằng cùng tài khoản Xbox, đăng nhập web vào tài khoản nạn nhân cũng thành công mà không cần xác minh email
Phạm vi ảnh hưởng và mức độ nghiêm trọng
- Có hai hướng chính mà kẻ tấn công có thể dùng
- Di chuyển dữ liệu persona của người khác ra khỏi tài khoản để đánh cắp tên người dùng và dữ liệu game
- Chuyển persona Xbox của mình sang tài khoản nạn nhân, đăng nhập game EA trên Xbox, rồi khi mạng đã được tin cậy thì đăng nhập website EA bằng tài khoản Xbox
- Ảnh hưởng bổ sung cũng lớn
- Có thể đặt persona của người khác vào trạng thái bị cấm, chặn họ chơi hầu hết game online
- Có thể đổi tên người dùng của người khác rồi chiếm lấy tên đó
- Vì lệnh cấm game được xử lý bằng cách vô hiệu hóa entitlement game trên toàn tài khoản, có thể chuyển persona sang tài khoản mới để vượt qua lệnh cấm game
- Luồng này chủ yếu có thể thực hiện qua một endpoint API duy nhất mà không cần tương tác người dùng
- Mức độ nghiêm trọng được đánh giá là CVSS 10.0 theo
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Lịch sửa lỗi và ý kiến tiếp theo
- Lỗ hổng được báo cáo cho EA vào ngày 16/6/2024
- EA gửi xác nhận vào ngày 25/6/2024 và gán mức độ nghiêm trọng critical
- Lịch vá như sau
- 8/7/2024: Triển khai Patch 1, kiểm tra ownership của persona
- 18/7/2024: Triển khai Patch 2, chưa rõ chi tiết
- 6/9/2024: Triển khai Patch 3, chưa rõ chi tiết
- 10/9/2024: Triển khai Patch 4, gỡ bỏ tài liệu
- 8/10/2024: Triển khai Patch 5, chưa rõ chi tiết
- Dự đoán ban đầu của EA là việc sửa lỗi có thể kéo dài đến cuối năm, và có đánh giá rằng với một vấn đề cốt lõi là tài liệu bị lộ cùng một endpoint không an toàn duy nhất, nên có bản vá tạm thời nhanh hơn
- EA hiện vẫn chưa có chương trình bug bounty, và còn lo ngại rằng nếu không có phần thưởng thực chất cho việc báo cáo, có thể sẽ có người giữ kín lỗ hổng
- Tài khoản bạn bè dùng trong thử nghiệm ban đầu là tài khoản đã được đồng ý
1 bình luận
Ý kiến trên Hacker News
EA thích dùng hệ thống chung cho nhiều trò chơi. Khi mày mò Madden, tôi phát hiện có một backend chung tên là
blazevà có các endpoint web/TCP dùng chungTôi đã tạo một công cụ để gọi endpoint này, nhưng phải tải XML lên; về sau mới biết mỗi lần gọi là máy chủ EA lại chết
Vì mỗi request đều chiếm một máy chủ mới, tôi đã làm crash lần lượt toàn bộ các máy chủ Madden, và cuối cùng EA tạo API để mọi người khỏi mày mò nữa
Theo tôi nhớ thì khoảng 5.000–10.000 người chơi cần một instance Blaze
Có vẻ như hiện giờ họ dùng định dạng độc quyền và khá tự mãn với kiểu bảo mật dựa trên giả định rằng không ai sẽ tìm ra cách giao tiếp với nó, tức là bảo mật bằng sự mập mờ
Một ngày nào đó tôi muốn quay lại bài đó; ít nhất thì nội dung cũng khá thú vị
Mẹo khi reverse engineer API của một dịch vụ nổi tiếng như vậy là dùng tìm kiếm mã trên GitHub. Thử đưa vào một tên endpoint độc nhất; thường sẽ thấy những người tương tự từng tự hack một API client nhỏ, và điều đó giúp ích cho việc điều tra của tôi theo những cách không ngờ tới
namespacenamelấy từ dữ liệu cá nhân. Thông tin token 2FA cần được băm tại endpoint/tokeninfo/lấy từ JUNOKhi thử tích hợp hậu kỳ, hạ tầng cho API C++ thường trả về ID người dùng PSN
Như một người bình thường hiển nhiên sẽ làm, tôi đặt mua Xbox giao hàng ngày hôm sau, cài Battlefield 2042, rồi chờ khoảnh khắc quyết định — và đã vào được
Hacker đúng là tuyệt vời <3
Điều thú vị là luồng chi tiết họ đi từ điểm này sang điểm tiếp theo. Chắc hẳn ngoài đời nó không gọn gàng, tuyến tính như một bài blog
Để cho thấy thời gian và công sức thực tế cần cho kiểu tấn công này, hẳn phải có cả núi ghi chú; xem những ghi chú đó chắc cũng thú vị
Điều kỳ lạ nhất trong toàn bộ chuyện này là EA đã khẳng định suốt nhiều năm rằng việc hủy liên kết tài khoản Xbox hiện có rồi liên kết lại với tài khoản mới là bất khả thi về mặt kỹ thuật. Cứ xem các bài như https://www.reddit.com/r/XboxGamePass/comments/12gsy4i/ea_xb... và vô số bài trên diễn đàn EA
Tôi cũng từng đâm vào bức tường này, nói chuyện với hỗ trợ EA hàng giờ, nhưng họ không thể liên kết tài khoản Xbox rất cũ của tôi. Vì vậy tôi không thể đăng nhập vào bất kỳ game EA nào trên Xbox, và gần như không chơi được gì trên nền tảng đó
Vậy mà ở đây hóa ra chuyện đó hoàn toàn có thể
Kỳ lạ là tài khoản của tôi mất quá nhiều thời gian; trong 1–2 năm tôi đã nhiều lần gửi email cho hỗ trợ, nhưng lần nào cũng nhận được câu trả lời rằng họ đang nâng cấp tài khoản nhanh nhất có thể, nhưng khối lượng công việc quá lớn nên sẽ mất nhiều năm
Sau đó trên một diễn đàn tôi thấy một mẹo: tạm đóng tài khoản rồi mở lại thì có thể tăng lên 25MB, nhưng vẫn không phải 250MB như đã hứa
Tình cảnh tài khoản cũ 2–4MB, tài khoản mới 25MB, còn việc triển khai lên 250MB kéo dài nhiều năm khiến tôi có ấn tượng rằng Microsoft đang vật lộn khủng khiếp để tìm dung lượng lưu trữ còn trống. Nhưng chỉ vài tháng sau, khi phải cạnh tranh với Gmail, họ quyết định tặng mọi người 2GB, và triển khai cùng lúc cho toàn bộ tài khoản Hotmail, bao gồm cả tài khoản của tôi. Chắc hẳn người ngoài hành tinh đã mang đến một UFO chất đầy ổ cứng
[1] Ví dụ một bài diễn đàn cũ về mẹo đó, cũng có bình luận khen GMail mới ra mắt: https://bimmersport.co.nz/topic/5232-hotmail-upgrade-2mb-to-...
Việc thay đổi liên kết có thể làm vô hiệu dữ liệu lưu trong hệ thống tính phí, làm hỏng báo cáo hằng tháng gửi tới bộ phận Microsoft Xbox, hoặc khiến trang quản trị nội bộ bị crash khi tải
Tôi không định bênh EA, nhưng nếu đã xử lý nhiều hệ thống microservice phức tạp, bạn sẽ thấy việc thay đổi cấu trúc dữ liệu ở một nơi không phải lúc nào cũng đơn giản
Có lẽ cũng sẽ thú vị nếu khóa tất cả tài khoản và mong là họ không có bản sao lưu DB
Với tư cách khách hàng trả tiền, tôi kỳ vọng các công ty này có thái độ tốt hơn, và nếu họ không có chương trình như vậy thì cá nhân tôi cũng sẽ không trách các hacker nếu họ khai thác những gì tìm được
Không ai lưu 400 triệu bản ghi trên một máy duy nhất cả, và rốt cuộc bạn chỉ khiến dịch vụ bị sập cả buổi chiều rồi nhận 15 năm tù liên bang mà thôi
Vì phản ứng đầu tiên, hoặc ít nhất là bài đang được chấm điểm cao nhất lúc này, lại là ý nghĩ rằng gây thiệt hại cho hàng triệu người để dạy cho công ty họ giao dịch một bài học thì sẽ “vui”
Trong bài có đoạn này:
I had found a way to obtain a privileged access token within the environment (a story for another day, but a certain game's executable had hardcoded credentials!), but I wasn't sure what I could do with it.Có thể giải thích thêm một chút về phần này không? Tôi cứ nghĩ không thể dễ dàng đọc được các thông tin xác thực như vậy từ file nhị phân thực thi, và nếu file thực thi của game phải tự xác thực với máy chủ từ xa thì tôi cũng không rõ nhà phát triển nên làm gì khác
Trong kiến trúc client-server, client luôn không đáng tin cậy. File thực thi không nên cần tự xác thực với máy chủ. File thực thi nên xác thực dưới danh nghĩa người dùng hoặc tài khoản bằng thông tin do người dùng cung cấp
Với những thứ như telemetry, các endpoint kiểu này thường nhận dữ liệu không xác thực hoặc xác thực yếu, rồi thực hiện nhiều lớp kiểm tra để ngăn lạm dụng. Thường chúng cũng chỉ cho phép ghi/thêm dữ liệu
Bạn sẽ cần một hệ thống mã hóa file thực thi và để vùng bảo mật trong die CPU xử lý giải mã bằng khóa riêng, nhưng ngay cả vậy thì có lẽ chỉ là vấn đề thời gian trước khi ai đó delid con chip để lấy khóa
Ngay cả khi mã hóa và đưa khóa mã hóa vào HSM, việc đó trên một máy client bất kỳ có lẽ là không khả thi; hơn nữa đến một lúc nào đó game cũng phải giải mã chuỗi đó và đưa vào bộ nhớ. Và bộ nhớ đó có thể đọc được
Việc nhà phát triển game nên làm là đặt hệ thống tài khoản ở backend và để người chơi nhập thông tin xác thực của họ trong game. Khi đó game có thể tự định danh với máy chủ backend dưới danh nghĩa người chơi này
Làm như vậy mới có thể quy các hành động ở backend về một người chơi cụ thể và có cơ sở tốt để đưa ra quyết định bảo mật
Có các công cụ như IDA, nên cũng không phải là mò bằng mắt thường giữa mọi thứ trông giống chuỗi để tìm thông tin xác thực
Vấn đề không hẳn nằm ở việc có thông tin xác thực được hardcode trong file nhị phân, mà ở chỗ thông tin xác thực đó có quyền đặc quyền
Với tư cách kỹ sư ở một công ty kiểu này, đôi khi tôi tự hỏi cảm giác sẽ thế nào khi API nội bộ, các lỗi kỳ quặc và chuyện bẩn trong nhà bị phơi ra trong một báo cáo xâm nhập công khai
Tuy nhiên trong trường hợp như thế này, khả năng một cá nhân duy nhất chịu trách nhiệm cho lỗ hổng là thấp. Có lẽ 5–6 đội sở hữu các phần khác nhau đã bị khai thác, và chính vì vậy exploit mới tồn tại ngay từ đầu. Đó là một hệ thống khổng lồ, phức tạp, nơi ai cũng chỉ hiểu phần nhỏ của mình
Ở một công ty cỡ EA, chuyện này gần như chắc chắn sẽ được dùng cho đấu đá nội bộ, và dù gây hại cho toàn công ty, người ta vẫn sẽ tận dụng nó để giành quyền kiểm soát lớn hơn đối với một công ty đã nhỏ đi
Ai cũng là tài nguyên có thể thay thế, vậy sao phải đầu tư cảm xúc vào công việc
Hồi đó tên đội là Nucleus, nên trong một phản hồi của bài viết,
refTypelàNUCLEUS. Đội này xây dựng và duy trì các API backend cho quyền hạn, tài khoản và thanh toánĐó là kỳ thực tập mùa hè, và một năm sau tôi nhận lời mời từ đội đó rồi bắt đầu làm việc. Khi ấy tên đội đã đổi thành EADP và đang dần được sáp nhập với Origin. Tôi nhớ không rõ DP có phải là Data Platform hay không, nhưng vì vậy một trong các endpoint bắt đầu bằng
dp.Lúc đó không có cơ sở dữ liệu GraphQL; tất cả là Enterprise Java, OCI, Spring, Hibernate, v.v., và trước khi tôi rời đi thì cũng có một phần Groovy/SpringBoot mới hơn. Nó chạy trên máy chủ trung tâm dữ liệu chứ không phải cloud
Dù vậy tôi đã làm những việc thú vị, và tuy rời đi 2–3 năm sau một sự cố lớn, tôi đã học được rất nhiều về phát triển backend từ các kỹ sư giỏi
Tôi hoàn toàn không biết đội hiện nay thế nào, kỹ sư là ai, hay chuyện gì đang xảy ra, nhưng thấy những việc như thế này thì thật đáng buồn. Hồi đó chúng tôi rất có ý thức về bảo mật, và cũng đã làm hệ thống phát hiện và xử lý các nỗ lực brute force trên trang đăng nhập
Tôi không biết nó còn hoạt động hay đang chạy hay không, nhưng các bước kiểm tra/review bảo mật nhằm giảm khả năng bị xâm nhập và bề mặt tấn công từng là một phần công việc trong sprint
Nếu bạn thấy bài này thú vị, có thể xem thêm nhiều nội dung tương tự trên các nền tảng bug bounty như Hacktivity của HackerOne: https://hackerone.com/hacktivity
Được cập nhật vài tuần hoặc vài tháng một lần
Có hướng dẫn best practice nào đó về cách thiết lập chương trình bug bounty không?
Chỉ cần đăng ở đâu đó trên website rằng mọi người được phép kiểm tra bảo mật kỹ thuật với điều kiện tuân theo quy trình công bố lỗ hổng có điều phối, rồi ghi rõ sẽ thưởng gì cho những lỗi nào trong phạm vi nào. Tất nhiên cần cụ thể hơn một chút so với một câu này
Cũng nên ghi trước các ngoại lệ như nếu quá trẻ hoặc quá già thì không được trả tiền, hoặc nếu sinh ra ở một quốc gia “không đúng” và thuộc diện bị trừng phạt thì không được tham gia, để sau này khỏi mất lòng nhau
Nếu có câu hỏi cụ thể, tôi có thể trả lời hoặc tìm tài liệu tham khảo tốt
Nhìn vào đoạn này trong bài:
It's also disappointing that EA has yet to start a bug bounty program. Without any real incentive to report vulnerabilities, I know people who have instead chosen to keep them to themselves. I would love to see EA follow the rest of the industry's lead here.Vậy là tác giả đã báo cáo việc này và không nhận được gì sao?
Việc báo cáo có rủi ro pháp lý, và chuyện về mặt kỹ thuật công ty có thể kiện đến cùng cũng chẳng giúp ích gì. Đây là theo tiêu chuẩn EU/UK