Hardening - 애플리케이션 권고사항
일반적인 강화 가이드라인은 주요 강화 문서를 참조하십시오.
GitLab 인스턴스의 강화 권고를 웹 인터페이스를 통해 제어할 수 있습니다.
시스템 후크
- 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
- 시스템 후크를 선택합니다.
일반적으로 강화된 환경에서는 내부 정보가 시스템 외부로 전송되거나 저장되지 않습니다. 오프라인 환경 시스템의 경우 이것이 의미됩니다. 시스템 후크는 환경 내에서의 로컬 이벤트가 트리거에 따라 환경 외부로 정보를 전달하는 방법을 제공합니다.
이 기능의 사용 사례는 지원되며, 특히 원격 시스템을 통해 시스템을 모니터링하는 것을 지원합니다. 그러나 시스템 후크를 배포할 때에는 극도의 주의가 필요합니다. 강화된 시스템의 경우, 오프라인 환경이라면 서로 통신할 수 있는 신뢰시스템의 페리미터가 강제되어야 하므로, 어떠한 후크(시스템, 웹 또는 파일)도 이러한 신뢰시스템과만 통신하도록 설정되어야 합니다. TLS를 통한 시스템 후크 통신은 강력히 권장됩니다.
푸시 규칙
- 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
- 푸시 규칙을 선택합니다.
다음 항목이 선택되었는지 확인하십시오:
- 확인되지 않은 사용자 거부
- Git 태그를
git push
로 제거하지 못하게 함 - 커밋 작성자가 GitLab 사용자인지 확인
- 비밀 파일 푸시 방지
이러한 조정은 인가된 사용자로의 푸시를 제한하는 데 도움이 됩니다.
배포 키
- 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
- 배포 키를 선택합니다.
공개 배포 키는 인스턴스의 모든 프로젝트에 대한 읽기 또는 읽기/쓰기 액세스를 제공하는 데 사용되며, 원격 자동화를 위해 의도되었습니다. 공개 배포 키는 강화된 환경에서 사용해서는 안됩니다. 배포 키를 사용해야 한다면, 프로젝트 배포 키를 대신 사용하십시오. 자세한 내용은 배포 키 및 프로젝트 배포 키 문서를 참조하십시오.
일반
- 왼쪽 사이드바에서 맨 아래에서 관리 영역을 선택합니다.
- 설정 > 일반을 선택합니다.
4개의 섹션에서 강화 조정을 할 수 있습니다.
가시성 및 액세스 제어
다음 설정의 기본값은 비공개입니다:
- 기본 프로젝트 가시성
- 기본 스니펫 가시성
- 기본 그룹 가시성
프로젝트, 스니펫 또는 그룹에 특정 액세스 권한이 부여된 사용자만 이러한 리소스에 액세스할 수 있습니다. 필요에 따라 나중에 조정하거나 생성 시에 설정을 변경할 수 있습니다. 이는 정보의 우연한 또는 악의적인 누설을 방지하는 데 도움이 됩니다.
보안 정책 및 포지션에 따라 제한된 가시성 수준을 공개로 설정하고 싶은 경우, 이는 비인증 사용자가 사용자 프로필을 볼 수 없도록 합니다.
가져오기 소스에서 실제로 필요한 소스만 선택하십시오.
일반적인 배포에서 활성화된 Git 액세스 프로토콜은 SSH 및 HTTP(S)로 설정되어 있지만, 사용자가 사용하지 않는 Git 프로토콜 중 하나가 있다면 SSH만 또는 HTTP(S)만으로 설정하십시오. 이렇게 하면 공격 표면을 줄일 수 있습니다.
SSH 키 유형의 경우 다음이 우선합니다: ED25519
(및 ED25519-SK
), RSA
, 그리고 순서대로 ECDSA
(및 ECDSA-SK
). RSA
가 2048비트 이상으로 설정되었을 때 ED25519
은 RSA
만큼 안전하다고 간주됩니다. 그러나 ED25519
키는 더 작고 알고리즘이 훨씬 빠릅니다.
ED25519-SK
와 ECDSA-SK
는 둘 다 “-SK”로 끝나는데, 이것은 “보안 키”를 나타냅니다. “-SK” 유형은 하드웨어 토큰을 사용하는 FIDO/U2F 표준과 호환되며 하드웨어 토큰과의 사용에 관련됩니다.
DSA
는 “금지됨”으로 설정해야 합니다. DSA
는 알려진 결함이 있으며, 많은 암호학자들이 의심하고 지원하지 않습니다.
GitLab이 FIPS 모드에 있다면 다음을 사용하십시오:
- FIPS 모드에서 실행 중인 경우:
-
RSA
를 사용하고 최소 2048비트 이어야 함로 설정하십시오. -
ECDSA
(및ECDSA-SK
)를 사용하고 최소 256비트 이어야 함로 설정하십시오. - 다른 모든 키 유형을 금지됨으로 설정하십시오.
RSA
와ECDSA
는 모두 FIPS 사용으로 승인되었습니다.
-
- FIPS 모드에서 실행 중이 아니라면,
ED25519
을 사용해야 하며RSA
도 사용할 수 있습니다:-
ED25519
(및ED25519-SK
)를 최소 256비트 이어야 함로 설정하십시오. -
RSA
를 사용할 경우, 최소 2048비트 이어야 함로 설정하십시오. - 다른 모든 키 유형을 금지됨으로 설정하십시오.
-
- 새로운 사용자 그룹을 위한 인스턴스를 설정하는 경우, 추가 보안을 위해 최대 비트 설정으로 사용자 SSH 키 정책을 정의하십시오.
강화된 환경에서는 일반적으로 RSS 피드가 필요하지 않으며, 피드 토큰에서 피드 토큰 비활성화 확인란을 선택하십시오.
모든 사용자가 특정 IP 주소에서 오는 경우, 전역 허용된 IP 범위를 사용하여 해당 주소만 명시적으로 허용하십시오.
자세한 정보는 가시성과 액세스 제어를 참조하십시오. SSH 설정에 대한 정보는 SSH 키 제한을 참조하십시오.
계정과 제한
강화를 위해, Gravatar 활성화 옆의 확인란이 선택되지 않았는지 확인하십시오. 모든 추가 통신은 제한되어야 하며, 어떤 환경에서는 제한되어야 할 수도 있습니다. 계정 아바타는 사용자가 직접 업로드할 수 있습니다.
이 섹션의 설정은 사용자에게 고유한 표준을 강제 적용하는 데 도움을 주기 위해 의도되어 있습니다. 다양한 시나리오가 너무 많고 다양하기 때문에 사용자의 정책을 강화하기 위해 계정 및 제한 설정 문서를 검토하고 변경을 적용해야 합니다.
가입 제한
강화된 인스턴스에서 오픈 가입이 비활성화되었는지 확인하십시오. 가입 활성화 확인란이 선택되지 않았는지 확인하십시오.
이메일 확인 설정에서 Hard가 선택되었는지 확인하십시오. 사용자는 이제 액세스가 허가되기 전에 이메일 주소를 확인해야 합니다.
최소 비밀번호 길이(문자 수)의 기본 설정은 12이며, 추가 인증 기술이 사용 중인 경우에는 좋습니다. 비밀번호는 복잡해야 하므로 다음 4개의 확인란이 모두 선택되었는지 확인하십시오:
- 숫자 필요
- 대문자 필요
- 소문자 필요
- 기호 필요
모든 사용자가 특정 도메인을 사용하는 동일한 조직의 구성원인 경우, 가입을 허용하는 도메인에 해당 도메인을 나열하십시오. 이렇게 하면 다른 도메인의 이메일 주소를 가진 사람들이 가입하는 것을 방지할 수 있습니다.
자세한 정보는 가입 제한을 참조하십시오.
로그인 제한
모든 사용자에 대해 이중 인증 (2FA)을 활성화해야 합니다. 이중 인증 (2FA) 옆의 확인란이 선택되어 있는지 확인하세요.
이중 인증 유예 기간의 기본 설정값은 48시간입니다. 이 값을 8시간과 같이 훨씬 낮은 값으로 조정해야 합니다.
관리자 모드 활성화 옆의 확인란이 선택되어 관리자 모드가 활성화되도록 합니다. 이것은 관리자 권한을 가진 사용자가 관리 작업을 수행할 때 추가 인증을 해야 하도록 하여 사용자가 추가 2FA를 시행하도록 하는 것입니다.
알 수 없는 로그인에 대한 이메일 알림에서 이메일 알림 활성화가 선택되어 있는지 확인하세요. 이것은 알 수 없는 위치에서의 로그인 발생 시 사용자에게 이메일을 보내어 알립니다.
자세한 정보는 로그인 제한를 참조하세요.
통합
- 왼쪽 사이드바에서 맨 아래 관리 영역을 선택하세요.
- 설정 > 통합을 선택하세요.
일반적으로 관리자가 사용량을 제어하고 모니터링한다면, 강화된 환경에서 통합은 괜찮습니다. 외부 시스템으로부터 조치를 트리거하고 일반적으로 로컬 프로세스 또는 인증된 사용자가 수행하는 것을 제한 또는 감사할 수 있는 레벨의 액세스를 허용하는 통합에 주의를 기울이세요.
메트릭 및 프로파일링
- 왼쪽 사이드바에서 맨 아래 관리 영역을 선택하세요.
- 설정 > 메트릭 및 프로파일링을 선택하세요.
강화의 주요 포커스는 사용량 통계입니다:
-
버전 확인 활성화가 선택되어 있는지 확인하세요. 이 기능은 GitLab의 최신 버전을 실행 중인지 확인하며, 새로운 기능과 보안 패치가 빈번하게 출시되므로 최신 상태를 유지하는 데 도움이 됩니다.
-
환경이 격리되어 있거나 조직 요구 사항이 소프트웨어 공급 업체에 대한 데이터 수집 및 통계 보고를 제한한다면, 서비스 핑 활성화 기능을 비활성화해야 할 수 있습니다. 정보 수집에 대한 자세한 내용은 서비스 핑을 확인하세요.
네트워크
- 왼쪽 사이드바에서 맨 아래 관리 영역을 선택하세요.
- 설정 > 네트워크을 선택하세요.
속도 제한을 활성화하는 모든 설정에 대해 선택되어 있는지 확인하세요. 기본값은 적절해야 합니다. 또한 액세스를 가능하게 하는 많은 설정들이 있으며, 이러한 모든 설정은 지워져 있어야 합니다.
이러한 조정을 마치고 나면 성능 및 사용자 요구 사항을 충족시키기 위해 시스템을 세밀하게 조정해야 할 수 있습니다. 이는 속도 제한을 비활성화하고 조정하거나 액세스를 허용하는 작업이 필요할 수 있습니다. 다음 사항을 명심하세요:
-
아웃바운드 요청에서 특정 시스템에 액세스를 개방해야 하는 경우, IP 주소 또는 호스트 이름을 지정하여 해당 시스템에 대한 액세스를 제한할 수 있습니다. 또한 이 섹션에서 모든 액세스를 허용하는 것이 있다면 DNS 재바인딩 공격 방지 강화가 선택된 것을 확인하세요.
-
노트 속도 제한 및 사용자 API 속도 제한에서 필요한 경우 특정 사용자를 해당 제한에서 제외할 수 있습니다.