Secure Coding(시큐어 코딩)이란?
'Secure Coding(시큐어 코딩)' 또는 '소프트웨어 개발보안'은 소프트웨어 개발과정에서 개발자의 실수, 논리적 오류 등으로 인한 보안취약점 및 약점들을 최소화해 사이버 보안 위협으로 부터 안전한 소프트웨어를 개발하기 위한 일련의 보안활동을 의미합니다.
Secure Coding의 필요성
- 개인정보보호 : 소프트웨어는 사용자의 개인정보를 다루는 경우가 많다. 보안 결함이나 취약점이 존재하면 해커가 개인정보를 탈취하거나 유출할 수 있으므로, 개인정보보호를 위한 보안이 필요하다.
- 기업데이터보호 : 기업은 고객정보, 경영데이터, 기밀정보 등 많은 중요한 데이터를 소프트웨어를 통해 다룬다. 이러한 데이터를 보호하지 않으면 기업은 큰 손실을 입을 수 있다.
- 서비스 가용성 : 보안 결함으로 인해 시스템이 공격을 받거나 마비되면 비즈니스 서비스의 가용성이 크게 저하될 수 있다. 이는 기업의 신뢰성과 수익에 영향을 준다.
- 법률 준수 : 많은 규젳 및 법률이 개인정보보호 및 데이터보안을 강제하고 있다. 소프트웨어 개발 보안을 신경쓰지 않으면 법률위반으로 인한 벌금이나 소송 위험을 초래할 수 있다.
- 브랜드 이미지 : 보안 침해 사건이 발생하면 기업의 브랜드 이미지가 훼손될 수 있으며, 이는 장기적인 영향을 미칠 수 있다.
구현단계 보안약점 제거 기준
- 입력데이터 검증 및 표현 : SQL 삽입, 코드 삽입, 경로 조작 및 자원 삽입 등 16개 항목
- 보안기능 : 적절한 인증 없는 중요한 기능 허용, 부적절한 인가 등 16개 항목
- 시간 및 상태 : 경쟁조건, 종료되지 않은 반복문 또는 재귀함수 2개 항목
- 에러처리 : 오류 메시지 정보노출, 오류상황 대응 부재 등 3개 항목
- 코드오류 : Null Pointer 역참조, 부적절한 자원 해제 등 3개 항목
- 캡슐화 : 잘못된 세션에 의한 데이터 정보노출 등 4개 항목
- API 오용 : DNS lookup에 의한 보안결정 1개 항목
가이드 문서
해당 카테고리(Secrue Coding-시큐어코딩 가이드)에 업로드하는 모든 게시글은 'Python 시큐어코딩 가이드(2022) / KISA(한국인터넷진흥원)'를 보고 개인공부를 위해 작성할 예정입니다.
- Python 시큐어코딩 가이드(2022) / KISA
- 가이드 문서 다운로드 : https://www.kisa.or.kr/2060204/form?postSeq=13&lang_type=KO#fndoDocumentPreview
KISA 한국인터넷진흥원
www.kisa.or.kr
- 본 가이드는 파이썬을 기반으로 시큐어 코딩 기법, 관련 코드 예제를 제공하여 안전한 소프트웨어 개발에 도움을 주기위해 만들어진 문서입니다.