SW 보안약점(Detail)

CODEDRAGON Security/SecureCoding

반응형

Software 보안 약점 목록 (47항목)

보안약점 목록

항목

입력 데이터 검증 및 표현

15

보안기능

16

시간 및 상태

2

에러처리

3

코드오류

4

캡슐화

5

API오용

2

   

   

입력 데이터 검증 및 표현

보안약점

설명

SQL삽입

검증되지 않은 외부 입력값이 SQL 쿼리문 생성에 사용되어 악의적인 쿼리문이 실행될 수 있는 보안약점

경로조작 및 자원 삽입

검증되지 않은 외부 입력값이 시스템 자원 접근경로 또는 자원제어에 사용되어 공격자가 입력값을 조직해 공격할 수 있는 보안약점

크로스사이트스크립트

검증되지 않은 외부 입력값에 의해 사용자 브라우저에서 악의적인 스크립트가 실행될 수 있는 보안약점

운영체제 명령어 삽입

검증되지 않은 외부 입력값이 운영체제 명령문 생성에 사용되어 악의적인 명령어가 실행될 수 있는 보안약점

위험한 형식 파일 웹로드

파일의 확장자등 파일형식에 대한 검증 없이 업로드를 허용할 때 발생할 수 있는 보안약점

신뢰되지 않는 URL 주소로 자동 접속연결

검증되지 않은 외부 입력값이 URL링크 생성에 사용되어 악의적인 사이트로 자동 접속될 수 있는 보안약점

XQuery 삽입

검증되지 않은 외부 입력값이 XQuery 쿼리문 생성에 사용되어 악의적인 쿼리가 실행될 수 있는 보안약점

XPath 삽입

검증되지 않은 외부 입력값이 XPath 쿼리문 생성에 사용 되어 악의적인 쿼리가 실행될 수 있는 보안약점

크로스사이트 요청 위조

검증되지 않은 외부 입력값에 의해 브라우저에서 악의적인 스크립트가 실행되어 공격자가 원하는 요청(Request)이 다른 사용자(관리자 등)의 권한으로 서버로 전송되는 보안약점

HTTP 응답분할

검증되지 않은 외부 입력값이 HTTP 응답헤더에 삽입되어 악의적인 코드가 실행될 수 있는 보안약점

정수형 오버플로우

정수를 사용한 연산의 결과가 정수값의 범위를 넘어서는 경우 프로그램이 예기치 앉게 동작될 수 있는 보안약점

보안기능 결정에 사용되는 부적절한 입력값

검증되지 않은 입력값이 보안결정(인증, 인가, 권한부여 등)에 사용되어 보안 메커니즘 우회 등을 야기할 수 있는 보안약점

메모리 버퍼 오버플로우

메모리 버퍼의 경계값을 넘는 메모리값을 읽거나 저장 하여 예기치 않은 결과를 발생시킬 수 있는 보안약점

포멧 스트링 삽입

printf() 등 외부 입력값으로 포멧스트링을 제어할 수 있는 함수를 사용할 때 발생할 수 있는 보안약점

   

   

보안기능

중요정보는 금융정보, 개인정보, 인증정보 등의 정보를 포함합니다.

보안약점

설명

적절한 인증없는 중요 기능 허용

적절한 인증 없이 중요정보(금융정보, 개인정보, 인증정보 등)를 열람(or 변경)할 수 있게 하는 보안약점

부적절한 인가

적절한 접근제어 없이 외부 입력값을 포함한 문자열로 중요자원에 접근할 수 있는 보안약점

중요한 자원에 대한 잘못된 권한 설정

중요자원(프로그램 설정, 개인정보, 민감한 사용자 데이터 등)에 대한 적절한 접근권한을 부여하지 않아 인가되지 않은 사용자에 의해 중요정보가 노출•수정될 수 있는 보안약점

취약한 암호화 알고리즘 사용

중요정보가 기밀성을 보장할 수 없는 취약한 암호화알고리즘을 사용할 경우 중요정보가 노출될 수 있는 보안약점

중요정보 평문저장

중요정보를 암호화하여 저장하지 않아 정보가 노출될 수 있는 보안약점

중요정보 평문전송

중요정보 전송 시 암호화하지 않거나 안전한 통신채널을 이용하지 않을 경우 정보가 노출될 수 있는 보안약점

하드코드된 비밀번호

소스코드 내에 비밀번호가 하드코딩 되어 소스코드 유출시 해당 인증정보가 노출될 수 있으며 주기적 비밀번호 변경등(관리자 변경등)이 용이하지 않는 보안약점

충분하지 않은 키길이 사용

데이터의 기밀성, 무결성 보장을 위해 사용되는 키의 길이가 충분하지 않아 중요정보 누출이나 무결성이 깨질 수 있는 보안약점

적절하지 않은 난수값 사용

예측 가능한 난수값 사용으로 공격자로 하여금 다음 숫자 등을 예상하여 시스템 공격이 가능한 보안약점

하드코드된 암호화 키

소스코드 내에 암호화키가 하드코딩 되어 소스코드 유출 시 암호화키의 누출 우려와 키 변경이 용이하지 않는 보안약점

취약한 비밀번호 허용

비밀번호 조합규칙(영문 대소문자, 숫자, 특수문자 등) 미흡 및 길이가 충분하지 않아 비밀번호가 노출될 수 있는 보안약점

사용자 하드디스크에 저장 되는 쿠키를 통한 정보노출

쿠키(셰션 ID, 사용자 권한정보 등 중요정보)를 사용자 하드디스크에 저장함으로써 개인정보 등 중요정보가 노출될 수 있는 보안약점

주석문 안에 포함된 패스워드 등 시스템 중요정보

소스코드내의 주석문에 인증정보 등 시스템 중요정보가 포함되어 있어 소스코드 유출시 노출될 수 있는 보안약점

솔트(Salt)없이 일방향해쉬 함수사용

공격자가 솔트(salt) 없이 생성된 해쉬값을 얻게된 경우, 미리 계산된 레인보우 테이블을 이용하여 원문을 찾을 수 있는 보안약점

무결성 검사없는 코드 다운로드

원격지로부터 소스코드 또는 실행파일을 무결성 검사 없이 다운로드받고 이를 실행하는 경우, 공격자가 악의적인 코드를 실행할 수 있는 보안약점

반복된 인증시도 제한 기능 부재

인증시도의 수를 제한하지 않아 공격자가 무작위 인증시도를 통해 계정접근 권한을 얻을 수 있는 보안약점

   

   

시간 및 상태

보안약점

설명

경쟁조건-검사시점과 사용시점(TOCTOU)

멀티 프로세스 환경에서 자원을 검사하는 시점과 사용하는 시점이 달라서 발생하는 보안약점

종료되지 않는 반복문 또는 재귀함수

종료조건 없는 제어문 사용으로 반복문 또는 재귀 함수가 무한루프에 빠져 무한 반복될 수 있는 보안약점

   

   

에러처리

보안약점

설명

오류메시지를 통한 정보 노출

개발자가 생성한 오류 메시지에 시스템 내부구조, 시스템 정보 등이 포함되어 민감한 정보가 노출될 수 있는 보안약점

오류상황 대응부재

시스템에서 발생하는 오류 상황을 처리하지 않아 프로그램 실행정지등 의도하지 않은 상황이 발생할 수 있는 보안약점

부적절한 예외처리

예외에 대한 부적절한 처리로 인해 의도하지 않은 상황이 발생될 수 있는 보안약점

   

코드오류

보안약점

설명

Null Pointer 역참조

Null로 설정된 변수의 주소값을 참조했을 때 발생할 수 있는 보안약점

부적절한 자원해제

사용된 자원을 적절하게 해제 하지 않으면 자원 누수 등이 발생하게 되어 결국엔 자원이 부족하게되어 새로운 입력을 처리할 수 없게 되는 보안약점

해제된 자원사용

해제된 자원를 참조하게 되면 예상치 못한 값 또는 코드를 실행하게 되어 예상치 못한 결과가 발생하게 되는 보안약점

초기화되지 않은 변수 사용

변수를 초기화하지 않고 사용하여 예기치 않은 오류가 발생될 수 있는 보안약점

   

   

캡슐화

보안약점

설명

잘못된 세션에 의한 데이터 정보 노출

잘못된 셰션에 의해 인가되지 않은 사용자에게 중요정보가 노출될 수 있는 보안약점

제거되지 않고 남은 디버그 코드

디버깅을 위해 작성된 코드를 통해 인가되지 않은 사용자에게 중요정보가 노출될 수 있는 보안약점

시스템데이터 정보노출

사용자가 볼 수 있는 오류 메시지나 스택 정보에 시스템 내부 데이터나 디버깅 관련 정보가 출력되는 보안약점

Public메소드로 부터 반환된 Private 배열

Private로 선언된 배열을 Public으로 선언된 메소드를 통해 반환(return)하게되면 그 배열의 레퍼런스가 외부에 공개되어 외부에서 배열을 수정할 수 있게 되는 보안약점

Private 배열에 Public데이터 할당

Public으로 선언된 데이터 또는 메소드의 파라미터가 Private로 선언된 배열에 저장되면 Private배열을 외부에서 접근할 수 있게 되는 보안약점

   

   

API오용

보안약점

설명

DNS lookup에 의존한 보안결정

DNS는 공격자에 의해 DNS 스푸핑 공격 등이 가능함으로 보안결정을 DNS이름에 의존할 경우 보안결정 등이 노출되는 보안약점

취약한 API 사용

취약하다고 알려진 함수를 사용함으로써 예기치 않은 보안위협에 노출될 수 있는 보안약점

 

'Security > SecureCoding' 카테고리의 다른 글

Software 복잡도와 보안  (0) 2015.03.09
시큐어 코딩 관련 용어정의  (0) 2015.03.02
SW 보안약점 유형  (0) 2015.02.27
정보화사업 감리법인 보안활동  (0) 2015.02.26
정보화사업 수주사업자 보안활동  (0) 2015.02.25