Lượng dự án Sun* cần hỗ trợ về bảo mật tăng mạnh!

Không chỉ là một phần không thể thiếu trong các dự án, hiện tại hàng loạt "ông lớn" công nghệ như Google cũng yêu cầu các sản phẩm web hay app có sử dụng đến thông tin người dùng phải áp dụng Security testing. Chủ đề này chưa bao giờ hết “hot” trong giới công nghệ. Gần đây, số lượng case cần hỗ trợ gửi đến TS Line cũng như Cyber team của Sun* liên quan đến Security testing đang ngày một tăng lên. Hôm nay, hãy cùng Sun* News tìm hiểu sâu về Security Testing qua những chia sẻ vô cùng bổ ích của chuyên gia Anh Tiến (R&D Unit) nhé.

Security Testing (kiểm thử bảo mật) là quá trình kiểm thử ứng dụng hoặc hệ thống để phát hiện các lỗ hổng bảo mật và các rủi ro trong trường hợp hệ thống bị tấn công với mục tiêu giữ an toàn cho dữ liệu và đảm bảo sự ổn định của hệ thống. Bằng việc thực hiện vá các lỗi đã phát hiện ra, chúng ta có thể đảm bảo rằng hệ thống đáp ứng các yêu cầu bảo mật và tuân thủ các quy định chung về bảo mật và bảo vệ dữ liệu của người. Kiểm thử bảo mật thường được thực hiện thông qua các phương pháp kiểm thử chính là tĩnh (Static Application Security Testing - SAST) hoặc kiểm thử động (Dynamic Application Security Testing - DAST).

Security Testing là một bước quan trọng (có thể nói là không thể thiếu) trong quá trình phát triển và bảo trì của một ứng dụng hoặc hệ thống. Việc thực hiện kiểm thử bảo mật có thể giúp đạt được một phần hoặc toàn bộ các mục tiêu sau:

  • Bảo vệ dữ liệu: Đảm bảo rằng dữ liệu của khách hàng và doanh nghiệp được bảo vệ trong suốt quá trình sử dụng và lưu trữ. Trong thời đại bây giờ, việc để lộ thông tin của người dùng, đặc biệt là các thông tin định danh cá nhân (Personally Identifiable Information - PII) do sự cố về bảo mật có thể ảnh hưởng rất lớn đến uy tín của công ty và để lại hậu quả lớn.
  • Giảm thiểu rủi ro: Kiểm thử bảo mật giúp phát hiện các lỗ hổng và các rủi ro trước khi bị kẻ xấu tấn công.
  • Tuân thủ luật pháp: Giúp doanh nghiệp tuân thủ các quy định về bảo mật dữ liệu và quy định luật pháp tại nước sở tại, đồng thời tránh khỏi các vi phạm pháp luật.
  • Tăng sự tin tưởng của người dùng: Bằng việc cam kết đáp ứng các tiêu chuẩn bảo mật và bảo vệ dữ liệu người dùng, doanh nghiệp có thể tăng cường sự tin tưởng của khách hàng và nâng cao uy tín của mình.
  • Giảm thời gian và chi phí: Bằng cách phát hiện và sửa chữa các lỗ hổng sớm, kiểm thử bảo mật giúp giảm thiểu các chi phí liên quan đến việc giải quyết các vụ lộ thông tin do sự cố bảo mật và gián đoạn trong quá trình phát triển và bảo trì hệ thống.
  • Đảm bảo tính linh hoạt: Việc thực hiện kiểm thử bảo mật định kỳ giúp đảm bảo rằng hệ thống có thể đối phó được với các hình thức tấn công mới đang thay đổi từng ngày. Điều này đặc biệt quan trọng đối với các hệ thống lớn và phức tạp, vì các hệ thống này có thể dễ dàng trở thành mục tiêu của các cuộc tấn công.

Cấu thành lên một hệ thống thông tin bao gồm rất nhiều các thành phần khác nhau, các thành phần này đều đóng vai trò quan trọng trong việc đảm bảo bảo mật cho hệ thống. Tương ứng với các thành phần này, team Cyber Security Research cũng có các dịch vụ kiểm thử bảo mật như sau:

  • Network: Kiểm thử bảo mật mạng và platform
  • Server, AWS EC2 Instance: Kiểm thử bảo mật hệ điều hành
  • Application: Kiểm thử bảo mật cho ứng dụng web, API và ứng dụng mobile.
  • Cloud: Audit cấu hình cloud của hệ thống

Ngoài dịch vụ kiểm thử bảo mật (Penetration Testing) truyền thống, thì team Cyber còn mới cung cấp dịch vụ khác là Agile Pentest, được thiết kế dành cho những dự án dài hơi, release thường xuyên theo phase, và được phát triển tại Sun* nữa.

Để xác định xem một dự án có cần thực hiện kiểm thử bảo mật hay không, bạn có thể xác định thông qua 3 câu hỏi đơn giản sau:

  • Hệ thống có xử lý và lưu trữ những thông tin quan trọng (VD: thông tin cá nhân của người dùng, thông tin thẻ visa) không?
  • Hệ thống có được công khai (public) ra ngoài internet hay không?
  • Nội dung của hệ thống là tĩnh hay là động?

Nếu dự án công khai trên internet và có xử lý dữ liệu cá nhân hoặc thông tin quan trọng, bắt buộc cần thực hiện kiểm thử bảo mật. Tiếp đến, mức độ và yêu cầu sẽ giảm dần đối với những hệ thống không công khai hoặc chỉ có nội dung tĩnh.  

Ngoài ra có một số yếu tố khác như: 

  • Tuân thủ luật pháp: Xem xét xem liệu dự án có phải tuân thủ các quy định về bảo mật dữ liệu và quy định luật pháp tại nước sở tại hay không?. VD: các công ty hoạt động tại liên minh Châu Âu cần tuân thủ quy định bảo vệ dữ liệu người dùng: General Data Protection Regulation (GDPR).
  • Đánh giá tính phức tạp: Xem xét xem liệu hệ thống có phức tạp hay không? Nếu hệ thống có tính phức tạp cao, thì có thể cần thực hiện để đảm bảo tính bảo mật.

Và bài toán chi phí là những yếu tố cũng cần xem xét thêm trước khi đưa ra quyết định cuối cùng về việc có hay không thực hiện bảo mật và phạm vi thực hiện như thế nào.

Nhìn chung thì những khách hàng tiềm năng của dịch vụ kiểm thử bảo mật này có thể kể đến như:

  • Các công ty enterprise, nơi thường có những quy định nghiêm ngặt về các vấn đề bảo mật
  • Các công ty từng quen thuộc với việc thực hiện kiểm thử bảo mật, security audit, và ý thức được tầm quan trọng của nó
  • Các dịch vụ lớn, lưu trữ lượng lớn thông tin, hoặc lưu trữ các thông tin cá nhân nhạy cảm của người dùng

Để thực hiện được công việc kiểm thử bảo mật thì cần phải có sự tham gia của các security engineer, những người có kinh nghiệm trong việc phát hiện và nhận diện các dấu hiệu thiếu an toàn của hệ thống. Tuy nhiên, trước khi đến bước thực hiện kiểm thử bảo mật, ngay từ trong quá trình phát triển và testing, đội ngũ developer và QA có thể phần nào giảm thiểu các lỗ này bằng các cách sau:

  • Developer: thực hiện secure coding theo các tài liệu OWASP Secure Coding và OWASP Application Security Verification Standard
  • Q&A: có thể thêm một số test case để bước đầu kiểm tra các lỗ bảo mật đơn giản:

+ Cross-site Scripting (XSS): Sử dụng các input như ‘“><script>alert(origin)</script> (có thể tham khảo thêm từ team Cyber) cho các trường trong hệ thống và quan sát giao diện của ứng dụng

+ IDOR: thay đổi ID trên URL để kiểm tra xem có truy cập được thông tin của người khác không.

Trong thời gian tới, team Cyber sẽ có kế hoạch tổ chức Workshop về kiểm thử bảo mật API (offline) và đăng tải các khóa học nâng cao nhận thức về bảo mật trên hệ thống S* Learn, mọi người hãy theo dõi nhé!

Nếu có thắc mắc hay vấn đề nào về Security Test, hay bất cứ vấn đề về Tech nào, Sunner đừng quên liên hệ ngay "biệt đội cứu hộ" của các chuyên gia Sun* tại box con_tsu-support trên Slack nhé!!

Hẹn gặp lại Sunner ở các chủ đề công nghệ tiếp theo!