월간 보관물: 2016 9월

tboot intel TXT

tboot…

언젠가 찾아봤던것 같은데 기억이 안나서 다시한번 찾아봤다…

intel TXT(Trusted Execution Technology, 이전에 LaGrande Technology 라고 했었다.)

  • Operating System platform 의 신뢰성 입증

  • Operating System 이 신뢰된 환경에서 시작하는것을 보장한다 ( 이게 tboot .)

  • 증명되지 않은 한 이용할 수 없는, 보안기능이 추가된 신뢰된 운영체제를 제공한다. ( 여기서 자꾸 문제발생 ㅋㅋ )

intel TXT 는 시스템스프트웨어 뿐만 아니라, 로컬 및 리모트 관리 어플리케이션, 이들의 측정값을 사용하는것이 가능하도록 하는 소프트웨어와 플랫폼 컴포넌트의 측정을 제공하기위해, 신뢰된 결정을 내릴 수 있도록 하는 Trusted Platform Module(TPM) 과 암호화 기술을 사용한다(해석이 맞는지 모르겠다… ). 이 기술은 보다 안전한 컴퓨팅을 위해 Trusted Computing Group(TCG)에의해 업계 기초계획의 기반이 되었다. 이것은 시스템이나 BIOS 코드를 파손, 또는 플렛폼의 설정을 변경 하는것에의해, 기밀정보를 훔치는것을 목적으로한 소프트웨어 베이스의 공격을 방어 한다.

tbootbootloader에 의해 launche된 실행가능한 kernel module 이다. 이게 실행 되려면 intel TXT 가 필요하다.

아무튼 tbootbooting 할때 BIOS code에 미리 심어진 해킹코드등을 방어하기 위해 만들어졌다.

근데 우리는 bios와 같은 hardware는 정상이라고 가정하고 osinstalll 하기 때문에 이 설정을 무효화 시켜보자.

실제로 RHEL6(centos6) 에서 tboot으로 인한 문제가 있었다. 보안을 중요시 여기는 곳이라면 tboot을 설정 해야겟지만… 괜히 이것때문에 문제가 생기는것이 싫은 곳이라면 무효화 시키자.

install 시 무효화 시키는것은 package를 아얘 설치하지 않는것이다.

tboot package를 찾아서 check 해제하자.

kickstart install 하는경우%packages 섹션에서 -tboot 을 명시해주자. 아래와 같이…

%packages

@Base –optional

-tboot

이미 install 되어 있는 system이라면 grubby tool을 이용해서 grub entry에서 삭제 해주자.

# grep -v ^# /boot/grub/grub.conf 
default=0
timeout=5
serial --unit=0 --speed=115200
terminal --timeout=5 serial console
title Red Hat Enterprise Linux without tboot (2.6.32-358.el6.x86_64
    kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg00-root intel_iommu=on rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg00/swap LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg00/root crashkernel=auto crashkernel=auto console=ttyS0,115200 rd_NO_DM
    initrd /initramfs-2.6.32-358.el6.x86_64.img
title Red Hat Enterprise Linux (2.6.32-358.el6.x86_64)
    root (hd0,0)
    kernel /tboot.gz logging=vga,serial,memory
    module /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg00-root intel_iommu=on rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg00/swap LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg00/root crashkernel=auto crashkernel=auto console=ttyS0,115200 rd_NO_DM
    module /initramfs-2.6.32-358.el6.x86_64.img

# grubby --remove-kernel=/boot/tboot.gz

# grep -v ^# /boot/grub/grub.conf 
default=0
timeout=5
serial --unit=0 --speed=115200
terminal --timeout=5 serial console
title Red Hat Enterprise Linux without tboot (2.6.32-358.el6.x86_64
    kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg00-root intel_iommu=on rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg00/swap LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg00/root crashkernel=auto crashkernel=auto console=ttyS0,115200 rd_NO_DM
    initrd /initramfs-2.6.32-358.el6.x86_64.img

tboot package 를 삭제해주자.

# yum erase tboot -y

/etc/sysconfig/kernel file의 내용을 아래와 같이 수정해주자.

[root@rhel6 ~]# cat /etc/sysconfig/kernel 
# UPDATEDEFAULT specifies if new-kernel-pkg should make
# new kernels the default
UPDATEDEFAULT=yes

# DEFAULTKERNEL specifies the default kernel package type
DEFAULTKERNEL=kernel