이번 시간에는 SDLC의 구현단계부터 적용 가능한 정적분석기술을 활용하여 소스코드 내 잠재 되어있는 보안약점을 점검하고, 보안위협에 선제 대응할 수 있는 시큐어코딩에 대해 알아보도록 하겠습니다.
1. 시큐어 코딩이란?
TTA 정보보호 기술용어에 따르면 안전한 소프트웨어 개발을 위해 소스 코드등에 있을 수 있는 잠재적인 보안 취약점을 제고하고 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발과정에서 지켜야 할 일련의 보안 활동을 의미하며 소프트웨어 개발보안이라고도 합니다. 미국은 2002년 연방정보보안관리법(FISMA)을 제정해 시큐어 코딩을 의무화했고, 마이크로소프트는 윈도 비스타(Windows Vista)를 개발할 때 시큐어 코딩을 도입했습니다. 우리나라에서는 2012년 12월부터 ‘소프트웨어 개발 보안’ 제도를 시행하여 시큐어 코딩을 의무화하였습니다.
<출처 – TTA 정보통신 용어 사전>

그림1. 행정기관 등에 적용되는 SW개발보안 제도 변화 추이
사이버 보안 위협이 갈수록 증가하는 오늘날, 시큐어 코딩은 선택이 아닌 필수적인 요소로 자리잡았습니다. 잘못된 코딩으로 인해 발생하는 보안 취약점은 공격자에게 악용될 수 있으며, 기업에 큰 손실을 초래할 수 있습니다. 따라서, 모든 개발자는 시큐어 코딩 원칙을 숙지하고 이를 실천해야 합니다.

그림2. 산업별 컴플라이언스 이슈 대응 현황
시큐어 코딩을 의무적으로 적용을 해야 되는 사업들이 있습니다. 아래는 그중 하나인 방위사업 관리규정입니다.
| 방위사업관리규정(방위사업훈령 제864호, 2024.7.1.) 제49조(연구개발의 수행 등) : ④ … 무기체계 소프트웨어가 정확하고 일관성 있게 수행될 수 있도록 소스코드내의 잠재적 결함을 최소화시키는 신뢰성 확보 활동 및 보안취약점을 제거하기위한 보안성 확보 활동을 연구개발 단계별로 수행하도록 관리하여야 한다. |
무기체계 소프트웨어 개발 및 관리 매뉴얼 – [부록7] 소프트웨어 신뢰성/보안성시험절차 중 5.소프트웨어 신뢰성/보안성 시험 시기 내용중 라) 항목을 살펴 보면 “보안성시험은 전장관리정보체계에 대해 행안부의 『소프트웨어 개발보안 가이드』 에 따른 보안성시험계획 준수여부를 시험한다”고 되어 있습니다. 이러한 보안성 시험 요건 충족을 위해서는 구현단계에서 알려진 보안약점 및 취약점을 쉽게 검사할 수 있는 시큐어코딩 점검도구를 활용하는 방법이 있습니다.

그림3. 소스 개발 과정에서 적용 가능한 시큐어코딩
현재 시큐어코딩 가이드라 불리우는 행정안전부의 소프트웨어 개발보안 가이드(재정 : 2021)버전의 경우, 설계 단계의 보안설계 기준 20개와 구현단계 보안약점 제거 기준 49개를 갖추고 있을 정도로 매우 방대한 양입니다.


그림4. 행정안전부 소프트웨어 개발보안 가이드 2021
따라서, 본 포스팅으로 다 설명드리기는 어렵기 때문에 차후 포스팅을 통해 자세히 알려드릴 예정입니다.
지금까지 시큐어코딩에 관한 제도의 변화 추이와 방위사업청 무기체계 소프트웨어 관리 매뉴얼에서 다루는 보안성 시험 중 시큐어코딩이 의미하는 바에 대해 알아보았습니다. 다음시간에는 위배 사례 및 대응책에 대해서 알아보도록 하겠습니다.
모아소프트는 국내 최초로 시큐어코딩 CC인증을 획득하고 높은 점유율을 보유하고 있는 Sparrow SAST를 비롯하여 다양한 보안관련 제품들에 대한 교육 프로그램 운영 및 기술지원 등을 수행하고 있습니다.
보안을 더해 더욱 안전한 비즈니스를 원하신다면 지금 바로 모아소프트에서 시작하세요.
관련문의: 02-6945-2156 / Sparrow – (주)모아소프트 (moasoftware.co.kr)








