Hiện tại các ứng dụng trong tổ chức có nhiều nguồn gốc khác nhau, có thể do tổ chức tự phát triển, thuê các công ty phần mềm viết, mua các ứng dụng thương mại hay là các ứng dụng dựa trên mã nguồn mở. Một thách thức đặt ra cho các tổ chức là đảm bảo việc triển khai hiệu quả, an toàn cho các ứng dụng mà không cần quan tấm đến nguồn gốc của các ứng dụng đó.
-
Đặt vấn đề
Hiện tại các ứng dụng trong tổ chức có nhiều nguồn gốc khác nhau, có thể do tổ chức tự phát triển, thuê các công ty phần mềm viết, mua các ứng dụng thương mại hay là các ứng dụng dựa trên mã nguồn mở. Một thách thức đặt ra cho các tổ chức là đảm bảo việc triển khai hiệu quả, an toàn cho các ứng dụng mà không cần quan tấm đến nguồn gốc của các ứng dụng đó. Một phương thức để đảm bảo an toàn cho phần mềm yêu cầu các tổ chức xây dựng một chương trình cho phép đảm bảo an toàn cho phần mềm. Chương trình này kết hợp chặt chẽ các giải pháp đánh giá an ninh cho ứng dụng ở mức mã nguồn và khi sản phẩm hoàn chỉnh. Chương trình này cho phép nhận diện và khắc phục các điểm các điểm yếu có thể khai thác trong suốt vòng đời phát triển của phần mềm (Software Development Lifecycle (SDLC)).
Triển khai chương trình đảm bảo an toàn cho phần mềm là một phương thức chủ động để đảm bảo rằng việc đảm bảo an toàn là sự thừa hưởng trong toàn bộ quá trình phát triển phần mềm, bắt đầu từ khi thiết kế, lập trình, thử nghiệm và đến khi triển khai thực tế. Một phần trong chương trình đảm bảo an toàn cho phần mềm bao gồm việc đánh giá an toàn cho phần mềm ở mức mã nguồn (Code level), việc này cho phép tổ chức phát hiện toàn bộ các điểm yếu an ninh trong quá trình phát triển và cho phép tổ chức dễ dàng khắc phục, sửa chữa. Phương thức này cho phép giảm thiểu các rủi ro về an ninh trong các ứng dụng bằng việc cung cấp ngay lập tức các phản hồi đến người lập trình về các lỗi trong mã nguồn trong quá trình phát triển phần mềm.
-
Giới thiệu về giải pháp
MICRO FOCUS Fortify Static Code Analyzer (SCA) sử dụng nhiều thuật toán và kỹ thuật nhằm đảm bảo an toàn cho mã nguồn để thực hiện phân tích mã nguồn ứng dụng đối với các điểm yếu an ninh có thể khai thác được, từ đó nhận diện và đưa ra cách khắc phục các điểm yếu. Fortify SCA xác định và chỉ ra được nguyên nhân gốc rễ của các điểm yếu trong mã nguồn, đánh giá, phân loại các các rủi ro tương ứng với các điểm yếu an ninh và cung cấp hướng dẫn chi tiết cho người lập trình để làm sao có thể khắc phục các điểm yếu này một cách hiệu quả và tốn ít thời gian nhất. MICRO FOCUS Fortify SCA cho phép phát hiện hơn 689 danh mục các điểm yếu, với hơn 22 ngôn ngữ lập trình.
Các lý do lựa chọn sản phẩm MICRO FOCUS Fortify Static Code Analyzer (SCA):
- Là một trong những sản phẩm đứng đầu trên thị trường, cho phép phát hiện chính xác và hiệu quả nhất các điểm yếu trên mã nguồn của phần mềm.
- Dễ dàng tích hợp vào môi trường của các tổ chức thông qua: Script, plug-ins và các công cụ giao diện làm việc GUI... do đó các lập trình viên có thể dễ dàng sử dụng.
- Cho phép thực hiện kiểm tra và duy trì vấn đề an toàn cho các ứng dụng mà không cần quan tâm đến ngôn ngữ lập trình mà tổ chức đang sử dụng hay các ứng dụng đó do tổ chức phát triển, thuê viết từ bên ngoài, sản phẩm thương mại hay mã nguồn mở.
- Cho phép hỗ trợ nhiều loại ngôn ngữ lập trình, nền tảng khác nhau.
- Cho phép nhận diện các điểm yếu an ninh trong mã nguồn, phân loại, đánh giá theo mức độ quan trọng và cung cấp hướng dẫn chi tiết để khắc phục.
- Cho phép đội ngũ phát triển phần mềm làm việc với bộ phân đảm bảo an ninh trong việc tìm, rà soát và khắc phục các vấn đề an ninh từ đó giảm thiểu các rủi ro trên phần mềm, thời gian và tiền bạc của tổ chức.
- MICRO FOCUS Fortify SCA có thể cung cấp cho khách hàng dưới dạng sản phẩm triển khai thông thường (On-premise) hoặc dạng dịch vụ (On-demand).
- Cho phép đáp ứng với mọi nhu cầu, phạm vi của tổ chức.
- Cho phép tổ chức chủ động quản lý rủi ro và tuân thủ theo các yêu cầu an ninh cho ứng dụng.
-
Các tính năng chính của giải pháp
- Cho phép thực hiện dò quét mã nguồn (Source code scanning) và xác định gốc rễ nguyên nhân các điểm yếu an ninh của phần mềm
- Cho phép phân tích nhiều ngôn ngữ lập trình bao gồm cả Java, Net, C/C++, Objective-C, Android, PHP, COBOL và SAP.
- Cho phép phát hiện 680 loại điểm yếu (vulnerability categories) và 22 ngôn ngữ phát triển phần mềm
- Cho phép phát hiện các điểm yếu an ninh và các điểm yếu này được chia thành các danh mục khác nhau đối với mỗi ngôn ngữ lập trình. Cung cấp tài liệu hoặc link trên website của hãng mô tả chi tiết về danh mục các điểm yếu này
- Cho phép hiển thị kết quả dò quét trên giao diện tổng hợp ở dạng biểu đồ tóm tắt. Đồng thời cho phép người quản trị thực hiện phân tích sâu (drill down) thông tin chi tiết ngay trên biểu đồ.
- Cho phép hiển thị các vấn đề sau khi dò quét theo các nhóm như: Critical, High, Medium, Low
- Cho phép đánh giá và gán giá trị kiểm tra (Assign auditing values) đối với một vấn đề hoặc một nhóm các vấn đề sau khi phân tích kết quả dò quét.
Ví dụ: sau khi dò quét và phát hiện ra 1 vấn đề trong phần mềm thì người thực hiện đánh giá/người lập trình sau khi kiểm tra có thể đưa ra đánh giá và gán giá trị cho vấn đề đó ví dụ: xem đó là một vấn đề thực sự hay không
- Cho phép bổ sung ý kiến (Comment) cho các vấn đề đã tìm ra và cho chính các đánh giá của người thực hiện
- Cho phép đính kèm chụp màn hình hoặc ảnh về vấn đề tìm ra. Hỗ trợ các định dạng ảnh phổ biến như GIF, JPG, PNG
- Cho phép nhận diện toàn bộ các tính năng trong mã nguồn từ đó xác định các tính năng này nằm ở đâu trong mã nguồn
- Cho phép hợp nhất kết quả phân tích của các lần dò quét để xác định vấn đề nào mới xuất hiện, vấn đề nào đã được loại bỏ và những vấn đề nào đều được tìm thấy trong các lần dò quét
- Cung cấp giải thích về điểm yếu và khuyến nghị khắc phục cho người lập trình, bao gồm cả thông tin chi tiết về dòng code
- Cho phép nhiều Auditor có thể làm việc trên một kết dò quét đồng thời
- Giải pháp phải có khả năng tích hợp với các môi trường phát triển tích hợp (IDE) như Eclipse, Visual Studio, Jdeveloper, IntelliJ để thực hiện phân tích mã nguồn.
- Cung câp sẵn các mẫu báo cáo kiểm tra khả năng tuân thủ theo một số tiêu chuẩn như: PCI DSS Compliance (Application Security Requirements), OWASP Top 10, OWASP Mobile Top 10, FISMA Compliance: FIPS 200, DISA STIG, CWE/SANS Top 25
- Cho phép tạo báo cáo theo các định dạng PDF, HTML, DOC
- Cho phép cập nhật phiên bản phần mềm (manually) theo dạng thủ công hoặc tự động (Automatically).
-
Mô hình triển khai
Mô hình triển giải pháp đánh giá an ninh cho ứng dụng ở mức mã nguồn được triển khai từ đơn giản cho đến phức tạp tùy theo mô hình và mức độ trưởng thành của mỗi mô hình. Phần mềm Fortify SCA được triển khai trên 3rd server, yêu cầu tối thiểu 2 máy chủ: 01 máy chủ đóng vai trò Scan Server, 01 máy chủ đóng vai trò quản trị tập trung SSC.
Mô hình triển khai Fortify SCA trong mô hình trưởng thành như hình minh họa và mô tả sau:
-
- 01 máy chủ cài đặt thành phần Fortify SCA làm nhiệm vụ Translation mã nguồn. Thành phần này có thể triển khai tích hợp trên Build server của khách hàng.
- 01 máy chủ triển khai thành phần Fortify SCA Scanning làm nhiệm vụ quét, phát hiện các điểm yếu an ninh.
- 01 máy chủ triển khai thành phần quản trị tập trung SSC
- 01 máy chủ cài đặt thành phần Database cho SSC
- Phần Foritfy IDE-plugin Remidiation được triển khai ngay trên các máy tính của lập trình viên.
-
Các lợi ích của giải pháp
Một số lợi ích chính sau khi tổ chức triển khai giải pháp:
- Giảm thiểu chi phí lập trình bằng việc nhận diện các điểm yếu sớm ngay trong vòng đời phát triển phần mềm, đây là giai đoạn mà tổ chức chỉ cần bỏ ít chi phí nhất cho việc khắc phục các điểm yếu.
- Giảm thiểu rủi ro bằng việc nhận diện, phân loại, đánh giá điểm yếu an ninh nào là có khả năng gây ra mối đe dọa lớn nhất.
- Cho phép thực hiện việc đảm bảo an toàn cho phần mềm ngay ở mức mã nguồn và ngay khi lập trình viên thực hiện lập trình.