“소프트웨어 중심 시대, 품질 강화는 필수” (2)
상태바
“소프트웨어 중심 시대, 품질 강화는 필수” (2)
  • 윤현기 기자
  • 승인 2018.09.06 13:00
  • 댓글 0
이 기사를 공유합니다

보안 취약점 대비 소홀히 해선 안 돼…오픈소스 점검도 뒤따라야

하나의 소프트웨어가 완성되기까지 많은 개발자들의 수고가 필요하다. 그러나 사람이 개발하는 만큼 개발된 소프트웨어가 꼭 안전하다고 할 수는 없다. 개발자들도 모르고 지나치는 오류와 취약점들이 존재할 수 있기 때문이다. 이를 보완하고자 소프트웨어 개발사는 주기적으로 패치를 내놓으며 업데이트를 진행하고 있지만, 이 또한 완벽한 해결책이 되지 못한다.

엔시큐어가 포네몬인스티튜트의 ‘2018년 애플리케이션 보안에 대한 글로벌 및 아시아-태평양 연구 결과’ 보고서를 인용해 발표한 바에 의하면 약 75%의 조직이 손상된 애플리케이션으로 인해 지난 한 해 동안 사이버 공격 또는 데이터 유출을 경험했을 가능성이 있으며, 응답자의 64%가 애플리케이션 해킹에 대해 우려하고 있다는 것으로 나타났다. 해당 보고서는 소프트웨어 취약점으로 인해 해킹과 같은 외부 공격이 점차 늘어나고 있음을 단적으로 보여주고 있다.

이 같은 문제들로 인해 소프트웨어 개발 보안 방식인 ‘시큐어코딩(Secure Cording)’의 필요성도 높아지고 있다. 시간이 흐를수록 소프트웨어의 보안 취약점을 악용한 사이버 공격들이 증가하고 있는 지금, 소프트웨어 개발단계부터 보안 취약점을 사전 제거한다면 좀 더 안전한 소프트웨어 이용 환경이 가능할 것이라는 기대다.

국내에서도 2012년부터 전자정부 서비스 개발을 위해 시큐어코딩 의무화를 도입했으며, 그 범위도 점차 확대해가고 있다. 또한 모바일 및 IoT 소프트웨어 개발에도 시큐어코딩 적용을 확대시켜 함으로써 관련 시장 역시 확대되고 있다.

적은 수정 비용으로 높은 효과

시큐어코딩은 취약점 분석을 통해 소프트웨어 개발에 대한 비용절감 효과뿐만 아니라 소프트웨어 보안 향상으로 보안사고를 방지해 기업 경쟁력 증진에 기여한다. 시큐어코딩은 그 방식에 따라 정적 분석, 동적 분석, 운영 분석의 세 가지로 구별된다.

보안 약점은 이를 유발시킬 수 있는 소스코드상의 문제다. 크로스사이트스크립트(XSS)의 예를 들면, 소스코드상 외부에서 입력된 값을 검사하지 않고 HTML을 생성할 때 사용하게 되면 악의적인 사용자가 입력 값에 악성 스크립트를 추가해 XSS를 유발시킬 수 있다. 이때 이러한 소스코드상의 문제를 보안 약점이라고 하고, 악의적인 사용자가 이 보안 약점을 통해서 XSS를 유발시켰다면 이를 보안 취약점이라고 한다. 그래서 소스코드에서 보안약점을 없애면 보안취약점을 방지할 수 있다.

국내에서 가장 많이 사용되는 방법인 정적 분석(SAST: Static Application Security Testing)은 소스코드를 분석해 보안 약점을 검사하는 기술이다. SAST의 첫 번째 장점으로는 소스코드만 있으면 취약점 검출이 가능하므로 개발 단계부터 보안약점을 검출할 수 있다는 점이다.

프로그램의 버그는 최대한 빨리 발견하는 것이 수정 비용이 적게 든다고 알려져 있다. 테스트 단계에서 발견된 버그를 수정하는 비용은 설계 단계에서 발견해 수정하는 비용보다 15배 정도 많다고 알려져 있다. 웹 애플리케이션의 보안 취약점도 수정해야 할 버그라고 본다면 개발 단계에서부터 발견해 수정하는 것이 비용대비 효과적이다.

SAST의 두 번째 장점은 사람의 개입 없이 자동으로 전체 웹 애플리케이션의 보안약점을 검출할 수 있다는 것이다. 그러나 SAST는 소스코드만으로 취약점 검사를 수행하므로 실행 시간에 결정되는 실제 값을 알지 못해 잘못된 취약점 정보를 알려주거나 존재하는 취약점을 검출할 수 없을 수도 있다.

동적 분석은 웹스캐너로도 불리는 DAST(Dynamic Application Security Testing) 도구를 사용해 사람 대신 프로그램이 자동으로 검사하게 된다. 따라서 침투테스트보다는 빠른 시간에 많은 보안 취약점 테스트를 수행하며, 간단한 유형의 취약점을 검출할 수 있다. 이는 기본설정만으로는 현대의 복잡한 웹 애플리케이션을 검사하기 어려워 도구를 사용하는 사람의 숙련도에 따라서 검출 성능이 달라질 수 있으며, 웹 애플리케이션 응답 페이지의 내용만으로 취약점 여부를 확인해야 하므로 취약점을 검출하지 못하거나 잘못 검출하는 경우가 발생한다.

운영 분석(RASP: Runtime Application Self-Protection)은 실행시간 애플리케이션 자가 방어라고 불리는 새로운 기술이다. 가트너에서 2014년에 혁신적인 기술로 소개된 바 있으며, 5~10년 내에 일반적으로 적용 가능할 것으로 예상하고 있다. RASP는 운영 단계에서 적용 가능한 보안 기술로, 실행 중인 애플리케이션에 외부로부터의 공격을 탐지하고 방어하는 기능을 자동으로 부여하는 것이 특징이다.

RASP가 애플리케이션에 자가 방어 기능을 부여하는 방법은 크게 두 가지다. 하나는 JVM이나 닷넷(.Net)과 같은 가상머신에서 수행되는 애플리케이션의 경우 가상머신에서 제공하는 코드수정을 기능을 사용하는 것이다. JVM의 예를 들면 자바 클래스 파일이 가상머신에 로드될 때 클래스 파일을 수정해 SQL 인젝션을 검출하는 기능을 가진 코드를 SQL을 수행하는 명령문전에 수행하도록 하여 SQL 인젝션을 방지할 수 있다. 또 다른 방식으로는 JVM 자체를 수정해 자가 방어 기능을 부여하는 방법이다.

RASP의 장점은 애플리케이션의 내부 데이터와 실행흐름을 확인해 정확한 검출이 가능하다는 것이다. 애플리케이션 내부에서 입력 데이터를 직접 확인 가능하기 때문에 프로토콜이나 인코딩에 관계없이 외부 데이터를 확인할 수 있으며, 복잡한 설정 없이도 대부분의 공격을 방어할 수 있다.

RASP는 기본적으로 취약점을 방어하는 기술로써 웹 애플리케이션에 대한 공격을 탐지하고 방어할 수는 있지만, 웹 애플리케이션에 어떤 취약점이 존재하는지 알려 주지 못한다는 문제가 있다. 또한 각 운영하고 있는 웹 애플리케이션에 모두 적용해야 하는 번거로움도 존재한다.

국내 시큐어코딩 시장 경쟁 본격화

파수닷컴은 시큐어코딩 솔루션 ‘스패로우’를 별도 법인으로 분리 독립시켜 시장 공략을 강화하고 있다. 스패로우는 소프트웨어 개발 완료 전에도 프로그램 소스코드 상에 존재하는 잠재적인 실행 오류와 코딩 표준 위배사항, 보안약점, 불필요한 코드까지 빠짐없이 검출해 안전한 소프트웨어를 개발할 수 있도록 지원하는 정적 분석도구다.

스패로우는 실행오류와 함께 MISRA, JPL, BSSC, HIS 등 다양한 산업의 국제 표준 규격은 물론, 행정자치부 소프트웨어개발보안 가이드, CWE, OWASP, CERT를 지원함으로써 품질과 보안 영역 모두 포괄적으로 적용할 수 있다. 또한 GS인증과 ISO26262인증을 통해 품질과 기술력을 검증 받았으며, 국내 업계 최초로 소스코드 보안약점 분석도구 CC인증 획득은 물론 애플리케이션 보안 테스팅(AST) 매직 쿼드런트에도 등재됐다.

▲ 스패로우 소스코드 분석 플로우

스패로우는 프로그램의 실행 의미를 분석하는 시맨틱(Semantic) 분석 엔진과 정해진 패턴을 바탕으로 빠르고 정확하게 구문을 분석하는 신테틱(Syntactic) 분석 엔진을 복합 적용해 높은 검출력과 낮은 오탐율을 자랑한다. 또한 머신러닝 기술로 검출 이슈에 대한 수정 편의성을 높였다.

이와 더불어 파수닷컴은 다양한 도구들을 개별적으로 사용하는 것에 그치지 않고 각 개별 기술로는 검출하지 못하는 보안 취약점을 검출하고 통합 관리할 수 있게 하는 ‘인터렉티브허브(InteractiveHUB)’를 제공하고 있다. 이는 소스코드상의 보안약점 및 런타임 오류를 개발 단계부터 검출하는 정적 분석 솔루션(SAST), 개발 완료 후 테스팅 단계에서 보안 취약점을 진단하는 동적 분석 솔루션(DAST), 웹 애플리케이션에 대한 공격을 실시간으로 탐지 및 차단하는 자가 방어 솔루션(RASP), 그리고 이를 모두 통합 관리하는 플랫폼으로 이뤄져 있다.

한컴MDS도 이스라엘의 애플리케이션 보안테스팅 전문기업 체크막스와 총판계약을 체결하고 국내 시큐어코딩 시장 공략에 나섰다. 체크막스는 정적 분석도구 ‘CxSAST’와 오픈소스 취약점을 탐색하는 ‘CxOSA’, 테스트 과정에서 사용하는 동적 분석도구 ‘CxIAST’, 그리고 교육프로그램 ‘코드베이싱(Codebashing)’을 제공한다.

체크막스는 머신러닝으로 학습해 오검출을 줄이고 개발자의 불편을 최소화시킨 것이 특징으로, 소스코드 연관 분석을 통해 개발 시점에 찾아내지 못한 보안약점도 찾낸다. 한국어를 포함한 21개 언어 지원도 강점이다.

오픈소스는 수많은 커뮤니티에서 실시간으로 수많은 취약점 정보가 발표되기 때문에 구축형 솔루션으로는 신종 취약점 정보를 신속하게 업데이트하는데 한계가 있다. 이에 대응하기 위해 체크막스의 오픈소스 검색 엔진은 SaaS 기반으로 운영돼 신종 취약점 정보를 빠르게 업데이트가 가능하다. 화이트소스는 암호화된 해시값을 클라우드에서 분석하기 때문에 개발 소스 정보가 유출될 염려가 없으며, 새로운 취약점을 자동으로 업데이트해서 적용할 수 있다.

<그림> 스패로우 소스코드 분석 플로우

오픈소스 취약점 대비도 필수

리눅스재단이 집계한 바에 따르면 310억 줄 이상의 코드가 오픈소스 리포지터리에 등재됐다. 오픈소스가 점차 늘어나면서 취약점도 늘어나고 있다. 미국 정부는 ‘일반 보안 취약점과 노출(CVE)’ 리스트와 ‘국립 취약점 데이터베이스(NVD)’를 지원하는 방식으로 급증하는 취약점을 추적해왔다. 2017년 CVE 리스트는 역대 가장 많은 1만4712개의 새로운 취약점을 추가했다.

보안 취약점이 발견돼 오픈소스 구성 요소들이 업데이트되더라도, 기업 내부의 소프트웨어 개발팀과 외주 개발자들은 내부에서 자체 개발한 코드와 외부에서 가져온 코드가 복잡하게 통합된 시스템 환경 때문에 모든 오픈소스 소프트웨어의 구성 요소를 효과적으로 추적하기가 어렵다. 이런 점 때문에 기업들은 전문적인 유지보수를 받을 수 있는 상용 제품을 선택하는 경우가 대부분이다.

▲ 미국 신용평가사 에퀴팩스는 알려진 오픈소스 보안 취약점을 방치해 개인정보가 유출되는사고를 당했다.

실제로 미국 신용평가 업체 에퀴팩스는 오픈소스인 아파치 스트러츠의 보안 취약점이 공개된 이후 자바 웹 애플리케이션에서 광범위하게 공격이 발생할 수 있다는 사실이 알려져 기업 및 기관의 대응이 시급하다는 경고가 있었음에도 불구하고 이를 방치했다가 개인정보 유출 사고를 당했다. 이 사례에서 볼 수 있듯이 오픈소스 취약점을 노리는 공격은 점차 늘어나고 있다.

물론 오픈소스를 사용한다 해서 취약점 관리를 전혀 할 수 없는 것은 아니다. 이미 시장에서는 오픈소스 취약점을 관리하는 솔루션들이 앞 다퉈 출시되고 있다.

최근 시놉시스에 인수된 블랙덕소프트웨어는 오픈소스 보안 취약점 관리 솔루션 ‘블랙덕허브’를 출시, 오픈소스 보안 시장 강화에 나섰다. 블랙덕허브는 200만 오픈소스 프로젝트와 2400여 라이선스를 분석한 데이터베이스를 기반으로 개발 또는 양산 중인 소프트웨어에서 사용된 오픈소스 라이선스를 자동으로 식별하고, 라이선스 준수 수준을 분석한다.

또한 8만 보안 취약점에 대한 데이터베이스를 기반으로, 소프트웨어에 포함된 보안 취약점을 탐지해 컴포넌트별 품질 위험도를 분석한다. 오픈소스 사용과 보안 정책을 자동으로 설정 및 시행할 수 있으며, 보안 분석 일정 스케줄링 및 트래킹 기능도 지원한다. 데브옵스 연동으로 개발과 운영 전 분야에서 오픈소스 라이선스 및 보안 취약점 분석을 자동화하며, 개발 및 양산 과정 중에도 새로운 보안 취약점을 지속적으로 모니터링한다.

임베디드 보안 소프트웨어 전문기업 쿤텍도 글로벌 오픈소스 전문기업 화이트소스의 오픈소스 보안 솔루션 ‘화이트소스(WhiteSource)’를 국내에 공급하고 있다. 화이트소스는 이스라엘과 미국에 연구소를 두고 있는 오픈소스 전문기업으로 ‘포레스터웨이브 2017 오픈소스 보안 보고서’에서 동종 제품 중 ‘가장 강력한 제품’으로 평가됐다. 소프트웨어 개발 과정에서 실시간으로 오픈소스 보안 취약점을 찾아내고 수정함으로써 보안을 유지하면서 소프트웨어 개발 프로세스를 가속화하는 ‘데브시크옵스(DevSecOps)’ 구현을 돕는다.

시놉시스 국내 총판인 한국마이크로시스템은 소프트웨어 품질 관리와 보안을 위한 정적분석 도구 ‘커버리티’, 퍼징 테스트 툴 ‘디펜직스’, 오픈소스 보안 취약점 관리 솔루션 ‘프로테코드’ 등을 시장에 공급하고 있다. 지난해 시놉시스가 블랙덕소프트웨어를 인수하면서 블랙덕 제품군 총판까지 맡고 있다. 이 중 프로테코드는 VM웨어, GM 등 글로벌 기업에서도 널리 사용되고 있으며, 디펜직스는 GM, BMW, 커넥티드카 제조사를 비롯해 다양한 산업군에서 사용되고 있다.

지난 2017년 베라코드를 인수한 CA테크놀로지스도 SaaS 기반 소프트웨어 분석 서비스를 제공하고 있다. 이를 활용하면 기업은 개발 및 배포 체인에서 가장 저렴한 비용으로 취약점을 효과적으로 제거하고 생산 환경에서 위협을 차단할 수 있다는 설명이다.

베라코드는 하나의 중앙집중식 플랫폼을 통해 관리되며, 업계 최고 수준의 기술과 보안 전문가의 강력한 조합으로 프로세스에 대한 조정의 코칭과 지침을 제공한다. CA 베라코드의 통합 플랫폼은 소프트웨어 라이프사이클의 각 단계에 적합한 솔루션을 통해 시작부터 생산까지 애플리케이션의 보안을 평가하고 향상시킨다. 비즈니스가 구축, 구입, 조립하는 웹 및 모바일 애플리케이션은 물론 외부 컴포넌트의 안전성을 보장한다.

기업은 CA 베라코드를 이용해 애플리케이션 보안에 대한 개발자의 요구에 부합하는 동시에 비즈니스에 대한 보고 및 보증 요건을 충족시킬 수 있다. 개발자를 위해 설계된 툴, API, 워크플로우 통합, 취약점 수정을 위한 팁은 속도와 혁신을 유지하면서 보안을 개발 라이프사이클의 한 부분으로 활용하도록 돕는다. CA 베라코드는 2018년 가트너 매직 쿼드런트 ‘애플리케이션 보안 테스팅’ 부문에서 5년 연속 리더로 선정되기도 했다.



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.