정보보안

Buffer OverFlow 대응방안

닉네임못짓는사람 2020. 10. 4. 00:04
반응형

Buffer OverFlow로 인한 프로그램의 비정상적인 실행을 막기 위한 대응 방안.

1. 스택 쉴드(Stack Shild)

 함수 호출시 스택에 저장되는 return address를 Global RET이라는 특수 스택에 저장한다.
 그리고 함수 종료시에 이 Global RET에 저장되어 있는 값과 스택의 return address를 비교해서

 두 값이 다르면, 프로그램을 종료시키는 방법이다.

2. ASLR(Address Space Layout Randomization)

 메모리공격을 어렵게 하기 위해서 스택, 힙, 라이브러리 등 데이터영역 주소들을 랜덤으로 프로세스
 주소 공간에 배치하여 실행시마다 데이터 주소가 바뀌도록 하는 방법이다.

3. 스택 가드(Stack Guard)

 스택내에서 return address와 변수 사이에 Canary Word를 저장해두고, 해당 값이 변경되었을 경우

 프로그램을 종료하여 메모리 공격을 방지하는 방법이다.

4. NX-bit(Non-executable stack)

 프로세서 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 기술이다.

 스택을 NX특성으로 설정하면, 지정된 메모리 공간은 데이터 저장을 위해서만 사용되고, 명령어는 실행할 수 없게된다.

 만약 이를 위반하고 명령어를 실행하려고 하면 프로그램을 종료하여 공격을 방지하는 방법이다.

반응형

'정보보안' 카테고리의 다른 글

해시(Hash)란?  (0) 2022.01.29
Stack Buffer OverFlow 공격  (0) 2020.11.14
레이스 컨디션(Race Condition) 공격  (0) 2020.11.07