본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

보안

보안은 개발부터!! 데브섹옵스(DevSecOps)

2019.09.03

2012년 말 가트너는 “DevOpsSec: Creating the Agile Triangle.”라는 문서를 통해 기존의 DevOps보다 발전된 새로운 DevSecOps라는 개념을 시장에 소개했습니다. 가트너에서는 이후에도 2016년 “DevSecOps: How to Seamlessly Integrate Security Into DevOps”, 2017년 “Gartner Top 10 Strategic Technology Trends for 2018” 등의 문서로 DevSecOps의 중요성을 계속 강조하고 있습니다.

가트너는 DevSecOps를 가장 빠르게 성장하는 분야 중 하나라고 명명하고 2021년까지 Rapid Development Team 중 80%가 DevSecOps를 활용할 것으로 예측했습니다. 실제로 DevSecOps를 시행한 조직은 인상적인 결과를 보여주고 있는데, 이들은 보안 테스트를 통합해 애플리케이션의 업데이트 주기를 줄이고 취약점을 수정하는 시간을 2배 단축할 수 있었다고 합니다.

이번 기고에서는 DevSecOps란 무엇인지와 DevSecOps의 필요성 및 성공하기 위한 전제조건 및 클라우드 시대의 DevSecOps에 대해 알아보겠습니다. 

DevSecOps란?

DevSecOps는 DevOps와 Security가 결합된 개념입니다. 따라서, DevSecOps를 알기 위해서는 DevOps에 대해 먼저 짚고 넘어가야 합니다.

IT 개발과 운영에는 용어, 업무 방식 등 업무를 바라보는 관점의 차이가 존재하고, 이러한 차이로 인해 기존의 폭포수 모델에서는 운영단계에서 IT 운영의 효율성을 떨어뜨리는 원인이 되었습니다.

이러한 차이를 최소화하기 위해 발전한 것이 애자일(Agile)입니다. 애자일(Agile)은 변화를 자동화하고 수많은 기능을 이용해 전체 개발 주기에 대해 일정한 주기로 끊임없이 프로토타입을 만들어 냅니다. 그리고, 프로토타입의 수행 결과에 요구를 다시 더하고 수정해 전체적인 S/W를 만들어 갑니다. 이러한 애자일(Agile)에 개발, 운영 프로세스 개선 및 자동화에 대한 노력이 더해져서 발전한 모델이 DevOps입니다.

DevOps 프로세스에 대한 자세한 내용은 자사의 또 다른 블로그 글에 잘 설명되어 있습니다.

● 비지니스 변화를 빠르고 안정적으로 적용하는 기술과 문화  https://blog.lgcns.com/1755

● 비지니스 변화를 빠르고 안정적으로 적용하는 기술과 문화 2편 https://blog.lgcns.com/1761

l DevSecOps Life Cycle (출처: Gatner)

DevSecOps는 DevOps와 보안(Security)이 결합된 개념으로 DevOps의 IT 개발부터 배포, 운영, 관리에 이르기까지 전 영역이 보안과 연계된 것을 의미합니다. 즉, 상호협력 관계인 DevOps 프레임워크에 보안을 공동의 책임으로 간주하고 개발부터 운영까지의 전 Life Cycle에 걸쳐 빌트인 된 보안 기반을 구축하는 것입니다. 

DevSecOps는 왜 필요한가?

DevOps 이전에는 소프트웨어 개발 시 개발은 개발팀, 개발 완료 후 운영은 운영팀, 전체 보안은 보안 조직으로 각각의 역할이 나뉘어져 있었습니다. DevOps 이후로 개발과 운영을 통합해 개발한다는 필요성에 대한 의식은 생겼으나 아직까지 대부분 보안은 개발 최종 단계에서의 보안 조직의 역할로 인식되고 있습니다.

하지만, 보안이 개발 Pipeline 상에 유기적으로 결합되어 있지 않고 개발 최종 단계에서 적용된다면 점검 중 심각한 보안 결함 발견 시 최악의 경우 전체 개발 소스를 재작성해야 될지도 모른다는 Risk가 항상 존재하게 됩니다.

개발 주기가 몇 달, 몇 년이 소요되는 장기 개발의 경우는 큰 문제가 없으나 며칠 또는 몇 주의 빠른 개발 주기를 가지는 최근의 개발 환경에서는 예전 보안 방식은 전체적인 효율성을 떨어뜨리는 원인으로 인식되어 최종 단계에서의 보안 점검을 형식적으로 처리해 버리는 경우도 발생하고 있습니다.

실제 Equifax에서는 2017년 3월 공개된 Apache Struts Framework의 취약점(CVE-2017-5638)에 대해 미조치된 소스와 실사의 부족으로 인해 1억 4천만 건에 달하는 미국 고객 정보가 유출되어 Visa와 Master 카드사에서 주의보를 내리기도 했습니다.

DevSecOps는 정보보안팀, 개발팀, 운영팀 간의 지속적인 협업을 통해 모니터링, 평가 및 분석을 진행하고 보안상의 결함과 취약점을 조기에 노출시킴으로써 프로그램 수정에 필요한 시간을 단축시키고 재작업 비용을 낮출 뿐만 아니라 보안 사고의 위험도 감소시킵니다.

보안팀은 DevOps의 자동화된 개발 주기상에서 보안 기능을 수행할 수 있고, 정책도 자유롭게 설정할 수 있습니다. 따라서, 가급적이면 개발 초기부터 보안팀이 합류해 자동화된 어플리케이션 보안활동을 수행하게 되면 최악의 경우 서비스 다운이나 중요 고객정보의 유출까지 발생할 수 있는 설정상의 오류나 실수를 최소화 할 수 있습니다. 

DevSecOps 현황

사실 DevOps를 지원하는 다양한 솔루션 및 툴킷에 비해 Security 개념을 추가한 DevSecOps의 기술과 솔루션의 부족에 대한 우려도 있습니다. 실제 DevSecOps에 대한 지식을 갖춘 보안 실무자의 수가 절대적으로 부족한 상태입니다. 전통적인 보안솔루션 업체들은 아직까지 End-Point와 경계 보안에 주력하고 있으며, DevSecOps를 위한 SonarQube, Clair, Vault, Gauntlt 등의 도구들은 전체적인 Coverage도 넓지 않고 인지도도 높지 않은 것이 현실입니다.

다행인 점은 기업들의 DevSecOps에 대한 의식이 분명히 개선되고 있다는 것입니다. 보안 전문 업체 소나타입(Sonatype)의 연구 결과 3년 동안 개발 과정 중 보안 점검을 동시에 진행하는 기업들이 분명히 증가했고, 모든 단계에서 보안 점검을 한다는 기업은 3년 전보다 2배 가까이 증가했습니다.

또한, 2017년 디지서트(DigiCert)의 보고에서도 대부분의 기업이 DevOps와 보안의 통합이 합리적이라고 생각하고 있고 실제 설문조사 응답자 중 98%가 향후 관련된 계획을 가지고 있거나 이미 시작한 것으로 답을 했습니다.

실제 일부 기업은 DevSecOps를 통해 피드백 루프 단축, 보안 사고 감소 등의 긍정적인 결과를 얻고 있습니다. White Hat의 최고 보안 연구원 라이언 올리리는 “애플리케이션 보안 프로그램이 효과적인지 여부를 판단하는 한 가지 중요한 척도는 취약점이 발견된 이후 이를 수정하는 데 소요되는 시간입니다.

l DevSecOps 적용 여부에 따른 취약점 수정 일수 차이 (출처: White Hat)

이 시간은 팀이 얼마나 민첩하게 문제의 경중을 판단해 대처하는지를 보여준다.”라고 말합니다. 실제로 DevSecOps를 적용한 기업은 적용하지 않은 기업보다 취약점을 수정하는데 약 절반 정도의 일정만 필요로 했으며, 일반적인 기업이 10일 이내에 취약점을 발견하고 모든 취약점 가운데 최종적으로 수정된 취약점은 15%에 불과했으나 DevSecOps를 도입한 기업의 경우 53%의 취약점을 10일 이내에 발견하고 수정했습니다.

또한, DigiCert 조사에 따르면 300개 미국 기업 중에서 98%가 DevOps에 보안을 적용할 계획이거나 이미 적용하고 있으며, Maximize의 조사에서도 DevSecOps 시장은 2017년의 1.2억 달러에서 연평균 약 34%씩 성장해 2026년에는 12.34억 달러까지 성장할 것으로 예측됩니다.

l 기업 규모 별 글로벌 DevSecOps 시장 전망 (출처: Maximize Market Research, 2018) 

성공적인 DevSecOps를 위한 선결 조건

IT 인프라는 최근 몇 년 동안 크게 변화해 다이나믹 프로비저닝, 공유 리소스, 클라우드 컴퓨팅으로의 전환으로 인한 IT 속도와 민첩성, 비용 측면의 장점은 애플리케이션 개발의 개선으로 이어졌습니다. 그러나 여전히 많은 보안 및 컴플라이언스 모니터링 툴이 이러한 변화 속도를 따라가지 못하고 있습니다.

아직 개발자들이 주로 사용하는 툴이나 워크플로우와 보안 점검 툴이 좋은 조합을 보여주지 않기 때문에 보안이 DevOps 특유의 속도와 유연성을 떨어뜨린다고 인식되고 있는 것이 사실입니다. 실제 대부분의 기업이 DevSecOps가 무엇이고, 이를 어떻게 도입해야 하는지 방법조차 모른 채 보안은 개발의 효율성을 떨어뜨리는 요인으로 인식하고 있습니다.

l DevSecOps 단계별 적용 Toolset (출처: Stackify)

따라서, 성공적인 DevSecOps를 위해서는 DevOps와 보안의 유기적인 통합이 필수적입니다. 이를 위한 선결 조건은 다음과 같습니다.

첫째, 조직 전체의 보안에 대한 사고의 전환이 필요합니다. DevSecOps는 애플리케이션 개발 과정 전체에 대한 보안 기반의 구축을 의미합니다. 이처럼 전체 개발 Pipeline에 보안이 통합되기 위해서는 개발과 운영, 보안 부서의  모든 담당자가 보안에 대한 책임을 지고 보안은 공동의 책임이라는 인식하에 처음 개발부터 운영까지 모든 프로세스를 보안과 하나로 통합해야 합니다.

둘째, 업무 프로세스를 재배치해야 합니다. 보안팀의 개발과 운영 프로세스, 기술, 도구에 대한 이해를 바탕으로 프로세스 초기부터 보안을 분석하고 테스트해야 합니다. 개발자는 Secure Coding에 대해 학습해야 하며, 필요하면 보안팀은 개발자에게 이에 대한 교육도 진행해야 합니다.

셋째, 효율성과 정확성을 위한 자동화가 필요합니다. 보안 테스트와 관련된 가능한 많은 프로세스를 자동화하고 개발자들이 활용할 수 있도록 Repository 공유를 통해 DevOps CI/CD Pipeline 속도에 맞게 보안 프로세스를 단순화해야 합니다. 이를 위해서는 개발, 운영, 보안 부서의 협력이 필수적입니다.

넷째, 소프트웨어 Tool에 대한 현명한 선택이 필요합니다. DevOps CI/CD Pipeline과 각종 보안 관련 Tool이 사용하기 편리하게 유기적으로 연결되어야 하며, 도구별 기능 및 자동화 수준 또한 고려되어야 합니다. 

클라우드 시대의 DevSecOps

기업의 IT 환경이 클라우드 환경으로 점차 바뀌면서 클라우드에서 제공하는 보안 서비스를 애플리케이션 개발과 운영 프로세스에 통합할 수 있게 되었습니다.

사실 DevOps가 나타난 중요한 배경에는 클라우드의 등장이 자리 잡고 있습니다. 클라우드의 등장으로 인해 단일 인터페이스를 제공하는 인프라적인 혁신이 일어났고, REST API(Representational State Transfer API)를 통해 각종 네트워크 및 보안 장비가 개발자에게 오픈되었습니다.

이로써 기본적인 시스템 아키텍처 위에 개발자가 REST API를 통해 각종 네트워크 및 장비를 손쉽게 연계할 수 있는 길이 열렸습니다. 즉, 클라우드 환경에서 오픈소스 애플리케이션이 다양하게 제공되면서 API만 연동하면 개발할 수 있고 모니터링할 수 있는 시대가 온 것입니다.

l Code Pipeline을 이용한 DevSecOps 구현 (출처: AWS)

보안을 DevOps에 통합함으로써 DevOps 개발 프로세스 내에서의 모의 해킹과 같은 보안 테스트를 진행할 수 있으며, 애플리케이션이나 워크로드 배포 시 플랫폼의 취약점 점검에도 이용할 수 있습니다. 이는 DevOps 프로세스가 진행됨에 따라 애플리케이션이나 워크로드가 점점 보안적으로 안전해지게 됨을 의미합니다.

다가온 클라우드 시대에 DevSecOps는 선택이 아니라 필수 조건이 되어가고 있습니다.  DevSecOps가 앞으로 더욱 활성화 되기 위해서는 다음과 같은 노력이 지속해서 이루어져야 합니다.

첫째, 조직 전체가 보안은 개발에 저해 요소가 아닌 필수 요소라는 인식이 필요합니다.

둘째, 적절한 조직의 재배치가 이루어져 개발 초기 단계부터 보안 조직이 투입될 수 있도록 조직 차원의 지원이 필요합니다.

셋째, 보안 점검 툴의 개선이 뒷받침되어야 하며 자동화된 프로세스에 적용 가능토록 다양한 API를 제공해야 합니다.

위와 같이 DevSecOps에 대한 조직 전반에 걸친 의식의 변화와 툴의 개선이 끊임없이 이어지고, 여기에 보안 전문가들의 시스템에 대한 이해가 더해진다면 더욱 안전한 IT 환경을 만드는데 크게 기여할 것입니다.

글 l LG CNS 보안플랫폼팀

챗봇과 대화를 할 수 있어요