This post is also available in: English (영어) 简体中文 (중국어 간체) 繁體中文 (중국어 번체) 日本語 (일어) Português (브라질 포르투갈어)
현대 컴퓨팅이 시작된 이래로 보안은 소프트웨어 개발과 상당히 분리되어 왔습니다. 최근 취약점 연구에서 이 부분을 확인할 수 있습니다. 지난 5년간 발표된 모든 취약점 중 76%가 애플리케이션에서 발생했다는 점을 고려해 보십시오. 이러한 공격자 중심의 급격한 변화를 감안하여, 이제는 개발 시 보안을 내장해야 합니다. 이를 위한 가장 좋은 방법은 원점 회귀(Shift Left) 보안 전략을 구현하는 것입니다.
원점 회귀(Shift Left) 보안 정의
가장 간단한 용어로서 "원점 회귀(Shift Left)" 보안은 보안을 개발 프로세스에서 가능한 한 초기 시점으로 이동하는 것입니다. 최신 CI/CD에는 일반적으로 아래 그림 1과 같이 8단계 프로세스가 포함됩니다. 원점 회귀 보안은 사이버 리스크를 줄이고 비용을 절감하는 데 유용합니다. IBM의 System Sciences Institute에서는 설계 시 보안 문제를 해결하면 구현 중에 보안 문제를 해결하는 것보다 비용이 6배 더 저렴해진다는 사실을 알아냈습니다. 또한 동일한 연구에서, 테스트 중에 보안 문제를 해결하면 비용이 15배 더 높아질 수 있다는 사실도 발견했습니다.
이렇게 각 단계에서 보안 기능을 의도적으로 내장하려면 먼저 전략을 명확하게 정의해야 합니다.
그림 1: CI/CD
1단계: 원점 회귀(Shift-left) 보안 전략을 정의하십시오
모든 여정에서 첫 번째 단계는 가야 할 방향을 정의하는 것입니다. 이때 어떤 모습의 성공을 이루려는지 팀이 확실히 알 수 있게끔 되도록 생생한 그림을 그려야 합니다. 이 문서에 포함할 주요 항목은 비전, 소유권/책임, 이정표, 메트릭입니다. 전략 문서는 시간이 지나면서 성숙도를 높여가도록 해야 하며, 이 문서를 완벽하게 작성하려고 너무 많은 시간을 투자하지 않아야 합니다. 그리고 시간이 흐름에 따라 반복하는 과정은 필수입니다.
2단계: 소프트웨어가 어디에서 어떻게 제작되는지 이해해야 합니다.
보안 원점 회귀에서 가장 어려운 부분 중 하나는 우선 귀사에서 소프트웨어를 어디에서 어떻게 제작하고 있는지 이해하는 것입니다. 회사 규모에 따라 여기에는 간단한 문제부터 매우 어려운 문제까지 포함될 수 있습니다.
이 단계의 목표는 먼저 전사적인 측면을 살펴보고 회사 내 소프트웨어의 전반적인 흐름을 기록하는 것입니다. 중견기업과 대기업의 경우는 거시적인 수준에서 시작한 다음 개별 사업부로 이동하여 자세히 살펴봐야 할 것입니다. 각 사업부마다 자체 소프트웨어 개발 프로세스와 도구를 보유하고 있을 가능성이 높습니다. 이 단계에서 파악해야 할 주요 항목에는 코드 개발 담당자(직원), 개발 랩톱부터 프로덕션에 이르는 흐름(프로세스), 프로세스를 진행하는 데 사용하고 있는 시스템(기술)이 포함됩니다. 이것을 CI/CD 도구 체인이라고도 합니다. 확실히 소프트웨어 개발의 많은 부분이 퍼블릭 클라우드에서 이뤄지고 있습니다.
3단계: 보안 품질 가드레일을 파악하고 구현해야 합니다.
품질 보증은 항상 소프트웨어 개발 수명 주기의 일부였습니다. 그러나 예전에는 소프트웨어 품질에 보안이 포함되지 않았습니다. 이는 바뀌어야 하며, 이전 단계에서 완료한 작업은 이 작업을 수행하는 데 도움이 됩니다. 소프트웨어 개발 프로세스의 각 단계는 피드백을 제공하고 보안 문제를 찾을 수 있는 기회입니다. 가장 효과적인 보안팀은 소규모로 시작됩니다. 이들은 일상적인 개발 작업에 필수적인 간단하고 효과적인 도구를 개발팀에 제공합니다. 이러한 도구 중 하나는 최근에 Palo Alto Networks에서 오픈소스로 제공되어 누구나 사용할 수 있습니다.
4단계: 시큐어 코딩으로 개발팀을 평가하고 지속적으로 교육해야 합니다.
보안 원점 회귀 여정에는 다수의 코딩을 수행하는 담당자가 처음부터 시큐어 코드를 생성하는 작업이 포함됩니다. 현재 이들의 기술 수준을 객관적으로 평가할 수 없고 시간이 지남에 따라 지속적으로 이들의 기술을 개선할 계획이 없다면, 보안 원점 회귀 여정을 진행하기란 쉽지 않습니다. 한 설문 조사에서 19%의 개발자가 OWASP Top 10에 익숙하지 않다고 대답한 것을 감안하면, 이는 간과해서는 안 될 부분입니다. 또한 DevOps 서비스 제공업체 GitLab이 최근 발표한 설문 조사에서도 70%의 프로그래머가 시큐어 코드를 작성할 것으로 예상되지만 25%만이 자사 자체의 보안 관행이 "우수"하다고 생각하는 것으로 나타났습니다.
원점 회귀(shift-left)의 모습
이제 구축, 배포, 실행 단계로 개발을 단순화한 두 가지 시나리오를 살펴보겠습니다. 시나리오 1번에서는 보안 없이 개발을 시작합니다. 소프트웨어 품질은 런타임 중에만 검사됩니다. 이로 인해 취약점이 발견될 경우 흔히 보안팀과 개발팀 간에 불편한 대화가 오가게 됩니다.
그렇지만 시나리오 2번에서는 보안팀이 기업의 개발 프로세스를 이해하는 데 시간을 투자했습니다. 또한 보안 프로세스와 도구를 CI/CD 파이프라인에 내장하는 데 시간을 쏟았고, 이 과정 덕분에 보안 품질 가드레일이 자동화되었습니다.
결론
위의 네 단계를 활용하면 기업에서 보안을 원점 회귀로 전환하는 확고한 경로를 마련하는 것은 물론, 개발과 보안을 동일 선상에 놓을 수 있게 됩니다. 기업에서 클라우드 여정의 일부로서 원점 회귀로 전환할 때는, 보안 제어를 자동화하고 API를 기반으로 해야 합니다. Palo Alto Networks Prisma는 DevOps 및 CI/CD 파이프라인을 보호함으로써 보안팀이 이 작업을 정확하게 수행할 수 있도록 지원합니다.