security-policies

3 개의 포스트

gitlab

정책으로 오해를 불러일으키는 취약점 심각도를 수정하는 5가지 방법 (새 탭에서 열림)

CVSS는 취약점의 이론적 특성만 평가하므로, 실제 배포 환경과 노출 정도를 충분히 반영하지 못한다. GitLab의 취약점 관리 정책을 사용하면 CVE·CWE·파일 경로·디렉터리 조건에 따라 심각도를 자동 조정해 조직의 실제 위험 모델에 맞출 수 있다. 이를 통해 대규모 스캔 결과를 수동으로 분류하는 부담을 줄이고, 중요한 취약점에 대응 우선순위를 일관되게 부여할 수 있다. ## GitLab 심각도 재정의 정책의 작동 방식 - 정책은 기본 브랜치의 파이프라인이 실행될 때마다 취약점 결과에 적용된다. - 다음 조건으로 취약점을 선택할 수 있다. - CVE ID - CWE ID - 특정 파일 경로 - 특정 디렉터리 - 제공되는 심각도 조정 방식은 세 가지다. - **Set Severity**: `info`, `low`, `medium`, `high`, `critical` 중 하나로 고정 - **Increase Severity**: 한 단계 상향 - **Decrease Severity**: 한 단계 하향 - 권한이 있는 사용자가 직접 변경한 심각도는 정책보다 우선한다. - 정책으로 변경된 내역은 취약점 이력과 감사 이벤트에 기록되어 변경 이유를 추적할 수 있다. ## 내부 서비스의 낮은 노출 위험 반영 내부 관리자 도구, 개발자용 유틸리티, 배치 작업처럼 외부 트래픽을 받지 않는 서비스는 동일한 CVE라도 공개 API보다 실제 위험이 낮을 수 있다. - `internal/**/*` 같은 내부 서비스 디렉터리를 대상으로 정책을 적용한다. - 특정 CVE가 해당 디렉터리에서 발견되면 심각도를 한 단계 낮춘다. - 예를 들어 `Critical`은 `High`, `High`는 `Medium`으로 조정된다. - 전체 심각도를 무조건 낮추지 않고 상대적인 우선순위를 유지하는 방식이다. - 조직이 내부 배포 환경에서 위험이 낮다고 판단한 CVE 목록으로 값을 교체해 사용해야 한다. ## 운영 코드의 인젝션 취약점 상향 XSS와 SQL 인젝션은 실제 공격에 자주 악용되는 대표적인 취약점이므로, 운영 소스 코드에서 발견되면 기본 CVSS보다 엄격하게 처리할 수 있다. - `CWE-79`(Cross-Site Scripting)와 `CWE-89`(SQL Injection)를 조건으로 지정한다. - `src/**/*` 등 운영 코드 디렉터리에서 발견된 경우 심각도를 `Critical`로 고정한다. - CWE와 경로를 함께 조건으로 사용해 테스트 코드나 비운영 영역의 불필요한 상향을 줄인다. - Critical 취약점에 보안팀 승인을 요구하는 머지 리퀘스트 승인 정책과 결합하면: - 취약점 보고서에서 우선순위가 상향되고 - 검토 없이 해당 코드가 프로덕션에 병합되는 것을 방지할 수 있다. ## 여러 스캐너 간 심각도 통일 SAST, 의존성 스캔, 컨테이너 스캔 등은 같은 CVE를 서로 다른 심각도로 보고할 수 있다. 이 차이는 대응 기준과 승인 임계값을 혼란스럽게 만든다. - 조직이 특정 CVE를 항상 같은 수준으로 처리해야 한다고 판단하면 심각도를 고정한다. - 예를 들어 Log4j 관련 CVE인 `CVE-2021-44228`, `CVE-2021-45046`, `CVE-2021-45105`를 모두 `High`로 설정할 수 있다. - 어떤 스캐너가 발견했는지와 관계없이 동일한 기준을 적용할 수 있다. - 여러 종류의 보안 스캔을 운영하는 조직에서 보고서와 승인 절차를 일관되게 만드는 데 유용하다. ## 실제 악용 정보에 따른 상향 CVSS는 정적인 점수이므로 취약점이 실제 공격에 사용되기 시작했는지 즉시 반영하지 못한다. 이를 보완하기 위해 EPSS와 CISA KEV 같은 위협 인텔리전스를 정책 조건에 활용할 수 있다. - CISA KEV 카탈로그에 등록된 CVE는 실제 악용 사례가 확인된 것으로 보고 `Critical`로 상향할 수 있다. - EPSS가 높은 취약점, 예를 들어 악용 가능성이 `0.5`를 넘는 CVE도 더 높은 우선순위로 처리할 수 있다. - 글에서는 `CVE-2024-3094`, `CVE-2023-4966`, `CVE-2023-22515` 등을 KEV 기반 상향 예시로 제시한다. - 다만 제공된 글 내용은 이 네 번째 예시의 정책 설정 중간에서 끝나 있어, 다섯 번째 방법과 이후 세부 내용은 확인할 수 없다. ## 적용 시 권장 사항 - 심각도 조정은 CVSS를 임의로 왜곡하기보다 배포 위치, 공격 노출도, 실제 악용 여부를 반영하는 조직별 위험 모델로 사용한다. - 디렉터리 조건을 함께 지정해 내부·테스트·운영 코드를 구분한다. - 정책 변경 이력과 수동 재정의 우선순위를 고려해 정기적으로 정책을 검토한다. - Critical 상향 정책은 머지 승인 정책과 연계해 보고서 분류뿐 아니라 배포 통제까지 자동화하는 것이 좋다.

gitlab

AI가 발견한 제로데이에 대비해 파이프라인을 준비하세요 (새 탭에서 열림)

AI는 이제 수십 년간 발견되지 않은 제로데이 취약점을 순식간에 찾아내고 공격 도구화하고 있으며, 이에 따라 기존의 수동적인 보안 대응 방식은 한계에 직면했습니다. 기업은 보안 통제를 개발 파이프라인(CI/CD)에 완전히 통합하고 AI 기반의 자동화된 탐지, 분류 및 복구 체계를 구축함으로써 공격과 방어 사이의 시간 간극을 좁혀야 합니다. **기존 취약점 관리의 한계와 AI 코드의 위험성** * 대부분의 보안 침해는 이미 패치가 존재함에도 적시에 조치하지 못한 '알려진 취약점'에서 발생하며, 취약점 조치에 걸리는 중앙값은 약 361일에 달할 정도로 대응이 느립니다. * AI 보조 도구(AI Coding Assistant)의 확산으로 인해 코드 생산량이 늘어남과 동시에, AI가 생성한 코드 내 보안 결함 또한 6개월 만에 10배 이상 급증했습니다. * AI는 패키지 이름을 환각(Hallucination)하거나 보안에 취약한 패턴을 복제하는 등 새로운 유형의 취약점을 양산하며 보안 팀의 검토 부담을 가중시키고 있습니다. **AI 속도에 맞춘 파이프라인 보안 전략** * **변경 시점의 정책 강제:** 보안 검토를 별도의 과정으로 두지 않고, 모든 코드 병합 요청(MR) 단계에서 보안 정책이 자동으로 실행되고 강제되도록 파이프라인을 설계해야 합니다. * **IDE 단계의 조기 차단:** 하드코딩된 비밀정보나 취약한 임포트 등 단순한 문제는 개발자가 코드를 푸시하기 전 IDE 단계에서 즉시 식별하여 피드백을 제공해야 합니다. * **자동화된 취약점 분류(Triage):** AI를 활용해 수많은 스캔 결과 중 실제 공격 도달 가능성(Reachability)과 위험도가 높은 항목을 선별함으로써 개발자의 불필요한 피로도를 줄여야 합니다. * **거버넌스 기반의 AI 복구:** AI가 제안한 수정안도 인간이 작성한 코드와 동일하게 자동 스캔, 승인 절차, 감사 추적(Audit Trail) 시스템을 거치도록 관리하여 신뢰성을 확보합니다. **지능형 파이프라인의 실무 대응 시나리오** * 새로운 제로데이 취약점이 발견되면 AI 보안 에이전트가 전사 리포지토리를 즉시 검색하여 해당 패키지의 사용 여부와 실제 노출 위험을 분 단위로 파악합니다. * 보안 엔지니어는 AI를 통해 영향받는 모든 프로젝트에 대한 복구 캠페인을 시작하며, AI가 제안한 패치가 테스트를 통과하지 못할 경우 AI가 스스로 코드를 수정하여 재시도합니다. * 모든 대응 과정은 자동으로 기록되어 사후 감사 시 스캔 결과, 적용 정책, 승인자 정보를 포함한 보고서로 즉각 출력됩니다. **실용적인 제언** 공격자들이 AI를 고도화하기 전, 조직은 다음 질문을 통해 파이프라인을 점검해야 합니다. 모든 병합 요청(MR)에서 보안 스캔이 강제로 실행되고 있는가? 취약점이 발견되었을 때 여러 도구를 거치느라 대응 시간이 지체되고 있지는 않은가? 지금 바로 파이프라인 내의 보안 파편화를 제거하고 통합된 자동화 체계를 구축하는 것이 미래의 AI 기반 공격을 막는 핵심입니다.

gitlab

GitLab 패키지 리포지토리 메타데이터 서명에 사용되는 GPG 키가 연장되었습니다. (새 탭에서 열림)

GitLab은 패키지 저장소 메타데이터의 무결성을 보장하기 위해 사용되는 GPG 키의 만료일을 기존 2026년 2월 27일에서 2028년 2월 6일로 연장했습니다. 이번 조치는 보안 정책을 준수하면서도 키 교체에 따른 사용자 혼란을 최소화하기 위해 키 자체를 새로 발급하는 대신 유효 기간만 늘리는 방식을 채택했습니다. 2026년 2월 17일 이전에 GitLab 저장소를 설정한 기존 사용자들은 패키지 설치 시 오류를 방지하기 위해 반드시 신규 키를 갱신해야 합니다. **GPG 키 연장 배경과 목적** * GitLab은 배포되는 공식 패키지(Omnibus, GitLab Runner)의 무결성을 검증하기 위해 apt 및 yum 저장소 메타데이터에 GPG 서명을 적용하고 있습니다. * 키가 탈취되었을 경우의 노출 범위를 제한하고 보안 정책을 준수하기 위해 만료 기간을 정기적으로 갱신합니다. * 키를 완전히 새로 교체(Rotation)할 경우 모든 사용자가 신뢰 키를 수동으로 교체해야 하는 번거로움이 발생하므로, 기존 키의 만료일을 연장하여 사용자 중단을 최소화했습니다. **대상 사용자 및 기술적 세부 사항** * 대상 키 지문(Fingerprint): `F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F` * 2026년 2월 17일 이전에 로컬 장비에 GitLab 저장소를 구성한 기존 사용자는 새로운 만료일이 반영된 키를 다시 가져와 등록해야 합니다. * 해당 날짜 이후에 처음으로 설치를 진행하는 신규 사용자는 공식 가이드를 따르면 별도의 추가 작업 없이 연장된 키가 적용됩니다. **공개 키 갱신 방법** * GitLab 공식 패키지 서버(`https://packages.gitlab.com/gpg.key`)에서 최신 공개 키를 직접 다운로드하여 시스템에 추가할 수 있습니다. * GPG 키 서버에서 `packages@gitlab.com` 이메일이나 위의 키 지문을 검색하여 공개 키 사본을 갱신하는 것도 가능합니다. * 보다 구체적인 저장소 메타데이터 서명 검증 방법은 GitLab의 Omnibus 공식 문서 및 GitLab Runner 설치 문서를 통해 확인할 수 있습니다. 기존 사용자들은 패키지 업데이트가 중단되지 않도록 만료일 이전에 반드시 키를 갱신하시기 바랍니다. 관련하여 기술적인 문제나 도움이 필요한 경우 GitLab의 omnibus-gitlab 이슈 트래커를 통해 문의할 수 있습니다.