Site icon

빌드를 보호를 위해 반드시 알아야 할 CI/CD 보안

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

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

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

CI/CD 보안

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

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

이러한 요소를 고려하면 개발팀은 인적 오류에 대한 위험을 줄이면서 새로운 기능과 업데이트를 더 빠르게 제공하는 데 도움이 되는 안전한 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 보안은 장기적으로, 전반적인 애플리케이션 개발과 유지보수 및 관리에 큰 도움이 될 수 있습니다.

Exit mobile version