제퍼넷 로고

코드 서명 보안 강화를 위한 8가지 전략

시간

해설

해커가 원격 접속 솔루션 회사를 침해했다는 최근 소식 AnyDesk 보다 안전한 소프트웨어 공급망을 보장하기 위해 기업이 코드 서명 관행을 오랫동안 면밀히 조사해야 할 필요성을 가혹하게 조명했습니다.  

코드 서명은 사용자 코드가 신뢰할 수 있는 소스에서 왔으며 마지막 서명 이후 변조되지 않았음을 보장하는 디지털 서명을 소프트웨어, 펌웨어 또는 애플리케이션에 추가합니다. 그러나 코드 서명은 실행만큼만 우수하며, 부적절한 관행으로 인해 악성 코드 주입, 코드 및 소프트웨어 변조, 명의 도용 공격이 발생할 수 있습니다. 

개인 키는 보호되어야 하지만 많은 개발자는(주로 편의상의 이유로) 자체 키를 유지하고 로컬 컴퓨터나 빌드 서버에 저장합니다. 이로 인해 도난과 오용에 노출되고 보안 팀의 사각지대가 발생합니다.  

따라 SolarWinds 해킹 2020년에 인증 기관/브라우저(CA/B) 포럼은 새로운 세트를 출시했습니다. 기본 요구 사항 하드웨어 보안 모듈(HSM), 암호화 키를 유지 및 보호하는 장치, 개인 키를 보호하기 위한 기타 조치의 사용을 의무화하는 코드 서명 인증서를 유지 관리합니다. 

HSM은 최고 수준의 보안을 제공하지만 비용, 복잡성 및 유지 관리 요구도 증가시킵니다. DevOps 팀에서 사용하는 코드 서명 도구에 통합할 수 없는 경우 연결 해제로 인해 코드 서명 액세스가 복잡해지고 프로세스가 느려질 수 있습니다.  

클라우드로 마이그레이션하면서 보안의 우선순위가 높아졌지만 클라우드는 코드 서명에 대한 솔루션도 제공합니다. 클라우드 코드 서명 및 HSM은 개발자가 원하는 속도와 민첩성을 제공할 뿐만 아니라 분산된 개발 팀을 지원하고 개발 프로세스에 통합하며 보안을 통해 보다 쉽게 ​​모니터링할 수 있는 중앙 집중식 제어를 제공할 수 있습니다. 

통합 코드 서명을 향한 여정 

최근의 변화로 인해 CA / B 포럼이제 조직은 개발팀을 지원하기 위해 중앙 집중식 제어를 통해 코드 서명을 현대화하는 여정을 시작할 때입니다. 많은 회사는 키가 로컬로 유지 관리되고 개발자가 다양한 코드 서명 프로세스와 도구를 사용하는 "임시" 단계에 남아 있습니다. 다른 사람들은 HSM을 사용하여 키를 보호함으로써 보안 팀에 가시성과 거버넌스를 제공하기 위해 중앙 집중식 제어를 제공하지만 별도의 코드 서명 도구를 사용하면 여전히 소프트웨어 개발 속도에 영향을 미칩니다. 

이상적이고 성숙한 구조에는 모든 빌드, 컨테이너, 아티팩트 및 실행 파일 전반에 걸쳐 프로세스를 원활하고 간소화하기 위해 주요 보안, 코드 서명 도구 및 개발 워크플로의 통합이 필요합니다. 보안 팀은 HSM을 관리하고 코드 서명에 대한 완전한 가시성을 확보하며, 개발자는 이제 민첩하고 빠른 개발 파이프라인을 갖게 됩니다. 

몇 가지 모범 사례가 이 여정의 길을 닦는 데 도움이 될 수 있습니다. 

  • 키를 안전하게 보호하세요: CA/B 포럼 암호화 요구 사항(FIPS 140-2 Level 2 또는 Common Criteria EAL 4+)을 준수하는 HSM과 같은 안전한 위치에 코드 서명 키를 저장합니다. HSM은 변조 방지 기능이 있으며 개인 키를 내보내는 것을 방지합니다.

  • 액세스 제어: 역할 기반 액세스 제어를 통해 액세스를 제한하여 무단 액세스 및 개인 키 오용 위험을 최소화합니다. 승인 워크플로우를 정의하고 보안 정책을 시행하여 필요한 직원에게만 액세스를 규제하고 서명 요청을 트리거한 사람, 키에 액세스한 사람 및 이유를 기록하는 감사 로그를 유지합니다. 

  • 키 회전: 하나의 키가 손상되면 해당 키로 서명된 모든 릴리스가 손상될 위험이 있습니다. 코드 서명 키를 정기적으로 교체하고 여러 DevOps 팀의 다양한 릴리스에 서명하기 위해 고유하고 별도의 키를 사용하세요. 

  • 타임스탬프 코드:  코드 서명 인증서의 수명은 1~3년으로 제한되어 있으며 점점 줄어들고 있습니다. 서명하는 동안 타임스탬프 코드를 사용하면 인증서가 만료되거나 취소된 후에도 서명의 적법성을 확인할 수 있어 서명된 코드와 소프트웨어의 신뢰가 확장됩니다.

  • 코드 무결성을 확인하십시오. 빌드 서버의 코드를 소스 코드 저장소와 비교하여 최종 빌드에 서명하고 릴리스하기 전에 전체 코드 검토를 수행하고 모든 개발자 서명이 변조되지 않았는지 확인하십시오. 

  • 중앙 집중식 관리: 오늘날의 기업은 글로벌합니다. 중앙 집중식 코드 서명 프로세스는 개발자의 위치에 관계없이 기업 전체의 서명 활동 및 인증서를 모니터링하는 데 도움이 될 수 있습니다. 가시성을 향상시키고 책임성을 강화하며 보안 취약점을 제거합니다.

  • 정책 시행: 키 사용 권한, 승인, 키 만료, CA 유형, 키 크기, 서명 알고리즘 유형 등을 포함한 정책을 정의하고 매핑하여 코드 서명 프로세스를 표준화합니다. 모든 코드, 파일 및 소프트웨어가 정책에 따라 서명되고 업계 표준을 준수하도록 정책 시행을 자동화합니다. 

  • 코드 서명 단순화: CI/CD 도구를 사용하여 코드 서명을 통합하고 자동화하면 보안을 손상시키지 않으면서 DevOps 프로세스를 단순화하는 동시에 속도와 민첩성을 높일 수 있습니다.

지속적인 통합과 지속적인 배포의 세계에서 강력한 코드 서명 모범 사례는 개발 프로세스에 대한 신뢰를 구축하고 보다 안전한 소프트웨어 공급망을 활성화하는 귀중한 방법을 제공합니다.

spot_img

최신 인텔리전스

spot_img