| 시큐어코딩 법적의무화 체크유형 7가지 | 2014.03.14 | ||
시큐어코딩 필수 47개 보안취약점 제거하고 지원할 수 있어야
[보안뉴스 김경애] 카드사 개인정보 유출을 비롯해 통신사 개인정보가 연이어 유출되면서 정보보안 이슈가 뜨겁다. 특히 지난해에는 3.20사이버테러 등 대규모 사이버 사고가 잇따라 발생함에 따라 정부가 웹 소스코드의 보안성 검증 강화에 나서고 있다.
▲12일부터 14일까지 열리고 있는 일산 킨텍스 ‘전자정부 정보보호 솔루션페어 컨퍼런스’에서 소프트포럼의 윤영진 차장이 시큐어코딩 의무화에 대해 설명하고 있다. 이에 따라 지난 1월 이후부터는 개발비 20억 이상의 모든 공공기관의 정보화 사업에 시큐어코딩이 의무적으로 적용되고 있다. 대상은 전체 65%이고, 2015년 1월 이후부터는 감리대상 전 사업에 대해 시큐어코딩 의무화가 적용된다. 또한 안행부는 모바일 앱 소스코드에 대한 보안성 검증을 의무화할 계획이라고 밝혔다. 시큐어코딩은 SW 개발과정에서 개발자 실수, 논리적 오류 등으로 인해 SW에 내제된 보안취약점을 최소화하는 한편, 해킹 등 보안위협에 대응할 수 있는 안전한 SW를 개발하기 위한 일련의 과정을 의미한다. 이에 공공기관 및 기업은 안전한 정보보호 관리를 위해 시큐어코딩에 관심을 보이고 있다. 이와 관련 12일부터 14일까지 열리는 ‘전자정부 정보보호 솔루션페어 컨퍼런스’에서 소프트포럼의 윤영진 차장은 “시큐어코딩 구축 방안 시 점검항목은 안행부 SW보안취약점 47개 항목, CWE/SANS Top25, OWASP Top 10, CERT 시큐어코딩 필수 보안 취약점을 제거해야 한다”고 말했다. 그 가운데 법적의무화 시큐어코딩 언어는 자바(JABA) C, 안드로이드이며, 의무화 유형은 △입력데이터 검증 및 표현 △보안기능 △시간 및 상태 △에러처리 △코드오류 △캡슐화 △API 오용이다. 입력데이터 검증 및 표현의 경우는 SQL 삽입이나 크로스 사이트 스크립트(XSS) 등 15개, 보안기능은 부적절한 인가, 중요한 자원에 대한 잘못된 권한 허용 등 16개, 시간 및 상태는 경쟁조건, 종료되지 않는 반복문, 재귀함수 등 2건, 에러처리는 오류메시지를 통한 정보노출, 오류상황 대응 부재 등 3개, 코드오류는 부적절한 자원해제 등 4개, 제거되지 않고 남은 디버그 코드, 시스템 데이터 정보 노출 등 캡슐화 항목 5개, 취약한 API 사용 등 API 오용 2건이다. 공격 예시를 살펴보면 XSS(Cross Site Scripting)의 경우 웹 페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도할 수 있다. 이를 위한 안전한 코딩은 일반적인 경우에는 사용자가 문자열에 스크립트를 삽입해 실행하는 것을 막기 위해 사용자가 입력한 문자열에서<,>, &,“,” 등을 replace 등의 문자 변환 함수나 메소드를 사용해 &It, >, &, "로 치환하면 된다. 또한 SQL Injection 공격의 경우, DB와 연동된 웹 애플리케이션에서 입력된 데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력 폼 및 URL 입력란에 SQL 문을 삽입해 DB로부터 정보를 열람하거나 조작할 수 있다. 특히 외부 입력이나 외부 변수로부터 받은 값이 직접 SQL 함수의 인자로 전달되거나, 문자열 복사를 통해 전달되는 것은 위험하다. 따라서 인지화된 질의문을 사용해야 한다. 윤 차장은 “보안취약점을 최소화하기 위해 설계단계부터 보안을 고려해 개발해야 한다”며 “특히 시큐어코딩 진단도구의 경우 소스 취약점에 대한 근원전인 문제 해결과 함께 개발자의 편의를 고려한 결과 리포팅이 이뤄져야 하며, 오탐율이 적어야 한다고 말했다. 또한 그는 “47개 보안취약점 등을 완벽하게 지원할 수 있어야 한다”고 덧붙였다. [김경애 기자(boan3@boannews.com)] <저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지> |
|||
|
|