3.1 부트로더 보안
리눅스가 부팅될 때 BIOS에서 하드웨어 장치를 인식하고 초기화한다. 하드웨어에 문제가 없으면 부트로더를 주기억장치(RAM)에 로드하고 부트로더를 실행한다. 부트로더는 부팅에 필요한 리눅스 커널을 로드하고, 그 후 리눅스의 init 프로세스1가 시작되면서 리눅스 프로그램을 실행한다.
▲ 그림 3-2 리눅스 실행 과정
리눅스는 과거에 LILO(LInux LOader)를 많이 사용했지만, 현재는 네트워크 부팅 기능과 커맨드 환경 제공 등 사용자 편의성이 개선된 GRUB(GRand Unified Bootloader)를 사용한다. 이 장에서는 GRUB를 기준으로 설명하겠다. GRUB 보안이 허술하거나 취약하다면 리눅스 서버에 보안 조치가 되어 있어도 시스템에 접근하거나 악성 코드가 설치된 커널을 실행할 수 있다. 따라서 부트로더에 대한 보안 조치가 필수이다. 이번 절에서는 GRUB를 설명하고, 부트로더 보안을 설정하는 방법을 알아보자.