다음 프로그램이 취약한 공격 유형은?#define BUFSIZE 256… | [국회직 9급 정보보호론] 20년 1회차 기출문제 상세 페이지
1[국회직 9급 정보보호론] 20년 1회차
다음 프로그램이 취약한 공격 유형은?#define BUFSIZE 256
int main(int argc, char **argv) {
char *buf;
buf = (char *)malloc(sizeof(char)*BUFSIZE);
strcpy(buf, argv[1]);
}
1
스택 버퍼 오버플로우 공격
2
힙 버퍼 오버플로우 공격
3
포맷 스트링 공격
4
정수 오버플로우 공격
5
레이스 컨디션 공격
해설
이 프로그램은 힙 버퍼 오버플로우 공격에 취약하다.
buf가 가리키는 공간은 malloc으로 할당한 힙 영역이고, strcpy는 길이를 검사하지 않으므로 argv[1]이 BUFSIZE보다 길면 힙의 인접 영역을 덮어쓴다.
- 스택 버퍼 오버플로우: 복사 대상이 스택의 지역 배열이 아니라 힙에 할당된 공간이므로 해당하지 않는다.
- 포맷 스트링 공격: 외부 입력을 printf 계열의 서식 문자열로 넘기는 코드가 없다.
- 정수 오버플로우 공격: 할당 크기가 상수로 고정되어 있어 입력값으로 크기를 계산하는 부분이 없다.
- 레이스 컨디션 공격: 여러 프로세스가 공유 자원을 두고 경쟁하는 구조가 아니다.
오류나 개정된 내용이 보이면 알려주세요