깃허브 리포지셔닝이 개발자의 보안을 손상시킬 수 있는 가능성이 점점 더 분명해지고 있습니다. 사이버 범죄자들은 이전에 사용된 리포지토리 이름을 리디렉션하여 GitHub에서 사용자 또는 회사 계정의 이름을 변경하는 관행을 악용하여 해당 코드를 종속성으로 사용하는 소프트웨어 프로그램에서 검색할 수 있는 악성 파일을 도입할 의도로 리포지토리 이름을 변경하고 있습니다.
최근 사용자 이름이 변경되거나 다른 리포지토리가 종속성으로 포함된 경우 자신의 GitHub 프로젝트를 보호하기 위해 적절한 조치를 취해야 합니다.
리포재킹이란 무엇인가요?
리포지토리 재킹은 리포지토리 소유자가 사용자 이름을 변경할 때 발생할 수 있는 익스플로잇 기법을 말합니다. 이렇게 변경하면 이전 사용자 이름과 리포지토리 이름 조합에 액세스할 수 있게 되며, 리포재커는 이전 사용자 이름을 가정하고 동일한 이름의 새 리포지토리를 설정하여 이 취약점을 활용할 수 있습니다.
리포지셔닝은 다음과 같은 이중적인 위험을 초래할 수 있습니다.
리포지셔닝으로 인해 신뢰할 수 있는 애플리케이션의 신뢰성이 손상될 수 있는 가능성을 과소평가해서는 안 됩니다. 애플리케이션이 GitHub 리포지토리에 종속되어 있고 리포지토리의 소유권이 변경된 경우 해당 애플리케이션을 사용하면 보안 취약성에 노출될 수 있습니다.
현재 개발 중인 애플리케이션과 관련하여 리포지토리 재킹을 사용하면 잠재적으로 보안 위험에 노출될 수 있습니다. GitHub 리포지토리를 요구 사항으로 참조하고 해당 리포지토리의 이름을 변경할 때 수정 또는 업데이트를 소홀히 하는 경우, 애플리케이션은 리포지토리 재킹 메커니즘을 통해 수행되는 공격에 취약해질 수 있습니다.
리포지셔닝이 반드시 사용자에게 심각한 위험을 초래하는 것은 아니지만, 심각한 공급망 공격을 실행하는 데 사용될 가능성에 대한 우려는 타당합니다. 애플리케이션에 리포지셔닝 기반 저장소를 가리키는 종속성이 있는 경우, 애플리케이션은 악성 소프트웨어를 포함할 수 있는 리포지셔닝 기반 소스로부터 코드를 요청하고 획득해야 합니다.
깃허브에서 개발하는 경우 공급망 공격과 리포지셔닝의 가능성을 최소화하기 위해 취할 수 있는 조치를 이해하고 있어야 하며, 이러한 공격의 대상이 되거나 종속성이 있는 당사자 모두의 입장에서 이러한 조치를 취하는 것이 중요합니다.
리포재킹 리스크를 최소화하는 방법
가해자는 소유자가 없는 리포지토리를 장악하고 종속된 애플리케이션을 악용하기 위해 해당 리포지토리의 종속성을 활용합니다. 다행히도 리포재킹은 실행이 간단하기 때문에 공격자의 개입에 취약합니다.
리포지토리의 비공개 복제본 만들기
리포지토리를 복제하면 비공개 복사본을 절대적으로 제어할 수 있으므로 프로젝트의 종속성과 관련된 위험을 최소화할 수 있는 훌륭한 방법입니다. GitHub 에 설명된 대로 베어 복제 및 미러 푸시를 통해 공개 리포지토리의 비공개 사본을 만들 수 있습니다.
프로젝트 종속성을 주의 깊게 추적하세요
프로젝트의 종속성을 정기적으로 검토하는 것이 현명하며, 특히 공개 리포지토리를 사용하지 않기로 선택한 경우 정확한 기록을 유지하고 유지 관리가 힘들어지지 않도록 하는 것이 좋습니다. 몇 분 안에 완료할 수 있는 이 프로세스는 종속성 관리 소홀로 인해 발생할 수 있는 잠재적인 합병증을 예방하는 역할을 합니다.
계정 이름 변경 재고
사용자 아이디를 최신 상태로 유지하는 것이 바람직하지만, 리포재킹의 위협으로 인해 오래된 사용자 아이디를 유지하는 것이 필수적인 상황이 되었습니다. 수정이 필요한 경우 다른 계정을 생성하고 이전 사용자 아이디를 등록하여 보호하는 것이 좋습니다.
외부 리소스를 현명하게 사용하세요
종속성을 활용하면 애플리케이션 내에 추가 액세스 포인트가 생성되므로 잠재적인 위험이 존재합니다. 잠재적인 효율성 이점에도 불구하고 프로젝트의 종속성에 취약점이 있는지 정기적으로 검사하는 것이 필수적입니다. 또한 SSH 인증과 같은 추가 보안 프로토콜을 구현하면 악의적인 공격을 차단하는 데 도움이 될 수 있습니다.