보안/개론

버퍼오버플로우 공격

박오이님 2017. 6. 5. 16:53

먼저 간단히 요약하자면, 버퍼오버플로우 공격 이란?

 -->  비정상적인 데이터를 많이 주입하여, 오류를 발생시키거나 임의의 악성코드를 
실행하게 만드는 공격 기법 BOF 라고도 불리움


이 부분 공부하면서 어셈블리의 개념이 필요하다고 생각이 들었다

필자는 타과 수업에 어셈블리어 수업을 들어 이해가 쉬웠다.

--> 추후에 공부할 포멧스트링 공격도 어셈블리 개념이 쪼금 필요한 것 같더라..


이해하기 쉽게 얘기하면, 

 함수의 시작위치를 저장하는 역할을 하는 EBP(Extended Base Pointer Register) 의
영역이 입력 값에 의하여 침법을 당하여 EBP의 값이 변하는 것이다.


사실 버퍼오버플로우 공격의 종류는 많다


 먼저 가벼운 버퍼오버플로우의 예방법은

시큐어 코딩가이드에서도 gets,scanf 등 버퍼의 길이를 체크하지 않은 함수를 사용하지 말 것을 권고하고 잇고, 대체로 fscanf(),strncpy() 등 함수를 권유하고 있다.


실습은 어셈블리어가 익숙해지고, 툴이 익숙하지 않아 실습이 조금 어려웠다.