자동 보안

완료됨

여기서는 GitHub 리포지토리 관리자가 사용할 수 있는 리포지토리에서 보안 검사를 자동화할 수 있는 몇 가지 방법을 설명합니다.

보안 취약성으로 오래된 종속성 검색 및 수정

요즘 거의 모든 프로젝트는 외부 패키지에 종속됩니다. 이러한 구성 요소는 생산성에 상당한 이점을 제공할 수 있지만 다른 보안 위험을 초래할 수 있습니다. 특히 각 종속성에 추적 및 유지 관리가 어려워질 수 있는 자체 종속성이 있을 수 있는 경우 이러한 패키지와 해당 취약성 상태를 유지하는 데 시간이 오래 걸릴 수 있습니다. 다행히 GitHub는 이 워크로드를 줄이는 기능을 제공합니다.

리포지토리 종속성 그래프

모든 리포지토리에 포함된 기본 기능 중 하나는 종속성 그래프입니다. GitHub는 일반적인 패키지 매니페스트(예: package.jsonrequirements.txt등)를 검색합니다. 이러한 그래프를 사용하면 프로젝트 소유자가 프로젝트에 의존하는 모든 종속성을 재귀적으로 추적할 수 있습니다.

GitHub 종속성 그래프의 스크린샷

지원되는 종속성 매니페스트 목록은 종속성 그래프 정보입니다.

Dependabot 경고

시각적 종속성 그래프가 있더라도 프로젝트에 있는 모든 종속성에 대한 최신 보안 고려 사항을 유지하는 것은 여전히 압도적일 수 있습니다. 이러한 오버헤드를 줄이기 위해 GitHub는 종속성 그래프를 감시하는 Dependabot 경고를 제공합니다. 그런 다음 알려진 취약성 목록의 버전과 대상 버전을 상호 참조합니다. 위험이 발견되면 프로젝트에 경고가 표시됩니다. 분석에 대한 입력은 GitHub 보안 권고에서 제공됩니다.

취약한 종속성에 대한 Dependabot 경고의 스크린샷.

Dependabot을 사용하여 자동화된 종속성 업데이트

종속성 경고로 인해 프로젝트 기여자가 권장 버전에 잘못된 패키지 참조를 변경하고 유효성 검사 끌어오기 요청을 만들 수 있습니다. 이러한 노력을 자동화할 방법이 있다면 좋지 않을까요? 글쎄, 좋은 소식! Dependabot 은 그렇게 합니다. 종속성 경고를 검색하고 끌어오기 요청을 만들어 참가자가 업데이트의 유효성을 검사하고 요청을 병합할 수 있도록 합니다.

Dependabot의 유연성에 대한 자세한 내용은 Dependabot 보안 업데이트 구성을 참조하세요.

자동화된 코드 검사

Dependabot이 리포지토리에서 종속성 경고를 검색하는 방법과 마찬가지로, 코드 검색을 사용하여 GitHub 리포지토리의 코드에서 보안 취약성 및 오류를 분석하고 찾을 수 있습니다. 코드 검색에는 몇 가지 이점이 있습니다. 이를 사용하여 기존 문제 또는 잠재적인 보안 취약성에 대한 수정 사항을 찾고, 심사하고, 우선 순위를 지정할 수 있습니다. 또한 개발자가 코드에 새로운 보안 문제를 도입하지 못하도록 방지하는 데 유용합니다.

코드 검사의 또 다른 이점은 CodeQL을 사용하는 기능입니다. CodeQL을 사용하면 코드를 데이터로 쿼리할 수 있으므로 사용자 지정 쿼리를 만들거나 오픈 소스 커뮤니티에서 유지 관리하는 쿼리를 사용할 수 있습니다. 코드 검색을 사용하면 리포지토리 내의 코드를 검사하는 방법을 자유롭게 사용자 지정하고 유지 관리할 수 있습니다.

GitHub 리포지토리의 보안 탭에서 코드 검사 경고 및 워크플로를 사용하도록 설정할 수 있습니다.

추가 정보에 대한 링크가 있는 정책, 권고 및 경고 목록의 스크린샷.

코드 검사 및 CodeQL에 대해 자세히 알아봅니다.

비밀 검사

GitHub 리포지토리 내의 또 다른 자동화된 검색 기능은 비밀 검사입니다. 이전 보안 검색 기능과 마찬가지로 비밀 검색은 리포지토리 내에서 커밋된 알려진 비밀 또는 자격 증명을 찾습니다. 이 검사는 사기 행위의 사용을 방지하고 중요한 데이터의 무결성을 보호하기 위해 수행됩니다. 기본적으로 공개 리포지토리에서 비밀 검색이 수행되며 리포지토리 관리자 또는 조직 소유자가 프라이빗 리포지토리에서 비밀 검사를 사용하도록 설정할 수 있습니다.

비밀 검색에서 자격 증명 집합을 검색하면 GitHub는 비밀을 발급한 서비스 공급자에게 알깁니다. 서비스 공급자는 자격 증명의 유효성을 검사합니다. 그런 다음 비밀을 해지하거나, 새 비밀을 발급하거나, 직접 연락해야 하는지 여부를 결정합니다. 작업은 사용자 또는 서비스 공급자에 대한 관련 위험에 따라 달라집니다.

퍼블릭 및 프라이빗 리포지토리에 대한 비밀 검사에 대해 자세히 알아봅니다.