[태그:] 리눅스

  • 시큐어 부트(Secure Boot): 인증서가 만료되면 PC가 켜지지 않는다

    시큐어 부트(Secure Boot): 인증서가 만료되면 PC가 켜지지 않는다

    PC 전원 버튼을 누른 직후, 화면이 켜지기까지의 1~2초. 그 사이에 UEFI 펌웨어가 조용히 부트로더의 디지털 서명을 검사한다. 이게 시큐어 부트(Secure Boot)다. 대부분은 이 과정이 있는지도 모르고 쓴다. 그런데 이 서명에 유효 기간이 있다는 건, 아는 사람이 별로 없다.

    인증서가 만료되면 OS가 부팅을 거부한다. Windows든 리눅스든 가리지 않는다. 2010년대 초반에 발급된 RSA-2048 기반 시큐어 부트 인증서 상당수가 2026년을 전후로 만료 시점에 도달하고 있다. 이 글은 시큐어 부트의 구조와, 인증서 문제가 터졌을 때 직접 처리하는 방법을 정리한다.

    시큐어 부트가 하는 일

    2012년 UEFI 2.3.1 규격과 함께 도입된 부팅 보안 메커니즘이다. 원리는 단순하다. PC가 켜지는 순간, 부트로더·드라이버·OS 커널 등 실행되는 소프트웨어 전부의 디지털 서명을 검증한다. 서명이 없거나 만료됐으면 부팅 차단. 끝이다.

    이 기능이 필요한 건 부트킷(Bootkit) 때문이다. 부트킷은 OS보다 먼저 실행되기 때문에 백신으로는 잡기가 거의 불가능하다. 시큐어 부트는 그 진입 자체를 막는다.

    시큐어 부트에 쓰이는 키는 세 종류다:

    • PK (Platform Key): ASUS, MSI 같은 하드웨어 제조사가 보유하는 최상위 키
    • KEK (Key Exchange Key): 신뢰 키 목록을 업데이트할 때 쓰는 키
    • DB (Signature Database): 실제로 부팅을 허용할 소프트웨어 서명 목록

    Microsoft는 자사 부트로더 서명을 DB에 등록해 두고, 이 서명이 통과해야 Windows가 올라온다. 구조 자체는 깔끔하다. 문제는 인증서 갱신이다.

    인증서가 왜 만료되나

    SSL/TLS 인증서처럼, 시큐어 부트 인증서도 유효 기간이 있다. 암호화 알고리즘이 시간이 지나면서 취약해지기 때문이다. RSA-2048은 2010년대 초반 기준으로는 충분히 강력했지만, 10년 넘게 쓰다 보면 갱신이 필요하다. 그 갱신 시점이 2026년 전후로 몰려 있다.

    더 골치 아픈 건, 이 인증서가 OS나 앱이 아닌 UEFI 펌웨어에 박혀 있다는 점이다. 자동 업데이트가 안 된다. 마더보드 제조사가 UEFI 펌웨어 업데이트를 통해 새 인증서를 배포하거나, Microsoft가 Windows Update로 DB를 갱신하는 방식으로 처리해야 한다. 어느 쪽도 알아서 되는 구조가 아니다.

    갱신이 늦어지면:

    • 기존에 서명된 부트로더가 “신뢰 불가”로 처리됨
    • 부팅 화면에 보안 위반 경고 발생
    • 최악의 경우 OS 진입 자체 불가

    Windows에서 시큐어 부트 상태 확인

    확인 방법은 두 가지다. 빠른 순서로 적는다.

    방법 1: 시스템 정보 툴

    • Win + R → msinfo32 실행
    • 좌측 “시스템 요약” 클릭
    • 우측에서 “보안 부팅 상태” 확인
    • “사용” 또는 “켜짐”이면 정상

    방법 2: PowerShell

    • PowerShell 관리자 권한으로 실행
    • Confirm-SecureBootUEFI 입력
    • True = 활성화, False = 비활성화

    시큐어 부트가 꺼져 있으면 Windows 11 보안 기능 일부가 제한된다. TPM 2.0과 함께 Windows 11 설치 필수 요건이기도 하다. 비활성화 상태라고 당장 뭔가 터지진 않지만, 보안 구멍은 열려 있다.

    UEFI에서 직접 인증서 상태를 보고 싶다면 부팅 시 Delete 키 또는 F2 키(제조사마다 다름)로 진입 후, Security → Secure Boot → Key Management 경로를 찾으면 된다.

    리눅스가 더 까다로운 이유

    리눅스에서 시큐어 부트는 솔직히 한 단계 더 복잡하다. Microsoft가 관리하는 DB에 서명이 없는 커스텀 커널이나 드라이버는 기본 차단이다.

    Ubuntu, Fedora, openSUSE 같은 주요 배포판은 Shim이라는 중간 부트로더로 이 문제를 우회한다. Shim은 Microsoft 서명을 받은 부트로더인데, 이 Shim이 배포판 자체 서명(MOK, Machine Owner Key)을 검증하고 그 아래에서 커널을 올리는 구조다. 레이어가 하나 더 끼어 있다.

    문제가 터지는 상황은 주로 이렇다:

    • Nvidia나 VirtualBox 같은 서드파티 커널 모듈 설치 시 MOK 등록을 빠뜨렸을 때
    • 직접 컴파일한 커스텀 커널을 쓸 때
    • Arch Linux처럼 시큐어 부트 설정을 직접 잡아야 하는 배포판에서 뭔가 건드렸을 때
    • Shim이나 GRUB 서명이 만료됐을 때

    MOK 등록은 mokutil --import로 처리하고, 재부팅 후 MOK 관리 화면에서 최종 확인해야 한다. 이 단계를 빠뜨리면 시큐어 부트 활성화 상태에서 해당 모듈이 아예 로드되지 않는다. Nvidia 드라이버 설치하고 화면이 검게 나오는 경우의 절반은 여기서 막힌다.

    UEFI에서 직접 처리하는 조치 3가지

    인증서 문제가 생겼을 때 UEFI 펌웨어 수준에서 할 수 있는 작업이다.

    1. UEFI 펌웨어 업데이트
    마더보드 제조사 공식 사이트에서 최신 UEFI 펌웨어를 받아 업데이트하면 새 인증서가 함께 포함되는 경우가 많다. ASUS, MSI, Gigabyte, ASRock 등 주요 제조사는 인증서 갱신 펌웨어를 순차 배포 중이다. 제조사 유틸리티 앱(Armory Crate, MSI Center 등)에서 바로 업데이트가 된다.

    2. 시큐어 부트 키 초기화 (Reset to Setup Mode)
    UEFI 설정에서 시큐어 부트를 “Setup Mode”로 전환하면 기존 키가 전부 삭제된다. 이 상태에서 새 키를 등록하거나, “Restore Factory Keys” 옵션으로 제조사 기본값을 복원한다. 주의: Setup Mode 상태에서는 시큐어 부트 검증이 꺼진다. 작업 후 반드시 다시 활성화해야 한다.

    3. Windows Update로 DB 갱신
    Microsoft는 Windows Update를 통해 시큐어 부트 DB를 업데이트한다. Windows 설정 → Windows Update → 고급 옵션 → 선택적 업데이트에서 드라이버 및 펌웨어 업데이트 항목을 확인해 보자. 이 경로가 의외로 놓치기 쉽다.

    그냥 꺼버리면 어떻게 되나

    “귀찮으니까 끄면 되지 않나.” 기능적으로는 가능하다. 다만 감수해야 하는 것들이 있다.

    • 부트킷 감염 위험 증가: 부팅 과정 검증이 사라지므로 악성 부트로더가 설치돼도 탐지가 어렵다
    • Windows 11 보안 기능 제한: Credential Guard, Virtualization-Based Security(VBS) 등이 제대로 동작하지 않는다
    • 기업 환경에서 정책 위반: Intune 조건부 액세스에서 컴플라이언스 미충족으로 처리된다

    개인 PC에서 단기적으로 뭔가 터질 가능성은 낮다. 그러나 공격 표면이 넓어지는 건 사실이다. 비활성화보다 근본 원인, 즉 인증서 갱신이나 펌웨어 업데이트를 해결하는 게 맞다.

    결론 대신 — 할 것 4가지

    시큐어 부트 인증서 문제는 앞으로도 주기적으로 반복된다. 복잡한 게 아니다. 4가지다.

    • UEFI 펌웨어 최신 유지: 마더보드 제조사 사이트나 Armory Crate, MSI Center 같은 제조사 유틸리티에서 정기 확인
    • Windows Update 미루지 않기: 선택적 업데이트 항목까지 챙기면 DB 갱신 대부분이 자동 처리된다
    • 리눅스 배포판 최신 유지: sudo apt update && sudo apt upgrade 또는 sudo dnf upgrade로 shim과 grub을 최신 버전으로 유지
    • UEFI 설정 주기 확인: 중고 마더보드를 샀다면 이전 소유자의 키 설정이 남아 있을 수 있다

    시큐어 부트는 평소에 신경 쓸 일이 없는 기능이다. 그런데 인증서 만료처럼 예고 없이 터지는 문제는, 구조를 알고 있어야 당황하지 않는다. UEFI 설정에서 어디를 봐야 할지 알면 복구 시간이 확 줄어든다.

    출처: Wired

  • 네트워크 모니터링이란? 내 PC 감시 프로그램 A to Z

    네트워크 모니터링이란? 내 PC 감시 프로그램 A to Z

    리틀 스니치를 처음 설치한 사람들이 제일 먼저 하는 말이 있다. “이게 다 연결하고 있었어?” 컴퓨터를 켜놓기만 해도 수십 개의 프로세스가 외부 서버와 조용히 통신한다. 업데이트 확인, 기능 동기화, 라이선스 검증 — 대부분은 정상적인 작동이다. 문제는 그 틈새에 있다. 악성코드나 스파이웨어가 개인 정보를 빼내는 통로도 정확히 이 ‘보이지 않는 연결’을 이용한다. 네트워크 모니터링은 그걸 가시화하고 통제하는 기술이다.

    방화벽이 있는데 왜 또 필요한가

    방화벽(Firewall)으로 충분하다고 생각하기 쉽다. 틀린 말은 아닌데, 방화벽은 구조적으로 외부에서 내부로 들어오는 인바운드(Inbound) 트래픽 차단에 최적화돼 있다. 내 컴퓨터가 먼저 손을 뻗는 경우 — 즉 아웃바운드(Outbound) 트래픽 — 는 그냥 통과시키는 경우가 많다. 네트워크 모니터링 툴은 바로 이 부분을 잡는다. 방화벽과는 결정적으로 다른 지점이다. 네트워크 모니터링이 필요한 이유는 세 가지로 정리된다.

    • 보안 강화: 악성코드가 감염된 후 C&C(명령 제어) 서버에 연결을 시도하거나, 랜섬웨어가 암호화 키를 전송하려는 행동을 실시간으로 탐지·차단한다.
    • 프라이버시 보호: 사용자 동의 없이 사용 패턴이나 개인 정보를 외부로 전송하는 소프트웨어를 잡아낸다. 생각보다 이런 앱이 많다.
    • 시스템 이해: 어떤 프로세스가, 어느 서버와, 얼마나 자주 통신하는지 파악하면 시스템 동작 원리를 더 깊이 이해하고, 불필요한 네트워크 자원 낭비도 줄인다.

    아웃바운드 감시가 핵심인 이유

    대부분의 공격은 인바운드로 시작된다. 그런데 실제 피해 — 정보 유출, 추가 공격 명령 수신 — 는 아웃바운드 통신을 통해 완성된다. 키로거가 탈취한 키보드 입력 기록을 해커 서버로 조용히 전송하는 게 전형적인 패턴이다. 내가 직접 설치한 워드 프로세서가 갑자기 알 수 없는 해외 IP로 접속을 시도한다면? 뭔가 이상하다. 이런 의심스러운 아웃바운드 신호를 포착하는 것, 그게 핵심이다.

    대표 툴: 리틀 스니치(Little Snitch)

    네트워크 모니터링 분야에서 가장 잘 알려진 툴은 단연 리틀 스니치다. macOS에서 오랫동안 신뢰를 쌓아온 도구로, 작동 방식이 직관적이다. 특정 앱이 인터넷에 연결을 시도하는 순간, 바로 알림창이 뜬다. 영구 허용, 이번만 허용, 완전 차단 — 세 가지 중 하나를 고르면 된다. 이렇게 규칙을 하나씩 쌓아가는 방식이라 처음엔 알림이 조금 많다. 일주일쯤 지나면 대부분 정리된다.

    최근 리눅스 버전까지 출시하며 적용 범위를 넓혔다. The Verge 보도에 따르면, 개발자가 우분투(Ubuntu) 환경에서 일주일간 직접 테스트한 결과 시스템 프로세스 9개가 사용자 모르게 인터넷 연결을 생성한 것으로 드러났다. 운영체제 자체도 허락 없이 외부와 통신한다는 사실을 보여주는 결과다. 이건 좀 불편한 사실이긴 하다.

    연결 요청이 왔을 때 판단하는 법

    알림이 뜬다고 무조건 차단하면 프로그램이 제대로 작동하지 않는다. 정상적인 동작에 꼭 필요한 연결일 수도 있으니까. 아래 4가지 정보를 종합해서 판단해야 한다.

    • 프로세스 이름: 어떤 프로그램이 연결을 시도하는가? (예: Chrome.exe, svchost.exe)
    • 목적지 주소: 어느 서버의 IP 또는 도메인으로 접속하려 하는가? (예: google.com, akamaihd.net)
    • 포트 번호: 80·443은 웹 트래픽, 22는 SSH 원격 접속이다.
    • 연결 방향: 인바운드인가, 아웃바운드인가?

    포토샵(Photoshop)이 adobe.com 서버의 443 포트로 연결하는 건 업데이트 확인이다. 정상이다. 반면 계산기(calc.exe)가 낯선 국가 IP 주소로 접속을 시도한다면 악성코드 감염을 의심하고 즉시 막아야 한다. 이 두 사례만 기억해도 판단이 훨씬 쉬워진다.

    리눅스 환경의 선택지 — OpenSnitch

    리눅스는 원래 netstat, ss, tcpdump 같은 커맨드라인 도구로 네트워크 연결 상태를 확인한다. 강력하긴 한데, 실시간으로 모든 연결 시도를 GUI로 제어하기엔 솔직히 불편하다. 리틀 스니치의 리눅스 버전, 그리고 오픈소스 프로젝트 ‘OpenSnitch’는 이 간극을 메워준다. 터미널이 낯선 사용자도 자기 리눅스 시스템에서 어떤 일이 벌어지는지 한눈에 파악하고 통제권을 쥘 수 있다.

    결국 통제권의 문제다

    네트워크 모니터링은 보안 기술이기도 하지만, 본질은 따로 있다. 내 컴퓨터가 내 허락 없이는 그 어떤 정보도 외부로 내보내지 않는다는 확신. 보이지 않던 연결이 화면에 드러나는 순간, 뭔가 달라지는 느낌이 있다. 디지털 주권이라고 거창하게 부를 수도 있겠지만 — 솔직히 그냥, 내 컴퓨터가 진짜 내 것이 되는 기분이다. 보이지 않는 연결을 가시화하고 제어하는 것, 그게 시작이다.

    출처: The Verge