프로그램의 코드보안에 대한 설명으로 가장 적절하지 않은 것은? | [경찰간부후보생 정보보호론] 26년 1회차 기출문제 상세 페이지
1[경찰간부후보생 정보보호론] 26년 1회차
프로그램의 코드보안에 대한 설명으로 가장 적절하지 않은 것은?
1
소스코드에서 문제를 발생시키는 요인으로 ‘데이터의 형태와 길이에 대한 불명확한 정의’가 있다.
2
strcpy() 함수는 포맷스트링 공격에 취약한 함수이다.
3
오버플로우가 발생하는 버퍼에 저장되는 공격자의 코드를 셸코드라고 한다.
4
프로그램 실행 중에 해당 힙 영역이 고갈되면 메모리 부족으로 이상 종료가 된다.
해설
strcpy()는 포맷스트링이 아니라 버퍼 오버플로에 취약한 함수이다.
strcpy()는 대상 버퍼의 크기를 검사하지 않고 복사하므로 경계를 넘어 쓸 수 있다. 포맷스트링 공격은 printf() 계열에 사용자 입력을 서식 문자열로 그대로 넘길 때 발생한다.
- 데이터 형태·길이의 불명확한 정의는 소스코드 취약점의 대표 요인이다 — 옳다.
- 오버플로가 발생하는 버퍼에 심어 실행시키는 공격 코드를 셸코드라 한다 — 옳다.
- 실행 중 힙이 고갈되면 메모리 할당에 실패해 이상 종료된다 — 옳다.
오류나 개정된 내용이 보이면 알려주세요