Phương pháp phát hiện lỗ hổng mã nguồn dựa trên tập luật - Đề án Thạc sĩ

Khám phá phương pháp phát hiện lỗ hổng mã nguồn dựa trên tập luật, tìm hiểu quy trình và ứng dụng công cụ MobSF để nâng cao an toàn cho ứng dụng.

Chuyên ngành

Kỹ thuật

Người đăng

Ẩn danh

Thể loại

Đề án tốt nghiệp thạc sĩ

2024

76
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan Về Bảo Mật Mã Nguồn và Phát Hiện Lỗ Hổng

Trong thời đại chuyển đổi số, bảo mật mã nguồn đã trở thành một ưu tiên hàng đầu đối với các tổ chức công nghệ thông tin. Các lỗ hổng bảo mật trong mã nguồn có thể dẫn đến những hậu quả nghiêm trọng như rò rỉ dữ liệu, mất cơ hội kinh doanh và tổn thất uy tín. Việc phát hiện lỗ hổng một cách sớm và hiệu quả là chìa khóa để bảo vệ các ứng dụng phần mềm. Tập luật (rule-based approach) là một phương pháp tiếp cận đáng tin cậy, giúp tự động hóa quá trình kiểm tra mã nguồn. Phương pháp này dựa trên những kiến thức tích lũy về các loại lỗ hổng phổ biến và cách chúng xuất hiện trong mã. Sử dụng tập luật hiệu quả có thể giảm đáng kể công sức thủ công trong kiểm tra bảo mật, đồng thời tăng độ chính xác và đầy đủ của quá trình phát hiện.

1.1. Khái Niệm Lỗ Hổng Bảo Mật Mã Nguồn

Lỗ hổng bảo mật là những điểm yếu trong mã nguồn có thể bị khai thác bởi những kẻ tấn công. Các lỗ hổng này thường phát sinh từ lỗi lập trình, thiết kế không an toàn hoặc cấu hình sai. Phát hiện sớm các lỗ hổng giúp nhà phát triển sửa chữa trước khi ứng dụng được triển khai. Các hệ thống phân loại như CVSS (Common Vulnerability Scoring System) giúp đánh giá mức độ nghiêm trọng của từng lỗ hổng.

1.2. Tầm Quan Trọng của Phát Hiện Lỗ Hổng Sớm

Phát hiện sớm các lỗ hổng mã nguồn có thể giúp tiết kiệm chi phí sửa chữa đáng kể. Các lỗ hổng phát hiện ở giai đoạn thiết kế có chi phí khắc phục thấp hơn nhiều so với những lỗi phát hiện sau khi triển khai. Sử dụng công cụ kiểm thử bảo mật ứng dụng tĩnh (SAST) giúp tự động hóa quá trình này, nâng cao hiệu suất bảo mật.

II. Phương Pháp Phát Hiện Lỗ Hổng Dựa Trên Tập Luật

Tập luật là một bộ quy tắc được xây dựng dựa trên kinh nghiệm và kiến thức về các loại lỗ hổng phổ biến. Phương pháp này hoạt động bằng cách so sánh mã nguồn với các mẫu lỗ hổng đã biết. Khi mã phù hợp với một trong những quy tắc, công cụ sẽ phát hiện và báo cáo lỗi. Cách tiếp cận này được gọi là SAST (Static Application Security Testing), vì nó phân tích mã mà không cần thực thi ứng dụng. Tập luật hiệu quả được thiết kế để bao quát nhiều dạng lỗ hổng khác nhau, từ lỗi injection đến xác thực không đủ. Việc thường xuyên cập nhật tập luật giúp công cụ luôn kịp với các mối đe dọa mới nhất trong ngành bảo mật phần mềm.

2.1. Cách Tập Luật Hoạt Động Trong Phát Hiện Lỗ Hổng

Tập luật được xây dựng dưới dạng các mẫu tìm kiếm (pattern matching) đặc biệt. Mỗi quy tắc đại diện cho một hoặc nhiều lỗ hổng bảo mật cụ thể. Khi công cụ phân tích mã nguồn, nó sẽ quét từng dòng code và so sánh với tất cả các quy tắc trong tập luật. Nếu tìm thấy kết quả phù hợp, công cụ sẽ gắn nhãn và báo cáo lỗ hổng được phát hiện cùng với mức độ nghiêm trọng.

2.2. Các Loại Lỗ Hổng Mà Tập Luật Có Thể Phát Hiện

Tập luật hiệu quả có thể phát hiện nhiều loại lỗ hổng bao gồm: SQL injection, cross-site scripting (XSS), lỗi xác thực, mã hóa yếuquản lý quyền hạn không đủ. Các quy tắc được thiết kế để phát hiện các mẫu mã không an toàn thường xuất hiện trong các ứng dụng web và di động.

III. Công Cụ và Quy Trình Thực Hiện Phát Hiện

Có nhiều công cụ chuyên dụng hỗ trợ phát hiện lỗ hổng dựa trên tập luật. Công cụ MobSF (Mobile Security Framework) là một ví dụ nổi bật để phân tích bảo mật ứng dụng di động. Quy trình thực hiện thông thường bao gồm các bước: tải ứng dụng vào công cụ, cấu hình tập luật phù hợp, chạy phân tích, và kiểm tra kết quả. Kết quả phân tích sẽ được tổng hợp trong một báo cáo chi tiết liệt kê các lỗ hổng phát hiện, vị trí trong mã, mức độ nghiêm trọng và gợi ý khắc phục. Việc tích hợp công cụ này vào quy trình CI/CD (Continuous Integration/Continuous Deployment) giúp kiểm tra bảo mật trở thành một phần tự động của vòng đời phát triển phần mềm.

3.1. Các Công Cụ Phát Hiện Lỗ Hổng Phổ Biến

Ngoài MobSF, có nhiều công cụ khác như Checkmarx, Fortify, và SonarQube cũng cung cấp khả năng phát hiện lỗ hổng mã nguồn. Mỗi công cụ có những ưu điểm khác nhau về độ chính xác, khả năng phát hiệntốc độ quét. MobSF đặc biệt hiệu quả với ứng dụng Android và iOS, cung cấp phân tích toàn diện từ mã lên cấu hình.

3.2. Quy Trình Cài Đặt và Sử Dụng Công Cụ

Cài đặt công cụ thường bao gồm: tải xuống, cấu hình môi trường, và khởi động dịch vụ. Sau khi cài đặt, người dùng có thể tải lên ứng dụng cần kiểm tra, chọn tập luật phù hợp, và bắt đầu quá trình phân tích. Kết quả sẽ được hiển thị trên giao diện web hoặc xuất ra định dạng báo cáo.

IV. Đánh Giá Rủi Ro và Khắc Phục Lỗ Hổng

Sau khi phát hiện lỗ hổng, bước tiếp theo là đánh giá rủi ro và ưu tiên khắc phục. CVSS (Common Vulnerability Scoring System) là tiêu chuẩn công nghiệp được sử dụng để tính điểm mức độ nghiêm trọng của lỗi. Các lỗi có điểm số cao hơn nên được ưu tiên sửa chữa trước. Quy trình quản lý rủi ro bao gồm: xác định lỗ hổng, đánh giá tác động, ưu tiên khắc phục, và theo dõi tiến độ. Mỗi lỗ hổng phát hiện cần được ghi lại chi tiết, bao gồm vị trí trong mã, mô tả lỗi, cách khắc phụcmức độ rủi ro. Việc duy trì một danh sách lỗ hổng được theo dõi liên tục giúp đảm bảo không có lỗi nào bị bỏ sót và tất cả đều được giải quyết kịp thời.

4.1. Hệ Thống Đánh Giá Mức Độ Nghiêm Trọng

CVSS cung cấp một cách tiêu chuẩn để đánh giá lỗ hổng dựa trên các yếu tố như độ dễ khai thác, tác động đến bảo mậtphạm vi ảnh hưởng. Lỗi được xếp thành các mức: thấp, trung bình, caocực kỳ nghiêm trọng. Điều này giúp các đội phát triển ưu tiên công việc khắc phục hiệu quả.

4.2. Chiến Lược Khắc Phục và Theo Dõi

Một chiến lược khắc phục hiệu quả bao gồm: gán trách nhiệm cho nhà phát triển, đặt thời hạn hoàn thành, và xác minh rằng lỗi đã được sửa chữa. Theo dõi liên tụcbáo cáo tiến độ đảm bảo không có lỗ hổng nào bị bỏ sót trong quá trình phát triển.

18/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN LỖ HỔNG MÃ NGUỒN DỰA TRÊN TẬP LUẬT 1. Tổng quan chung về lỗ hổng bảo mật và vấn đề phát hiện lỗ hổng bảo mật 1. Tổng quan về phát hiện và đánh giá lỗ hổng bảo mật Tất cả các tài sản đều có giá trị quan trọng trong hoạt động của tổ chức và cần được bảo vệ. Do thông tin tồn tại và được lưu trữ dưới nhiều hình thức khác nhau, nên tổ chức phải có các biện pháp bảo vệ phù hợp để hạn chế rủi ro.

Bên cạnh những rủi ro về an toàn thông tin do bị tấn công phá hoại có chủ đích thông qua các lỗ hổng bảo mật, tổ chức cũng có thể gặp phải những rủi ro đối với thông tin, dữ liệu trong ứng dụng. Do đó, ngoài các biện pháp kỹ thuật hiện có, đơn vị phát triển cần nghiên cứu và áp dụng các công cụ phát hiện lỗ hổng phù hợp để giảm thiểu rủi ro. Nguyên nhân gây ra lỗ hổng bao gồm:  Độ phức tạp: Các hệ thống phức tạp làm tăng xác suất của lỗ hổng, sai sót trong cấu hình hoặc truy cập ngoài ý muốn.  Tính phổ biến: Các loại mã, phần mềm, hệ điều hành và phần cứng có tính phổ biến sẽ làm tăng khả năng kẻ tấn công có thể tìm thấy hoặc có thông tin về các lỗ hổng đã biết.

 Mức độ kết nối: Thiết bị càng được kết nối nhiều thì khả năng xuất hiện lỗ hổng càng cao.  Lỗi hệ điều hành: Giống như bất kỳ phần mềm nào khác, hệ điều hành cũng có thể có lỗ hổng. Các hệ điều hành không an toàn – chạy mặc định và để tất cả mọi người dùng có quyền truy cập đầy đủ sẽ có thể cho phép vi-rút và phần mềm độc hại thực thi các lệnh.  Việc sử dụng Internet: Internet có rất nhiều loại phần mềm gián điệp và phần 4 mềm quảng cáo có thể được cài đặt tự động trên máy tính.

 Lỗi phần mềm: Lập trình viên có thể vô tình hoặc cố ý để lại một lỗi có thể khai thác trong phần mềm.  Đầu vào của người dùng không được kiểm tra: Nếu trang web hoặc phần mềm cho rằng tất cả đầu vào đều an toàn, chúng có thể thực thi các lệnh SQL ngoài ý muốn.  Coi thường bảo mật: chính vì sự coi thường này đã dẫn đến những sự thiệt hại hàng trăm triệu đô la trên toàn thế giới vì những cuộc tấn công của hacker. Doanh nghiệp/tổ chức nên quan tâm đến vấn đề này nhiều hơn, cập nhật xu thế bảo mật cũng như kiểu tấn công hiện nay là gì và đầu tư vào bảo vệ hệ thống.

 Sự lơ là, không phòng bị: có thể dẫn đến hậu quả khôn lường không chỉ riêng Việt Nam mà trên toàn thế giới, nhất là khoản phục hồi. Phải kiểm tra thường xuyên để phòng bị và sẵn sàng đối phó với những mối đe dọa từ những công cụ phần mềm quét bảo mật hoặc hệ thống giám sát được các nhà cung cấp uy tín khuyên dùng.  Mở cửa cho sự gian lận: thời buổi hiện nay, những quy trình liên quan đến thông tin cá nhân của con người thì sẽ trở thành miếng mồi ngon cho lừa đảo. Nếu không có hệ thống giám sát thích hợp tại chỗ, các quy trình kinh doanh này có thể sẽ bị xâm phạm.

 An ninh di động/gia đình/di chuyển: bây giờ con người chúng ta có thể làm việc ở bất kỳ nơi đâu, ở nhà hoặc ngoài đường. Điều này có nghĩa là bất kỳ phương thức bảo mật mạng nào được triển khai trong tổ chức cũng đều phải được mở rộng ra ngoài phạm vi của văn phòng. Các thiết bị di động và máy tính xách tay cần phải được bảo mật và nhân viên phải được thông báo về các rủi ro và kế hoạch ứng phó.  Cách xử lý sự cố: những cách xử lý sự cố kém hiệu quả sẽ dẫn tới thời gian hồi phục lâu, chi phí đội lên cao, mất niềm tin từ khách hàng.

5  IoT(Internet of Things): internet vạn vật ngày nay đang dần trở nên phổ biến trong cuộc sống thông qua các thiết bị thông minh, kèm theo đó là những nỗi lo khi kẻ xấu lợi dụng chúng để tấn công hệ thống tài nguyên mạng doanh nghiệp.  Đối tác/bên thứ ba: doanh nghiệp phải phối hợp với đối tác và bên cung cấp giải pháp phần mềm nhằm kiểm tra rà soát tất cả, tuyệt đối không để kẻ xấu lợi dụng lỗ hổng của đối tác để từ đó tấn công qua bên mình.  Con người: Lỗ hổng lớn nhất trong bất kỳ tổ chức nào là con người đằng sau hệ thống đó. Hành vi của con người có thể dẫn đến bị lợi dụng và xâm phạm nếu không được giám sát.

Chưa kể ở đây, một hành động của con người có thể dẫn đến sự xâm phạm an ninh doanh nghiệp như nhân viên có mưu đồ xấu xa đem bảo mật công ty tuồn ra ngoài hoặc cho kẻ khác đăng nhập vào hệ thống công ty, hoặc chỉ vì thiếu kiến thức mà có những hành động vô tình dẫn đến tai họa về sau. Tấn công phi kỹ thuật là mối đe dọa lớn nhất đối với đa số các tổ chức. Rủi ro an ninh mạng thường được phân loại là một dạng lỗ hổng. Tuy nhiên, lỗ hổng (vulnerability) và rủi ro (risk) không giống nhau.

Cần hiểu rằng rủi ro là xác suất và tác động của việc một lỗ hổng bị khai thác. Nếu tác động và xác suất này là thấp thì có nghĩa là mức rủi ro thấp. Ngược lại, nếu tác động và xác suất này là cao nghĩa là mức rủi ro cao. Công cụ phát hiện lỗ hổng giúp tổ chức, đơn vị phát triển thực hiện việc kiểm soát và định hướng cho các hoạt động đảm bảo ATTT.

Việc phát hiện sớm các lỗ hổng bảo mật sẽ giúp công tác đảm bảo ATTT tại tổ chức được đảm bảo, được xem xét đánh giá định kỳ và không ngừng cải tiến để đối phó với các rủi ro mới phát sinh. Công cụ phát hiện lỗ hổng đảm bảo ATTT trong tổ chức sẽ giảm sự phụ thuộc vào cán bộ thực thi và luôn được xem xét, đánh giá để nâng cao hiệu quả. Việc tìm kiếm các lỗ hổng bảo mật trong một môi trường hệ thống nhất định đã trở nên dễ dàng hơn nhờ các công cụ khác nhau. Công cụ tự động được thiết kế 6 chuyên dung cho tìm kiếm lỗ hổng, điểm yếu, vấn đề cần giải quyết trong phần mềm hay ứng dụng.

Quy trình quản lý rủi ro Khái niệm quản lý và xác định rủi ro các hệ thống của tổ chức được hiểu như là việc áp dụng các biện pháp xử lý, nhằm tiết giảm đầu tư vào nguồn lực, đảm bảo dự phòng, đánh giá và kiểm soát các rủi ro có thể. Với mục tiêu về các nghiệp vụ của tổ chức không bị ảnh hưởng, sai lệch. Kết quả mong muốn cho quản lý rủi ro là kiểm soát và điều hành tốt các hoạt động của tổ chức. Mọi thông tin và các hệ thống, quy trình, cán bộ liên quan đều là tài sản của tổ chức (Theo ISO/IEC 27001:2013).

Sơ đồ thể hiện quy trình quản lý rủi ro Luồng thực hiện quy trình: Bước 1: Thiết lập ngữ cảnh, đầu vào, đầu ra và công cụ rà quét lỗ hổng. Bước 2: Nhận biết lỗ hổng nhằm xác định nguy cơ, các mối đe dọa tiềm ẩn, 7 các điểm yếu đang tồn tại bên trong ứng dụng, có thể lợi dụng cho các mục đích xấu. Bước 3: Phân tích rủi ro nhằm đánh giá tác động về an toàn bảo mật thông tin từ các nguy cơ đã nhận biết được ở Bước 2. Bước 4: Ước lượng được rủi ro dựa trên các phân tích ở Bước 3 nhằm đánh giá mức độ rủi ro.

Bước 5: Từ các rủi ro đã phân tích thông qua các lỗ hổng đã phát hiện được xác định các lỗ hổng có nguy cơ cao để quyết định xử lý lỗ hổng. Nếu nguy cơ cao sẽ được yêu cầu khắc phục và đánh giá lại sau khi đã khắc phục xong còn các nguy cơ còn lại sẽ được khắc phục sau. Bước 6: Sau khi đã xử lý lỗ hổng nguy cơ cao sẽ tiếp tục được đánh giá để quyết định có chấp nhận được các rủi ro lỗ hổng gây ra. Nếu chấp nhận được thì phần mềm, ứng dụng sẽ được thông qua còn nếu không sẽ quay lại Bước 1 để đánh giá lại.

Tất cả các bước từ thiết lập ngữ cảnh đến đánh giá rủi ro và kết luận chấp nhận rủi ro đều được giám sát và soát xét kỹ lưỡng nhằm đảm bảo sự chặt chẽ và an toàn cho cả quy trình. Thiết lập ngữ cảnh bao gồm đầu vào, đầu ra, phương án thực hiện của ứng dụng cần đánh giá: Đầu vào: Đơn vị phát triển chuẩn bị tập tin đóng gói cài đặt cho thiết bị Android (.apk) bản cuối để đánh giá rủi ro an toàn thông tin. Đầu ra: Báo cáo thống kê các cảnh báo về lỗ hổng bảo mật và giải trình khắc phục của đơn vị phát triển. Phương án thực hiện: Thiết lập môi trường và công cụ rà quét lỗ hổng bảo mật sau đó từ báo cáo chi tiết của công cụ tổng hợp thành báo cáo các lỗ hổng cần khắc phục.

Nhằm xác định các nguy cơ có thể xảy ra với hệ thống, xác định các điểm yếu đang tồn tại, đánh giá mức độ tiềm ẩn, rủi ro có thể gặp phải. Từ đó, có thể phân loại và đánh giá mức độ theo thứ tự các rủi ro. Đầu vào: Bao gồm tiêu chí, phạm vi, giới hạn thực hiện đánh giá rủi ro. 8 Hành động: Cần xác định định tính hoặc định lượng, sắp xếp các tiêu chí theo mức độ ưu tiên và các mục tiêu liên quan.

Đầu ra: Báo cáo tổng hợp danh sách những rủi ro và lỗ hổng bảo mật đã được sắp xếp theo thứ tự ưu tiên theo các tiêu chí. Trong quy trình đánh giá rủi ro, có ba hoạt động như sau: Hình 1. Các bước đánh giá rủi ro a) Bước 1: Nhận biết, xác định Nhận biết rủi ro nhằm xác định nguy cơ, các mối đe dọa tiềm ẩn, các điểm yếu đang tồn tại bên trong ứng dụng, có thể lợi dụng cho các mục đích xấu. Từ đó xác định được phương thức, các mối đe dọa và tác động có thể ảnh hưởng thiệt hại đến tài sản, hệ thống của tổ chức.

Mục đích là xác định nguyên nhân có thể gây ra thiệt hại tiềm ẩn và hiểu được lí do, phương thức, thời điểm, không gian mà thiệt hại có thể xảy ra.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ