주요정보통신기반 시설 가이드

버퍼 오버플로우 공격이란?

만보만보잠만보 2024. 3. 17. 13:11

버퍼 오버플로우 공격

(Buffer overflow)

 

개념

버퍼의 용량을 초과하여 인접한 메모리 위치를 덮어쓸 때 발생하는 취약점입니다.

(버퍼 : 데이터를 한 장소에서 다른 장소로 이동하는 동안 임시로 저장하는 데 사용되는 물리적 메모리 저장영역)

 

발생 원인

사용자가 입력 가능한 값은 ABCD뿐인데 문자열 길이를 제한하지 않아 ABCDE를 입력되었을 경우 발생하는 취약점으로 기존의 데이터를 덮어쓰는 바람에 오류를 일으켜 실행 프로그램이 비정상적으로 종료되거나 비인가 접근이 발생할 수 있는 취약점입니다.

 

위험한 이유

공격자는 이 취약점을 이용해 프로그램의 실행 흐름을 조작하여 임의 코드를 실행하거나 중요한 데이터를 손상시킬 수 있습니다. 이 취약점은 널리 알려진 취약점인 만큼 버퍼 오버플로우 관련 코드는 인터넷에서 쉽게 구할 수 있으며, 공격자는 이를 활용하여 공격을 쉽게 수행할 수 있습니다. 만약 이 취약점에 노출된다면 시스템 손상은 물론이고 정보 유출, 서비스 중단 등 심각한 피해를 야기할 수 있습니다.

 

조치 방법

- 웹 서버, 웹 애플리케이션 서버 버전을 최신 버전으로 패치합니다.

- 전달되는 파라미터 값을 필요한 크기만큼만 받을 수 있도록 지정합니다.

- 입력 값 범위를 초과한 경우에도 에러 페이지를 반환하지 않도록 설정합니다.

- 동적 메모리 할당을 하는 경우 그 값이 음수가 아닌지 검사하여 버퍼 오버플로우를 예방하는 형태로 코드를 수정합니다.

- 버퍼 오버플로우를 점검하는 웹 스캐닝 툴(OWASP ZAP, Nessus 등)을 이용하여 주기적으로 점검합니다.

 

추가 정보

버퍼 오버플로우는 메모리를 덮어써 정보 유출이 된다는 점에서 하트블러드 공격과 유사하다고 볼 수 있습니다.

'주요정보통신기반 시설 가이드' 카테고리의 다른 글

SSI 인젝션이란?  (0) 2024.03.17
SQL 인젝션이란?  (0) 2024.03.17
운영체제 명령 실행 공격이란?  (0) 2024.03.17
LDAP 인젝션이란?  (0) 2024.03.17
포맷 스트링이란?  (0) 2024.03.17