반응형
버퍼 오버플로우
- 프로세스 메모리 영역 중 버퍼에 초과값을 입력하여 시스템을 중지시키거나 원하는 동작을 하도록 조작하는 행위
스택 버퍼 오버플로우(Stack Buffer Overflow)
- 주로 SetUID가 설정된(루트 권한으로 실행되는) 프로그램들을 타겟으로 한다.
- 입력값에 수용 가능한 버퍼보다 큰 값을 입력하여 임의의 공격코드를 루트 권한으로 실행시킨다.
- 원리
- 프로그램에서 특정 함수를 실행시키면 스택에 이전 함수로 돌아가기 위한 주소가 기록된다. (함수에서 return이 호출되면 그 값과 함께 돌아갈 주소)
- 버퍼에 큰 값을 넣게 되면 이 스택 영역을 침범하게 된다.
- 리턴 주소가 들어갈 곳에 쉘코드나 다른 프로그램의 주소를 넣으면 그것이 실행되게 된다.
힙 버퍼 오버플로우(Heap Buffer Overflow)
- 힙 데이터 영역에서 일어나는 버퍼 오버플로이다.
- 스택 오버플로우만큼 흔히 사용가능한 공격은 아니다.
- 동적 메모리 할당 연결(malloc 상위 수준 데이터)을 덮어씀으로써 프로그램 함수 포인터를 조작한다.
사용함수
- 버퍼 오버플로우에 취약한 함수들 : strcat(), strcpy(), gets(), scanf(), sscanf(), vscanf(), vsscanf(), sprintf(), vsprintf(), gethostbyname()
- 대신 사용이 권장되는 함수들 : strncat(), strncpy(), fgets(), fscanf(), vfscanf(),snprintf(), vsnprintf()
암기법 : 권장함수는 rn, vf, tf단어가 포함
반응형
'License' 카테고리의 다른 글
정보보안기사 오답노트 (0) | 2021.03.26 |
---|---|
보안프로그램 (0) | 2021.03.26 |
리눅스 패스워드 복잡도 (0) | 2021.03.23 |
Stealth Scan (0) | 2021.03.23 |
OSI 7계층 TCP/IP 4계층 (1) | 2021.03.23 |