본문 바로가기

Information Security/Hacking

시큐어 코딩 (Secure Coding)

반응형

* 시큐어 코딩 : 잠재적 보안 약점을 제거하는 보안을 고려한 소프트웨어 설계 및 구현 활동

 

 

 

* 시큐어 코딩 참조

- KISA에서 '소프트웨어 개발 보안 가이드' 지속 업데이트 및 배포

- 해당 자료는 2019년 11월 기준 설계 단계(총 20개) / 구현 단계(총 47개) 구성

 

 

 

* 시큐어 코딩 설계 단계 : 개발 진행 전 설계 산출물을 기반으로 확인하는 단계

종류 내용
입력 데이터 검증 및 표현 입력에 의해 발생하는 취약점을 제거
보안 기능 접근 제어, 권한 관리, 비밀번호 설계 취약점 제거
에러 처리 에러 및 오류 상황의 불충분한 사전 정의로 데이터 유출
세션 통제 세션 간 데이터 공유 / 미허가 사용자 접근 / 만료 시간 미산정 약점 제거

 

 

 

* 시큐어 코딩 구현 단계 : 코드를 이용보안 약점을 제거하는 단계

단계 내용 예시
입력 데이터 검증 및 표현 검증 누락 / 부적절한 검증/ 잘못된 형식 검증 XSS, SQL Injection
보안 기능 보안 기능(인증, 접근제어, 기밀성, 암호화 등)의 설정 미흡을 제거 중요 정보 평문 저장, 하드 코딩된 비밀번호 등
시간 및 상태 병렬 프로세스나 스레드 환경의 취약점 제거 경쟁 조건, 종료되지 않은 반복문 또는 재귀 함수
에러 처리 처리하지 않거나 불충분 처리한 에러를 제거, 관리 부적절한 예외 처리, 오류 상황 대응 부재
코드 품질 복잡한 소스, 가독성 저하, 코드 오류 취약점 제거 Null Pointer 역참조
캡슐화 중요 데이터의 불충분한 캡슐화로 인한 비인가자 접근 허용 방지 퍼블릭 메서드로부터 반한된 프라이빗 배열
API 오용 의도된 용도에 맞지 않는 취약한 API 사용 방지 DNS 룩업에 의존한 보안 결정
반응형