
정답ASLR — 실행할 때마다 메모리 영역의 적재 주소를 무작위화하는 리눅스의 메모리 보호 기능입니다.
핵심 개념
ASLR — 실행 시마다 메모리 주소를 무작위 배치하는 완화 기법
이 문항은 버퍼 오버플로 같은 메모리 손상 공격을 막기 위한 운영체제 차원의 완화(mitigation) 기술을 묻고 있습니다. ASLR(Address Space Layout Randomization)은 프로그램이 실행될 때마다 스택, 힙, 공유 라이브러리, 실행 코드가 적재되는 메모리 주소를 무작위로 바꾸어 배치하는 기능입니다. 공격자는 셸코드 위치나 되돌아갈 리턴 주소를 정확한 번지로 지정해야 하는데, 실행할 때마다 배치가 달라지면 그 주소를 추측하기 어려워져 공격 성공률이 크게 떨어집니다. 리눅스에서는 /proc/sys/kernel/randomize_va_space 값으로 제어하며, 스택 카나리·DEP(NX)와 함께 대표적인 메모리 보호 기법으로 묶여 출제됩니다.
선지별 해설
①DLL(Dynamic Link Library)은 윈도우에서 여러 프로그램이 공유해 사용하는 동적 링크 라이브러리를 뜻하는 용어이며, 주소 무작위화와는 관계가 없습니다. 리눅스의 대응 개념은 공유 라이브러리(.so)입니다.
②Canary(스택 카나리)는 스택의 리턴 주소 앞에 임의의 값을 심어 두고 함수 종료 시 그 값의 변조 여부를 검사해 오버플로를 탐지하는 기법입니다. 주소 배치를 바꾸는 기능이 아니므로 발문과 다릅니다.
③ASLR은 실행마다 스택·힙·라이브러리의 시작 주소를 무작위로 배치해 공격자가 사용할 주소를 예측하지 못하게 만드는 기능으로, 발문의 설명과 정확히 일치합니다.
④Packing(패킹)은 실행 파일을 압축·암호화해 정적 분석과 백신의 시그니처 탐지를 어렵게 만드는 기법으로, 주로 악성코드가 사용하는 은닉 수법입니다. 메모리 주소 무작위화와는 무관합니다.

정답crontab — cron 데몬이 읽는 반복 작업 스케줄을 등록·편집하는 명령입니다.
핵심 개념
crontab — 리눅스의 주기적 작업 예약 명령
리눅스에서 정해진 시각마다 반복적으로 명령을 실행하려면 cron 데몬(crond)과 그 작업 목록 파일인 crontab을 사용합니다. crontab -e로 편집하고, -l로 목록을 확인하며, -r로 전체 삭제합니다. 각 줄은 '분 시 일 월 요일 실행명령'의 6개 필드로 구성되며, 시스템 전역 설정은 /etc/crontab에 있습니다. 한 번만 예약 실행하는 at 명령과 짝지어 자주 출제됩니다. 보안 관점에서 crontab은 공격자가 악성 스크립트를 등록해 재부팅 후에도 살아남는 지속성(persistence)을 확보하는 대표 경로이므로, /etc/cron.allow와 /etc/cron.deny로 사용 권한을 통제하고 등록된 작업을 주기적으로 점검해야 합니다.
선지별 해설
①wc(word count)는 파일의 행 수, 단어 수, 바이트 수를 세어 출력하는 명령입니다. 작업 예약 기능은 전혀 없습니다.
②ps(process status)는 현재 실행 중인 프로세스의 목록과 상태를 조회하는 명령입니다. 실행 중인 프로세스를 보여줄 뿐 주기적 실행을 예약하지는 않습니다.
③df(disk free)는 마운트된 파일 시스템의 전체 용량과 사용량, 여유 공간을 확인하는 명령입니다. 스케줄링과는 무관합니다.
④crontab은 분·시·일·월·요일 필드로 실행 시점을 지정해 명령을 주기적으로 자동 실행하도록 등록하는 명령이므로 발문에 부합합니다.