Bug bounty writeup: Một vài lưu ý khi bắt đầu tham gia vào các nền tảng Bug bounty
Bài đăng này đã không được cập nhật trong 2 năm
I. Bug Bounty là gì?
Bug Bounty là chương trình trao thưởng của các tổ chức cho các nhà nghiên cứu, các hacker có các phát hiện về lỗ hổng bảo mật trên hệ thống và các sản phẩm của tổ chức đó. Phần thưởng dành cho các nhà nghiên cứu khi báo cáo lỗ hổng phụ thuộc vào chương trình Bug bounty có thể là tiền mặt, quà tặng, vinh danh … Các nhà phát triển phần mềm tạo ra các chương trình bug bounty trực tiếp hoặc gián tiếp qua các trang web cung cấp nền tảng bug bounty kết nối giữa nhà phát triển và hacker. Tham gia các chương trình bug bounty giúp cho các nhà phát triển phần mềm phát hiện và vá được nhiều lỗi bảo mật cho hệ thống giảm thiểu nguy cơ bị khai thác tấn công cho hệ thống. Còn đối với các nhà nghiên cứu và hacker mũ trắng thì đây là cơ hội đóng góp cho xã hội và kiếm thêm thu nhập cho bản thân.
Một chương trình bug bounty tiêu chuẩn sẽ bao gồm ba đối tượng chính:
- Researcher: là những người tham gia tìm lỗi trong chương trình Bug Bounty. Họ là những chuyên gia an ninh mạng, tư vấn bảo mật cho các tổ chức, cũng có thể là một pen-tester, một hacker mũ trắng hay một sinh viên ATTT tài năng.
- Môi trường: Có thể là website, mobile app, IoT, API, phần mềm máy tính, phần mềm dịch vụ – SaaS,…
- Đơn vị tổ chức Bug Bounty: Thường là các doanh nghiệp, tổ chức hoặc bên thứ ba. Đây là đơn vị chịu trách nhiệm thiết kế & công bố chương trình Bug Bounty, đồng thời trao thưởng cho chuyên gia tìm được lỗi.
Nền tảng Bug Bounty (Bug bounty platform) là những đối tác bên thứ ba giúp các doanh nghiệp tổ chức và thu hút nhiều chuyên gia bảo mật tài năng.
II. Các nền tảng Bug Bounty hiện nay
1. HackerOne
HackerOne là một trong những nền tảng Bug Bounty nổi tiếng nhất thế giới. Công ty được thành lập năm 2012 tại San Francisco. Là một trong những tên tuổi lâu đời và uy tín nhất trong ngành, HackerOne kết nối doanh nghiệp với cộng đồng hacker mũ trắng & nhà nghiên cứu bảo mật thông qua các chương trình Bug Bounty và VDP. Năm 2018, mạng lưới hacker mũ trắng của HackerOne là 200,000 người, đến năm 2020 nâng lên thành 700,000 người.
Để tham gia vào HackerOne rất đơn giản. Bạn chỉ cần tạo 1 tài khoản tại https://hackerone.com/. Sau khi tạo tài khoản xong bạn truy cập vào phần Opportunities để xem thông tin các chương trình đang hoạt động, chọn 1 chương trình là bạn có thể tham gia tìm bug bounty rồi.
2. Bugcrowd
Thành lập năm 2011 tại San Francisco, Bugcrowd là một trong những đơn vị uy tín giúp doanh nghiệp công bố chương trình Bug Bounty và thu hút các chuyên gia kiểm thử. Công ty cung cấp 4 dịch vụ dựa trên Crowdsourced Security, bao gồm Bug Bounty, Vulnerability Disclosure, Next Gen Pentest, Bug Bash.
Bugcrowd là đối tác bảo mật của nhiều thương hiệu lớn như Tesla, Mastercard, Motorola, Atlassian, hay Western Union. Giao diện các chương trình trên Bugcrowd:
3. WhiteHub
Ra mắt vào tháng 4/2019, WhiteHub là nền tảng đầu tiên tại Việt Nam kết nối doanh nghiệp với chuyên gia bảo mật thông qua chương trình Bug Bounty. WhiteHub là một sản phẩm của công ty An toàn thông tin CyStack Việt Nam, được thành lập bởi nhóm chuyên gia ATTT có nhiều năm kinh nghiệm chuyên sâu và tâm huyết với ngành.
Đây là nền tảng Bug Bounty được tin tưởng và sử dụng bởi các doanh nghiệp Việt dẫn đầu như VinGroup (VinID), Giaohangtietkiem, Vntrip, Luxstay, Sendo, Finhay, Getfly CRM.
4. SafeVuln
SafeVuln là nền tảng kết nối các nhà nghiên cứu ATTT với doanh nghiệp có nhu cầu tìm kiếm lỗ hổng bảo mật trên sản phẩm, dịch vụ của mình, được phát triển bởi Công ty An ninh mạng Viettel (Viettel Cyber Security - VCS). Thông tin lỗ hổng sẽ được xác nhận và gửi tới doanh nghiệp thông qua nền tảng Safevuln, nhà nghiên cứu sẽ được nhận thưởng cho các lỗ hổng đã phát hiện.
5. Các nền tảng khác
Ngoài các nền tảng trên bạn có thể tham gia rất nhiều các nền tảng khác như:
- Intigriti: Nền tảng Bug Bounty hàng đầu Châu Âu.
- Yeswehack: Nền tảng kết nối hơn 21.000 chuyên gia tại trên 170 quốc gia với các tổ chức khác nhau.
- Synack: Được biết đến là nền tảng tình báo của Mỹ. Synack bí mật hơn các nền tảng khác khi không công khai bất kỳ thông tin nào về các chương trình bug bounty và người tham gia.
- BugRank: Nền tảng tìm kiếm lỗ hổng bảo mật mới được ra mắt của Việt Nam do Trung tâm Giám sát an toàn không gian mạng quốc gia (NCSC) và VNSecurity phát triển.
Ngoài các nền tảng, nếu ai có quan tâm đến tìm Bug Bounty trên Facebook, Instagram thì có thể tham gia trực tiếp vào chương trình do Facebook tổ chức tại https://www.facebook.com/whitehat. Facebook thường trả Bug Bounty rất lớn cho các lỗi liên quan đến việc can thiệp dữ liệu người dùng.
III. Một vài lưu ý khi tham gia Bug Bounty
1. Ba loại chương trình chính trên các nền tảng Bug bounty
- BBP: Viết tắt của Bug Bounty Program. Đây là các chương trình chính trên các nền tảng Bug Bounty. Mỗi chương trình sẽ có một mức tiền thưởng khác nhau cho các lỗi mà các Researcher tìm được.
- VDP: Viết tắt của Vulnerability Disclosure Program. Các chương trình này chấp nhận các báo cáo lỗ hổng hợp lệ tuy nhiên sẽ không trả tiền thưởng mà thay vào đó sẽ trả điểm thưởng. Các nền tảng Bug bounty sẽ dựa vào số điểm thưởng mà bạn có để mời bạn vào các chương trình Private.
- Private: Các chương trình trong Private giới hạn số lượng Researcher tham gia. Ngoài ra thông tin chương trình được giữ bí mật trên các nền tảng Bug bounty (nếu có), chỉ những người được mời mới biết tới sự tồn tại của chương trình và được phép tham gia.
2. Phạm vi của chương trình
Scope hay còn gọi là phạm vi của chương trình nêu các quy tắc tham gia cho một chương trình tiền thưởng. Các quy tắc của một chương trình tiền thưởng thường gồm 2 mục chính:
a. Phạm vi tìm lỗi
Phạm vi tìm lỗi sẽ bao gồm các môi trường được trả tiền thưởng khi tìm ra lỗi trên môi trường đó. Ví dụ một chương trình public Wealthsimple
trên HackerOne có phạm vi tìm lỗi như sau:
Các phạm vi được trả tiền thưởng bao gồm:
- Môi trường web: bao gồm các subdomain nằm trong 2 domain là wealthsimple.com và simpletax.ca trừ help.wealthsimple.com, support.wealthsimple.com
- Hai môi trường App là Android và IOS.
b. Các lỗi được trả tiền thưởng
Thông thường các chương trình sẽ đưa ra danh sách các báo cáo lỗ hổng không được trả tiền thưởng. Các báo cáo được coi là lỗ hổng bảo mật không nằm trong danh sách trên sẽ được trả tiền thưởng tương ứng theo mức độ nguy hiểm. Các lỗi không được trả tiền thưởng thường là các lỗ hổng sau:
- Các lỗ hổng liên quan đến DOS/ DDOS
- Clickjacking nhưng không mang lại tác động thực sự nguy hiểm
- Self XSS
- Spam, sử dụng email giả mạo, Phishing
- Rate limit testing
- Các lỗ hổng tại các phiên bản cũ hoặc hết hạn
- Thiếu SSL hoặc thiếu Cookie flag
3. Tiền thưởng
Tiền thưởng chắc chắn là thứ mà bất kỳ ai tham gia Bug Bounty điều hướng tới. Với mối chương trình, mức tiền thưởng lại được đánh giá khác nhau tuy nhiên thường được phân theo 4 mức: Low, Medium, High, Critical. Các lỗ hổng được báo cáo sẽ được đánh điểm theo CVSS, từ đó được xếp vào các mức phù hợp. Mức nguy hiểm càng cao thì càng được nhiều tiền thưởng
Riêng với nền tảng BugCrowd sẽ có 1 cách đánh giá riêng phân theo 5 mức: P5, P4, P3, P2, P1. Việc đánh giá được phân loại dựa theo VRT (Vulnerability Rating Taxonomy) của riêng BugCrowd, bạn có thể tham khảo tại đây. Ví dụ mức thưởng của một chương trình trên BugCrowd dựa theo VRT như sau:
4. Bắt đầu tham gia tìm kiếm các chương trình Bug Bounty
Để bắt đầu tìm kiếm Bug bounty , mình khuyên các bạn nên đi theo 2 hướng sau:
a. Tham gia các chương trình quen thuộc
Bạn có thể bắt đầu bằng cách tham gia tìm lỗ hổng trên các chương trình mà bạn hay sử dụng. Các nền tảng Bug bounty cung cấp rất nhiều chương trình với mọi lĩnh vực khác nhau, trong đó có những chương trình rất quen thuộc với người dùng Việt Nam như: Grap, Tiktok, vv... Việc tham gia vào các chương trình quen thuộc sẽ giúp bạn dễ dàng nằm bắt được luồng hoạt động cũng như các chức năng ẩn. Tìm kiếm lỗ hổng trên các chức năng đó giúp tăng đáng kể khả năng tìm ra lỗi.
b.Tham gia các chương trình Private
Các chương trình private luôn là mục tiêu lý tưởng để tìm Bug Bounty. Ưu điểm của các chương trình private có thể kể đến như:
- Thông thường các công ty sẽ có xu hướng mở chương trình private trước rồi mới chuyển sang public. Nên nếu bạn được tham gia vào các chương trình này sẽ tăng cơ hội để tìm được bug bounty
- Các chương trình Private cung cấp nhiều dữ liệu cho người tìm kiếm hơn các chương trình Public. Ví dụ như bạn có thể được cấp thêm các tài khoản có quyền quản trị trong các chương trình Private (thường rất ít thấy trong các chương trình Public).
Để được tham gia vào các chương trình private bạn cần được đánh giá tích cực trên nền tảng đó. Các đánh giá dựa trên số lượng báo cáo lỗ hổng được chấp nhận, mức độ nguy hiểm của các lỗ hổng mà bạn báo cáo. Đơn giản là bạn cần phải tìm được bug trên các chương trình Public để được mời vào Private.
Tuy nhiên các chương trình private thông thường khá khó tìm được bug bounty do số lượng người tham gia tìm lỗi tại các chương trình đó, đặc biệt là với những người mới. Một cách khác là bạn có thể tham gia vào các chương trình không có tiền thưởng VDP như mình đề cập ở trên, các chương trình trên do không có tiền thưởng nên số lượng người tham gia tìm lỗi cũng ít hơn giúp tăng khả năng tìm thấy lỗi.
Riêng nền tảng HackerOne, bạn có thể kiếm được các lời mời private bằng cách tham gia các đề CTF của họ trên trang https://ctf.hacker101.com/. Bạn đăng nhập với tài khoản HackerOne của mình để tham gia giải đề CTF, khi kiếm được 1 lượng flag nhất định bạn sẽ nhận được các lời mời private
IV. Kết luận
Trên đây là những chia sẻ của mình trong quá trình tìm hiểu và tham gia Bug bounty. Chúc các bạn tìm Bug bounty vui vẻ. Hẹn gặp các bạn ở bài viết sau nhé!
All rights reserved