악성 USB 드라이브로부터 Linux 컴퓨터를 보호하는 방법

게시 됨: 2023-01-23
USB 드라이브를 컴퓨터에 연결하는 사람의 손.
Freer/Shutterstock.com
Linux 컴퓨터에서 사용할 수 있는 썸 드라이브를 제어하고 관리하려면 USBGuard를 설치하십시오. USB 장치에 대한 일종의 방화벽 역할을 하여 특정 드라이브를 허용, 차단 또는 거부하는 일련의 규칙을 생성할 수 있습니다.

USB 메모리 스틱을 사용하여 Linux 컴퓨터에서 데이터를 훔칠 수 있습니다. USBGuard를 사용하면 USB 저장 장치용 방화벽과 같이 USB 메모리 스틱 사용을 관리하는 규칙을 설정할 수 있습니다. 작동 방식과 설정 방법은 다음과 같습니다.

목차

USB 메모리 스틱과 그 위험
USBGuard란 무엇입니까?
Linux에서 USB 스틱을 사용한 정상 동작
USBGuard 설치
기본 정책 구성
다른 USB 장치 추가
USB 장치의 액세스 제거

USB 메모리 스틱과 그 위험

우리 모두는 USB 메모리 스틱이나 USB 외장 드라이브와 같은 USB 저장 장치를 하나 이상 가지고 있을 것입니다. 저렴하고 효과적이며 휴대 가능하고 사용하기 쉽습니다.

요즘에는 하나를 Linux 컴퓨터에 연결하기만 하면 저장 장치로 식별되고 자동으로 마운트됩니다. 명령줄에서 직접 마운트해야 하는 시대는 지났습니다. 이 편리함은 누구나 하나를 Linux 컴퓨터에 넣고 USB 드라이브에서 컴퓨터로 데이터를 복사하거나 컴퓨터에서 메모리 스틱으로 데이터를 복사할 수 있음을 의미합니다.

다른 사람이 내 컴퓨터를 사용하는 경우 USB 메모리 스틱으로 할 수 있는 작업을 제한하고 싶을 수 있습니다. 컴퓨터가 집에 있는 경우 컴퓨터가 켜져 있고 무인 상태일 때 악의적인 의도를 가진 기회주의자가 지나갈 가능성은 낮지만 직장에서는 그런 일이 일어날 수 있습니다.

USB 드라이브가 컴퓨터에 위험이 될 수 있는 방법
관련 USB 드라이브가 컴퓨터에 위험이 될 수 있는 방법

그러나 집에 컴퓨터가 있어도 USB 액세스를 제한할 수 있습니다. 아마도 당신의 아이들은 정기적으로 놀러 친구를 가지고 있을 것입니다. USB 액세스를 잠그는 것은 실수로 문제를 일으키는 것을 방지하기 위한 합리적인 예방 조치입니다.

누군가가 USB 드라이브를 찾으면 USB 드라이브에 무엇이 있는지 보기 위해 USB 드라이브를 무언가에 꽂고 싶은 즉각적인 욕구가 있습니다. Linux 컴퓨터를 대상으로 하는 사이버 위협은 Windows 컴퓨터용으로 설계된 것보다 훨씬 드물지만 여전히 존재합니다.

USBGuard란 무엇입니까?

USBGuard는 BadUSB와 같이 손상된 USB 메모리 스틱에 배포되는 소프트웨어 기반 위협으로부터 사용자를 보호할 수 있습니다. BadUSB는 문서처럼 보이지만 위장된 실행 파일을 열도록 조작될 때 공격이 시작됩니다. USBGuard는 컴퓨터에 고전압 방전을 방출하여 컴퓨터에 물리적 손상을 유발하는 USB Killer 장치와 같은 하드웨어 기반 위협으로부터 사용자를 보호할 수 없습니다.

실제로 USBGuard를 사용하면 마우스, 웹캠 및 키보드를 포함한 모든 종류의 다양한 USB 장치에 대한 규칙을 설정할 수 있습니다. USB 메모리 스틱만을 위한 것이 아닙니다. 컴퓨터는 각 USB 장치의 ID를 알고 있으므로 컴퓨터에서 작동하는 USB 장치와 작동하지 않는 USB 장치를 선택할 수 있습니다. USB 연결을 위한 방화벽과 같은 것입니다.

경고: USBGuard 데몬은 설치되는 즉시 실행됩니다. 설치 후 바로 USBGuard를 구성해야 합니다. 그렇지 않으면 컴퓨터를 재부팅할 때 모든 USB 장치가 차단됩니다.

Linux에서 USB 스틱을 사용한 정상 동작

작업을 수행하기 전에 Ubuntu 22.10 컴퓨터의 기본 동작을 확인합니다. 간단한 과정입니다. USB 메모리 스틱을 삽입하고 어떤 일이 일어나는지 확인합니다.

경고음이 들리고 도크에 메모리 스틱 아이콘이 나타납니다.

파일 브라우저를 열면 사이드바의 위치 목록에 항목이 추가되었음을 알 수 있습니다. 표시되는 이름은 장치를 포맷할 때 지정된 이름입니다.

터미널을 lsusb 명령을 사용하면 연결된 USB 장치가 나열됩니다. 맨 위 항목은 TDK 브랜드 장치인 문제의 메모리 스틱입니다.

 lsusb 

lsusb를 사용하여 연결된 USB 장치 나열

관련: Linux 터미널에서 컴퓨터의 장치를 나열하는 방법

USBGuard 설치

USBGuard에는 usbutilsudisks2 에 대한 종속성이 있습니다. 테스트한 최신 Manjaro, Fedora 및 Ubuntu 빌드에는 이미 설치되어 있습니다.

Ubuntu에 USBGuard를 설치하려면 다음 명령을 사용하십시오.

 sudo apt 설치 usbguard 

apt를 사용하여 Ubuntu에 USBGuard 설치

Fedora에서는 다음을 입력해야 합니다.

 sudo dnf 설치 usbguard 

dnf를 사용하여 Fedora에 USBGuard 설치

Manjaro에서 명령은 다음과 같습니다.

 sudo 팩맨 -S usbguard 

pacman으로 Manjaro에 USBGuard 설치하기

기본 정책 구성

USBGuard에는 깔끔한 트릭이 있습니다. 현재 연결된 모든 USB 장치가 방해받지 않고 계속 작동하도록 허용하는 규칙을 만드는 명령이 있습니다. 즉, 항상 필요한 모든 장치에 대한 기본 구성을 만들 수 있습니다. 이 규칙 집합을 기본 정책이라고 합니다.

USBGuard는 세 가지 유형의 규칙을 사용합니다.

  • 허용 : 허용 규칙은 지정된 장치가 정상적으로 작동하도록 허용합니다. 유선 키보드, 마우스, 트랙볼, 웹캠 등과 같이 항상 연결되어 있는 장치에 사용됩니다. 간헐적으로 연결되고 알려지고 신뢰할 수 있는 장치에도 사용됩니다.
  • 차단 : 차단 규칙은 USB 장치가 작동하지 못하도록 합니다. USB 장치는 사용자에게 전혀 보이지 않습니다.
  • 거부 : 거부 규칙은 또한 USB 장치가 작동하지 못하도록 하지만 USB 장치는 lsusb 를 사용하여 사용자에게 표시됩니다.

USBGuard에는 깔끔한 트릭이 있습니다. 현재 연결된 각 USB 장치에 대한 허용 규칙이 포함된 기본 정책을 생성하는 명령이 있습니다. 이는 키보드 및 웹캠과 같이 항상 컴퓨터에 연결되어 있는 장치를 빠르게 구성할 수 있는 좋은 방법입니다. 또한 신뢰할 수 있는 간헐적 장치를 캡처하는 편리한 방법입니다. 명령을 실행할 때 신뢰할 수 있는 모든 장치가 컴퓨터에 연결되어 있는지 확인하십시오.

Linux에서 sudo 액세스를 제어하는 ​​방법
관련 Linux에서 sudo 액세스를 제어하는 ​​방법

특이한 점은 루트로 이 작업을 수행해야 한다는 것입니다. 명령과 함께 sudo 를 사용하면 작동하지 않습니다. sudo -i (로그인) 명령을 사용하여 루트로 쉘을 연 다음 명령을 실행해야 합니다. 완료한 후에는 exit 명령을 사용하여 루트 로그인 세션을 종료해야 합니다.

 sudo -i
 usbguard 생성 정책 -X -t 거부 > /etc/usbguard/rules.conf
 출구

-X (–no-hashes) 옵션은 USBGuard가 각 장치에 대한 해시 속성을 생성하지 못하도록 합니다. -t (대상) 옵션은 인식되지 않는 모든 USB 장치에 대한 기본 대상을 설정합니다. 우리의 경우에는 "거부"를 선택했습니다. "차단"을 선택할 수도 있습니다.

루트 터미널 세션으로 기본 USBGuard 정책 생성

새로운 규칙을 보기 위해 cat 을 사용할 수 있습니다.

 sudo 고양이 /etc/usbguard/rules.conf 

cat을 사용하여 /etc/usbguard/rules.conf에 자동 생성된 규칙 나열

테스트 컴퓨터에서 이것은 3개의 USB 장치를 감지하고 이들에 대한 "허용" 규칙을 생성했습니다. 다른 모든 USB 장치의 대상으로 "거부"를 추가했습니다.

다른 USB 장치 추가

이제 이전에 사용했던 것과 동일한 USB 메모리 스틱을 연결하면 작동이 허용되지 않습니다. 도크에 추가되지 않고 파일 브라우저에 추가되지 않으며 경고음도 들리지 않습니다.

그러나 인식되지 않는 장치에 대해 "거부" 대상을 사용했기 때문에 lsusb 는 해당 세부 정보를 나열할 수 있습니다.

 lsusb 

lsusb를 사용하여 연결된 USB 장치 나열

기본 정책에서 "차단" 대상을 사용한 경우 -b (차단된 장치) 옵션과 함께 list-devices 명령을 사용해야 합니다.

 sudo usbguard 목록 장치 -b 

list-devices 명령을 사용하여 차단, 연결된 장치 나열

현재 연결되어 있지만 차단된 USB 장치를 보여줍니다.

이 명령의 일부 정보를 사용하여 거부된 USB 장치에 임시 액세스 또는 영구 액세스를 허용합니다. 장치에 임시 액세스 권한을 부여하기 위해 장치 ID 번호를 사용합니다. 이 예에서는 "10"입니다.

 sudo usbguard 허용-장치 10 

USB 장치에 임시 액세스 권한 부여

장치가 연결되어 도크와 파일 브라우저에 나타납니다. 차단된 장치를 나열하도록 USBGuard에 요청하면 아무 것도 나열되지 않습니다.

 sudo usbguard 목록 장치 -b 

차단된 장치를 찾지 못하는 USBGUard

-p (영구) 옵션을 사용하여 권한을 영구적으로 만들 수 있습니다. 이것은 우리를 위한 규칙을 생성하고 우리의 정책에 추가합니다.

 sudo usbguard 허용-장치 10 -p 

정책에 허용 규칙을 추가하여 장치에 영구 액세스 권한 부여

이제 이 USB 장치를 정상적으로 사용할 수 있습니다.

USB 장치의 액세스 제거

USB 장치에 대한 생각이 바뀌면(아마도 USB 메모리 스틱을 분실하여 액세스를 제거하려는 경우) block-device 명령을 사용하면 됩니다.

장치 ID를 알아야 합니다. 허용된 장치를 나열하여 이를 찾을 수 있습니다. 이 번호는 규칙을 목록에 추가하는 데 사용한 번호와 다를 수 있으므로 block-device 명령을 실행하기 전에 확인하십시오.

 sudo usbguard 목록 장치 -a 

list-devices 명령을 사용하여 USB 장치의 ID 번호 얻기

이 경우 ID는 "13"입니다. 이를 block-device 명령 및 -p (영구) 옵션과 함께 사용하여 액세스를 영원히 제거합니다.

 sudo usbguard 블록 장치 13 -p 

block-device 명령을 사용하여 USB 장치의 액세스를 영구적으로 차단

이렇게 하면 장치가 즉시 연결 해제됩니다. 장치에서 데이터 사용을 완료한 경우에만 이 명령을 사용하십시오.


USBGuard는 컴퓨터에서 사용할 수 있는 USB 장치를 제어하고 관리하는 효율적이고 강력한 방법을 제공합니다.

그것은 당신의 컴퓨터이므로 당신이 선택할 수 있는 것은 공평합니다.

관련: Linux 터미널에서 저장 장치를 마운트 및 마운트 해제하는 방법