요약 - ‘코드 서명’은 사용자들로 하여금 제품을 구성하고 있는 코드를 신뢰할 수 있도록 함
- ‘코드 서명’을 악용한 공격이 대비하기 위해 안전한 코드 서명을 유지하는 것이 중요
내용 - 코드 서명
> 소프트웨어나 펌웨어, 애플리케이션들에 서명을 하는 것
> 서명 덕분에 사용자들은 그 소프트웨어나 펌웨어, 애플리케이션을 구성하고 있는 코드가 신뢰할 수 있는것으로 인식
> 이러한 특성으로, 코드 서명을 대상으로한 공격이 발생

- 코드 서명에 사용되는 비밀 키는 상당히 주의해서 보호해야 함
> 키를 보호하며 소프트웨어를 개발하는 과정은 여러 귀찮음이 수반
> 개발자들은 편리성을 위해 비밀 키를 개발 환경과 계정 등에 저장해 사용
> 이로인해 자주 도난 및 유출되는 상황이 발생

- 2020 솔라윈즈 사태 이후 CA브라우저포럼(Certificate Authority/Browser Forum)는 ‘기본 실천 수칙’을 발표
> 코드 서명 인증서들을 지키기 위함
> 하드웨어 보안 모듈(HSM)이나 암호화 키를 안전히 보관하는 장비들을 필수로 사용해야 한다는 수칙이 생김
※ HSM 가장 높은 수위의 보호 장치이나, 비용 상승, 높은 유지 보수 난이도, 시스템 복잡도 증가 등의 단점

- 클라우드로 이전이 시작되며 보안의 중요성이 더욱 대두
> 안전한 코드 서명과 관련된 새로운 해결책 제시
> 편리성과 속도 뿐만아니라 중앙에서 비밀 키를 관리하는 것이 가능해짐

- 통합된 코드 서명 절차
> 코드 서명 프로세스는 키 보안, 코드 서명 도구, 개발 워크플로우로 구성
> 키의 안전한 보호 및 활용, 개발 과정에도 적절한 활용이 되어야 이상적
> 이를 위해 지켜야 할 실천사항

① 키 보호
> 코드 서명에 사용되는 키들은 안전한 위치에 저장
> HSM들은 내부에 저장된 비밀 키들이 엑스포트 되지 않도록 하고, 허가되지 않은 조작 방지

② 접근 제어
> 비밀 키에 접근하려는 시도를 철저하게 가려내고 제어할 수 있어야 함 (역할에 따라 키 접근 여부 결정)
> 이를 위해서는 먼저 승인 작업의 워크플로우를 규정할 필요

③ 비밀 키 순환
> 서명 키는 주기적으로 교체
> 여러 팀들이 하나의 개발 플랫폼이나 환경을 공유한다면, 비밀 키를 따로 보관하여 활용 필요

④ 타임스탬프
> 코드 서명에 사용되는 인증서들은 유효기간을 지니며(1~3년) 인증서 유효기간들이 점점 줄어드는 추세
> 그렇기에 인증서가 제대로 된 것인지 아닌지 타임스탬프를 찍는 것이 중요

⑤ 코드 무결성 확인
> 전체 코드 점검을 한 후에 서명을 하는 순서가 반드시 지켜지도록 하는 게 중요
> 빌드 서버와 소스코드 리포지터리를 비교해 확인한 후 최종 빌드를 공개하는 것을 추천
> 모든 개발자 서명들도 하나하나 확인하는 것이 좋음

⑥ 관리의 중앙화
> 코드 서명 과정을 중앙에서 통제하도록 하는 게 가시성 확보나 빌드 신뢰도 향상 등의 측면에서 유리

⑦ 정책의 강력한 시행
> 코드 서명 절차를 수립했다면, 그것을 조직 전체의 규정으로 만들어 시행
> 승인, 키 만료, CA 유형, 키 용량, 서명 알고리즘 등을 세부적으로 지정해 시행
> 정책 시행이 자동으로 확인되도록 자동화 기술을 도입하는 것도 중요

⑧ 코드 서명의 간소화
> CI/CD 도구들을 활용해 코드 서명을 자동화
> 개발자들이 보안에 크게 신경 쓰지 않아야 보안이 유지될 수 있음
기타 -

 

보안뉴스

 

코드 서명 절차를 안전하게 유지시키기 위한 8가지 보안 전략

원격 접근 솔루션인 애니데스크(AnyDesk)에서 최근 침해 사고가 발생했다. 알고 봤더니 코드 서명 절차에 문제가 있었고, 거기서부터 공격이 시작된 것이었다. 이 사건에 관심을 기울였던 모든 사

www.boannews.com

 

+ Recent posts