요약 | - ‘코드 서명’은 사용자들로 하여금 제품을 구성하고 있는 코드를 신뢰할 수 있도록 함 - ‘코드 서명’을 악용한 공격이 대비하기 위해 안전한 코드 서명을 유지하는 것이 중요 |
내용 | - 코드 서명 > 소프트웨어나 펌웨어, 애플리케이션들에 서명을 하는 것 > 서명 덕분에 사용자들은 그 소프트웨어나 펌웨어, 애플리케이션을 구성하고 있는 코드가 신뢰할 수 있는것으로 인식 > 이러한 특성으로, 코드 서명을 대상으로한 공격이 발생 - 코드 서명에 사용되는 비밀 키는 상당히 주의해서 보호해야 함 > 키를 보호하며 소프트웨어를 개발하는 과정은 여러 귀찮음이 수반 > 개발자들은 편리성을 위해 비밀 키를 개발 환경과 계정 등에 저장해 사용 > 이로인해 자주 도난 및 유출되는 상황이 발생 - 2020 솔라윈즈 사태 이후 CA브라우저포럼(Certificate Authority/Browser Forum)는 ‘기본 실천 수칙’을 발표 > 코드 서명 인증서들을 지키기 위함 > 하드웨어 보안 모듈(HSM)이나 암호화 키를 안전히 보관하는 장비들을 필수로 사용해야 한다는 수칙이 생김 ※ HSM 가장 높은 수위의 보호 장치이나, 비용 상승, 높은 유지 보수 난이도, 시스템 복잡도 증가 등의 단점 - 클라우드로 이전이 시작되며 보안의 중요성이 더욱 대두 > 안전한 코드 서명과 관련된 새로운 해결책 제시 > 편리성과 속도 뿐만아니라 중앙에서 비밀 키를 관리하는 것이 가능해짐 - 통합된 코드 서명 절차 > 코드 서명 프로세스는 키 보안, 코드 서명 도구, 개발 워크플로우로 구성 > 키의 안전한 보호 및 활용, 개발 과정에도 적절한 활용이 되어야 이상적 > 이를 위해 지켜야 할 실천사항 ① 키 보호 > 코드 서명에 사용되는 키들은 안전한 위치에 저장 > HSM들은 내부에 저장된 비밀 키들이 엑스포트 되지 않도록 하고, 허가되지 않은 조작 방지 ② 접근 제어 > 비밀 키에 접근하려는 시도를 철저하게 가려내고 제어할 수 있어야 함 (역할에 따라 키 접근 여부 결정) > 이를 위해서는 먼저 승인 작업의 워크플로우를 규정할 필요 ③ 비밀 키 순환 > 서명 키는 주기적으로 교체 > 여러 팀들이 하나의 개발 플랫폼이나 환경을 공유한다면, 비밀 키를 따로 보관하여 활용 필요 ④ 타임스탬프 > 코드 서명에 사용되는 인증서들은 유효기간을 지니며(1~3년) 인증서 유효기간들이 점점 줄어드는 추세 > 그렇기에 인증서가 제대로 된 것인지 아닌지 타임스탬프를 찍는 것이 중요 ⑤ 코드 무결성 확인 > 전체 코드 점검을 한 후에 서명을 하는 순서가 반드시 지켜지도록 하는 게 중요 > 빌드 서버와 소스코드 리포지터리를 비교해 확인한 후 최종 빌드를 공개하는 것을 추천 > 모든 개발자 서명들도 하나하나 확인하는 것이 좋음 ⑥ 관리의 중앙화 > 코드 서명 과정을 중앙에서 통제하도록 하는 게 가시성 확보나 빌드 신뢰도 향상 등의 측면에서 유리 ⑦ 정책의 강력한 시행 > 코드 서명 절차를 수립했다면, 그것을 조직 전체의 규정으로 만들어 시행 > 승인, 키 만료, CA 유형, 키 용량, 서명 알고리즘 등을 세부적으로 지정해 시행 > 정책 시행이 자동으로 확인되도록 자동화 기술을 도입하는 것도 중요 ⑧ 코드 서명의 간소화 > CI/CD 도구들을 활용해 코드 서명을 자동화 > 개발자들이 보안에 크게 신경 쓰지 않아야 보안이 유지될 수 있음 |
기타 | - |
보안뉴스
'보안뉴스' 카테고리의 다른 글
미국 CISA, 경로 조작 취약점에 대해 별도의 권고문 발표 (0) | 2024.05.09 |
---|---|
깃허브와 깃랩 사용하면 사실상 대처법이 전무한 피싱 공격 완성 (1) | 2024.04.28 |
북한이 최근 사용하는 공격 전략, 조만간 마이터 서브테크닉에 추가된다 (0) | 2024.04.14 |
베트남 해킹그룹 코랄레이더, 한국과 아시아 전역 금융 데이터 표적 공격중...주의 (0) | 2024.04.07 |
회사의 보안실태와 취약점 점검 시 꼭 필요한 건 ‘소셜 엔지니어링’ 감사 (0) | 2024.03.31 |