Last Updated on 6월 14th, 2023, By
 In 앱실링 블로그

지속적인 시스템 통합(SI)과 전송 (CI/CD)은 소프트웨어가 구축되고 배포되는 기준이 되고 있습니다. 이로 인해 애플리케이션 개발 라이프사이클 보안에 대한 개발자의 책임이 더욱 중요해졌습니다.

지속적인 통합 (CI)은 공유 메인라인을 모든 개발자의 작업 복사본과 통합하는 경우가 많습니다. 반면에 지속적인 전송 (CD)는 한 단계 더 나아갑니다. 모든 팀원들의 몇 번의 클릭만으로 스테이징 환경에서 일련의 테스트를 통과한 후 애플리케이션을 프로덕션 환경에 즉시 배포할 수 있습니다.

이 블로그에서는 CI/CD 보안에 대해 살펴보고, 빌드를 안전하게 유지하기 위해 주의해야 할 일반적인 보안 위협에 대해 알아보겠습니다.

CI/CD 보안

CI/CD(지속적 통합/지속적 배포)는 개발팀이 개발환경에 코드 변경사항을 자동으로 빌드하고 프로덕션 환경에 배포하는 방식입니다. 해당 개발 방식으로 개발팀은 인적 오류 위험을 줄이는 동시에 새로운 기능과 업데이트를 더욱 빠르게 제공할 수 있습니다.

CI/CD 파이프라인 보안을 위해서는 아래와 같은 사항들을 고려하는 것이 중요합니다.

  • 소스 코드 관리: 모든 코드 변경사항은 Git과 같은 안전한 소스 코드 관리 시스템에 추적 및 저장해야 합니다. 이를 통해 개발팀은 만약 필요할 경우 변경사항을 롤백하고 보안 사고 발생 시 해당 사고에 대한 감사 추적을 제공할 수 있습니다.
  • 빌드서버 보안: 빌드서버는 방화벽 및 접근 제어 목록과 같은 적절한 보안 제어를 사용하여 구성해야 합니다. 또한 빌드서버는 최신 보안 패치로 업데이트해야 합니다.
  • 배포 대상 보안: 코드를 배포하기 전에 개발 환경의 보안이 적절히 유지되도록 주의를 기울여야 합니다. 이는 승인된 사용자만 개발 서버에 접근할 수 있고 적절한 인증 및 권한 부여 메커니즘이 확인된 것을 포함합니다.
  • 런타임 보안: 코드가 프로덕션 환경에 배포된 후에는 런타임 환경에서 잠재적인 보안 문제가 있는지 모니터링하는 것이 중요합니다. 여기에는 무단 액세스, SQL 인젝션 공격 및 크로스 사이트 스크립팅 공격 등을 모니터링하는 것을 포함합니다.

이러한 요소를 고려하면 개발팀은 인적 오류에 대한 위험을 줄이면서 새로운 기능과 업데이트를 더 빠르게 제공하는 데 도움이 되는 안전한 CI/CD 파이프라인을 구축할 수 있습니다.

CI/CD 보안의 5가지 일반적인 보안 위협

CI/CD 프로세스 중에 많은 잠재적인 보안 위협이 발생할 수 있습니다. 아래는 가장 일반적인 위협 몇 가지와 이러한 위협이 어떻게 발생하는지에 대한 설명입니다.

무단 접근

가장 일반적으로 발생하는 보안 위협 중 하나는 무단 접근입니다. 이는 개발자가 빌드서버에 대한 접근을 적절하게 제한하지 않거나 배포 대상이 제대로 보호되지 않았을 때 발생할 수 있습니다. 무단 접근은 데이터 유출 및 다른 심각한 보안 사건으로 이어질 수 있습니다.

SQL 인젝션 공격

SQL 인젝션 공격은 신뢰할 수 없는 입력값이 SQL 쿼리에 포함되었을 때 발생합니다. 이는 빌드 서버가 사용자 입력값을 제대로 처리하지 못하거나 개발자가 매개변수화 된 쿼리를 사용하지 않았을 때 발생할 수 있습니다. SQL 인젝션 공격을 통해 공격자는 비밀번호나 신용카드 정보와 같은 민감한 데이터에 접근할 수 있습니다.

교차사이트 스크립팅 공격 (Cross-site scripting (XSS))

교차사이트 스크립팅 공격(XSS)은 신뢰할 수 없는 입력값이 적절한 보안 처리 없이 웹페이지에 포함될 때 발생할 수 있습니다. 이는 빌드 서버가 사용자 정보를 제대로 처리하지 못하거나, 개발자가 특수문자 기호를 올바르게 이스케이프(escape)하지 않은 경우에 이러한 공격이 발생할 수 있습니다. XSS 공격을 통해 해커는 웹 페이지에 악성 코드를 삽입하여, 해당 웹페이지를 의심없이 방문한 사용자가 실행할 수 있습니다. 이러한 악성 코드는 사용자들을 악성 웹사이트로 리다이렉션시키거나 민감한 정보를 도용하고, 심지어 컴퓨터에 멀웨어를 설치할 수 있습니다.

불규칙적 흐름 제어 메커니즘

또 다른 일반적인 보안 위협은 불규칙적 흐름 제어 메커니즘입니다. 이는 빌드 서버가 빌드 프로세스를 계속하기 전에 오류를 제대로 확인하지 않았을 경우 이러한 문제가 발생할 수 있습니다. 부적절한 흐름 제어 메커니즘은 데이터 유출 및 다른 보안 이슈로 이어질 수 있습니다.

종속 체인 악용

종속 체인 남용은 개발팀이 종속성을 제대로 관리하지 못할 때 발생합니다. 이는 개발자가 어플리케이션의 오래되거나 취약한 종속성을 포함할 때 이러한 문제가 발생할 수 있습니다. 종속 성 체인 남용은 데이터 유출, 서비스 거부 공격과 같은 심각한 보안이슈를 초래할 수 있습니다.

CI/CD 파이프라인 적절히 보안됐는지 확인할 수 있는 방법

CI CD 파이프라인 보안 확인을 위한 방법은 많이 있습니다. 가장 흔하게 쓰이는 7가지 일반적인 방법을 알아보겠습니다.

CI/CD 파이프라인에 대한 명확한 보안 정책 수립

민감한 데이터가 무엇인지 그리고 어떻게 다루어져야 하는지 정의하고, 파이프라인에 액세스 할 수 있는 사람과 접근 수준을 설정합니다. 또한 사용할 보안 스캐닝도구와 사용빈도 등을 지정합니다.

코드 및 종속성에 대해 신뢰할 수 있는 출처만을 사용

당신이 신뢰하는 평판이 좋은 출처에서 코드와 종속성을 다운로드 합니다. 가능한 경우 암호화 서명을 사용하여 모든 다운로드의 진위여부를 확인합니다.

파이프라인에 추가하기 전 모든 코드와 종속성을 스캔

보안 검사 도구(예: OWASP 종속성 검사 확인 도구)를 사용하여 코드와 종속성에서 알려진 취약점이 있는지 검사합니다. 발견된 취약점을 코드나 종속성을 파이프라인에 추가하기 전에 수정합니다.

CI/CD 파이프라인 접근 시 보안 인증 및 승인 방법 사용

파이프라인 접근이 필요한 모든 사용자에 대해 강력한 인증 방법 (예: 2단계 인증)을 사용하도록 CI/ CD 보안 소프트웨어를 구성합니다. 조직에서의 역할(예: 개발자는 업무에 관련된 파이프라인의 일부만 접근 가능)에 따라 각 유저 접근권한을 승인합니다.

TLS/SSL 프로토콜을 사용하여 파이프라인을 통해 전송 중인 모든 데이터를 암호화

툴세트를 구성하여 파이프라인의 다양한 구성요소 간(예: 코드 저장소와 빌드서버 간)에 전송 중인 모든 데이터를 암호화합니다. 이렇게 함으로써 민감한 데이터가 악의적인 사용자에 의해 민감한 데이터를 가로채지 못하도록 보호하는데 도움이 됩니다.

암호화하거나 안전한 장소에 저장하여 미사용한 민감한 데이터 보호

CI/CD 파이프라인에 사용되는 민감한 데이터 (예: 비밀번호, API keys)를 암호화된 포맷으로 저장하거나 Hashicorp Vault와 같은 안전한 위치에 저장합니다. 이렇게 하면 CI/CD 시스템이 손상된 경우에도 이러한 데이터에 대한 무단 액세스를 방지할 수 있습니다.

CI/CD 파이프라인의 정기적 로그 검토(리뷰) 및 활동 모니터링

의심스러운 활동을 찾기 위해 CI/CD 보안 시스템에서 생성된 로그를 정기적으로 리뷰합니다. 파이프라인의 활동을 면밀히 모니터링하여 권한이 있는 사용자만 합법적인 목적으로 파이프라인에 액세스하고 있는지 또는 의도된 작업만이 진행중인지 파이프라인 활동을 모니터링합니다.

적절한 CI/CD 보안으로 소프트웨어를 보호

앱 보안 제공 업체는 고객과 긴밀히 협력하여 보안 프로그램이 최대한 효율적으로 실행되도록 보장해야 합니다. 이러한 고객과의 협력을 통해, 고객의 데이터와 자원을 보다 잘 보호할 수 있도록 프로그램을 정밀하게 조정하는 데도 도움을 줄 수 있습니다.

마치면서

소프트웨어가 비즈니스에 점점 더 필수적인 요소가 됨에 따라, 일상적으로 사용되는 도구의 보안이 더욱 중요해지고 있습니다. 정적 또는 동적 분석 및 수동 침투 테스트와 같은 보안 테스트를, 라이프사이클 초반에 진행하는 것은 마찰을 줄이고 출시 속도를 개선시키는 한 가지 방법이 될 수 있습니다.

AppSealing과 같은 적절한 도구를 사용하여 적절한 시점에 사용하면 전반적인 마찰을 줄이고 출시 속도를 높일 뿐만 아니라, 출시된 애플리케이션의 품질과 보안 안전성을 향상시킬 수 있습니다. CI/CD 보안은 장기적으로, 전반적인 애플리케이션 개발과 유지보수 및 관리에 큰 도움이 될 수 있습니다.

Dustin Hong
Dustin Hong
Dustin은 잉카엔트웍스의 앱실링 비즈니스 개발을 이끌고 있습니다. 그는 사이버 보안, IT, 컨텐츠 및 애플리케이션 보안 분야의 소프트웨어 개발과 혁신에 많은 관심을 가지고 있습니다. 또한 사이버 보안 세계에서 주요 사건의 대상, 이유 및 방법에 대해 다양한 사람들에게 공유하고 토론하는 것을 좋아합니다. 업계 동향 및 모범 사례에 대한 그의 견해는 기사, 백서에 실려있으며, 여러 보안 행사에서 유사 주제로 발표를 하였습니다.