[정보보안] 소프트웨어 보안약점 8가지 유형

KISA의 소프트웨어 개발보안 가이드소프트웨어 보안약점 진단 가이드에 명시된 소프트웨어 개발 시 발생할 수 있는 보안 취약점입니다. 분석·설계단계에서는 4가지 보안 취약점을, 구현단계에서는 7가지 보안 취약점을 진단하도록 하고 있습니다.

※참고자료: 행정기관 및 공공기관 정보시스템 구축·운영 지침 [별표 3] 소프트웨어 보안약점 기준
보안약점 설명 분석·
설계단계
구현단계
입력 데이터
검증 및 표현
  • 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식 지정 때문에 발생할 수 있는 보안 취약점
  • SQL 삽입, XML 삽입, 코드 삽입, 경로 조작, 자원 삽입, XSS, OS 명령어 삽입, CSRF, SSRF, HTTP 응답 분할, 버퍼 오버플로우 등
보안 기능
  • 보안 기능(인증, 인가, 권한 관리, 암호화 등)을 적절히 구현하지 않았을 때 발생할 수 있는 보안 취약점
  • 적절한 인증없는 중요 기능 허용, 부적절한 인가, 중요한 자원에 대한 잘못된 권한 설정, 취약한 암호화 알고리즘 사용 등
시간 및 상태
  • 동시 또는 거의 동시 수행을 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작하는 환경에서 시간이나 상태를 부적절하게 관리하여 발생할 수 있는 보안 취약점
  • 경쟁 조건, 종료되지 않는 반복문 또는 재귀 함수
에러 처리
  • 에러를 처리하지 않거나 불충분하게 처리하여 에러 메세지에 중요 정보(시스템 등)가 포함될 때 발생할 수 있는 보안 취약점
  • 오류 메세지 정보 노출, 오류 상황 대응 부재, 부적절한 예외 처리
코드 오류
  • 타입 변환 오류, 자원(메모리 등)의 부적절한 반환 등과 같이 개발자가 범할 수 있는 코딩 오류로 말미암아 유발되는 보안 취약점
  • Null 포인트 역참조, 부적절한 자원 해제, 해제된 자원 사용, 초기화되지 않는 변수 사용, 신뢰할 수 없는 데이터의 역직렬화
캡슐화
  • 중요한 데이터 또는 기능을 불충분하게 캡슐화하였을 때 인가되지 않는 사용자에게 데이터 누출이 가능해지는 보안 취약점
  • 잘못된 세션에 의한 데이터 정보 노출, 제거되지 않고 남은 디버그 코드, Public 메소드로부터 반환된 Private 배열, Private 배열에 Public 데이터 할당
API 오용
  • 의도된 사용에 반하는 방법으로 API를 사용하거나 보안에 취약한 API를 사용하여 발생할 수 있는 보안 취약점
  • DNS Lookup에 의존한 보안 결정, 취약한 API 사용
세션 통제
  • 인증 시 일정한 규칙이 존재하는 세션ID(동일, 반복, 생성룰 추정)가 발급되거나 세션 타임아웃을 너무 길게 설정한 경우, 서로 다른 세션 간에 데이터를 공유하는 경우 공격자에 의해 사용자 권한이 도용될 수 있는 보안 취약점
  • 사용자 권한 도용, 잘못된 세션에 의한 데이터 정보 노출

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다