버퍼 오버플로우란, 메모리 버퍼가 보유할 수 있는 것 보다 많은 데이터를 사용해 오버플로우 현상이 발생해 악용 가능한 상태를 유발하는 취약점이다.
* 버퍼(buffer): 프로그램 처리 과정에 필요한 데이터가 일시적으로 저장되는 공간으로 메모리의 스택(stack) 영역과 힙(heap) 영역이 여기에 속한다.
공격자가 덮어쓴 메모리 공간을 대상 버퍼 외부에서 제어하고, 함수 포인터를 악의적인 코드로 리디렉션 하는 경우 무단 코드 실행으로 이어질 수 있다.
버퍼 경계를 잘못 처리하면, 공격자가 버퍼 외부의 데이터를 덮어쓰지 않고 읽을 수 있어 민감한 정보가 공개될 수 있다.
취약점 개요 | |
---|---|
점검내용 | 사용자가 입력한 파라미터 값의 문자열 길이 제한 확인 |
점검목적 | 웹 사이트에서 사용자가 입력한 파라미터 값의 문자열 길이 제한 여부를 점검하여, 비정상적인 오류 발생을 차단 |
보안위협 | 사용자가 입력한 파라미터 값의 문자열 길이를 제한하지 않으면, 개발 시 할당된 저장 공간보다 더 큰 값의 입력이 가능하여 이로 인한 오류로 의도되지 않은 정보 노출, 프로그램에 대한 비인가 접근 및 사용등이 발생할 수 있음 |
점검대상 및 판단기준 | |
---|---|
대상 | 웹 애플리케이션 소스코드 |
판단기준 | 양호- 파라미터 값에 다량의 다양한 포맷 문자열 입력 시 에러 페이지나, 오류가 발생하지 않는 경우 취약 - 파라미터 값에 대한 검증 미흡으로 에러 페이지나 오류가 발생하는 경우 |
조치방법 | 입력 값 범위를 제한하고, 허용 범위를 벗어나는 경우 에러 페이지가 반환되지 않도록 조치 |
참고
https://www.itworld.co.kr/news/142560
https://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?seq=4462
주요정보통신기반시설-기술적 취약점 분석 평가 방법 상세가이드