Hardening - 응용 프로그램 권장사항

일반적인 강화 가이드는 기본 강화 문서를 참조하십시오.

GitLab 인스턴스의 강화 권장을 웹 인터페이스를 통해 제어할 수 있습니다.

시스템 후크

  1. 왼쪽 사이드바에서 아래쪽으로 이동하여 관리 영역을 선택합니다.
  2. 시스템 후크를 선택합니다.

일반적으로 강화된 환경에서는 내부 정보가 시스템 외부로 전송되거나 저장되지 않습니다. 오프라인 환경 시스템의 경우에는 암시됩니다. 시스템 후크는 환경의 로컬 이벤트가 트리거에 따라 환경 외부에서 정보를 통신할 수 있는 방법을 제공합니다.

이 기능의 사용 사례는 특히 원격 시스템을 통해 시스템을 모니터링하는 데 지원됩니다. 그러나 시스템 후크를 배포할 때에는 극도의 주의가 필요합니다. 강화된 시스템의 경우, 오프라인 환경이라면 상호 통신할 수 있는 신뢰할 수 있는 시스템의 페리미터를 강제해야 하므로 모든 후크(시스템, 웹 또는 파일)은 해당 신뢰할 수 있는 시스템과만 통신해야 합니다. TLS는 시스템 후크를 통해 통신하는 데 강력히 권장됩니다.

푸시 규칙

  1. 왼쪽 사이드바에서 아래쪽으로 이동하여 관리 영역을 선택합니다.
  2. 푸시 규칙을 선택합니다.

다음 항목이 선택되어 있는지 확인합니다:

  • 인증되지 않은 사용자 거부
  • git push에서 Git 태그 제거 허용 안 함
  • 커밋 작성자가 GitLab 사용자인지 확인
  • 비밀 파일 푸시 방지

이러한 조정은 확립된 및 승인된 사용자로의 푸시를 제한하는 데 도움이 됩니다.

배포 키

  1. 왼쪽 사이드바에서 아래쪽으로 이동하여 관리 영역을 선택합니다.
  2. 배포 키를 선택합니다.

공개 배포 키는 인스턴스의 모든 프로젝트에 대한 읽기 또는 읽기/쓰기 액세스를 제공하고 원격 자동화를 위해 사용됩니다. 공개 배포 키는 강화된 환경에서 사용해서는 안 됩니다. 배포 키를 사용해야 하는 경우 프로젝트 배포 키를 대신 사용해야 합니다. 자세한 내용은 배포 키프로젝트 배포 키 문서를 참조하십시오.

일반

  1. 왼쪽 사이드바에서 아래쪽으로 이동하여 관리 영역을 선택합니다.
  2. 설정 > 일반을 선택합니다.

4개의 섹션에서 강화 조정이 이루어질 수 있습니다.

가시성 및 액세스 제어

다음 설정의 기본값은 비공개입니다:

  • 기본 프로젝트 가시성
  • 기본 스니펫 가시성
  • 기본 그룹 가시성

프로젝트, 코드片 또는 그룹에 특정 액세스 권한이 부여된 사용자만 이러한 리소스에 액세스할 수 있습니다. 필요한 경우 나중에 조정하거나 생성 시에도 필요한 경우 액세스를 허용할 수 있습니다. 이는 정보의 실수적이거나 악의적인 공개를 방지하는 데 도움이 됩니다.

보안 정책과 자세도에 따라 제한된 가시성 수준공개로 설정할 수 있습니다. 이로써 인증되지 않은 사용자가 사용자 프로필을 볼 수 없도록 방지할 수 있습니다.

가져오기 소스에서 실제로 필요한 소스만 선택합니다.

일반 배포는 활성화된 Git 액세스 프로토콜SSH 및 HTTP(S)로 설정되어 있지만 사용자가 사용하지 않는 경우 Git 프로토콜 중 하나를 SSH 전용 또는 HTTP(S) 전용으로 설정합니다. 이는 공격 표면을 축소하는 데 도움이 됩니다.

SSH 키 유형에 대해 다음이 선호됩니다: ED25519 (및 ED25519-SK), RSA, 및 ECDSA (및 ECDSA-SK) 순서대로. RSA가 2048비트 이상으로 설정된 경우 ED25519RSA와 동일한 수준의 보안이라고 여겨지지만, ED25519 키는 더 작고 알고리즘이 훨씬 빠릅니다.

ED25519-SKECDSA-SK는 둘 다 “-SK”로 끝나는데, 이는 “보안 키”를 나타냅니다. 이 유형은 하드웨어 토큰(예: YubiKey)과의 사용에 관련된 FIDO/U2F 표준과 관련이 있습니다.

DSA는 “금지”로 설정해야 합니다. DSA에는 알려진 결함이 있으며, 많은 암호학자들이 ECDSA의 사용을 의심하고 지원하지 않습니다.

GitLab이 FIPS 모드인 경우 다음 사항을 사용합니다:

  • FIPS 모드에서 실행 중일 때:
    • RSA 사용, 최소 2048비트 이상으로 설정.
    • ECDSA (및 ECDSA-SK) 사용, 최소 256비트 이상으로 설정.
    • 다른 모든 키 유형을 금지로 설정. RSAECDSA 모두 FIPS 사용이 승인됩니다.
  • FIPS 모드에서 실행 중이지 않은 경우, ED25519 사용해야 하며 RSA도 사용할 수 있습니다:
    • ED25519 (및 ED25519-SK)를 최소 256비트 이상으로 설정.
    • RSA 사용 시, 최소 2048비트 이상으로 설정.
    • 다른 모든 키 유형을 금지로 설정.
  • 새로운 사용자 그룹을 위해 인스턴스를 설정 중인 경우 추가 보안을 위해 최대 비트 설정으로 사용자 SSH 키 정책을 정의하세요.

강화된 환경에서 일반적으로 RSS 피드는 필요하지 않으며 피드 토큰에서 피드 토큰 사용 안 함 확인란을 선택합니다.

모든 사용자가 특정 IP 주소에서 오는 경우 전역 허용된 IP 범위를 사용하여 특정 주소만 허용합니다.

가시성 및 액세스 제어에 대한 자세한 내용은 가시성 및 액세스 제어를 참조하십시오. SSH 설정에 대한 자세한 내용은 SSH 키 제한을 참조하십시오.

계정 및 제한

강화를 위해 Gravatar 사용 가능 옆의 확인란이 선택되어 있지 않도록 합니다. 모든 여분의 통신은 줄여야 하며 어떤 환경에서는 제한되어야 할 수도 있습니다. 계정 아바타는 사용자가 매뉴얼으로 업로드할 수 있습니다.

이 섹션의 설정은 자체 표준을 사용자에게 강제 적용하는 데 도움을 줄 것으로 기대됩니다. 다양한 시나리오가 많고 다양하기 때문에 여러 가지 시나리오를 검토하고 계정 및 제한 설정 문서를 검토하여 정책을 강제하기 위한 변경사항을 적용해야 합니다.

가입 제한

강화된 인스턴스에서는 오픈 가입이 비활성화되어 있는지 확인합니다. 가입 가능 확인란이 선택되어 있지 않도록 합니다.

이메일 확인 설정에서 어려움을 선택합니다. 사용자가 이메일 주소를 확인한 후에만 액세스 권한이 부여됩니다.

최소 암호 길이(문자 수)의 기본 설정은 12이며, 추가 인증 기술을 사용하는 경우에는 잘 작동합니다. 암호를 복잡하게 만들기 위해 다음의 네 개의 확인란이 모두 선택되어 있는지 확인하십시오:

  • 숫자 필요
  • 대문자 필요
  • 소문자 필요
  • 기호 필요

모든 사용자가 동일한 조직에 속하며 이메일 주소를 위한 특정 도메인을 사용하는 경우, 가입 허용된 도메인에 해당 도메인을 나열합니다. 이렇게 하면 다른 도메인의 이메일 주소로부터의 가입을 방지할 수 있습니다.

자세한 내용은 가입 제한을 참조하십시오.

로그인 제한

모든 사용자에 대해 이중 인증(2FA)을 활성화해야 합니다. 이중 인증 (2FA) 옆의 확인란이 선택되어 있는지 확인합니다.

이중 인증 유효 기간의 기본 설정은 48시간입니다. 이 값을 8시간과 같이 훨씬 낮은 값으로 조정해야 합니다.

관리자 모드 활성화 옆의 확인란이 선택되어 있는지 확인하여 관리자 모드가 활성화되어 있는지 확인합니다. 이렇게 하면 관리자 권한을 가진 사용자가 관리 작업을 수행할 때 추가 2FA를 사용해야 합니다.

알려지지 않은 위치에서의 로그인 이메일 알림에서 이메일 알림 사용이 선택되었는지 확인합니다. 이는 알려지지 않은 위치에서의 로그인이 발생할 때 사용자에게 이메일을 보내줍니다.

자세한 내용은 로그인 제한을 참조하십시오.

통합

  1. 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
  2. 설정 > 통합을 선택합니다.

일반적으로, 관리자가 사용량을 통제하고 모니터하는 한 통합은 견고한 환경에서 괜찮습니다. 외부 시스템에서 작업을 트리거하고 일반적으로 로컬 프로세스나 인증된 사용자가 수행한다면 제한하거나 감사할 수 있는 수준의 액세스가 필요한 작업 및 프로세스를 허용하는 통합에 주의해야 합니다.

메트릭 및 프로파일링

  1. 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
  2. 설정 > 메트릭 및 프로파일링을 선택합니다.

견고화의 주요 초점은 사용 통계에 있습니다:

  • 버전 확인 활성화가 선택되어 있는지 확인해야 합니다. 이 기능은 GitLab의 최신 버전을 실행 중인지 확인하며, 새로운 기능 및 보안 패치가 자주 출시됨에 따라 최신 상태를 유지하는 데 도움이 됩니다.

  • 환경이 격리되어 있거나 귀하의 조직 요구 사항이 데이터 수집 및 통계 보고를 소프트웨어 공급 업체로 제한한다면 서비스 핑 활성화 기능을 비활성화해야 할 수 있습니다. 정보화된 의사 결정을 내리기 위해 수집되는 데이터에 대한 자세한 내용은 서비스 핑을 참조하세요.

네트워크

  1. 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
  2. 설정 > 네트워크을 선택합니다.

제한 속도를 활성화하는 모든 설정에 대해 선택되어 있는지 확인하세요. 기본값이 적절해야 합니다. 또한 액세스를 활성화하는 많은 설정이 있으며, 이러한 모든 설정을 지워야 합니다.

이러한 조정을 완료한 후 성능 및 사용자 요구를 충족시키기 위해 시스템을 세밀하게 조정할 수 있으며, 이는 제한 사항을 비활성화하고 조정하거나 액세스를 활성화해야 할 수도 있습니다. 몇 가지 주목할 만한 사항은 다음과 같습니다:

  • 아웃바운드 요청에서 특정 시스템에 액세스를 열어야 하는 경우 IP 주소 또는 호스트 이름을 지정하여 해당 시스템에만 액세스를 제한할 수 있습니다. 또한 이 섹션에서는 액세스를 허용하는 경우 DNS 리바인딩 공격 방지 강화가 선택되어 있는지 확인해야 합니다.

  • 노트 속도 제한사용자 API 속도 제한에서 필요한 경우 특정 사용자를 해당 제한에서 제외할 수 있습니다.