Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

15.5. GCC를 사용하여 코드 강화

컴파일러가 소스 코드를 개체 코드로 변환할 때 일반적으로 악용되는 상황을 방지하기 위해 다양한 검사를 추가하여 보안을 강화할 수 있습니다. 올바른 컴파일러 옵션 세트를 선택하면 소스 코드를 변경하지 않고도 보다 안전한 프로그램 및 라이브러리를 생성하는 데 도움이 될 수 있습니다.

릴리스 버전 옵션

다음은 Red Hat Enterprise Linux를 대상으로 하는 개발자에게 최소 권장 옵션 목록입니다.

$ gcc ... -O2 -g -Wall -Wl,-z,now,-z,relro -fstack-protector-strong -D_FORTIFY_SOURCE=2 ...
  • 프로그램의 경우 -fPIE-pie Position Independent Executable 옵션을 추가합니다.
  • 동적으로 연결된 라이브러리의 경우 필수 -fPIC (Position Independent Code) 옵션은 간접적으로 보안을 강화합니다.

개발 옵션

다음 옵션을 사용하여 개발 중 보안 결함을 탐지하는 것이 좋습니다. 릴리스 버전 옵션과 함께 다음 옵션을 사용합니다.

$ gcc ... -Walloc-zero -Walloca-larger-than -Wextra -Wformat-security -Wvla-larger-than ...

추가 리소스