시큐어 코딩이란?
시큐어 코딩이라고 개발시점에 보안성을 감안해서 제작하도록 명시한 방법이 있는데
우리나라 법직으로 강제성이 있나요?
있다면 적용대상 범위는 어디인가요?
행정안전부는 2012년 5월에 시큐어 코딩 의무화 법안을 발표하면서 당해 12월부터 개발비 40억 원 이상 정보화 사업에 시큐어 코딩 적용을 의무화 하였습니다. 따라서 2012년 12월 이후 개발비 40억원 이상의 정보화 사업을 추진하는 모든 공공기관은 시큐어 코딩 준수사항을 이행해야 합니다. 이 법안은 단계적으로 강화되어 2014년 1월 부터는 20억원 이상의 모든 공공기관 정보화 사업에 적용되며, 2015년 1월부터는 감리대상 전 사업에 대해서 적용됩니다.
현재 행정안전부 시큐어코딩이 적용되는 대상 언어는 Java, C 그리고 안드로이드이며, 소프트웨어 업체는 SQL 삽입(SQL Injection), 크로스사이트스크립트(Cross Site Script) 등 43개의 보안 취약점을 제거해야 합니다.
시큐어 코딩에 정통한 개발자가 코드를 한 줄 한 줄 검사하는 방법이 있습니다. 행정안전부의 시큐어 코딩은 솔루션 도입을 강제하지 않기 때문에 이렇게 검사해도 됩니다. 하지만 수 십만, 수 백만 줄이나 되는 소프트웨어 소스코드를 사람이 일일히 따라가면서 보는 것은 거의 불가능에 가깝습니다. 게다가 사람이 수작업으로 코드를 검사하는 것은 검사 결과에 신뢰성이 떨어질 뿐더라 투자 대비 효용으로 볼 때 추천할만하지 않은 방법입니다.
두 번째 방법은 솔루션(정적분석도구)을 도입하는 것입니다. 행정안전부 시큐어 코딩을 지원하는 솔루션을 도입하면 빠르고 정확하게 소스코드를 검사할 수 있습니다. 게다가 이 도구를 사용하면 시큐어 코딩은 물론 소스코드에 잠재되어 있는 오류도 탐지하기 때문에 프로그램 안정성도 크게 높일 수 있습니다. 결과적으로 소프트웨어의 보안성과 안정성이 강화되어 신뢰성있는 소프트웨어를 개발할 수 있으며, 이는 곧 고객 신뢰도 향상, 매출 증대로 이어질 수 있는 초석이 됩니다.
참고로 말하자면, 제가 개발에 참여하고 있는 솔루션인 Sparrow 역시 행정안전부 시큐어 코딩을 지원합니다! CERT도 지원하며 파수닷컴이 국내 최초로 인증을 받은 국제 표준 가이드 CWE 도 지원합니다.