GitHub Bảo Vệ Mã Nguồn Mở Khỏi Các Tấn Công Supply Chain

Sau chiến dịch tin tặc mạng SolarWinds vào năm 2020, trong đó tin tặc Nga đã đưa các bản cập nhật có vấn đề vào một nền tảng quản lý IT được sử dụng rộng rãi, một loạt các cuộc tấn công nối tiếp liên quan đến chuỗi cung ứng phần mềm tiếp tục làm nổi bật nhu cầu cấp bách phải khóa chặt chuỗi cung ứng phần mềm. Và vấn đề này đặc biệt cấp thiết trong mã nguồn mở, nơi các dự án thường được phân tán theo cách tự nhiên và thường là những nỗ lực tạm thời. Sau một loạt các sự kiện đáng lo ngại khi các gói phần mềm JavaScript rộng rãi được tải xuống từ trang đăng ký “npm” nổi tiếng, thuộc sở hữu của GitHub, công ty đã công bố kế hoạch cung cấp những biện pháp phòng thủ mở rộng cho an ninh mã nguồn mở tuần này.
GitHub, một công ty thuộc sở hữu của Microsoft, thông báo vào thứ Hai rằng họ kế hoạch hỗ trợ việc ký mã nguồn, một loại con dấu số kỹ thuật số, cho các gói phần mềm npm bằng cách sử dụng nền tảng ký mã nguồn Sigstore. Công cụ này phát triển từ sự hợp tác giữa các ngành công nghiệp để làm cho việc xác minh mã họ tạo ra có giống với mã họ được tải xuống thực sự bởi mọi người trên khắp thế giới trở nên dễ dàng hơn nhiều.
“Mặc dù hầu hết các gói npm là mã nguồn mở, hiện tại không có đảm bảo nào rằng một gói trên npm được xây dựng từ cùng một mã nguồn mà đã được công bố,” Justin Hutchings, giám đốc quản lý sản phẩm của GitHub nói. “Các cuộc tấn công chuỗi cung ứng đang tăng lên, và việc thêm thông tin xây dựng ký vào các gói mã nguồn mở để xác minh nơi phần mềm xuất phát và cách nó được xây dựng là một cách tuyệt vời để giảm diện tích tấn công.”
Nói cách khác, đó là về việc tạo ra một trò chơi điện thoại được xác minh mật mã và minh bạch.
Dan Lorenc, CEO của Chainguard, đồng sáng lập Sigstore, nhấn mạnh rằng trong khi GitHub không phải là thành phần duy nhất của hệ sinh thái mã nguồn mở, nhưng nó là quảng trường thị trấn tuyệt vời đối với cộng đồng vì đó là nơi mà đa số các dự án lưu trữ và xuất bản mã nguồn của họ. Tuy nhiên, khi những nhà phát triển muốn tải xuống ứng dụng hoặc công cụ mã nguồn mở, họ thường đến một quản lý gói
“Bạn không cài đặt mã nguồn trực tiếp, bạn thường cài đặt một dạng biên dịch của nó, vì vậy có điều gì đó xảy ra giữa mã nguồn và việc tạo gói. Và đến nay, bước đó hoàn toàn chỉ là một hộp đen trong mã nguồn mở,” Lorenc giải thích. “Bạn thấy mã và sau đó đi và tải gói, nhưng không có gì chứng minh rằng gói đó đến từ mã nguồn đó hoặc cùng một người đã tham gia, vì vậy đó là điều mà GitHub đang sửa chữa."
Bằng cách cung cấp Sigstore cho các quản lý gói, có nhiều minh bạch hơn ở mọi giai đoạn của hành trình phần mềm, và các công cụ Sigstore giúp nhà phát triển quản lý các kiểm tra và yêu cầu mật mã khi phần mềm di chuyển qua chuỗi cung ứng. Lorenc nói rằng nhiều người kinh ngạc khi nghe nói rằng những kiểm tra tính toàn vẹn này chưa có từ trước và rằng nhiều phần của hệ sinh thái mã nguồn mở đã phụ thuộc vào sự tin tưởng mù quáng trong thời gian dài. Tháng 5 năm 2021, Nhà Trắng Biden ban hành một sắc lệnh điều hành chuyên đề chính về an ninh chuỗi cung ứng phần mềm.
“Mọi người nói, ‘Liệu chúng ta đã có điều này chưa?’ Khoảng trống giữa mã nguồn và gói—hầu hết mọi người chỉ đơn giản là không tin bạn hoặc sợ hãi," Lorenc nói.
Sigstore được phát triển chung bởi Linux Foundation, Google, Red Hat, Đại học Purdue và Chainguard. Nền tảng phát triển phần mềm mã nguồn mở Kubernetes hiện đang hỗ trợ Sigstore, và có một công cụ chính thức để ký phân phối gói Python bằng Sigstore.
“Các phương pháp truyền thống quản lý các chìa khóa ký không tỷ lệ tốt với quy mô lớn của cộng đồng mã nguồn mở và không cung cấp cái nhìn vào cách phần mềm được xây dựng," Hutchings của GitHub nói. “Một trong những điều chúng tôi thích về Sigstore là nó không đòi hỏi cấu hình từ người dùng cuối, vì vậy chúng tôi có thể mở rộng nó với hệ sinh thái phát triển của chúng tôi bất kể mã nguồn ở đâu."
Tương tự như nỗ lực to lớn của ngành công nghiệp để thúc đẩy mã hóa web HTTPS, có thể thực hiện chủ yếu nhờ các công cụ như Let's Encrypt từ Tổ chức Nghiên cứu An ninh Internet phi lợi nhuận, Sigstore phụ thuộc vào việc miễn phí và dễ sử dụng để thúc đẩy sự áp dụng. GitHub cho biết họ đang bắt đầu với một đề xuất về cách Sigstore sẽ được triển khai cho npm và một giai đoạn ý kiến mở để thu thập phản hồi từ cộng đồng về cách chính xác công cụ sẽ được triển khai. Nhưng cuối cùng mục tiêu là mang lại chữ ký mã nguồn cho nhiều phần của thế giới mã nguồn mở nhất có thể để làm cho cuộc tấn công chuỗi cung ứng khó khăn hơn nhiều.
“Chúng tôi muốn thấy một thế giới trong tương lai nơi mọi đối tượng phần mềm đều được ký và liên kết trở lại mã nguồn,” Hutchings của GitHub nói. “Đó là lý do tại sao việc xây dựng trên một ngăn xếp công nghệ mở như Sigstore mà các kho lưu trữ gói khác có thể áp dụng cũng quan trọng."
