Sổ tay Tuân thủ của GitHub cho Phụ thuộc Mã nguồn Mở
Văn phòng Chương trình Mã nguồn Mở của GitHub giải thích cách họ duy trì tuân thủ giấy phép và tính toàn vẹn chuỗi cung ứng cho hàng triệu phụ thuộc mã nguồn mở mà nền tảng của họ quản lý.

Văn phòng Chương trình Mã nguồn Mở của GitHub, do Jeff lãnh đạo, đã âm thầm vận hành một trong những hoạt động tuân thủ quan trọng nhất trong ngành phần mềm: đảm bảo hàng triệu phụ thuộc mã nguồn mở chảy qua hệ sinh thái GitHub thực sự đáp ứng nghĩa vụ giấy phép của chúng. Jeff, người trước đây thành lập một công ty phân tích thành phần phần mềm và đã tham gia vào lĩnh vực tuân thủ mã nguồn mở từ năm 2004, đã trình bày cách GitHub tiếp cận vấn đề này nội bộ.
Tuân thủ Giấy phép ở Quy mô Lớn
GitHub không chỉ dựa vào các máy quét tự động. Nhóm kết hợp công cụ với đánh giá thủ công cho các phụ thuộc rủi ro cao. Họ theo dõi siêu dữ liệu giấy phép từ các kho đăng ký gói, nhưng cũng xử lý các trường hợp ngoại lệ—như các dự án có giấy phép kép hoặc các phụ thuộc thay đổi giấy phép giữa phiên bản. Mục tiêu là phát hiện vi phạm trước khi chúng đến môi trường sản xuất, không phải sau đó.
Tính toàn vẹn Chuỗi Cung ứng
Ngoài giấy phép, GitHub tập trung vào tính toàn vẹn chuỗi cung ứng phần mềm. Điều đó có nghĩa là xác minh mã nguồn của một phụ thuộc khớp với tạo phẩm đã xuất bản, kiểm tra các lỗ hổng đã biết và đảm bảo nguồn gốc. Điều này phù hợp với các xu hướng rộng hơn của ngành như áp dụng SLSA và SBOM, nhưng quy trình nội bộ của GitHub có trước hầu hết các tiêu chuẩn đó.
Điều Kỹ sư Nên Quan tâm
Nếu bạn đang phát hành mã kéo theo các gói mã nguồn mở—và gần như chắc chắn bạn đang làm vậy—cách tiếp cận của GitHub là một lời nhắc nhở rằng tuân thủ không chỉ là một ô kiểm tra pháp lý. Đó là một vấn đề kỹ thuật. Giấy phép bị vi phạm có thể chặn M&A, trì hoãn phát hành hoặc khiến bạn đối mặt với tranh chấp sở hữu trí tuệ. Hành động thông minh là tích hợp các kiểm tra tuân thủ vào đường ống CI/CD của bạn, không coi chúng như một suy nghĩ muộn màng.
Công cụ nội bộ của GitHub không công khai, nhưng các nguyên tắc thì có: tự động hóa những gì bạn có thể, kiểm toán những gì bạn không thể, và không bao giờ cho rằng một phụ thuộc an toàn chỉ vì nó phổ biến.
Thảo luận
0 bình luận
Hãy là người đầu tiên thảo luận.