상세 컨텐츠

본문 제목

70초 동안 ‘엔터키' 눌러 리눅스 루트 Shell 얻는 방법 발견돼

국내외 보안동향

by 알약(Alyac) 2016. 11. 17. 17:14

본문

70초 동안 ‘엔터키' 눌러 리눅스 루트 Shell 얻는 방법 발견돼

This Hack Gives Linux Root Shell Just By Pressing 'ENTER' for 70 Seconds


일부 리눅스 시스템에서 공격자가 엔터키를 70초 동안 누르면 인증 프로시져를 우회할 수 있는 것으로 나타났습니다. 엔터키를 70초 동안 누르면 공격자에게 루트 권한의 shell을 부여하고, 그들이 암호화된 리눅스 머신을 완전히 제어할 수 있도록 허용합니다.


해당 보안 이슈는 Cryptsetup 유틸리티에 존재하는 취약점 CVE-2016-4484 때문에 발생합니다. Cryptsetup은 LUKS(Linux Unified Key Setup)을 통해 하드드라이브를 암호화하는데 사용되며, 리눅스 기반 OS에서 디스크를 암호화하는데 사용되는 표준입니다.


이 취약점은 시스템이 부트업될 때 사용자가 여러 번 패스워드를 다시 입력하도록 하는 암호화 과정에서 Cryptsetup 유틸리티가 패스워드 실패를 처리하는 방법에 존재합니다. 더욱 심각한 것은 사용자가 패스워드 입력을 93번 시도했을 때 해당 사용자가 루트 권한을 가진 shell(우분투에서는 Busybox)로 드랍된다는 것입니다.


이는 패스워드를 공란으로 93번 입력하거나, 단순히 70초 가량 ‘엔터’키를 누른 것만으로 공격자가 루트 initramfs(초기 RAM 파일 시스템) shell 접근 권한을 가질 수 있다는 의미입니다.

 

이미지 출처 : http://thehackernews.com/2016/11/hacking-linux-system.html


타겟 리눅스 머신의 root shell을 얻으면 하드디스크를 복사, 수정, 파괴해 버리거나 데이터 추출을 위해 네트워크를 사용할 수 있습니다.



원격으로도 취약점 악용 가능해


이 취약점은 스페인 보안 연구원 Hector Marco와 Ismael Ripoll이 발견했습니다. 이는 Debian, Ubuntu, Fedora, Red Hat Enterprise Linux, SUSE Linux Enterprise Server 등 거의 모든 리눅스 배포판에 영향을 미치기 때문에 수 백만 사용자를 잠재적 위험에 빠트립니다.


연구원들은 오스트리아 비엔나의 DeepSec 컨퍼런스에서 해당 취약점에 대해 아래와 같이 발표했습니다.


“이 취약점은 시스템에서 루트 initramfs shell을 얻을 수 있도록 허용한다. 또한 특정 시스템이나 설정에 의존하지 않으므로 매우 확실하다고 볼 수 있다. 공격자는 하드 디스크를 복사, 수정하거나 파괴해버릴 수 있으며 데이터 추출을 위해 네트워크를 사용할 수도 있다. 이 취약점은 특히 라이브러리, ATM, 공항 머신, 연구실 등 모든 부트 프로세스가 보호된 환경에서 더욱 심각하다.”


이는 물리적으로 타겟 시스템에 접근할 수 있을 때 해당 취약점을 악용할 수 있다고 생각할지 모릅니다. 맞습니다. 그러나 이 취약점을 원격으로 악용하는 것도 가능한 것으로 밝혀졌습니다.


만약 당신이 리눅스를 사용하는 클라우드 기반 서비스를 사용한다면, 물리적으로 접근하지 않고도 이 취약점을 원격으로 악용할 수 있다.



이 취약점은 얼마나 강력한가


해당 취약점이 얼마나 강력한지 확인해보겠습니다. 그러나 이 취약점이 공격자가 암호화된 드라이브 내용에 대해 접근하는 것은 허용하지 않는 것을 명심해야 합니다. 연구원들에 따르면, 공격자가 이 shell을 이용하면 아래와 같은 행동을 할 수 있게 됩니다.


※ 권한 상승: 부트 파티션은 일반적으로 암호화되어 있지 않으므로,


- 실행 파일을 bit SetUID를 활성화한 채로 저장하는데 사용될 수 있습니다. 이는 나중에 로컬 사용자가 그의 권한을 상승시키는 것으로 악용할 수 있습니다.

- 부트가 보호되지 않았을 경우, 공격자가 커널 및 initrd image를 바꿔치기 할 수 있게 됩니다.


※ 정보 유출: 공격자는 모든 디스크에 접근할 수 있습니다. 시스템 파티션이 암호화되어 있더라도, 외부 장치로 복사될 수 있기 때문에 추후 브루트포싱을 통해 접근이 가능해질 수 있습니다. 당연히 다른 장비의 암호화 되지 않은 정보에도 접근할 수 있습니다.


※ 서비스 거부 (DoS): 공격자는 디스크에 있는 모든 정보를 삭제할 수 있습니다.


이 보안 결점은 Debian, Ubuntu, Fedora 등을 포함한 많은 리눅스 배포판에서 확인되었습니다. Arch Linux 및 Solus 사용자들은 해당 이슈에 영향을 받지 않는 것으로 밝혀졌습니다.



취약점 해결 방법


다행히 이 취약점은 매우 쉬운 방법으로 고칠 수 있습니다.


먼저 LUKS 패스워드 프롬프트 창에서 shell이 나타날 때까지 약 70초 동안 엔터키를 눌러 자신의 시스템이 이에 취약한지 확인합니다.


이미지 출처 : http://thehackernews.com/2016/11/hacking-linux-system.html


만약 취약한 것으로 확인될 경우, Linux 배포판을 지원하는 벤더가 패치를 공개했는지 여부를 확인합니다. 만약 패치가 불가능할 경우에는 패스워드 입력 시도 횟수가 소진되면 부트 시퀀스를 중단하도록 cryptroot 파일을 변경하여 해당 이슈를 수정할 수 있습니다. 아래의 명령어를 부트 설정에 추가하면 됩니다.


sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="panic=5 /' /etc/default/grub grub-install


관련하여 이미 패치가 공개되었기 때문에 사용자는 반드시 패키지 버전 및 OS를 항상 최신 버전으로 유지하도록 권고 드립니다. 이 취약점과 관련한 자세한 기술적 정보는 Hector Marco의 웹사이트에서 확인할 수 있습니다.







출처 :

http://thehackernews.com/2016/11/hacking-linux-system.html

http://hmarco.org/bugs/CVE-2016-4484/CVE-2016-4484_cryptsetup_initrd_shell.html

관련글 더보기

댓글 영역