전자정부 응용 개발을 위한 시큐어 코딩 가이드

  • 한경숙 (한국산업기술대학교 컴퓨터공학부) ;
  • 표창우 (홍익대학교 컴퓨터공학과)
  • Published : 2015.02.28

Abstract

컴퓨터와 네트워크가 보안 상 안전하려면 무엇보다 사용되는 시스템 및 응용 프로그램에 보안약점이 없어야 한다. 보안약점은 공격자가 이용하여 제어 흐름을 탈취하거나 원하는 정보를 유출할 수 있게 하는 프로그램 상의 불완전한 부분을 뜻한다. 보안약점이 없는 프로그램을 만들기 위한 방법으로 시큐어 코딩 규칙을 정의하고, 프로그램 개발 단계에서 이를 적용하게 할 수 있다. 코딩 과정에서 시큐어 코딩 규칙을 준수하여 보안약점 발생을 억제하는 방법은 예방적 조치이다. 아무런 규칙 없이 코딩을 진행한 후 보안약점을 분석, 제거하는 방법보다 프로그래머들에게 부담이 적고, 정적 분석을 사용하여 보안약점을 분석하는 도구들의 치명적인 약점인 오탐 비율을 낮춘다. 이 글은 2014년까지 소프트웨어 개발 보안 센터를 중심으로 진행된 행정자치부의 C/C++, Java, PHP 프로그래밍 언어를 위한 시큐어 코딩 가이드에 대하여 설명한다.

Keywords

References

  1. "Common Vulnerabilities and Exposures," http://cve.mitre.org/
  2. "Common Weakness Enumeration," http://cwe.mitre.org/
  3. Gray McGraw, "Software Security: Building Security in," Addison-Wesley, 2006
  4. "CERT," http://www.cert.org/
  5. Ivan Arce, Elias Levy, "The rising threat of vulnerabilities due to integer errors," Security & Privacy, IEEE, 2003. 8
  6. Alef One, "Smashing The Stack For Fun And Profit," Phrack Magazine, Vol. 7, No. 49. 1996
  7. 행정안전부, "전자정부 소프트웨어 개발.운영자를 위한 소프트웨어 개발보안 가이드," 행정안전부, 2012. 5
  8. 행정안전부, "정보시스템 구축 운영 지침(행정안전부고시 제2011-36호)," 행정안전부, 2012. 9
  9. "고려대, '소프트웨어 개발보안 연구센터,' 선정," http://www.newswire.co.kr/newsRead.php?no=624730
  10. "Red Hat Bugzilla,", https://bugzilla.redhat.com/
  11. "Coverity Prevent," http://www.coverity.com/
  12. "HP Fortify Static Code Analyzer," http://www8.hp.com/us/en/software-solutions/static-code-analysis-sast/
  13. "Klockwork," http://www.klockwork.com/
  14. "LDRA Software Technology," http://www.ldra.com/
  15. "CodeSonar," http://www.grammatech.com/codesonar
  16. "Sparrow," http://www.fasoo.com/site/fasoo/sourcecodeanalysis/sparrow.do
  17. "SecurityPrism," http://www.gtone.co.kr/main/ag/sp.php
  18. "ROSE compiler infrastructure," http://rosecompiler.org/
  19. "Splint-Secure Programming Lint," http://www.splint.org/
  20. "CppCheck," http://cppcheck.sourceforge.net/
  21. "Clang Static Analyzer," http://clang-analyzer.llvm.org/
  22. "PMD," http://pmd.sourceforge,net/
  23. "Findbugs," http://findbugs.sourceforge,net/
  24. Godefroid, Patrice, Michael Y. Levin, and David A. Molnar. "Automated Whitebox Fuzz Testing." PLDI'08, Tucson, USA, July 2008
  25. 방지호, 하란, "소프트웨어 보안약점 기반의 오픈소스 보안약점 진단도구 분석," 한국정보과학회 2013 한국컴퓨터종합학술대회, 2013. 6
  26. "NIST SAMATE," http://samate.nist.gov/
  27. "ISO/IEC TS 17961:2013 Information technology --Programming languages, their environments and system software interfaces -- C secure coding rules," http://www.iso.org/iso/