1. 버퍼 오버플로우

박소정·2023년 6월 29일
0

IT@Security

목록 보기
3/5

버퍼 오버플로우란?

버퍼 오버플로우란, 메모리 버퍼가 보유할 수 있는 것 보다 많은 데이터를 사용해 오버플로우 현상이 발생해 악용 가능한 상태를 유발하는 취약점이다.

* 버퍼(buffer): 프로그램 처리 과정에 필요한 데이터가 일시적으로 저장되는 공간으로 메모리의 스택(stack) 영역과 힙(heap) 영역이 여기에 속한다.

공격자가 덮어쓴 메모리 공간을 대상 버퍼 외부에서 제어하고, 함수 포인터를 악의적인 코드로 리디렉션 하는 경우 무단 코드 실행으로 이어질 수 있다.

버퍼 경계를 잘못 처리하면, 공격자가 버퍼 외부의 데이터를 덮어쓰지 않고 읽을 수 있어 민감한 정보가 공개될 수 있다.


취약점 분석

취약점 개요
점검내용사용자가 입력한 파라미터 값의 문자열 길이 제한 확인
점검목적웹 사이트에서 사용자가 입력한 파라미터 값의 문자열 길이 제한 여부를 점검하여, 비정상적인 오류 발생을 차단
보안위협사용자가 입력한 파라미터 값의 문자열 길이를 제한하지 않으면, 개발 시 할당된 저장 공간보다 더 큰 값의 입력이 가능하여 이로 인한 오류로 의도되지 않은 정보 노출, 프로그램에 대한 비인가 접근 및 사용등이 발생할 수 있음
점검대상 및 판단기준
대상웹 애플리케이션 소스코드
판단기준양호- 파라미터 값에 다량의 다양한 포맷 문자열 입력 시 에러 페이지나, 오류가 발생하지 않는 경우
취약 - 파라미터 값에 대한 검증 미흡으로 에러 페이지나 오류가 발생하는 경우
조치방법입력 값 범위를 제한하고, 허용 범위를 벗어나는 경우 에러 페이지가 반환되지 않도록 조치

점검방법

  1. 로그인 페이지에서 계정 정보 입력 칸에 대량의 문자열을 입력하여 검증

  1. 로그인 후 정보변경 페이지에서 대량 문자열 입력 시 에러 발생하는지 점검

  1. 다량의 문자열을 검색하여 에러 발생하는지 점검

  1. 게시글 작성 시 다량의 문자열 입력하여 검증

  1. URL 파라미터 값에 대량의 문자열 입력하여 검증
    (+ 검색 maxlength 이상의 문자열을 검색하였지만, 별도의 에러창이 나오지 않는 모습이다.)

보안설정방법

  • 웹 서버, 웹 애플리케이션 서버 버전을 최신 버전으로 패치
  • 웹 애플리케이션에 전달되는 파라미터 값을 필요한 크기만큼만 받을 수 있도록 변경하고, 입력 값 범위를 초과한 경우에도 에러 페이지를 반환하지 않도록 설정
  • 동적 메모리 할당을 위해 크기를 사용하는 경우 그 값이 음수가 아닌지 검사하여 버퍼 오버플로우를 예방하는 형태로 소스 코드 변경
  • 버퍼오버플로우를 점검하는 웹 스캐닝 툴을 이용하여 주기적으로 점검

참고
https://www.itworld.co.kr/news/142560
https://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?seq=4462
주요정보통신기반시설-기술적 취약점 분석 평가 방법 상세가이드

0개의 댓글

관련 채용 정보