GHAS를 활용하여 최대한의 효과를 가져오는 방법
이 단원에서는 다음을 검토합니다.
- 종속성 그래프 이해
- GHAS 경고에 대한 조치
- 경고에 액세스할 수 있는 사용자
종속성 그래프부터 시작하여 Dependabot이 어떻게 작동하는지 자세히 살펴보겠습니다.
종속성 그래프는 공급망 보안의 핵심입니다. 종속성 그래프는 리포지토리 또는 패키지의 모든 업스트림 종속성 및 퍼블릭 다운스트림 종속 항목을 식별합니다. 리포지토리의 종속성 및 취약성 정보와 같은 일부 속성은 리포지토리의 종속성 그래프에서 확인할 수 있습니다.
종속성 그래프를 생성하기 위해 GitHub는 매니페스트 및 잠금 파일에 선언된 리포지토리의 명시적인 종속성을 살펴봅니다. 사용하도록 설정되면 종속성 그래프는 리포지토리의 알려진 모든 패키지 매니페스트 파일을 자동으로 구문 분석하고 이 검사를 사용하여 알려진 종속성 이름 및 버전으로 그래프를 구성합니다.
종속성 그래프에 대한 주요 사항은 다음과 같습니다.
- 직접적인 종속성과 전이적 종속성에 대한 정보가 포함됩니다.
- 지원되는 매니페스트 또는 잠금 파일을 기본 분기에 변경하거나 추가하는 커밋을 GitHub에 푸시하면 종속성 그래프가 자동으로 업데이트됩니다. 또한 누군가가 종속성 중 하나의 리포지토리에 변경 내용을 푸시하면 자동으로 업데이트됩니다.
- GitHub에서 리포지토리의 기본 페이지를 열고 인사이트 탭으로 이동하여 종속성 그래프를 볼 수 있습니다.
- 리포지토리에 대한 읽기 이상의 액세스 권한이 있는 경우 GitHub UI 또는 GitHub REST API를 통해 리포지토리에 대한 종속성 그래프를 SPDX 호환 SBOM(소프트웨어 제품 구성 정보)으로 내보낼 수 있습니다. 자세한 내용은 "리포지토리용 소프트웨어 제품 구성 정보 내보내기"를 참조하세요.
또한 종속성 제출 API(베타)를 사용하면 해당 에코시스템이 매니페스트 또는 잠금 파일 분석을 위한 종속성 그래프에서 지원되지 않는 경우에도 선택한 패키지 관리자 또는 에코시스템에서 종속성을 제출할 수 있습니다. 종속성 제출 API(베타)를 사용하여 프로젝트에 제출된 종속성은 제출에 사용된 감지기와 제출 시기를 보여 줍니다.
GitHub의 다른 공급망 기능은 다음을 포함하여 종속성 그래프에서 제공하는 정보에 의존합니다.
- 종속성 검토: 종속성 그래프를 사용하여 종속성 변경 내용을 식별하고 끌어오기 요청을 검토할 때 이러한 변경 내용이 보안에 미치는 영향을 이해하는 데 도움을 줍니다.
- Dependabot 경고: Dependabot은 종속성 그래프에서 제공하는 종속성 데이터를 GitHub Advisory Database에 게시된 권고 목록과 상호 참조합니다. 종속성 그래프는 잠재적인 취약성이 검색되면 종속성을 검사하고 Dependabot 경고를 생성합니다.
- Dependabot 보안 업데이트: 종속성 그래프와 Dependabot 경고를 사용하여 리포지토리의 알려진 취약성으로 종속성을 업데이트하는 데 도움을 줍니다.
Dependabot 버전 업데이트는 종속성 그래프를 사용하지 않지만 여전히 언급할 가치가 있습니다. Dependabot 버전 업데이트는 종속성의 시맨틱 버전에 의존합니다. Dependabot 버전 업데이트는 취약성이 없는 경우에도 종속성을 업데이트된 상태로 유지하는 데 도움이 됩니다.
GHAS 경고에 대한 조치
GHAS는 포괄적인 도구 집합을 통해 조직의 보안 태세에 대한 전체적인 표시 여부와 보안 채택을 적용하는 기능을 제공하여 정확하고 효과적인 우선 순위 지정 및 보안 위험 관리를 가능하게 합니다.
개발 프로세스 전반에 걸쳐 보안을 보장하는 많은 도구 중 하나는 GHAS가 조직에 제공하는 모든 경고입니다.
검토해 보겠습니다.
코드 검사 경고:
- CodeQL 분석 경고: GitHub의 의미 체계 코드 분석 엔진인 CodeQL에서 생성된 이러한 경고는 코드베이스의 잠재적인 보안 취약성을 식별합니다. 이는 SQL 주입, 교차 사이트 스크립팅 및 기타 코드 취약성을 포함하되 이에 국한되지 않는 광범위한 문제를 다룹니다.
비밀 검사 경고:
- 노출된 비밀 경고: API 키나 자격 증명과 같은 잠재적으로 중요한 정보가 리포지토리의 소스 코드 내에서 식별되면 이러한 경고가 트리거됩니다. 비밀 검사를 통해 기밀 데이터의 우발적인 노출을 방지할 수 있습니다.
종속성 경고:
- Dependabot 경고: Dependabot은 프로젝트에서 오래된 종속성을 자동으로 검색하고 끌어오기 요청을 만들어 최신 보안 버전으로 업데이트합니다. Dependabot 경고는 개발자에게 프로젝트 종속성에 대해 사용 가능한 업데이트를 알립니다.
보안 개요 경고:
- 보안 개요는 리포지토리의 보안 상태를 요약하는 포괄적인 대시보드를 제공합니다.
타사 경고:
- 데이터를 SARIF 파일로 업로드하여 타사 코드 분석 도구를 GitHub 코드 검사와 통합할 수 있습니다. 모듈 마지막 부분에서 '코드 검사와 통합' 링크를 통해 이 항목에 대해 자세히 알아봅니다.
경고 무시의 영향
보안 경고를 무시하면 프로젝트에 심각한 위험이 초래됩니다. 취약성은 악의적인 작업자에 의해 악용되어 데이터 침해, 서비스 중단 또는 기타 보안 인시던트로 이어질 수 있습니다. 경고를 무시하면 수정 활동이 증가하여 프로젝트 일정과 소프트웨어의 전반적인 신뢰성에 잠재적으로 영향을 줄 수 있습니다.
경고를 무시하면 장기적인 결과로 평판 손상, 규정 비준수, 금전적 손실이 발생할 수 있습니다. 이러한 위험을 완화하고 소프트웨어의 무결성을 유지하려면 개발팀이 보안 경고의 우선 순위를 지정하고 즉시 해결해야 합니다.
개발자는 보안 경고를 발견하면 즉각적으로 경고의 특성과 심각도를 조사해야 합니다. 여기에는 코드베이스에 미치는 영향, 잠재적 익스플로잇 시나리오 및 수정에 필요한 단계를 이해하는 것이 포함됩니다.
개발자는 GHAS를 사용하여 소프트웨어 개발 수명 주기 초기에 취약성을 찾아 수정할 수 있습니다.
경고에 액세스할 수 있는 사용자는 누구인가요?
GHAS는 세분화된 액세스 제어를 제공하므로 조직은 다양한 보안 기능에 대한 경고를 볼 수 있는 사용자를 정의할 수 있습니다. 이를 통해 보안 팀 및 관련 관련자 등 권한이 있는 담당자만 중요한 보안 정보에 액세스할 수 있습니다.
액세스 관리는 역할 기반으로 이루어지며 역할별로 GHAS 경고에 대한 액세스 수준이 다양합니다. 역할과 경고에 대한 액세스에 대해 좀 더 자세히 살펴보겠습니다.
Write리포지토리 역할을 가진 사용자는 코드 스캐닝 및 Dependabot 경고를 보고 수정할 수 있음Admin리포지토리 역할을 가진 사용자는 비밀 검사 경고를 보고 수정할 수 있음- 리포지토리의 "경고에 대한 액세스" 설정을 수정하면 리포지토리 역할에 관계없이 모든 사람이나 팀에게 리포지토리의 모든 경고를 보고 수정할 수 있는 액세스 권한이 부여될 수 있음
이제 특정 역할에서 볼 수 있는 경고를 검토했으므로 효과적인 액세스 관리가 각 팀 멤버에게 적절한 수준의 표시 여부를 제공하여 협업을 강화한다는 점에 주목할 필요가 있습니다. 이를 통해 관련자는 자신의 역할과 관련된 보안 측면에 집중할 수 있으므로 보안 경고에 대해 효율적이고 간단한 응답이 가능해집니다.
취약성 식별, 경고에 대응, 활동 없음의 영향 인정, 역할 및 액세스 제어 정의 등에 대한 복잡성을 파악함으로써 개발팀은 GitHub Advanced Security를 최대한 활용하여 보다 탄력적이고 안전한 개발 환경을 조성할 수 있습니다.
다음 섹션에서는 GHAS가 보안 에코시스템을 어떻게 전체적으로 향상할 수 있는지 검토할 예정입니다.