소프트웨어 보안약점은 지난번 포스팅(http://jwprogramming.tistory.com/261)에서 소개를 해드렸습니다.
더불어, 현재 공공 정보화사업 대상으로 지침에 의무화 되어 있는 소프트웨어 보안약점 기준(구현단계)은 무엇이 있는지 살펴보고자 합니다.
해당 지침에서는 구현단계에서 확인 및 제거해야 하는 보안약점 유형을 7개로 분류하고 해당 유형별 세부항목을 47개로 아래와 같이 정의하고 있습니다.
------------------------------------------------------------------------------------------------------------------------
유형 1. 입력데이터 검증 및 표현 : 사용자, 프로그램 입력 데이터에 대한 유효성 검증 체계를 갖추고, 실패 시 처리할 수 있도록 설계
- 1) SQL 삽입
- 2) 경로 조작 및 자원 삽입
- 3) 크로스사이트 스크립트
- 4) 운영체제 명령어 삽입
- 5) 위험한 형식 파일 업로드
- 6) 신뢰되지 않는 URL 주소로 자동접속 연결
- 7) XQuery 삽입
- 8) XPath 삽입
- 9) LDAP 삽입
- 10) 크로스사이트 요청 위조
- 11) HTTP 응답분할
- 12) 정수형 오버플로우
- 13) 보안기능 결정에 사용되는 부적절한 입력값
- 14) 메모리 버퍼 오버플로우
- 15) 포맷 스트링 삽입
유형 2. 보안기능 : 인증, 접근통제, 권한관리, 비밀번호 등의 정책이 적절하게 반영될 수 있도록 설계
- 1) 적절한 인증 없는 중요기능 허용
- 2) 부적절한 인가
- 3) 중요한 자원에 대한 잘못된 권한 설정
- 4) 취약한 암호화 알고리즘 사용
- 5) 중요정보 평문저장
- 6) 중요정보 평문전송
- 7) 하드코드된 비밀번호
- 8) 충분하지 않은 키 길이 사용
- 9) 적절하지 않은 난수값 사용
- 10) 하드코드된 암호화 키
- 11) 취약한 비밀번호 허용
- 12) 사용자 하드디스크에 저장되는 쿠키를 통한 정보노출
- 13) 주석문 안에 포함된 시스템 주요정보
- 14) 솔트없이 일방향 해쉬함수 사용
- 15) 무결성 검사없는 코드 다운로드
- 16) 반복된 인증시도 제한 기능 부재
유형 3. 시간 및 상태 : 동시 또는 거의 동시 수행을 지원하는 병렬 시스템, 하나 이상의 프로세스가 동작되는 환경에서 시간 및 상태를 부적절하게 관리하여 발생할 수 있는 보안약점
- 1) 경쟁조건: 검사 시점과 사용 시점(TOCTOU)
- 2) 종료되지 않는 반복문 또는 재귀 함수
유형 4. 에러처리 : 에러를 처리하지 않거나 불충분하게 처리하여 중요정보(시스템 등)가 포함될 때 발생할 수 있는 보안약점
- 1) 오류 메시지를 통한 정보노출
- 2) 오류 상황 대응 부재
- 3) 부적절한 예외 처리
유형 5. 코드오류 : 타입변환 오류, 자원(메모리 등)의 부적절한 반환 등과 같이 개발자가 범할 수 있는 코딩 오류로 인해 유발되는 보안약점
- 1) Null Pointer 역참조
- 2) 부적절한 자원 해제
- 3) 해제된 자원 사용
- 4) 초기화 되지 않은 변수 사용
유형 6. 캡슐화 : 중요한 데이터 또는 기능성을 불충분하게 캡슐화 하였을 때, 인가되지 않은 사용자에게 데이터 누출이 가능해지는 보안약점
- 1) 잘못된 세션에 의한 데이터 정보 노출
- 2) 제거되지 않고 남은 디버그 코드
- 3) 시스템 데이터 정보노출
- 4) Public 메소드로부터 반환된 Private 배열
- 5) Private 배열에 Public 데이터 할당
유형 7. API 오용 : 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API를 사용하여 발생할 수 있는 보안약점
- 1) DNS lookup에 의존한 보안결정
- 2) 취약한 API 사용
------------------------------------------------------------------------------------------------------------------------
과 같이 분류되고 있습니다.
자세한 내용은 '행정기관 및 공공기관 정보시스템 구축.운영 지침' 에서 참고할 수 있습니다.
'Security > 소프트웨어 보안약점' 카테고리의 다른 글
1-1. SQL Injection 공격이란? (2) | 2018.12.18 |
---|---|
소프트웨어 보안약점, 보안취약점이란? (0) | 2018.12.10 |
WRITTEN BY