넘 많이 요청이든 뭐든 들어와서 버퍼 메모리 넘어 다른 영역 메모리 덮어씌우려하는 문제
How to Buffer Overflow attack
- buffer size estimation
- estimate distance between buffer and
retaddress
- fill data (shell code + trash) from buffer to EBP right before
retaddress
- write address of shell code into
retaddress
Vulnerable C functions
- strcpy
- strcat
- fscanf
- scanf
- sprint
- …
Safe C functions
vfscanf
시스템 보안 - 버퍼 오버플로우 공격(Buffer Overflow Attack) 방지하는 방법
버퍼 오버플로우(Buffer Overflow) 버퍼 오버플로우는 프로세스가 사용 가능한 메모리 공간을 초과해서 발생되는 공격으로 보안 취약점이다. C나 C++를 사용해서 프로그램을 개발할 때 메모리 공격에 제한을 두지 않는 API를 사용해서 발생하는 공격이다. 버퍼 오버플로우 공격(Buffer Over flow Attack)을 알기 위해서는 먼저 실행 중인 프로세스가 사용하는 메모리 공간의 구조를 알아야 한다. 프로세스가 사용하는 메모리 공간은 Stack, Heap, Text, Data로 나누어져 있다. 메모리 구조(Memory Structure) ① 스택 영역 프로그램 함수 내에서 사용하는 지역변수(Local varialbe)가 저장된다. 함수를 호출하는 경우 되돌아오는 주소인 복귀 주소(Return ..
https://ohaengsa.tistory.com/entry/정보보안-버퍼-오버플로우-공격의-이해Buffer-Overflow-Attack
HeartBleed OpenSSL
Heartbleed
Heartbleed is a security bug in some outdated versions of the OpenSSL cryptography library, which is a widely used implementation of the Transport Layer Security (TLS) protocol. It was introduced into the software in 2012 and publicly disclosed in April 2014. Heartbleed could be exploited regardless of whether the vulnerable OpenSSL instance is running as a TLS server or client. It resulted from improper input validation in the implementation of the TLS heartbeat extension. Thus, the bug's name derived from heartbeat. The vulnerability was classified as a buffer over-read, a situation where more data can be read than should be allowed.
https://en.wikipedia.org/wiki/Heartbleed

Seonglae Cho