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

=>PreparedStatement 객체를 이용해서 쿼리 수행, Mybatis, Hibernate 파라미터 바인딩 이용
1.2 경로 조작 및 자원 삽입
검증되지 않은 외부입력값이 시스템 자원 접근경로 또는 자원제어에 사용되어 공격자가 입력값을 조작해 공격할 수 있는 보안약점

=>경로순회 문자열 제거(./\)
1.3 크로스사이트 스크립트
검증되지 않은 외부입력값에 의해 사용자 브라우저에서 악의적인 스크립트가 실행될 수 있는 보안약점

=>입력값의 스크립트 문자열 치환, AntiXss 패키지 등으로 입력값 필터링, 
1.4 운영체제 명령어 삽입
검증되지 않은 외부입력값이 운영체제 명령문 생성에 사용되어 악의적인 명령어가 실행될 수 있는 보안약점

=>실행가능한 명령어 제한
1.5 위험한 형식 파일 업로드
파일의 확장자 등 파일형식에 대한 검증 없이 업로드를 허용하여 발생할 수 있는 보안약점

=> 파일 확장자 필터, 대소문자 구별
1.6 신뢰되지 않는 URL 주소로 자동접속 연결
검증되지 않은 외부입력값이 URL 링크 생성에 사용되어 악의적인 사이트로 자동 접속될 수 있는 보안약점

=>이동가능한 URL범위를 제한
1.7 XQuery 삽입
검증되지 않은 외부입력값이 XQuery 쿼리문 생성에 사용되어 악의적인 쿼리가 실행될 수 있는 보안약점

=>buildString함수를 이용해 쿼리 구조 변경 금지
1.8 XPath 삽입
검증되지 않은 외부입력값이 XPath 쿼리문 생성에 사용 되어 악의적인 쿼리 가 실행될 수 있는 보안약점

=>XQuery를 사용.
1.9 LDAP 삽입
검증되지 않은 입력값이 LDAP 명령문 생성에 사용되어 악의적인 명령어가 실행될 수 있는 보안약점

=>LDAP 필터 조작 가능한 공격문자열을 제거.
1.10 크로스사이트 요청위조 검증되지 않은 외부입력값에 의해 브라우저에서 악의적인 스크립트가 실행 되어 공격자가 원하는 요청(Request)이 다른 사용자(관리자 등)의 권한으로 서버로 전송되는 보안약점

=>입력화면 토큰 생성후 세션에 저장, 히든 필드로 서버에 전달,
요청한 토큰과 세션 토큰을 비교해서 일치하면 요청 처리
1.11 HTTP 응답분할
검증되지 않은 외부입력값이 HTTP 응답헤더에 삽입되어 악의적인 코드가 실행될 수 있는 보안약점

header, body 는 개행문자(\r\n)로 구분됨.
body 위조 가능

=>외부입력값이나 쿠키는 개행문자를 검증
1.12 정수형 오버플로우 정수를 사용한 연산의 결과가 정수값의 범위를 넘어서는 경우, 프로그램이 예기치 않게 동작될 수 있는 보안약점

//정수가 범위를 넘으면 음수 가능
String s = getString("size");
int i = Integer.parseInt(s);
String[] arr = new String[i];

=>정수의 범위를 체크
1.13 보안기능 결정에 사용되는 부적절한 입력값 검증되지 않은 입력값이 보안결정(인증, 인가, 권한부여 등)에 사용되어 보안 메커니즘 우회 등을 야기할 수 있는 보안약점

=>중요정보는 서버에 있는 정보를 이용하도록 한다.
1.14 메모리 버퍼 오버플로우 메모리 버퍼의 경계값을 넘어서 메모리값을 읽거나 저장하여 예기치 않은 결과 를 발생시킬 수 있는 보안약점

stack 끝에는 복귀주소가 있어서 버퍼크기를 조작할 경우 정보 유출 가능
=>포인터를 덮어쓰지 못하도록 허용된 범위만 지정,
문자열종료는 '\0' 추가
1.15 포맷 스트링 삽입 printf 등 외부입력값으로 포맷스트링을 제어할 수 있는 함수를 사용하여 발생 할 수 있는 보안약점

=> 입력값은 포맷 문자열(%s)를 사용.

'IT 자격증 > SW보안약점진단원' 카테고리의 다른 글

SW보안약점진단원 시험준비  (8) 2022.08.22
2022 3차 SW 보안약점진단원 양성교육  (0) 2022.08.22
보안기능  (0) 2022.07.12
SW보안약점  (0) 2022.07.12
시간 및 상태  (0) 2022.07.12
Posted by Lumasca
,