grub2 secure를 통해 어떤 Linux 컴퓨터로 침입 할 수 있습니까?


52

컴퓨터에 물리적으로 액세스 한 사람이 이러한 단계를 통해 어떤 식 으로든 안전하게 접근 할 수있는 능력은 어떻습니까?

  1. grub2 메뉴가 열리면을 눌러 e Linux 시작 옵션을 편집합니다
  2. 변화:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro   quiet splash" 
    

    에:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro init=/bin/bash"
    
  3. 이제 루트 액세스 권한이 있습니다.

    mount -o remount,rw /
    passwd user
    mount -o remount,ro / 
    sync
    
  4. 컴퓨터를 재부팅하면 승리합니다.

내 질문은 grub2 secure를 통해 어떤 Linux 컴퓨터로 침입 할 수 있습니까? 나는 리눅스에 대한 그 사실을 이해하지 못한다. 대답에 감사드립니다.


51
물리적 접근이 불가능해야한다고 누가 말했습니까? 누군가가 물리적으로 액세스 할 수있는 경우-모든 베팅은 -OFF-입니다. 기계 소유자는 기계 옆에있을 때 항상 기계에 접근 할 수 있어야합니다. 그렇지 않으면 복구 방법없이 벽돌을 쌓을 수 있습니다.
Rinzwind

7
그리고 당신은 이것에 대해 불평 할 수 있습니다 : 그러나 라이브 DVD / USB를 시스템에 붙이는 것은 어떻습니까? 아니면 디스크를 꺼내서 다른 컴퓨터에 넣고 dd디스크를 연결합니까? 그리고 "리눅스"? grub을 사용하는 다른 시스템에서도 작동합니다. 반면에 창은 ... 창이 깨질 때 ... 아마 시스템을 포맷 할 수 있습니다 : P
Rinzwind

10
완전히 보호 되려면 이 솔루션이
Anwar

5
아, 멍청 아! @Clutchy는 우리의 비밀을 발견했습니다. 우리 모두 지금 시안화물 캡슐을 복용해야합니다.
paulzag

3
@ paulzag 이해, 서버 룸 자체 파괴 메커니즘을 트리거로 이동합니다. RMS에 영광!
Kaz Wolfe

답변:


108

귀하의 컴퓨터에 물리적으로 접근 한 사람이 [Grub / Bash를 사용하여] 어떤 식 으로든 루트를 얻는 능력은 어떻게 안전합니까?

리눅스가 그렇게하기로 결정했다면 해커들은 다른 보안 허점을 이용할뿐입니다. 보안의 첫 번째 규칙은 시스템에 물리적으로 액세스 할 수 있으면 게임이 끝났다는 것입니다. 내가 이겼어

또한 X 서버가 고장 나서 더 이상 GUI가 없다고 가정하십시오. 문제를 해결하려면 복구 콘솔로 부팅해야하지만 안전하지 않으므로 복구 할 수 없습니다. 이 경우 시스템이 완전히 파손 된 상태이지만 적어도 "안전한"시스템입니다.

그러나 Kaz, 이것이 어떻게 가능합니까? Grub에서 암호를 설정 init하여 Bash로 변경할 수 없습니다 !

아 그랬어? 흥미 롭습니다. 사진 앨범처럼 보이기 때문입니다. GRUB에는 본질적인 보안 요소가 전혀 없습니다. 보안 부팅 및 인증 체인의 단계가 아닌 부트 로더 일뿐 입니다. 당신이 설정 한 "암호"는 실제로 무시하기 쉽다.

그리고 어떤 sysadmin 비상 사태를 위해 부팅 드라이브를 가지고 있지 않습니까?

그러나 어떻게?! 당신은 내 암호를 몰라요 (완전히 P@ssw0rdbtw 는 아닙니다 )

그래도 컴퓨터를 열고 하드 드라이브를 꺼내는 것을 막을 수는 없습니다. 거기에서 드라이브를 내 컴퓨터에 마운트하는 간단한 몇 단계 만 거치면 모든 시스템에 액세스 할 수 있습니다. 또한 BIOS 암호를 우회 할 수 있다는 이점이 있습니다. 또는 CMOS를 재설정했을 수 있습니다. 하나 또는.

그러면 ... 내 데이터에 어떻게 액세스하지 못하게합니까?

단순한. 컴퓨터를 멀리 두십시오. 터치하거나 키보드에 액세스하거나 자체 플래시 드라이브를 삽입하거나 분해 할 수 있으면 이길 수 있습니다.

컴퓨터를 데이터 센터 나 다른 곳에 넣을 수 있습니까? 그것들은 꽤 안전합니까?

예, 그렇습니다 그러나 인간도 해킹 할 수 있다는 사실을 잊고 있으며 충분한 시간과 준비가 주어진다면 아마도 해당 데이터 센터에 들어가서 컴퓨터에서 달콤하고 달콤한 데이터를 모두 제거 할 수있을 것입니다. 그러나 나는 산만하다. 우리는 여기서 실제 솔루션을 다루고 있습니다.

좋아, 그래서 내 허풍을 불렀어 데이터 센터에 넣을 수 없습니다. 홈 폴더 나 무언가를 암호화 할 수 있습니까?

물론 넌 할 수있어! 당신의 컴퓨터입니다! 나를 막을 수 있습니까? 조금도 아닙니다. /usr/bin/firefox내 자신의 악성 프로그램 과 같이 중요한 것을 대체 할 수 있습니다 . 다음에 Firefox를 열면 모든 비밀 데이터가 비밀 서버의 비밀 서버로 전송됩니다. 그리고 당신은 알지 못할 것입니다. 또는 컴퓨터에 자주 액세스 할 수있는 경우 홈 폴더를 복사 /usr/share/nonsecrets/home/하거나 유사한 (암호화되지 않은) 위치로 설정하면됩니다.

전체 디스크 암호화는 어떻습니까?

사실 ... 실제로 꽤 좋습니다. 그러나 아직 완벽하지는 않습니다! 신뢰할 수있는 압축 공기 캔을 사용하여 항상 콜드 부트 공격 을 수행 할 수 있습니다. 또는 하드웨어 키로거를 컴퓨터에 꽂을 수 있습니다. 하나는 분명히 다른 것보다 쉽지만 방법은 실제로 중요하지 않습니다.

에서 광대 의 경우 대부분이 좋은 정지 장소입니다. 어쩌면 TPM (아래에서 논의 됨)과 페어링하면 황금색입니다. 당신이 3 글자 기관이나 매우 동기 부여가 된 해커를 화나게하지 않는 한 , 아무도이 단계를 거쳐야하는 노력을 겪지 않을 것입니다.

물론 PPA 또는 이와 유사한 것을 제공하여 일부 악성 코드 / 백도어를 설치하도록 할 수는 있지만 매우 어두운 사용자 신뢰 영역에 도달합니다.

그래서 ... iPhone은 어떻게 그렇게 안전합니까? 물리적 접근이 가능하더라도 할 수있는 일은 많지 않습니다.

예, 아니오 동기가 충분하다면 플래시 칩을 읽고 필요한 모든 것을 얻을 수 있습니다. 그러나 iPhone은 완전히 잠겨있는 플랫폼이기 때문에 근본적으로 다릅니다. 그러나 동시에 사용성 및 치명적인 오류로부터 복구하는 기능을 실제로 희생해야합니다. GRUB (매우 구체적으로 설계된 경우 제외)은 보안 시스템의 체인 이 아닙니다 . 사실, 대부분의 Linux 시스템에는 부팅 후 보안 체인이 시작되므로 GRUB이 작업을 마친 후에.

또한 iPhone에는 암호화 서명 적용 (아래에 설명)이있어 합법적 인 경로를 통해 맬웨어가 휴대폰에 몰래 침입 하기가 매우 어렵습니다.

그러나 TPM / SmartCards / [여기에 암호화 기술 삽입]은 어떻습니까?

자, 이제 여러분은 물리적 보안을 방정식과 짝을 이루고 있으며, 여전히 더 복잡해집니다. 그러나 TPM이 비교적 약하고 모든 암호화가 온칩으로 수행되지 않기 때문에 이것은 실제로 솔루션이 아닙니다. TPM이 칩 자체에서 암호화를 수행 할 정도로 충분히 강력하다면 (일부 매우 멋진 하드 드라이브에는 이와 같은 기능이 있음) 키가 공개되지 않으며 콜드 부팅 공격과 같은 것은 불가능합니다. 그러나 키 (또는 원시 데이터)가 여전히 시스템 버스에있을 수 있으므로 가로 챌 수 있습니다.

그럼에도 불구하고 내 하드웨어 키로거는 여전히 암호를 얻을 수 있으며 앞에서 언급 한 Firefox 익스플로잇보다 일부 맬웨어를 컴퓨터에 쉽게로드 할 수 있습니다. 내가 필요한 것은 당신이 아마도 한 시간 동안 집 / 컴퓨터를 떠나는 것입니다.

이제 TPM / 스마트 카드 / 무엇을 가지고 있고 모든 암호화가 실제로 칩에서 수행되면 (키가 RAM에 전혀 저장되지 않음을 의미) 실제로는 거의 불가능합니다. 당신 (사용자)이 미끄러지거나 무언가를 잊어 버리지 않는 한 모두. 즉, 시스템 버스에서 (암호화되지 않은) 키를 읽는 방법을 찾지 못하면.

그러나 모든 프로그램에서 합법적인지 확인하기 위해 암호화 / 디지털 서명을 시행하는 경우 어떻게해야합니까?

다양한 스마트 폰 회사에서 시사 한 바와 같이, 이는 보안을 다루는 매우 좋은 방법입니다. 악의적 인 작업을 수행하기 위해 컴퓨터에 일부 코드를 삽입하는 기능을 무효화했습니다. 효과적으로, 귀하의 컴퓨터에 대한 원격 액세스 권한을 원격으로 유지하는 기능을 비활성화했습니다.

그러나 이것은 여전히 ​​완벽한 방법은 아닙니다! 디지털 서명 적용은 하드웨어 키로거를 멈추지 않습니다. 또한 버그가 전혀 없어야합니다. 즉, 내 인증서를 시스템의 인증서 저장소에로드 할 수있는 익스플로잇을 찾을 수있는 방법이 없습니다. 또한 이는 시스템의 모든 실행 파일에 서명해야 함을 의미 합니다 . 수동으로 모든 것을 수행하고 싶지 않다면 모든 것에 디지털 서명이있는 Apt 패키지 등을 찾기가 매우 어려울 것입니다. 비슷한 맥락에서 이것은 서명되지 않은 실행 파일, 즉 복구에 대한 합법적 인 사용을 차단합니다. 중요한 것을 깨고 고칠 수있는 (서명 된) 실행 파일이없는 경우 어떻게해야합니까? 글쎄, 당신의 시스템은 간다.

어느 쪽이든, Linux 에서이 작업을 수행하려는 노력 은 기본적으로 포기되었지만 더 이상 새 커널에서 작동하지 않으므로 직접 커널을 만들어야합니다.

내 컴퓨터에서 당신을 멀리하는 것은 불가능합니까?

효과적으로 요, 미안 해요 내가 육체적으로 접근 할 수 있고 충분한 동기가 있다면, 항상 시스템에 들어갈 수 있습니다. 예외 없음.

그러나 실제로 대부분의 악한 사람들은 고양이 사진을 찍기 위해 이것을 멀리하려고하지 않습니다. 일반적으로 전체 디스크 암호화 (또는 심지어 Linux를 실행하는 것)만으로도 대부분의 스크립트 키드가 2 초 동안 명성을 얻지 못하게 할 수 있습니다.

TL; DR : 컴퓨터 근처에서 신뢰하지 않는 사람들을 허용하지 마십시오. 일반적으로 충분합니다.


또는 홈 파티션을 암호화하십시오.
user13161

5
@ user13161 이렇게하면 악의적 인 엔터티가 /bin/bash자체 악의적 인 스크립트 로 대체 할 수 있으며,이 경우 악의적 인 일이 암호화되지 않은 홈 폴더로 수행됩니다.
Kaz Wolfe

GRUB을 사용하면 LUKS 암호화 부팅 파티션을 사용할 수 있으며이 경우 부팅 암호를 무시할 수 없습니다. wiki.archlinux.org/index.php/Dm-crypt/…를 참조하십시오 .
v7d8dpo4

@ v7d8dpo4 : 암호화 /boot는 실제로 쓸모없는 imo입니다. 부팅 암호를 추가하지만 /실제로 유용한 작업을 수행하려면 여전히 암호 해독 이 필요 하므로 약간의 오버 헤드를 추가하여 이익을 얻지 못합니다. 또한 보호 된 경우 에만 자체 Grub 디스크를 사용하여 암호화 된 부팅을 우회 할 수 있습니다 /boot. 아니면 그냥 평소처럼 드라이브를 읽을 수 있습니다.
Kaz Wolfe

2
아이폰 (6 이상)은 완전한 "디스크"암호화를 가지고있을뿐만 아니라 핀 코드 / 바이오 메트릭 로그인과 연결되어있다. 따라서 컴퓨터가 개입없이 부팅을 거부하게하려면 디스크 암호화를 하드웨어 토큰 / 암호 / TPM 모듈에 연결할 수 있습니다. 꽤 많은 작업입니다.
pjc50

17

연결하려면 암호를 사용하십시오 . 링크에서 :

GRUB 2 비밀번호 보호 정보

Grub 2는 다음에서 암호 요구 사항을 설정할 수 있습니다.

  • 모든 메뉴
  • 특정 메뉴
  • 특정 사용자의 경우 : 예를 들어 "Jane"사용자는 Ubuntu에 액세스 할 수 있지만 수퍼 유저 인 "John"만 액세스 할 수있는 Windows 복구 모드에는 액세스 할 수 없습니다.
  • 관리자는 GRUB 2 시스템 파일을 편집하여 암호 보호를 수동으로 활성화해야합니다.

  • 사용자 및 비밀번호는 /etc/grub.d/00_header또는 다른 GRUB 2 스크립트 파일 에서 식별해야 합니다.

  • 모든 메뉴를 보편적으로 보호하지 않는 한 특정 항목을 식별해야합니다.

    • and와 /etc/grub.d/같은 Grub 2 스크립트 를 편집하여 수동으로10_linux30_os-prober
    • 사용자가 작성한 사용자 정의 구성 파일을 편집하여 수동으로.

    • 위의 방법 중 하나를 사용하면 GRUB 2는 update-grub이 실행될 때마다 구성 파일 (grub.cfg)에 비밀번호 요구 사항을 자동으로 추가 할 수 있습니다.

    • 편집하여 수동으로 /boot/grub/grub.cfg. 이 파일에 대한 편집 내용 update-grub은 실행될 때 제거 되며 암호 보호 기능이 손실됩니다.

  • GRUB 2 비밀번호 보호 형식을 사용하는 경우 GRUB 2 명령 행 및 메뉴 편집 모드에 액세스하려면 수퍼 유저의 이름과 비밀번호가 필요합니다.

  • 사용자 이름 및 / 또는 암호는 Ubuntu 로그온 이름 / 암호와 같을 필요는 없습니다.
  • GRUB 2의 비밀번호 암호화 기능을 사용하지 않으면, 비밀번호는 읽을 수있는 파일에 일반 텍스트로 저장됩니다. 이 기능 사용에 대한 지침은 비밀번호 암호화 섹션을 참조하십시오.

이 경우 기본적으로 (!) 유용성은 보안보다 우선합니다. 주위 사람들을 믿을 수 없으면 항상 장비를 소지하십시오. 더 많은 보안이 필요한 사람들은 전체 시스템을 암호화하여 암호가 필요합니다.


솔직히 말해, 이러한 암호는 물리적 액세스를 통해 쉽게 우회 할 수 있습니다. 그들은 멍청한 놈으로부터 시스템을 보호하지만 기본적인 기술 (Google을 사용하는 것으로 충분할 수 있음)과 물리적 액세스 권한을 가진 공격자는 시스템을 보호하지 않습니다.
바이트 사령관

3

의도적 인 해킹은 다음과 같이 시작합니다.

  1. grub2 메뉴가 열리면 'e'를 눌러 Linux 시작 옵션을 편집하십시오.

그러나 부팅 옵션을 편집 할 때 대신 OS로드 프로세스에 GRUB 암호 보호를 추가하는 방법에e 설명 된대로 옵션을 암호로 보호 할 수 있습니다.

링크에서 설명한대로 grub 비밀번호를 암호화하는 추가 단계를 수행 할 수 있습니다. 실제로 집에서 Linux / Ubuntu를 사용하는 인구의 3 % (야생 추측)는 시스템 관리자가 e작업중 인 프로덕션 시스템 의 기능 으로부터 보호하는 것이 좋습니다 . 우분투가 직장에서 사용된다면 30-40 %가 가정에서도 사용하고 있으며 그 중 10 %는 e가정 시스템에서 어떻게해야하는지 배우게 될 것 입니다.

귀하의 질문으로 그들은 더 많은 것을 배웠습니다. 위의 링크를 통해 시스템 관리자는해야 할 일 목록에 프로덕션 환경을 보호하기위한 다른 작업이 있습니다.


1
솔직히 말해, 이러한 암호는 물리적 액세스를 통해 쉽게 우회 할 수 있습니다. 그들은 멍청한 놈으로부터 시스템을 보호하지만 기본적인 기술 (Google을 사용하는 것으로 충분할 수 있음)과 물리적 액세스 권한을 가진 공격자는 시스템을 보호하지 않습니다.
바이트 사령관

@ByteCommander 물리적 액세스에 관한 것입니다. BIOS는 관리자 암호로 설정할 수 있으므로 USB 또는 DVD에서 부팅 할 수 없습니다. 누군가가 케이스를 열 수 있고, 마더 보드의 짧은 두 핀이 있고 암호가 공백으로 재설정됩니다 (BIOS 부팅 순서를 변경하는 데 암호가 필요하지 않음).
WinEunuuchs2Unix

0

그럽을 안전하게하려면 그에 대한 액세스를 보호해야합니다. 이 작업은 하드 디스크 암호로 간단하게 수행 할 수 있으며 디스크 자체의 펌웨어에 저장되는 디스크 보안에 대해 이야기하고 있습니다. 디스크를 읽거나 쓸 수 없습니다. 따라서 비밀번호 없이는 그럽에 액세스 할 수 없을뿐만 아니라 데이터도 마찬가지입니다.

암호가 디스크 자체에 저장되어 있으므로 다른 시스템으로 암호를 이동해도 해커에게 도움이되지 않습니다.

일부 제조업체의 디스크에서 암호를 제거 할 수있는 소프트웨어가 있지만 디스크를 효과적으로 지 웁니다. 따라서 데이터는 여전히 안전합니다.


늦은 의견이지만, 때로는 간단한 방법으로 패배 할 수 있다고 지적하고 싶습니다. 포맷을 트리거하지 않고 HDD 암호를 지우는 일부 문서화 된 제조업체 명령이있을 수 있습니다. 마찬가지로, 하드 드라이브 플래터를 "빌려"내 컨트롤러에 넣을 수도 있습니다. 암호는 플래터 자체가 아니라 컨트롤러의 NVRAM에 저장됩니다.
Kaz Wolfe

@Kaz, 당신은 당신이 말하는 것에 절대적으로 맞습니다. 그러나 "간혹 간단한 방법으로 이길 수 있습니다"라는 문구에 "때때로"라는 단어를 강조해야합니다. 하드 드라이브 기술이 지속적으로 향상됨에 따라 사용자의 말과 달리 거의 모든 제조업체가 펌웨어와 암호를 플래터에 저장하므로 컨트롤러 카드를 변경해도 도움이되지 않습니다. 데이터를 지우지 않고 드라이브 잠금을 해제하는 소프트웨어가 있지만 오래된 드라이브에서만 작동합니다.
Scooby-2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.