문제 내용: 코드 보안과 관련된 설명으로 옳지 않은 것은?
선택지 1: 버퍼 오버플로우 공격은 데이터 길이에 대한 불명확한 정의를 이용한 공격이다.
선택지 2: gets()는 버퍼 오버플로우 공격에 취약하지 않은 함수이다.
선택지 3: 포맷 스트링 공격은 데이터 형태에 대한 불명확한 정의로 발생한다.
선택지 4: 버퍼 오버플로우 공격 방어 방법으로는 공격에 취약한 함수를 사용하지 않거나 최신 운영체제를 사용하는 것 등이 있다.