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 |