공공기관을 중심으로 성장해온 국내 시큐어코딩 시장은 올해 이후 민간 분야로 확대될 예정입니다. 비교적 다루는 소스코드들이 비슷한 공공 시장과 달리, 민간 시장은 산업 분야와 개발하는 서비스에 따라 작성되는 소스코드의 종류와 형태가 다릅니다. 시큐어코딩 시장을 공략하는 회사 입장에서는 또 다른 국면을 맞게 되는 셈입니다. 이 상황에서 개발자에게 보안도 함께 신경쓰라고 한다면 업무량에 한계가 올 것이고, 개발자의 스트레스 또한 커질 것입니다. 개발자는 애플리케이션을 개발하고 작동하게 만드는 역할을 합니다. 그렇기 때문에 보안을 함께 신경쓸 수 있도록 시큐어코딩 도구가 존재합니다. 보안을 잘 모르는 사람도 활용할 수 있게 만든 제품이 바로 스패로우 입니다.
시큐어코딩(소프트웨어(SW) 개발 보안)의 필요성
시큐어코딩은 애플리케이션 소스코드 작성 과정에서 생기는 보안 취약점을 분석해 제거하는 기술을 뜻합니다. 조직 내 보안 담당자가 사용자인 타 보안 제품과 달리, 소스코드를 작성하는 개발자가 사용자가 됩니다. 상대적으로 보안에 대한 이해 수준이 미숙한 만큼, 보안 도구를 사용하는 데 있어서도 역량 차이가 생길 수 있습니다.스패로우는 사용자인 개발자가 쉽게 쓸 수 있는 ‘사용성’이 시큐어코딩 도구의 필수 조건이기 때문에 이러한 대표적인 장점을 보유하고 있습니다. 또한 도구의 성능 개선과 컨설턴트를 통한 서비스 지원에 꾸준히 투자하면서 성장했습니다.
정적 분석 솔루션 Sparrow SAST
다양한 분석 기술을 바탕으로 소스코드 상의 보안약점을 정확하고 빠르게 검출하는 정적 분석 도구인 Sparrow SAST는 국내/외 컴플라이언스 및 표준 가이드를 준수하며 790여 개의 보안 약점 점검 항목과 20개 이상의 보안 언어(Java, C/C++, Python 등)를 지원하는 솔루션입니다.
동적 분석 솔루션 Sparrow DAST
소프트웨어 개발이 끝난 이후, 소스코드는 바뀌지 않지만 실제로 운영될 때에는 또다른 사이버 공격을 받을 가능성이 존재합니다. 소프트웨어가 사용되는 과정에서 취약점을 테스트 해주는 솔루션이 바로 Sparrow DAST입니다.
시큐어코딩, 개발과 보안이 융합된 기술 분야인 만큼 개발자의 적극적인 활용 필요
시큐어코딩 도구는 소스코드를 분석해 해당 SW가 출시되면 어떤 취약점이 있고, 어떤 공격이 발생할 수 있는지 알려줍니다. 이 때 도구를 사용하여 분석한 내용이 어마어마하게 많은 내용이 생성됩니다. 해당 시장에 외산 제품만 있었을 때, 기업들이 비싼 돈을 들여 솔루션을 사도 잘 사용하지 않는 이유였습니다. 길지 않은 소스코드를 넣었는데도 개선사항이 몇 천개씩 검출되었으나, 이 때 발생한 예상 취약점 수천개가 다 적합하지 않았기 때문입니다. 즉, 오탐 문제가 존재했습니다.
개발자로선 우선 시큐어코딩 도구가 취약점을 정확하게 찾아주고, 정탐으로 판별된 취약점에 대해선 어떻게 개선해야 할지 알려주는 식으로 작동해야 편리한 사용을 할 수 있습니다. 개발자는 또 개발 역량과 보안에 대한 인지 수준이 천차만별이기 때문에 스패로우의 경우 ‘액티브 서제스쳔’ 기능을 통해 대체할 수 있는 소스코드를 제시해줍니다. 취약점을 잘 찾고, 정탐과 오탐을 잘 분류하며, 어떻게 개선해야 할지 알려주는 강점들을 가지고 있습니다.
시큐어코딩을 사용하는 과정에서 분석 내용을 잘 이해하지 못하는 경우가 발생하는데, 스패로우 도입 시 보안 전문가인 컨설턴트들이 분석 내용을 해석하고 조치합니다.
국내 시큐어코딩 보급 현황
공공 시장은 지난 2012년부터 전자정부 사업에 의무화해 시장이 서서히 커져왔습니다. 민간 분야에서의 시큐어코딩 시장은 이제 시작입니다.
[활동 주체별 개발 보안 활동. 출처=한국인터넷진흥원 소프트웨어 개발 보안 가이드]
작년 SW산업진흥법이 통과되면서 과학기술정보통신부에서 시큐어코딩 진흥 사업을 추진할 수 있게 되었고, 자율주행차나 사물인터넷(IoT), 철도나 항공에 SW의 비중이 엄청 높아지고 있습니다. 여기서 오류가 나거나 해킹을 당하면 대형 사고가 발생할 수 있기 때문에 정부가 국민 안전을 위해 시큐어코딩 관련 기준을 마련하고 준수하게 한다는 계획을 갖고 있습니다.
공공 분야와 민간 분야에 적용되는 시큐어코딩의 차이점은?
공공에 적용되는 시큐어코딩은 단순합니다. 지방자치단체 운영 홈페이지나, 대국민 민원 사이트 또는 기관 내부 인프라웨어 등이 주를 이루고 있습니다. 자바로 개발돼 있고, 그에 맞춰서 시큐어코딩을 제공합니다.
공공 분야를 주관하는 행정안전부의 경우 CC인증을 받은 도구여야 한다는 조건 및 49개 항목의 기준을 뒀습니다. 민간은 SW 개발 환경과 분야마다 다르며 자동차, 철도, 항공, 헬스케어 등 각 분야마다 시큐어코딩 기준을 마련하는 것부터 쉽지 않습니다. 항공에 적용되는 기준을 헬스케어에 그대로 도입할 수도 없습니다. 개발 환경과 쓰는 언어가 다 달라서 맞춤형 기준을 만들어야 하기 때문입니다. 언어나 개발 도구가 산업별로 특화되어있고, 같은 개발 환경이 아니기 때문에 발생할 수 있는 취약점도 다릅니다. 글로벌 표준 ‘OWASP’이 변화하는 동향도 보면, 웹, 모바일, IoT 등 바뀌는 IT 환경에 따라 계속 주요 취약점이 변화하는 추세입니다.
Sparrow(스패로우)로 DevSecOps 구현
데브섹옵스 (DevSecOps)는 보안이 개발 프로세스의 필수 부분이 되는 방식을 말합니다. 데브섹옵스를 구현하기 위해, SW 개발 환경에 시큐어코딩을 어떻게 녹여야 할지에 대한 고민이 필요합니다. 최근 가져온 오픈소스가 업데이트되면 보안 취약점 문제도 바뀔 수 있는 점에 대해서는 대해서는 오픈소스관리도구가 필요합니다. 오픈소스관리도구란 오픈소스를 도입하거나, 도입한 소스코드의 버전이 바뀌면 라이선스 문제 있을 수 있다고 알려주는 솔루션입니다. 이렇듯 시큐어코딩도 종합적으로 활용하지 않으면 보안 구멍이 발생하게 됩니다. 취약점 원인부터 취약점 발생 지점까지의 과정을 파악 가능하고 검출된 취약점에 대한 실제 소스코드의 자동 수정을 제안하는 Sparrow SAST로 소스코드 상의 보안약점을 정확하고 빠르게 분석하고, 브라우저에서 수행가능한 다양한 이벤트를 재현하여 보안 취약점을 검출하고, 오픈소스 웹 라이브러리 취약점 분석을 제공하는 Sparrow Dast로 안전한 개발 환경을 시작하세요. 국내 최초로 시큐어코딩 진단도구 CC인증을 획득한 스패로우는 공공기관을 비롯한 다양한 산업분야의 수요층을 만족시키는 등 시큐어 코딩 시장에서 우위를 선점하고 있습니다.