프로필사진
owgno6
CODELIB
Recent Posts
Recent Comments
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total

티스토리 뷰

1. 시큐어코딩(secure coding) 이란?

소프트웨어(SW)를 개발함에 있어 개발자의 실수, 논리적 오류 등으로 인해 SW에 내포될 수 있는 

보안취약점(vulnerability)을 배제하기 위한 코딩 기법을 뜻 한다. 




2. 시큐어코딩의 국내ㆍ외 배경

SW 개발보안의 중요성을 인식한 미국의 경우, 국토안보부(DHS)를 중심으로 시큐어코딩을 포함한 

SW 개발 전과정(설계ㆍ구현ㆍ시험 등)에 대한 보안활동 연구를 활발히 진행하고 있다. 

국내의 경우 2009년부터 전자정부서비스 개발단계에서 SW 보안약점을 진단하여 제거하는 시큐어코딩 관련 연구를 진행하면서,2012년까지 전자정부지원사업 등을 대상으로 SW 보안약점 시범진단을 수행하였다. 

또한, 2012년 년 6월부터는 행정안전부 '정보시스템 구축ㆍ운영 지침(행안부고시 제2012-25호)'이 개정ㆍ고시 됨에 따라 전자정부서비스 개발시 적용토록 의무화 되었다.




3. 앞으로 공부에 참고할 가이드 문서 및 구성

JAVA 시큐어코딩 가이드 / 행정자치부(KISA) / 2016.03 

download : https://www.kisa.or.kr/public/laws/laws3_View


* 행정안전부(KISA)에서 전자정부서비스(공공서비스) 개발시 가장 많이 사용되는 개발 언어인 Java 기반의 시큐어코딩 기법을 예제 위주로 제시함으로써, 개발 실무에 활용도를 높이도록 작성된 문서




 - 가이드 문서 구성


 Java 기반으로 정보시스템 개발시, 고려해야할 보안약점(83개) 설명과 보안대책 이해를 위한 코딩 예제(Bad/Good)를 제시


 # 정보시시스템 구축ㆍ운영 지침의 진단시 필수 포함해야 하는 보안약점 43개 포함 #


 

    [입력데이터 검증 및 표현] 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 

    형식지정으로 인해 발생할 수 있는 보안약점 -* SQL 삽입, 자원 삽입, 크로스사이트 스크립트 등 26개


    [보안기능] 보안기능(인증, 접근제어, 기밀성, 암호화, 권한관리 등)을 적절하지 않게 구현시 발생할 수 

    있는 보안약점 -* 부적절한 인가, 중요정보 평문 저장(또는 전송) 등 24개


    [시간 및 상태] 동시 또는 거의 동시 수행을 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 

    환경에서 시간 및 상태를 부적절하게 관리하여 발생할 수 있는 보안약점 -* 경쟁조건, 제어문을 

    사용하지 않는 재귀함수 등 7개


    [에러 처리] 에러를 처리하지 않거나, 불충분하게 처리하여 에러정보에 중요정보(시스템 등)가 포함될 때

    발생할 수 있는 보안약점 -* 취약한 패스워드 요구조건, 오류메시지를 통한 정보노출 등 4개


    [코드오류] 타입변환 오류, 자원(메모리 등)의 부적절한 반환 등과 같이 개발자가 범할 수 있는 코딩오류로

    인해 유발되는 보안약점 -* 널 포인터 역참조, 부적절한 자원 해제 등 7개


    [캡슐화] 중요한 데이터 또는 기능성을 불충분하게 캡슐화하였을 때, 인가되지 않는 사용자에게 데이터 

    누출이 가능해지는 보안약점 -* 제거되지 않고 남은 디버그 코드, 시스템 데이터 정보노출 등 8개


    [API 오용] 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API를 사용하여 발생할 수

    있는 보안약점 -* DNS Lookup에 의존한 보안결정, 널 매개변수 미조사 등 7개




'Secure Coding' 카테고리의 다른 글

02 시큐어코딩 - SQL 삽입  (0) 2018.08.15
댓글