출처: https://m.blog.naver.com/nowababa/220845748729
o OWASP Top 10 (https://www.owasp.org/)
- 웹 프로그래밍과 관련하여 가장 많이 발생하는 취약점을 정리한 리스트로 번호가 중요도를 반영하고 있으며 개발 적용이나 교육이 용이함
※ OWASP : Open Web Application SecurityProject
번호 | 내용 |
1 | 인젝션 |
2 | 인증 및 세션 관리 취약점 |
3 | 크로스 사이트 스크립팅 (XSS) |
4 | 취약한 직접 객체 참조 |
5 | 보안 설정 오류 |
6 | 민감 데이터 노출 |
7 | 기능 수준의 접근 통제 누락 |
8 | 크로스 사이트 요청 변조 (CSRF) |
9 | 알려진 취약점이 있는 컴포넌트 사용 |
10 | 검증되지 않은 리다이렉트 및 포워드 |
o SANS Top 25 (http://cwe.mitre.org/top25/)
- 교육은 통해 소스 레벨에서 취약점을 야기하는 코드를 만들지 않도록 하는 목적으로 만들어 졌으며 핵심적인 오류들을 포함하고 있음
번호 | 내용 |
1 | SQL명령에 사용된 특별한 엘리먼트를 무효화 하지 않음 (SQL인젝션) |
2 | OS명령에 사용된 특별한 엘리먼트를 무효화 하지 않음 (OS인젝션) |
3 | 입력 크기를 확인하지 않고 버퍼에 복사 (버퍼 오버플로우) |
4 | 웹페이지 생성 도중 입력값을 무효화 하지 않음 (XSS) |
5 | 핵심 기능에 대한 인증 누락 |
6 | 인가 기능을 누락 |
7 | 인증 데이터를 코드에 직접 기록 |
8 | 민감한 데이터 암호화 누락 |
9 | 위험한 유형의 파일 업로드를 제한하지 않음 |
10 | 신뢰할 수 없는 입력 정보에 의존하여 보안성 결정 |
11 | 불필요한 권한으로 실행 |
12 | 사이트간 위조 요청 (CSRF) |
13 | 금지된 디렉토리 접근을 제한하지 않음 (경로 추적) |
14 | 무결성 검사 없이 코드 다운로드 |
15 | 올바르지 않은 인가 |
16 | 신뢰할 수 없는 제어영역에서 온 기능을 포함 |
17 | 중요한 자원에서 잘못된 권한을 할당 |
18 | 잠재적 위험을 가진 함수를 사용 |
19 | 취약하거나 해독 가능한 암호 알고리즘 사용 |
20 | 버퍼 크기를 잘못 계산 |
21 | 과도한 인증 시도를 제한하지 않음 |
22 | 신뢰할 수 없는 사이트로 URL리다이렉션 허용(오픈 리다이렉션) |
23 | 문자 형식을 통제하지 않음 |
24 | 정수 오버플로우 또는 랩어라운드 |
25 | Salt값 없이 단방향 해쉬값 이용 |
o KISA 홈페이지 취약점 진단·제거 가이드 (http://kisa.or.kr)
- 웹 사이트 관리자 또는 보안담당자가 직접 따라 할 수 있도록 쉽게 작성된 가이드
번호 | 내용 |
1 | 운영체제 명령 실행 |
2 | SQL 인젝션 |
3 | XPath 인젝션 |
4 | 정보누출 |
5 | 악성콘텐츠 |
6 | 크로스 사이트 스크립트(XSS) |
7 | 약한 문자열 강도 |
8 | 불충분한 인증 및 인가 |
9 | 취약한 패스워드 복구 |
10 | 불충분한 세션 관리 |
11 | 크로스 사이트 리퀘스트 변조(CSRF) |
12 | 자동화 공격 |
13 | 파일 업로드 |
14 | 경로추적 및 파일 다운로드 |
15 | 데이터 평문전송 |
16 | 쿠키 변조 |
17 | URL/파라미터 변조 |
18 | 디렉터리 인덱싱 |
19 | 관리자페이지 노출 |
20 | 위치공개 |
21 | 웹 서비스 메소드 설정 공격 |
O 행자부 SW개발보안 보안약점 (http://www.mospa.go.kr/)
- 공공, 행정기관 시스템 개발시 적용해야하는 SW개발보안 보안약점 기준 47개
번호 | 내용 |
1 | SQL 삽입 |
2 | 경로 조작 및 자원 삽입 |
3 | 크로스사이트 스크립트 |
4 | 운영체제 명령어 삽입 |
5 | 위험한 형식 파일 업로드 |
6 | 신뢰되지 않는 URL 주소로 자동접속 연결 |
7 | XQuery 삽입 |
8 | XPath 삽입 |
9 | LDAP 삽입 |
10 | 크로스사이트 요청 위조 |
11 | HTTP 응답분할 |
12 | 정수형 오버플로우 |
13 | 보안기능 결정에 사용 되는 부적절한 입력값 |
14 | 메모리 버퍼 오버플로우 |
15 | 포맷 스트링 삽입 |
16 | 적절한 인증 없는 중요기능 허용 |
17 | 부적절한 인가 |
18 | 중요한 자원에 대한 잘못된 권한 설정 |
19 | 취약한 암호화 알고리즘 사용 |
20 | 중요정보 평문저장 |
21 | 중요정보 평문전송 |
22 | 하드코드된 비밀번호 |
23 | 충분하지 않은 키 길이 사용 |
24 | 적절하지 않은 난수 값 사용 |
25 | 하드코드된 암호화 키 |
26 | 취약한 비밀번호 허용 |
27 | 사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출 |
28 | 주석문 안에 포함된 시스템 주요정보 |
29 | 솔트 없이 일방향 해쉬함수 사용 |
30 | 무결성 검사없는 코드 다운로드 |
31 | 반복된 인증시도 제한 기능 부재 |
32 | 경쟁조건: 검사 시점과 사용 시점(TOCTOU) |
33 | 종료되지 않는 반복문 또는 재귀 함수 |
34 | 오류 메시지를 통한 정보 노출 |
35 | 오류 상황 대응 부재 |
36 | 부적절한 예외 처리 |
37 | Null Pointer 역참조 |
38 | 부적절한 자원 해제 |
39 | 해제된 자원 사용 |
40 | 초기화되지 않은 변수 사용 |
41 | 잘못된 세션에 의한 데이터 정보 노출 |
42 | 제거되지 않고 남은 디버그 코드 |
43 | 시스템 데이터 정보노출 |
44 | Public 메소드부터 반환된 Private 배열 |
45 | Private 배열에 Public 데이터 할당 |
46 | DNS lookup에 의존한 보안결정 |
47 | 취약한 API 사용 |
o 행자부 주요정보통신기반시설 기술적 취약점 분석 평가 방법(웹) (http://www.mospa.go.kr/)
- 주요정보통신기반시설 평가 기준 중 웹 취약점 부분
번호 | 내용 |
1 | 버퍼 오버플로우 |
2 | 포맷스트링 |
3 | LDAP 인젝션 |
4 | 운영체제 명령 실행 |
5 | SQL 인젝션 |
6 | SSI 인젝션 |
7 | XPath 인젝션 |
8 | 디렉터리 인덱싱 |
9 | 정보 누출 |
10 | 악성 콘텐츠 |
11 | 크로스사이트 스크립팅 |
12 | 약한 문자열 강도 |
13 | 불충분한 인증 |
14 | 취약한 패스워드 복구 |
15 | 크로스사이트 리퀘스트 변조(CSRF) |
16 | 세션 예측 |
17 | 불충분한 인가 |
18 | 불충분한 세션 만료 |
19 | 세션 고정 |
20 | 자동화 공격 |
21 | 프로세스 검증 누락 |
22 | 파일 업로드 |
23 | 파일 다운로드 |
24 | 관리자 페이지 노출 |
25 | 경로 추적 |
26 | 위치 공개 |
27 | 데이터 평문 전송 |
28 | 쿠키 변조 |