안전한 소프트웨어 개발을 위해 개발단계에서 개발자의 실수나 오류로 인해
해킹 등의 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고,
보안을 고려하여 기능설계 및 구현하는 일련의 과정
공공기관에서는 필수 진단사항으로 수행하고 있다.
개발자의 개발코드에서부터 취약사항이 존재하기 때문에 시큐어 코딩과 웹 취약점 진단을 병행되어야 하는 것이 바람직하다.
구분 | 내용 | 비고 |
---|---|---|
대상 | 정보시스템 감리대상 정보화사업 | |
범위 | 설계 단계 산출물 · 소스코드
(신규개발 전체, 유지보수로 변경된 부분) |
상용 SW 제외 |
기준 | SW보안약점 제거 기준 (총 47개 항목) | 진단기준 |
근거 | 행정기관 및 공공기관 정보시스템 구축 · 운영 지침 | 2016년 개정 |
기준 | 감리법인이 진단도구 사용시, 국정원장이 인증한 도구 사용
감리법인은 SW보안약점 진단 시, 진단원을 우선적으로 배치 |
진단기준 |
항목 | 보안약점 |
---|---|
입력데이터 검증 및 표현 | 프로그램 입력 값에 대한 부적절한 검증 등으로 인해 발생할 수 있는 보안 약점 예) SQL 삽입, 자원 삽입, 크로스사이트 스크립트 등 |
보안 기능 | 인증, 접근제어, 권한관리 등을 적절하지 않게 구현할 경우 발생할 수 있는 보안 약점 예) 부적절한 인가 허용, 중요정보 평문 저장, 하드 코드된 패스워드 등 |
시간 및 상태 | 멀티 프로세스 동작환경에서 부적절한 시간 및 상태관리로 발생할 수 있는 보안 약점 예) 경쟁조건(TOCTOU), 제어문을 사용하지 않는 재귀함수 등 |
에러 처리 | 불충분한 에러 처리로 중요 정보가 에러 정보에 포함되어 발생할 수 있는 보안 약점 예) 오류상황 대응 부재, 오류 메시지를 통한 정보 노출 등 |
코드 오류 | 개발자가 범할 수 있는 코딩 오류로 인해 유발되는 보안 약점 예) Null 포인터 역참조, 부적절한 자원 해제 등 |
캡슐화 | 불충분한 캡슐화로 인가되지 않는 사용자에게 데이터가 노출될 수 있는 보안 정책 예) 제거되지 않고 남은 디버그 코드, 시스템 데이터 정보노출 등 |
API 오용 | 부적절하거나, 보안에 취약한 API 사용으로 발생할 수 있는 보안약점 예) DNS lookup에 의존한 보안 결정 등 |
출처 : 웹 취약점 진단 기술 (누구나 쉽게 따라 하는) [여동균, 김선집]