Xin chào! Chúng tôi là thành viên PSIRT VN, thuộc nhóm đối ứng các vấn đề bảo mật sản phẩm có tên là Cy-PSIRT [1]. Team chúng tôi được thành lập ở Việt Nam năm 2018, lấy tên là PSIRT VN. Với điều này, Cy-PSIRT được thành lập ở 5 chi nhánh khác nhau (bao gồm Tokyo, Osaka, Matsuyama, Shanghai, TP. Hồ Chí Minh). Dù là team làm việc ở chi nhánh nào, thì chúng tôi cũng đang nỗ lực để cải thiện chất lượng bảo mật cho sản phẩm tại Cybozu. Trong bài viết, chúng tôi muốn giới thiệu các nhiệm vụ của Cy-PSIRT mà chúng tôi đang đảm nhận.
Chúng tôi hy vọng rằng bài viết này sẽ giúp các bạn hiểu về cách thức hoạt động của Cy-PSIRT và liên hệ với công việc của các bạn.
Cy-PSIRT là gì?
Cy-PSIRT là viết tắt của Cybozu Product Security Incident Response Team. Đúng như tên gọi, đây là team xử lý các vấn đề liên quan security của sản phẩm Cybozu, hoạt động với mục đích bảo đảm và nâng cao chất lượng security của sản phẩm.
Hoạt động chính
Công việc chính của Cy-PSIRT là phát hiện (detect), đánh giá (evaluate) các vấn đề về bảo mật của sản phẩm Cybozu và các hoạt động công khai thông tin lỗ hổng bảo mật. Khi chúng tôi phát hiện ra vấn đề bảo mật, chúng tôi sẽ báo cáo ngay cho Dev Team (nhóm phát triển sản phẩm) và giải thích cặn kẽ về những rủi ro thật sự mà vấn đề đó gây ra. Ngoài hoạt động công khai thông tin lỗ hổng bảo mật trên trang chủ, chúng tôi cũng báo cáo thông tin lỗ hổng bảo mật cho các tổ chức công (JPA). Riêng PSIRT VN, sản phẩm chính chúng tôi đảm nhận bao gồm: Garoon, Remote Service, Cybozu Desktop, Kunai.
Công việc của Cy-PSIRT
Từ phần này trở đi, chúng tôi sẽ chia nội dung công việc mà Cy-PSIRT đang đảm nhiệm thành 4 phần chính để giới thiệu đến mọi người, đó là: phát hiện, đánh giá, báo cáo và công bố.
Tìm kiếm, phát hiện
Cy-PSIRT phân chia những vấn đề tiềm ẩn về mặt security đối với sản phẩm của công ty làm 2 phần lớn. Một phần là những lỗ hổng tiềm ẩn trong chính bản thân sản phẩm, và phần còn lại là vấn đề nằm trong third party mà sản phẩm đang sử dụng. Chúng tôi sẽ giới thiệu những hoạt động được thực hiện nhằm tìm kiếm, phát hiện những vấn đề này.
In-house Testing
In-house Testing là việc thực hiện security testing do các thành viên của Cy-PSIRT đảm nhận.
Security testing là gì: Security testing là hoạt động nhằm phát hiện các ra các lỗ hổng (vulnerability), mối đe dọa (threat), rủi ro (risk) trong một ứng dụng phần mềm và ngăn chặn các cuộc tấn công nguy hiểm từ những kẻ xâm nhập. [2]
Để tìm kiếm, phát hiện vulnerability, cần xác nhận (confirmation) việc không có vấn đề trong những hành vi xử lý. Về cơ bản chúng tôi tiến hành kiểm định (Verification) và thẩm định (Validation) về mặt security cho các chức năng được Dev Team (Team phát triển sản phẩm) phát triển mới và những bug đã được fix trên chức năng đã có theo từng version.
Cụ thể, chúng tôi thực hiện theo quy trình bên dưới.
Quy trình In-house Testing
Liệt kê các quan điểm test là confirm các nội dung như requirement của chức năng, specification, source code, hành vi khi thao tác, và tiến hành dựa trên việc dự đoán vulnerability/threat/risk nào sẽ tiềm ẩn trong chức năng. Và tạo test spec dựa trên quan điểm test đã liệt kê ra rồi tiến hành test. Trong hoạt động test, sẽ vừa tiến hành test thủ công lẫn test tự động bằng việc sử dụng các tool có phí và tool open source.
Hoạt động In-house Testing, một trong những lợi thế là việc có thể sử dụng tài liệu nội bộ chẳng hạn như source code đã được implement và specification, tiến hành kiểm thử.
Ngoài ra, với việc một trong các sản phẩm chính là Garoon đang được Dev Team ở Việt Nam phụ trách chính, PSIRT VN có thể tận dụng được khả năng giao tiếp, trao đổi, nắm bắt thông tin.
External Audit
External Audit là gì: là việc Security Testing được thực hiện bởi bên thứ 3, một tổ chức bên ngoài Cybozu, có chuyên môn cao trong lĩnh vực Security.
Ở Cy-PSIRT, với quan điểm muốn tiến hành test mang tính đa chiều (Multidimensional), kiểm thử độc lập (Independent testing) [3] ở mức độ cao nhất nhằm nâng cao hơn nữa chất lượng sản phẩm, chúng tôi có thuê các công ty chuyên về security tiến hành kiểm tra lỗ hổng bảo mật. Việc thực hiện Audit Test cho từng sản phẩm của công ty được tiến hành định kỳ và do một công ty trong số đó thực hiện.
Kết quả Audit Test sẽ được công bố trên website về security cho sản phẩm của công ty [4].
Chương trình Bug Bounty
Ở Cybozu, chúng tôi thực hiện chế độ Bug Bounty. Đây là chương trình để nhiều nhà chuyên môn về security/hacker mũ trắng bên ngoài có thể điều tra lỗ hổng bảo mật của sản phẩm giúp chúng tôi, nhằm nâng cao hơn nữa chất lượng sản phẩm. Đây là chế độ chi trả tiền thưởng khi người tham gia chương trình liên lạc với chúng tôi về hành vi nghi ngờ là lỗ hổng bảo mật trong sản phẩm, và đối tượng cũng như hành vi đó được thừa nhận là lỗ hổng bảo mật.
Nếu bạn muốn biết chi tiết hơn về chế độ Bug Bounty, vui lòng xem ở link [5] bên dưới nhé
Cy-PSIRT thực hiện toàn bộ những công việc liên quan việc vận hành chế độ Bug Bounty. Cụ thể, thực hiện đánh giá sơ bộ đối với vấn đề được báo cáo (confirm tái hiện và quyết định phương châm đối ứng), xử lý việc đánh giá, chi trả, công khai tạ lỗi,…Mỗi năm đều xem xét lại rule, thiết lập chế độ phù hợp với tình hình lúc đó, xem xét nhiều chính sách.
Quản lý thông tin phần mềm third party (Third-party software management)
Quản lý thông tin phần mềm third party là công việc tìm kiếm, phát hiện những vấn đề nằm trong library của third party, hoặc trong chính third party mà các sản phẩm Cybozu đang sử dụng.
Thu thập thông tin của library theo định kỳ, tiến hành việc xác nhận thông tin về lỗ hổng bảo mật có trong library hoặc trong chính third party. Chúng tôi cũng sử dụng nhiều tool để có thể thu thập thông tin về lỗ hổng bảo mật sớm nhất có thể. Ngoài ra, chúng tôi cũng thông báo về lỗ hổng bảo mật đã thu thập cho Dev Team đang sử dụng library thuộc đối tượng, khi cần thiết sẽ nhờ update library.
Đánh giá (Vulnerability assessment)
Xem xét vấn đề được phát hiện có phải là lỗ hổng bảo mật hay không, trường hợp được thừa nhận là lỗ hổng bảo mật, chúng tôi sẽ tiến hành đánh giá theo chuẩn CVSS (hiện nay chúng tôi đang sử dụng chuẩn đánh giá CVSS v3). Kết quả đánh giá sẽ được quyết định thông qua việc review, thảo luận từ nhiều người.
Báo cáo (Report)
Báo cáo của Cy-PSIRT được chia làm 2 loại chính. Trước hết là công việc báo cáo thông tin về lỗ hổng bảo mật đã phát hiện đối với Dev Team là team liên quan và team phát triển sản phẩm trong công ty. Một công việc khác là sau khi fix xong lỗ hổng bảo mật được phát hiện, sẽ gửi thông tin về lỗ hổng bảo mật đến những cơ quan liên quan như JPCERT/CC.
Công bố (Information disclosure vulnerabilities)
Sau khi release version mới đã fix lỗ hổng bảo mật, Cy-PSIRT sẽ công bố thông tin về lỗ hổng bảo mật ra bên ngoài công ty. Công việc cụ thể là tạo các article để công bố, gửi thông tin đến các cơ quan như JPCERT/CC. Thông qua hoạt động này, mục đích là chia sẻ thông tin rộng rãi hơn nữa, để những người đang sử dụng sản phẩm có thể tiến hành những đối ứng/ xử lý cần thiết. Đặc biệt, Cy-PSIRT cũng đang rất nỗ lực để công bố thông tin một cách tích cực.
Thông tin về lỗ hổng bảo mật được công bố ở hoạt động này cũng được công bố trên website thông tin bug của Cybozu và cơ quan chính phủ như JVN [6].
PSIRT VN hiện tại đang hỗ trợ một phần công việc này.
Phần kết
Cy-PSIRT là team xử lý các vấn đề liên quan security của sản phẩm Cybozu. Chúng tôi thực hiện các hoạt động nhằm nâng cao chất lượng về mặt security.
Khi đọc bài viết này, các bạn sẽ cảm thấy rằng ngoài việc thực hiện test ra thì chúng tôi còn thực hiện nhiều nội dung công việc khác. Mỗi công việc khác nhau được tiến hành một cách trôi chảy là nhờ sự phối hợp của các team thành viên thuộc Cy-PSIRT đang làm việc ở nhiều chi nhánh ở nhiều nước khác nhau, chúng tôi giao tiếp hiệu quả trong và ngoài tổ chức để hướng đến việc đóng góp tích cực hơn nữa, góp phần nâng cao chất lượng về mặt security, làm cho sản phẩm Cybozu trở nên mạnh mẽ, đáng tin cậy hơn.
Thông qua bài viết lần này, mong là các bạn đã có được hình dung cũng như quan tâm đến nội dung công việc của Cy-PSIRT – team đảm nhận security của sản phẩm.
Tài liệu/Link tham khảo:
[1] https://blog.cybozu.io/entry/2021/10/08/170000
[2] https://www.guru99.com/what-is-security-testing.html
[3] https://www.tutorialspoint.com/software_testing_dictionary/independent_testing.htm
[4] https://www.cybozu.com/jp/productsecurity/