[System Hardening] 리눅스 커널 모듈 사용 제한하기

IMKUNYOUNG·2024년 6월 13일
0

CKS

목록 보기
33/70

리눅스 관리에서 커널 모듈 관리는 시스템 기능을 강화하고 보안을 유지하는 데 중요한 역할을 합니다. 커널 모듈은 리눅스 커널이 동적으로 확장 기능을 추가할 수 있게 해주는 코드 조각입니다. 특히 새로운 하드웨어 장치 지원이나 특정 기능 활성화를 가능하게 합니다.

커널 모듈 이해하기

커널 모듈은 시스템을 다시 부팅하지 않고 커널에 로드하거나 언로드할 수 있는 코드입니다. 이 유연성은 관리자가 필요할 때마다 장치 드라이버를 통합하거나 새로운 커널 기능을 활성화하는 데 유용합니다. 모듈은 modprobe 또는 insmod와 같은 명령을 사용하여 수동으로 로드할 수 있습니다.

Kubernetes 환경에서의 보안 고려 사항

Kubernetes 환경에서는 여러 워크로드와 애플리케이션이 동시에 실행되므로, 불법 프로세스가 커널 모듈을 로드하는 위험이 있습니다. 예를 들어, 파드가 네트워크 작업을 시작하여 네트워크 프로토콜 관련 모듈을 로드할 수 있습니다. 이러한 작업은 보안 취약점을 노출시킬 수 있습니다.

모듈 블랙리스트 적용하기

이러한 위험을 줄이기 위해 모듈 블랙리스트를 사용하는 것이 효과적입니다. 블랙리스트는 특정 커널 모듈이 시스템에 로드되지 않도록 방지합니다. 특히 Kubernetes 클러스터 환경에서 필요하지 않거나 사용해서는 안 되는 모듈에 중점을 두어야 합니다.

모듈 블랙리스트 적용 단계:

  1. 블랙리스트할 모듈 식별: Kubernetes 설정 내에서 불필요하거나 보안 문제를 야기할 수 있는 모듈을 식별합니다. 예를 들어, SCTP(스트림 제어 전송 프로토콜) 또는 DCCP(데이터그램 혼잡 제어 프로토콜)과 같은 모듈이 해당됩니다. 커널에 로드된 모듈을 나열하려면 lsmod 명령을 사용합니다.
$ lsmod
Module Size Used by
floppy 69417 0
xt_conntrack 16384 1
ipt_MASQUERADE 16384 1
nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE
nf_conntrack_netlink 40960 0
nfnetlink 16384 2 nf_conntrack_netlink
xfrm_user 32768 1
xfrm_algo 16384 1 xfrm_user
xt_addrtype 16384 2
iptable_filter 16384 1
iptable_nat 16384 1
nf_conntrack_ipv4 16384 3
nf_defrag_ipv4 16384 1 nf_conntrack_ipv4
nf_nat_ipv4 16384 1 iptable_nat
nf_nat 32768 2 nf_nat_masquerade_ipv4,nf_nat_ipv4
nf_conntrack 131072 7
bluetooth 544768 43 btrtl,btintel,btbcm,bnep,btusb,rfcomm
  1. 블랙리스트 구성 파일 생성:

    • /etc/modprobe.d/ 디렉토리로 이동합니다 (필요시 생성).
    • blacklist.conf와 같은 .conf 확장자를 가진 구성 파일을 생성합니다. 이 파일에는 블랙리스트할 모듈 항목을 추가합니다.
  2. 블랙리스트 파일에 항목 추가:

    • blacklist.conf 파일을 편집하고 특정 모듈을 블랙리스트에 추가합니다. 예시:

      # SCTP 모듈 블랙리스트
      blacklist sctp
      
      # DCCP 모듈 블랙리스트
      blacklist dccp
  3. 변경 사항 적용 및 시스템 재부팅:

    • blacklist.conf 파일을 저장합니다.
    • 변경 사항을 적용하기 위해 시스템을 재부팅합니다.
    	shutdown –r now
    • 재부팅 후, lsmod 명령을 사용하여 모듈이 효과적으로 블랙리스트되었는지 확인합니다.
    	lsmod | grep sctp
    	lsmod | grep dccp

결론

리눅스 환경에서 모듈 블랙리스트를 적용함으로써 Kubernetes 클러스터에서의 시스템 보안을 크게 강화할 수 있습니다. 이 프로액티브 접근은 불법 모듈 로드를 방지하고 공격 가능성을 줄여 시스템의 안정성과 신뢰성을 확보하는 데 기여합니다.

0개의 댓글