"소프트웨어 보안 취약점(7가지)"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
(새 문서: == 소개 == 행정장치부와 한국인터넷진흥원(KISA)에서 발간한 http://www.kisa.or.kr/uploadfile/201702/201702140920275581.pdf|소프트웨어 개발 보안 가이...) |
(차이 없음)
|
2019년 11월 6일 (수) 04:59 기준 최신판
1 소개
행정장치부와 한국인터넷진흥원(KISA)에서 발간한 소프트웨어 개발 보안 가이드(링크)에 소스코드 보안 취약점 47가지가 7개 종류로 구분하여 설명됨. 그 목록은 아래와 같음.
2 소스코드 보안 취약점
소스코드 보안 취약점은 7개로 분류하며 총 47개가 존재한다.
- 입력데이터 검증 및 표현(15개)
- 보안기능(16개)
- 시간 및 상태(2개)
- 에러처리(3개)
- 코드오류(4개)
- 캡슐화(5개)
- API 오용(2개)
2.1 입력데이터 검증 및 표현
프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식지정으로 인해 발생할 수 있는 보안약점으로 총 15개가 존재한다.
- SQL 삽입
- 크로스사이트 스크립트(Cross Site Scripting, XSS)
- 크로스사이트 요청 위조(Cross Site Request Forgery, CSRF)
- Format String Bug
- Integer Buffer Overflow
- Memory Buffer Overflow
- 위험한 형식 파일 업로드 (이하 생략)
2.2 보안기능
보안기능(인증, 접근제어, 기밀성, 암호화, 권한 관리 등)을 부적절하게 구현 시 발생할 수 있는 보안약점을 뜻하며 총 16개가 존재한다.
- 중요정보 평문저장
- 중요정보 평문전송
- 하드코드된 비밀번호
- 하드코드된 암호화 키
- 충분하지 않은 키 길이 사용 (이하 생략)
2.3 시간 및 상태
동시 또는 거의 수행을 지원하는 병렬 시스템 하나 이상의 프로세스가 동작되는 환경에서 시간 및 상태를 부적절하게 관리하여 발생할 수 있는 보안약점으로 총 2개가 존재한다.
- 경쟁 조건(Race Condition): 검사 시점과 사용 시점(TOCTOU) 차이 이용하여 해킹
- 종료되지 않는 반복문 또는 재귀 함수
2.4 에러처리
에러를 처리하지 않거나, 불충분하게 처리하여 에러정보에 중요정보(시스템 등)가 포함될 때 발생할 수 있는 보안약점으로 총 3개가 존재한다.
- 오류 메시지를 통한 정보 노출
- 오류 상황 대응 부재
- 부적절한 예외 처리
2.5 코드오류
타입변환 오류, 자원(메모리 등)의 부적절한 반환 등과 같이 개발자가 범할 수 있는 코딩오류로 인해 유발되는 보안약점으로 총 4개가 존재한다.
- Null Pointer 역참조
- 부적절한 자원 해제
- 해제된 자원 사용
- 초기화되지 않은 변수 사용
2.6 캡슐화
중요한 데이터 또는 기능성을 불충분하게 캡슐화 하였을 때, 인가되지 않은 사용자에게 데이터 누출이 가능해지는 보안약점으로 총 5개가 존재한다.
- 잘못된 세션에 의한 데이터 정보 노출
- 제거되지 않고 남은 디버그 코드
- 시스템 데이터 정보노출
- Public 메소드로부터 반환된 Private 배열
- Private 배열에 Public 데이터 할당
2.7 API 오용
의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API를 사용하여 발생할 수 있는 보안약점으로 총 2개가 존재한다.
- DNS lookup에 의존한 보안결정
- 취약한 API 사용