Xác định, ngăn chặn và ứng phó với tấn công chuỗi cung ứng thông qua các cuộc tấn công thực tế
Đôi nét về tấn công chuỗi cung ứng
Tấn công chuỗi cung ứng là một hình thức tấn công mạng, trong đó các tác nhân đe dọa xâm nhập vào mạng lưới của một tổ chức bằng cách khai thác lỗ hổng trong chuỗi cung ứng phần mềm. Mục tiêu của loại tấn công này có thể là mã nguồn, trình biên dịch, thư viện phần mềm và các thành phần bên thứ ba,… trong quá trình phát triển phần mềm. Nó cũng thể là các thiết bị phần cứng, thiết bị mạng, dịch vụ do nhà cung cấp. Những kẻ tấn công có thể can thiệp vào mã phần mềm hoặc chèn mã độc hại để thực hiện việc đánh cắp dữ liệu, kiểm soát từ xa, tấn công từ chối dịch vụ và các cuộc tấn công khác.
Các cuộc tấn công chuỗi cung ứng có nguồn gốc từ nhiều nguồn và có thể được chia thành ba loại chính:
Thứ nhất: Phần mềm bên thứ ba
Các nhà cung cấp phần mềm thương mại và các đối tác kinh doanh bên ngoài là những mục tiêu tiềm năng. Kẻ tấn công chèn mã độc hại vào phần mềm của bên thứ ba, cho phép chúng truy cập vào mạng của khách hàng và dữ liệu nội bộ.
Ví dụ, các tổ chức phụ thuộc vào các công cụ đánh giá từ các nhà cung cấp giải pháp bảo mật để thực hiện kiểm tra an toàn thông tin, chính những công cụ này có thể được sử dụng như là các vector ban đầu cho mã độc nhằm xâm phạm an ninh của tổ chức.
Do phần mềm của bên thứ ba chiếm ưu thể trong các cuộc tấn công chuỗi cung ứng, những cuộc tấn công này cũng được biết đến với tên gọi là các cuộc tấn công bên thứ ba.
Thứ hai: Phần mềm mã nguồn mở
Có một thực tế là không phải tất cả các phần mềm đều được viết lại từ đầu, hầu hết các doanh nghiệp dựa vào phần mềm mã nguồn mở để phát triển mã độc quyền của họ. Một số cộng đồng mã nguồn mở cung cấp quyền truy cập miễn phí cho tất cả người dùng, bao gồm cả những kẻ tấn công.
Điều này cho phép các tác nhân đe dọa dễ dàng đưa vào các tập lệnh script độc hại và tạo ra lỗ hổng trong phần mềm mã nguồn mở hiện có. Do đó, khi người dùng hợp pháp triển khai mã nguồn bị can thiệp, sự lây nhiễm có thể lan rộng đến phần mềm và làm tổn thương các tài nguyên dễ bị tổn thương trong mạng của họ.
Thứ ba: Phần mềm nước ngoài
Một số quốc gia chấp nhận việc triển khai các thành phần độc hại vào phần mềm của nhà cung cấp hợp pháp mua ở các quốc gia khác. Loại hình tấn công chuỗi cung ứng này là một phương tiện của khủng bố mạng và đang đặt ra một mối đe dọa lớn.
Một số cuộc tấn công chuỗi cung ứng trong thực tế
Sự cố tấn công chuỗi cung ứng 3CX: Năm 2023, 3CX trở thành nạn nhân của một vụ tấn công chuỗi cung ứng, đây là một ví dụ điển hình về trường hợp mà nhà cung cấp cao nhất bị xâm nhập. Kẻ tấn công đã thông qua việc lưu trữ gói cài đặt chứa mã độc trên máy chủ nâng cấp chính thức của 3CX, vụ việc này khiến cho khoảng 600.000 doanh nghiệp trên toàn thế giới đối diện với nguy cơ tiềm ẩn. Sự cố làm nổi bật sự lan rộng của các cuộc tấn công chuỗi cung ứng.
Tấn công chuỗi cung ứng SolarWinds: Sự kiện tấn công SolarWinds vào năm 2020 là một ví dụ điển hình khác về cuộc tấn công chuỗi cung ứng. Kẻ tấn công đã nhúng mã độc vào các bản cập nhật phần mềm trên nền tảng Orion của SolarWinds, ảnh hưởng đến hàng nghìn tổ chức sử dụng nền tảng này. Cuộc tấn công này không chỉ làm lộ ra sự yếu kém trong an ninh chuỗi cung ứng mà còn gây ra sự chú ý toàn cầu cầu đối với an ninh chuỗi cung ứng.
Báo cáo về tình hình đe dọa tấn công chuỗi cung ứng của ENISA: Cơ quan An ninh mạng Liên minh châu Âu (ENISA) đã phát hành một báo cáo phân tích về các cuộc tấn công chuỗi cung ứng từ năm 2020 đến năm 2021. Báo cáo chỉ ra rằng số lượng và độ phức tạp của các cuộc tấn công chuỗi cung ứng đều đang tăng lên, trong đó khoảng 50% các cuộc tấn công được tiến hành bởi các nhóm tin tặc APT. Xu hướng này cho thấy rằng tấn công chuỗi cung ứng đã trở thành chiến lược ưu tiên của các tin tặc.
Phát hiện và ngăn chặn các cuộc tấn công chuỗi cung ứng
Quy trình phát triển sản phẩm được lập kế hoạch cẩn thận, còn được biết đến với tên gọi là vòng đời phát triển phần mềm (Software Development Life Cycle - SDLC) là bước đầu tiên để bảo vệ chuỗi cung ứng của người dùng. Hãy cùng xem xét kỹ hơn về các giai đoạn khác nhau của SDLC và tiết lộ các kỹ thuật khác nhau để phát hiện cũng như ngăn chặn các cuộc tấn công chuỗi cung ứng ở mỗi giai đoạn.
Giai đoạn lập kế hoạch
Đây là giai đoạn đầu tiên của SDLC, nơi cơ sở hạ tầng cho việc phát triển phần mềm được thiết lập. Trong giai đoạn này, tổ chức chủ yếu quan tâm đến tính khả dụng, mua sắm và phân bổ tài nguyên. Một số thực tiễn tốt nhất để phòng ngừa các cuộc tấn công chuỗi cung ứng trong giai đoạn này bao gồm:
- Tạo ra một danh sách vật liệu phần mềm, đó là một bản ghi của tất cả các tài nguyên và quy trình được sử dụng trong quá trình SDLC, nhằm theo dõi tất cả các hoạt động trong quá trình.
- Thực hiện mô hình Zero Trust để xác minh tất cả các phụ thuộc và bên thứ ba tham gia vào SDLC.
- Sử dụng mô hình mô phỏng mối đe dọa toàn diện để xác định các mối đe dọa và lỗ hổng trên tất cả các thành phần của cơ sở hạ tầng của người dùng có thể làm trở ngại cho SDLC.
- Phân loại các mối đe dọa và lỗ hổng đã biết trong SDLC để phát triển các phản ứng cơ học kế hoạch thích hợp để xử lý.
Giai đoạn thiết kế
Đây là giai đoạn khi có một sản phẩm bắt đầu được hình thành, bao gồm một bộ quy trình riêng biệt để phát triển một bản prototype. Các phụ thuộc phần mềm cần thiết cho sản phẩm giai đoạn này cũng được xác định. Nói một cách đơn giản, đây là giai đoạn lựa chọn và tích hợp các giải pháp bên thứ ba phù hợp sẽ phục vụ mục đích cuối cùng của sản phẩm. Một số thực tiễn đáng chú ý để phòng thủ cho giai đoạn này của SDLC:
- Thiết lập một quy trình xác minh để đánh giá tình trạng bảo mật của tổ chức cung cấp.
- Đánh giá mức độ rủi ro và độ tin cậy của các sản phẩm của nhà cung cấp.
- Triển khai phân đoạn mạng để hạn chế phạm vi truy cập của bên thứ ba vào tài nguyên nội bộ.
- Áp dụng nguyên tắc đặc quyền tối thiểu cho tất cả các bên thứ ba, đảm bảo rằng họ chỉ có thể thực hiện các hoạt động được phép.
Giai đoạn triển khai phần mềm
Với giai đoạn triển khai phần mềm, còn được gọi là giai đoạn thực thi, nhóm DevOps gồm các nhà phát triển phần mềm và các nhà quản trị công nghệ thông tin đóng vai trò rất quan trọng. Trong quá trình này, phần mềm được lập trình bằng mã nguồn, có thể là mã nguồn độc quyền hoặc mã nguồn mở. Ngoài ra, cũng có thể phụ thuộc vào các nền tảng mã nguồn mở của bên thứ ba để chạy và thực thi mã nguồn. Trong giai đoạn này của SDLC, một số thực tiễn tốt nhất để phòng ngừa các cuộc tấn công chuỗi cung ứng bao gồm:
- Triển khai các chính sách tích hợp mã mạnh mẽ để hạn chế việc thực thi mã phụ thuộc không được ủy quyền.
- Đánh giá các công cụ sandbox nhúng mã nguồn mở để loại bỏ các mỗi đe dọa và lỗ hổng không xác định.
- Sử dụng các công cụ bảo vệ phía khách hàng và đồng thời tận dụng các dịch vụ được cung cấp bởi các nhà cung cấp bên thứ ba.
- Kiểm tra cơ sở hạ tầng hệ thống mạng, liên quan đến việc sử dụng tài nguyên không được phép bởi nhóm DevOps mà không có sự chấp thuận của bộ phận quản trị bảo mật.
Giai đoạn kiểm thử
Giai đoạn này đảm bảo chất lượng của phần mềm được phát triển, tại đây mã nguồn được thực thi và kiểm tra xem có lỗi, sự cố hay lỗ hổng nào không. Giai đoạn này cũng liên quan đến việc kiểm thử xâm nhập và hợp tác với bên thứ ba thông qua sandbox. Một số phương pháp hiệu quả nhất để ngăn chặn các cuộc tấn công chuỗi cung ứng trong giai đoạn kiểm thử bao gồm:
- Tạo ra công cụ cho phép kiểm thử xâm nhập nội bộ để tránh phụ thuộc vào các công cụ của bên thứ ba.
- Xác định, giảm thiểu tất cả các lỗ hổng để ngăn chặn các lỗ hổng và hoạt động khai thác zero-day.
Giai đoạn triển khai bảo vệ
Giai đoạn triển khai bảo vệ là giai đoạn mà phần mềm đã được kiểm tra, chứng nhận bằng một chứng chỉ ký mã và được cung cấp cho người dùng dưới dạng gói phần mềm hoặc dịch vụ thông qua một trang web. Đây là giai đoạn rất quan trọng, vì kẻ tấn công có thể đánh cắp chứng chỉ ký mã để tạo ra các danh tính giả mạo và dụ dỗ người dùng tải xuống phần mềm độc hại, hoặc chúng có thể khai lợi dụng các lỗ hổng trong mã JavaScript của một trang web để nhúng mã độc. Một số bước đáng chú ý để phòng chống lại các cuộc tấn công chuỗi cung ứng ở giai đoạn này là:
- Triển khai cải tiến, đó là sự phát triển và cải tiến liên tục trong quá trình triển khai phần mềm.
- Tích hợp đội ngũ an ninh với đội ngũ phát triển để bảo vệ các chứng chỉ ký mã vào kho lưu trữ JavaScript.
- Thực hiện giải pháp bảo vệ phía máy chủ để kiếm tra tất cả các yêu cầu tải xuống và lưu lượng truy cập website.
Giai đoạn bảo trì
Đây là giai đoạn cuối cùng của SDLC, giai đoạn này tập trung vào việc vận hành sản phẩm một cách liền mạch và hiệu quả sau khi triển khai. Đây là giai đoạn mà sản phẩm được cải tiến liên tục để đáp ứng mọi yêu cầu của người dùng. Nó liên quan đến việc sửa lỗi thường xuyên, cập nhật phần mềm và vá lỗ hổng bảo mật. Mặc dù giai đoạn này đánh dấu sự kết thúc của SDLC, nhưng nếu không cập nhật và sửa chữa định kỳ, nó cũng có thể đánh dấu sự khởi đầu của những lỗ hổng bảo mật nghiêm trọng. Trong giai đoạn này của SDLC, một số phương pháp để bảo vệ chuỗi cung ứng bao gồm:
- Thiết lập một bản kiểm kê tài sản phần mềm hiệu quả để theo dõi tất cả các cập nhật và nâng cấp cho phần mềm.
- Triển khai các quy trình làm việc an toàn bằng cách thường xuyên áp dụng các bản vá bảo mật và cập nhật phần mềm.
- Sử dụng xác minh đa yếu tố để hạn chế quyền truy cập không được phép vào các phiên bản nội bộ phần mềm, kho lưu trữ mã và thư viện.
Nguyễn Lê Minh, Viện KHCNMM