새해 출시되는 PC 대부분은 윈도8을 탑재하는데 그 사용자가 리눅스 운영체제(OS)를 설치할 방법은 훨씬 어려워져 문제가 될 전망이다. '시큐어부트'라 불리는 윈도8 보안기능 탓에 예전처럼 리눅스 사용이 자유롭지 못한 것이다.
미국 지디넷은 31일(현지시각) 윈도8 PC에 리눅스를 설치하는 작업이 기존대비 한층 어려워졌기에 새해 화두가 될 것이라 내다봤다. 리눅스 전문가인 매튜 가렛의 보고서를 인용해 우분투, 페도라, 사바욘 등 유명 리눅스 배포판을 직접 설치해본 결과도 제시했다.
보도에 따르면 윈도8 PC에 적용이 어려워진 것은 리눅스뿐 아니라 예전 윈도 시리즈를 포함한 '다른 OS'를 모두 아우른다. 더불어 마이크로소프트(MS)는 '서피스RT'같은 윈도RT 단말기에는 리눅스 설치를 아예 불가능하게 만들었다.
근본 이유는 '통합확장펌웨어인터페이스(UEFI)'라는 신기능을 적용해서다. 이는 OS 시작 과정보다 먼저 실행돼 제어권을 빼앗는 유해소프트웨어 '루트킷'으로부터 시스템을 보호한다. 그래서 흔히 시큐어부트, 즉 보안부팅이라 불린다.
앞서 리눅스를 UEFI 차단대상의 예외로 두기엔 MS와 리눅스 진영의 주축인 자유소프트웨어재단(FSF) 사이가 우호적이지 않다는 게 문제로 꼽혔다. 실제로 일부 리눅스가 보안부팅 차단 대상에서 제외되긴 했지만 유명하지 않은 배포판을 정상적으로 쓸 방법이 마땅찮다.
■리눅스를 루트킷 취급?
시큐어부트가 유해소프트웨어 실행을 막는 원리는 간단하다. 컴퓨터가 부팅될 동안 승인되지 않은 바이너리프로그램 호출을 차단하는 것이다. 윈도8 PC에 리눅스 설치가 어려운 이유는, 그에 필요한 설치프로그램도 승인되지 않은 유해소프트웨어로 간주돼 막히기 때문이다. 다른 OS를 쓰려면 역시 윈도8 보안기능이 '허락'해야 한다는 얘기다.
문제는 사용자가 직접 임의의 프로그램에 실행 허가를 내줄 수 없다는 점이다. 시큐어부트가 허용하는 프로그램 목록을 바꾸려면 MS나 하드웨어 제조사가 다른 소프트웨어를 쓸 수 있도록 그 내용을 고쳐야 한다.
이를 지적한 지디넷 블로거 스티븐 J. 보건 니콜스는 사용자의 의도와 무관한 이 기능에 '보안부팅'이라는 이름이 부적절하다며, 활용범주를 구속한다는 측면에서 '제한부팅(Restricted Boot)'이라 불러야 마땅하다고 비꼬았다.
사용자가 기존과 마찬가지로 윈도PC에 부담 없이 리눅스를 설치할 수 있으려면 FSF같은 조직이 나서야 한다. 이론적으로 재단이 '모든 PC 제조사'에게 보안부팅이라 불리는 기능을 구현할 때 리눅스같은 자유소프트웨어 OS를 설치할 수 있게 만들어달라고 요구할 수 있다.
실제로 FSF는 제조사들에게 사용자의 시스템을 보호하는 것만큼 그 자유를 인정한다면 그 PC 소유자가 제한부팅 기능을 해제할 수 있도록 만들든지, 사용하려는 자유소프트웨어 OS를 설치하고 구동시킬 직접적인 방법을 제공해야 한다고 지적했다. 그렇지 못할 경우 소유한 PC 하드웨어에 대한 권한을 소프트웨어 기능 때문에 부당하게 제한받는 것으로 이해되기 때문이다.
■시큐어부트 우회방법 '그때그때 달라요'
어쨌든 이론적인 난점에도 실제 윈도8 PC에 리눅스 적용이 불가능한 것은 아니다. 우선 가장 간편한 방법으로 윈도8 PC에서 시큐어부트를 해제하는 것이 있다. 이 경우 2가지 문제가 남는다.
하나는 실제로 시큐어부트로 보호해야 할 루트킷 공격에 그대로 노출이 된다는 점이다. 다른 하나는 앞서 지적한대로 대다수 OEM 제조사들이 시큐어부트 제어기능을 탑재하지 않았다는 것이다. 루트킷 공격을 감수하더라도 실제로 이걸 해제할 간편한 방법을 찾기가 어렵단 얘기다.
J. 보건 니콜스는 모든 PC에 공통적으로 쓸 수 있는 시큐어부트 해제 방법이 존재하지 않는다며 나는 사용자 시스템이 시작되기 전 바이오스설정에 들어가는 것밖에 제안할 수 없다고 언급했다.
그 설정 항목가운데 '시큐어부트 파라미터'나 '부트모드' 같은 메뉴를 골라 기능 해제에 해당하는 선택지를 고르면 된다. 또는 UEFI가 아닌 구버전 바이오스 부팅을 지원하는 메인보드일 경우 그 방식을 쓸 수 있다.
■우분투, 페도라, 사바욘 등에서 가능할 듯…최신판은 어려울 수도
윈도8 PC에서 시큐어부트를 끄지 않고 리눅스를 쓰는 방법도 존재한다. 'UEFI 시큐어부트 리눅스 전문가'로 불리는 매튜 가렛이 캐노니컬의 우분투12.10, 레드햇이 후원하는 페도라18, 이탈리아 배포판인 사바욘 리눅스등을 사용하는 방법에 대해 소개했다.
우분투12.10 버전 64비트판은 MS가 시큐어부트로 막지 않아도 된다고 인정한 배포판이다. 대다수 시스템에서는 일반적으로 배포되는 프로그램을 그대로 써도 설치와 구동이 가능하다. 다만 일부 단말기에서 호환성을 높이기 위해 최근 나온 EFI 패치를 적용받지 못했다.
페도라18 버전은 아직 나오지 않았지만 역시 MS 허용목록에 포함된 64비트 리눅스 배포판이다. 특정 기기들에 부가적으로 EFI 지원 패치를 갖고 있어, 우분투에 비해 AMD 라데온 그래픽카드 등일부 장치에서의 호환성이 향상됐다. 맥 컴퓨터에서의 부팅 지원도 향상됐다.
사바욘은 그 공식 위키사이트에 따르면 UEFI 시큐어부트를 제대로 지원한다. MS가 인증한 대상이라곤 하는데 처음 CD 등 설치디스크로 부팅할 때 사용자가 직접 '키'를 한 번 설치해야 하는 것으로 알려졌다.
다른 유명 배포판가운데 수세리눅스는 MS가 인증한 버전이 나올 예정으로 알려졌다. 아직 정식판 이전에 인증단계를 넘길 수 있는 예비 배포판이 안 나왔을 따름이다. 데비안리눅스는 설치프로그램에 아예 UEFI 지원기능을 통합했다. 문제는 아직 실제로 허용가능한 UEFI 시큐어부트 대상에 포함되진 않았다는 점이다.
■ARM기반 윈도에선 아예 불가능?
한편 ARM기반 단말기인 윈도RT 기기에서는 반드시 시큐어부트를 쓰게 돼있다. 서피스RT 같은 태블릿은 시큐어부트 기능이 꺼졌을 경우 윈도RT가 구동되지 않는단 얘기다. 게다가 윈도RT 사용을 포기하고 시큐어부트 기능을 끄더라도, 리눅스를 돌리는 것은 불가능하다.
가렛의 설명에 따르면 MS 서피스는 다른 여러 ARM 기기와 마찬가지로 서명된 바이너리 프로그램만 구동되도록 만들어진 펌웨어를 깨뜨리더라도 (UEFI 시큐어부트같은) 표준 방식이 탑재된 게 직접적인 장벽이 된다며 이 단말기에서 리눅스를 부팅하는 과정이 펌웨어의 결함을 찾아내 임의의 코드를 실행하는 데 쓰일 수도 있다고 지적했다.
관련기사
- 노키아 엔지니어 "윈도8 게임 해킹된다"2013.01.02
- 윈도8 단말기, '서피스' 왕좌 유지2013.01.02
- 레노버, 기업용 윈도8 태블릿 출시2013.01.02
- 윈도8 '리눅스 차단', 오픈소스 진영 대응은?2013.01.02
요약하면, 아이패드나 안드로이드 태블릿에 다른 OS를 넣어 돌리는 것처럼 서피스RT에 리눅스를 구동하려면 시큐어부트 기능 자체를 뚫어야 한다는 얘기다. 이건 iOS 탈옥처럼 성공하기 위해 다양한 해킹을 시도해야 할 수 있어 시간이 걸리고, MS가 다른 윈도 업데이트처럼 패치를 내놓는 식으로 차단해버릴 가능성이 높다.
J. 보건 니콜스는 누군가 서피스 태블릿을 해킹해 리눅스를 돌리게 만들 수도 있지만 초보자에게 가능할 리 없으니 (비전문가들은) 그냥 잊어버리라며 다만 윈도8이 돌아가는 PC일 경우 가장 쉬운 방법은 시큐어부트를 해제하는 것, 아니면 아예 윈도8이 없거나 리눅스를 탑재한 PC를 사는 것이라고 썼다.