"데브섹옵스 구현은 단계별로, 일관되게 해야"

스패로우 진민식 CTO…'어드밴스드 컴퓨팅 플러스 2018' 발표

컴퓨팅입력 :2018/08/29 16:49    수정: 2018/08/29 22:38

“데브섹옵스 도구를 제대로 사용하려면 여러 도구를 통합적으로 관리할 수 있는 일관된 보안 정책 수립이 필요합니다. 또 도구들은 한 번에 모두 도입하는 게 아니라, 단계별로 상황에 맞게 도입하는 게 중요합니다.”

스패로우 진민식 CTO는 28일 서울 신라호텔에서 열린 '어드밴스드 컴퓨팅 플러스 2018'에서 이같이 말했다.

사이버 보안 위협에 대응하는 방법은 크게 두 가지다. 외부 공격을 막는 방법과 내부에서 안전한 소프트웨어를 만드는 방법. 진 CTO는 이날 후자의 관점에서 ‘데브섹옵스의 이해와 구현’을 주제로 발표했다.

데브섹옵스 도구들을 설명하기에 앞서 그는 ‘데브옵스(DevOps)’ 개념을 먼저 설명했다. ‘데브옵스’는 개발(Development)과 운영(Operation)을 합친 말이다. 즉, 기존에는 소프트웨어 개발을 먼저 하고 운영을 진행했다면 이제는 개발과 운영을 하나의 프로세스에 합쳐 함께 진행하는 방식을 데브옵스라 말한다.

IT 조직에서 개발팀과 운영팀은 충돌이 일어나기 쉽다. 개발팀은 빨리 새로운 기능을 개발해 제공하고 싶어 하고, 운영팀은 빠른 적용보다는 안정적인 서비스 제공을 우선하기 때문이다. 따라 개발팀에서 애자일 방법을 이용해 빠르게 개발한 기능이 운영팀에는 반영이 안 되는 경우가 많았다.

이에 기업들은 개발과 운영, 이 두 가지 과정을 어떻게 합칠지에 대한 고민을 하게 됐고, 데브옵스가 그 대안으로 떠올랐다. 데브옵스는 개발 쪽에만 적용됐던 애자일 방법을 운영 쪽에도 적용한다.

애자일 방법은 기존의 문서 기반 개발 방법과는 달리 실제 코딩을 하며 개발을 진행하고, 그때그때 필요한 요구를 추가해 수정해 나가는 방식을 말한다. 애자일 방법을 이용하면 신속하고 유연한 개발이 가능하며, 개발 시 위험 부담을 최소화할 수 있다.

이러한 애자일 방법론을 운영 쪽에도 적용한 것이 바로 ‘인프라스트럭처 애즈 코드(Infrastructure as Code)’다. 진 CTO는 “‘인프라스트럭처 애즈 코드’는 데브옵의 가장 중요한 도구 중 하나”라며 “스크립트 환경을 운영하고, 배포하는 과정을 자동화시켜 빠른 시간 내에 운영을 가능하게 한다”고 설명했다.

하지만 진 CTO는 “자동으로 배포된 개발 환경이나 테스트 환경은 문제가 생기는 경우도 많다”며 “배포 환경을 자동으로 구성해 놓으면, 개발과 운영을 통합한 라이프 사이클을 통해 데브옵을 개발한다”고 말했다.

스패로우 진민식 CTO

‘데브섹옵스(DevSecOps)’는 데브옵스(DevOps)에 보안(Security)을 추가한 방법을 말한다. 최대한 빠르게 기능을 개발해 안정적으로 운영하는 데브옵스에 규제 문제와 관련된 보안을 적용하는 방법으로, 데브옵스에서 한 단계 더 나아간 개발 방법이다.

보안은 보통 개발의 가장 마지막 단계에 고려되거나, 중간 단계에서 점검해 수정되는 방식으로 이뤄진다. 하지만 이런 기존의 보안 적용 방식은 빠른 개발 환경에 맞지 않아, 보안 점검을 미리미리 해놓자는 문제의식에서 나온 개념이 데브섹옵스다.

진 CTO는 “기업에서 보안 팀은 굉장히 적은 인원이 담당해, 시간이 많이 걸린다”며 “따라 데브섹옵스에서는 자동화된 툴을 도입하는 게 중요하다”고 강조했다.

그는 개발, 테스트, 운영 등 각 단계에서 쓸 수 있는 보안 관련 도구들을 소개했다. 코딩과 빌딩 단계에서 사용할 수 있는 도구로는 SAST(Static Application Security Testing)와 SCA(Software Component Analysis)가 있다.

SAST는 프로그램을 실행하지 않고 소스코드를 직접 분석 하는 도구다. 개발자가 프로그램 시행 시까지 기다리지 않아도 소스코드 상의 보안 문제를 확인하고 바로 수정할 수 있기 때문에 빠른 개발 단계에 적용할 수 있다. 개발자가 수시로 분석한 결과를 조회해 체크인을 요청하면 취약점 존재 여부만 조회가 가능하다.

SCA는 애플리케이션에서 사용하는 오픈소스 또는 외부 모듈에 존재하는 취약점을 검사하는 도구다. SCA는 주로 코딩 단계나 빌딩 단계와 같은 최대한 빠른 개발 단계에서 사용한다.

테스트 단계에서 사용할 수 있는 도구는 DAST(Dynamic Application Security Testing)가 있다. DAST는 소프트웨어를 실행해 취약점을 검사하는 도구다. DAST는 테스트, 배포, 운영단계에 적용 가능하다.

운영 단계에서 사용 가능한 도구는 RASP(Runtime Application Security Testing)다. RASP는 애플리케이션 자가방어 시스템이다. 실행 중인 애플리케이션이 외부위협을 감지해 자체적으로 방어한다. 운영 중인 시스템에 성능 저하가 발생할 수 있다는 단점이 있다.

관련기사

진 CTO는 데브섹옵스 도구를 적용할 시에는 일관된 보안 정책 수립과 점진적인 적용이 중요하다고 강조했다. “SAST, SCA, DAST, RASP 등 도구마다 취약점을 찾아내는 방법과 설명 내용 등이 다를 수 있기 때문에 이런 걸 하나로 정리해주는 통합 관리가 필요하다”며 “일관된 보안 정책 수립이 중요하다”고 설명했다.

또 “데브섹옵스 도구들을 한 번에 다 도입하는 게 아니라 기업의 상황에 맞게, 편하게 쓸 수 있는 도구들을 먼저 차례대로 도입하는 게 중요하다”며 “SAST와 SCA를 먼저 빠른 개발 단계에서 사용하고, 이후 DAST, IAST·RASP 순으로 적용하는 게 좋다”고 조언했다.