Ngày nay, mọi người trong phát triển phần mềm đều biết rủi ro bảo mật nghiêm trọng nằm trong chương trình mã nguồn mở không được quản lý. Vẫn nhiều công ty bỏ qua, cho hacker cơ hội dễ dàng. Để bảo vệ và dẫn trước hacker, cần biết cách phát hiện lỗ hổng bảo mật trong hệ thống và biện pháp bảo vệ.
Để phát hiện lỗ hổng, công ty cần dùng security testing – biến thể của software testing. Nó đóng vai trò then chốt xác định lỗ hổng bảo mật trong hệ thống, mạng và phát triển ứng dụng.
Bài viết giải thích: security testing là gì, tầm quan trọng, các loại, yếu tố gây lỗ hổng, phân loại mối đe dọa, và cách vá lỗ hổng phần mềm đe dọa hệ thống.
Security testing là gì?
Security testing là quy trình thiết kế để phát hiện lỗ hổng bảo mật và đề xuất cách bảo vệ dữ liệu khỏi khai thác qua các điểm yếu này.
Tầm quan trọng của security testing?
Trong bối cảnh hiện tại, security testing là cách chắc chắn thể hiện và giải quyết lỗ hổng bảo mật phần mềm/ứng dụng, giúp tránh:
- Mất niềm tin khách hàng.
- Mạng, hệ thống, website downtime gây mất thời gian, tiền bạc.
- Chi phí đầu tư bảo vệ hệ thống, mạng chống tấn công.
- Hậu quả pháp lý do biện pháp bảo mật lỏng lẻo.
Biết security testing là gì, tại sao quan trọng. Tiếp tục tìm hiểu các loại và cách giúp bảo vệ.
Các loại security testing
Để phát hiện lỗ hổng ứng dụng, mạng, hệ thống, dùng 7 loại chính:
Lưu ý: Có thể dùng thủ công để phát hiện lỗ hổng rủi ro cho dữ liệu quan trọng.
- Vulnerability scanning: Chương trình tự động quét xác định lỗ hổng bảo mật có thể đe dọa hệ thống trong mạng.
- Security scanning: Phương pháp tự động hoặc thủ công xác định lỗ hổng hệ thống và mạng. Chương trình giao tiếp với web app để phát hiện lỗ hổng tiềm ẩn trong mạng, web app, OS.
- Security Auditing: Hệ thống đánh giá bảo mật công ty có hệ thống để biết lỗ hổng rủi ro cho thông tin quan trọng.
- Ethical hacking: Hack hợp pháp do công ty/chuyên gia bảo mật thực hiện tìm mối đe dọa tiềm ẩn trên mạng/máy. Ethical hacker bypass bảo mật hệ thống để phát hiện lỗ hổng kẻ xấu khai thác xâm nhập.
- Penetration testing: Security testing thể hiện điểm yếu hệ thống.
- Posture Assessment: Kết hợp ethical hacking, security scanning, risk assessment kiểm tra bảo mật tổng thể tổ chức.
Risk Assessment: Quy trình đánh giá và quyết định rủi ro liên quan đến lỗ hổng bảo mật được nhận biết. Tổ chức dùng thảo luận, phỏng vấn, phân tích xác định rủi ro.
Chỉ biết các loại security testing chưa đủ hiểu lớp xâm nhập, mối đe dọa, kỹ thuật. Cần đọc tiếp.
Ba lớp kẻ xâm nhập (Intruders):
Kẻ xấu thường phân 3 lớp:
- Masker (Người giả mạo): Không được phép truy cập. Giả mạo người dùng đã xác thực để lấy quyền truy cập.
- Deceiver (Người lừa dối): Được cấp quyền truy cập hợp pháp, nhưng lạm dụng để truy cập dữ liệu quan trọng.
- Secret user (Người dùng bí mật): Bypass bảo mật để kiểm soát hệ thống.
Các lớp mối đe dọa (Threats)
Ngoài lớp xâm nhập, có các lớp mối đe dọa khai thác điểm yếu bảo mật:
- Cross-Site Scripting (XSS): Lỗ hổng web app, cho hacker chèn script client-side vào trang web lừa người dùng bấm link độc hại. Khi thực thi, mã đánh cắp dữ liệu cá nhân, thực hiện hành động thay người dùng.
- Unauthorized Data Access (Truy cập dữ liệu trái phép): Bên cạnh SQL injection, đây là tấn công phổ biến. Hacker lấy quyền truy cập dữ liệu trái phép qua server. Bao gồm: truy cập qua thao tác lấy dữ liệu, truy cập trái phép thông tin xác thực client, truy cập dữ liệu trái phép bằng cách theo dõi hoạt động người khác.
- Identity Tricking (Lừa đảo danh tính): Kỹ thuật hacker tấn công mạng vì có credential người dùng hợp pháp.
- SQL Injection: Kỹ thuật phổ biến nhất ngày nay kẻ tấn công lấy thông tin quan trọng từ database server. Hacker lợi dụng điểm yếu hệ thống chèn mã độc vào phần mềm, web app...
- Data Manipulation (Thao túng dữ liệu): Hacker lợi dụng dữ liệu công khai trên web để truy cập thông tin chủ website và thay đổi thành nội dung xúc phạm.
- Privilege Advancement (Leo thang đặc quyền): Kẻ xấu tạo tài khoản để lấy đặc quyền cao không nên cấp. Thành công → truy cập file root, chạy mã độc hại toàn hệ thống.
- URL Manipulation (Thao túng URL): Hacker thao túng URL để lấy thông tin mật. Xảy ra khi app dùng HTTP thay HTTPS truyền thông tin server-client. Thông tin truyền qua query string, tham số có thể thay đổi để tấn công thành công.
- Denial of Service (DoS): Cố gắng làm sập trang/server khiến người dùng không truy cập, gây mất niềm tin. Thường dùng botnet.
Kỹ thuật security testing
Các cài đặt bảo mật dưới giúp tổ chức đối phó mối đe dọa trên. Cần kiến thức tốt về HTTP protocol, SQL injection, XSS. Nếu nắm vững, dễ dùng các kỹ thuật sau vá lỗ hổng phát hiện được và bảo vệ hệ thống.
Cross Site Scripting (XSS): Như giải thích, XSS dùng để xâm nhập. Để an toàn, tester kiểm tra web app cho XSS: xác nhận app không chấp nhận bất kỳ script nào – đây là mối đe dọa lớn nhất đặt hệ thống ở rủi ro.
Kỹ thuật test XSS:
- Dấu Less-Than (<)
- Dấu Greater-Than (>)
- Apostrophe (')
Password Cracking (Bẻ mật khẩu): Phần quan trọng nhất test hệ thống. Hacker dùng tool bẻ mật khẩu hoặc mật khẩu phổ biến, username online. Tester đảm bảo web app dùng mật khẩu phức tạp, cookie không lưu không mã hóa.
Ngoài ra, tester nhớ 7 đặc điểm của Security Testing và phương pháp luận security testing:
- Integrity (Tính toàn vẹn)
- Authentication (Xác thực)
- Availability (Tính sẵn sàng)
- Authorization (Ủy quyền)
- Confidentiality (Bảo mật)
- Resilience (Khả năng phục hồi)
- Non-repudiation (Không thể chối cãi)
Phương pháp luận trong Security testing:
- White Box: Tester được truy cập toàn bộ thông tin.
- Black Box: Tester không có thông tin, test thực tế.
- Grey Box: Một phần thông tin cung cấp, phần còn lại tự tìm hiểu.
Dùng các phương pháp này, tổ chức vá lỗ hổng bảo mật phát hiện được. Bên cạnh đó, tránh dùng code của người mới – thường có điểm yếu bảo mật khó vá hoặc phát hiện nếu không test nghiêm ngặt.
Hy vọng bài viết hữu ích, giúp bạn khắc phục lỗ hổng bảo mật trong hệ thống.