Github의 종속성 그래프로 소프트웨어의 공급망을 이해하십시오
소프트웨어 공급망에서 파손되기 전에 가장 약한 링크를 발견 할 수 있다면 어떨까요?
Github의 종속성 그래프를 사용하면 가능합니다. 외부 패키지에 대한 명확하고 완전한보기를 제공함으로써 코드는 직간접 적으로 의존하는 코드에 따라 다르면 프로젝트의 진정한 발자국을 이해하고 안전하고 관리 할 수 있습니다.
당신이 나와 같고 때로는 응용 프로그램에 전원을 공급하는 것이 무엇인지 추적한다면 (우리는 모두 거기에 있었습니까!), Github의 의존성 그래프는 새로운 가장 친한 친구가 될 것입니다.
종속성 그래프는 무엇입니까?
모든 현대 소프트웨어 프로젝트는 기본적으로 빙산입니다. 직접 의존성이있는 작은 매니페스트 파일은 언뜻보기에 상당히 무해한 것 같습니다. 그러나 아래에? 우리 대부분은 결코 생각하지 않는이 거대하고 숨겨진 전이 의존성 세계가 있습니다. Github 의존성 그래프는이 수중 세계 전체를 맵핑합니다. 가계도처럼 생각하지만 코드에 대해 생각하십시오. 각 패키지는 가족이며, 각 의존성 관계는 누가 누구와 관련이 있는지 보여줍니다. 정말 복잡한).
각 패키지는 노드입니다. 각 의존성 관계는 가장자리입니다. 결과? 소프트웨어의 외부 코드베이스의 완전한 시각적 및 구조적 표현.
경우에 따라 코드의 95 ~ 97%가 실제로 다른 사람입니다. 의존성 그래프는 그 현실을 이해하는 데 도움이됩니다.
Github 엔지니어 Eric Sorenson
잠시 동안 가라 앉게하십시오. 우리는 기본적으로 다른 사람들의 작업을 큐레이터하며, 의존성 그래프는 마침내 우리가 그 현실을 이해하는 데 도움이됩니다.
왜 중요한가
오픈 소스 패키지에서 취약성이 발견되면 결과가 하류로 파열됩니다. 취약한 종속성이 프로젝트의 일부라는 것을 모른다면 조치를 취하기가 어렵습니다.
종속성 그래프는 단순한 시각화가 아닙니다 (보는 것은 깔끔하지만). 그것은 종속적 경고를 가능하게하는 기초입니다. 보안 문제가 귀하의 의존성 (전이적 종속성)에서 발견되면 Github가 귀하에게 알립니다. 공급망에있는 내용, 어떻게 도착했는지, 그리고 실제로 할 수있는 일에 대한 전체 그림을 얻습니다.
실제로보기 : 21 ~ 1,000 종속성
에릭은 우리에게 충분히 결백 해 보이는 프로젝트를 보여주었습니다.
- 21 직접 의존성 (실제로 package.json에 나열된 것들)
- 총 종속성 1,000 (길을 따라 끌려온 모든 것을 포함하여)
종속성 그래프를 사용하면 마지막으로 다음을 수행 할 수 있습니다.
- 어떤 종속성이 직접 대 전이적인지 이해하십시오
- Codebase에서 Log4J와 같은 패키지가 어떻게 나타 났는지 추적하십시오. (스포일러 : 아마도 다른 것을 타기 위해 왔을 것입니다.)
- 당신의 것이 무엇인지, 고칠 것과 업스트림 관리자에 의존하는 것이 무엇인지 알고 있습니다.
부양애로 공급망을 조입니다
Dependabot은 종속성 그래프 위에 실행됩니다. 따라서 그래프를 가능하게하는 것은 Dependabot의 취약성 경고와 자동 수정 제안을 가능하게하는 것입니다.
전문가 팁 : 직접 종속성을위한 필터 먼저. 이것들은 당신이 실제로 통제 할 수있는 것들이므로 다른 사람의 책임 인 전이 의존성을 통해 머리카락을 끌어내는 대신 에너지를 집중하십시오.
종속성 그래프를 활성화하는 방법
저장소 설정에서 종속성 그래프를 활성화 할 수 있습니다. 보안> 종속성 그래프. 당신이 켜면 의존그래프가 자동으로 활성화됩니다.
GitHub 동작 사용? 커뮤니티 관리 조치는 언어 생태계가 자동 발견을 지원하지 않더라도 소프트웨어 자료 (SBOM)를 생성하여 GitHub의 종속성 제출 API에 제출할 수 있습니다.
✅ 가장 중요한 부분? 종속성 그래프 및 의존적 알림은 모든 리포지토리에 무료입니다.
TL; 박사
당신은 당신이 볼 수없는 것을 확보 할 수 없습니다. GitHub의 종속성 그래프는 오픈 소스 라이브러리에서 나오는 코드베이스의 90%이상에 대한 가시성을 제공하며 계산할 때 조치를 취할 수 있도록 도와줍니다.
- 오늘 활성화하십시오 (진지하게, 지금 해)
- 자동 알림 및 수정을 위해 Dependabot과 함께 사용하십시오
- 마지막으로 소프트웨어 공급망에 실제로 무엇이 있는지 발견하십시오
미래의 자아 (및 보안 팀)가 감사 할 것입니다.
GitHub 의존성 그래프에 대해 더 알고 싶으십니까? 문서를 탐색>
작성자가 작성했습니다
Post Comment