Amazon Best VPN GoSearch

온웍스 파비콘

guestfs-security - 클라우드에서 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공자에서 guestfs-security를 ​​실행하세요.

이는 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공자에서 실행할 수 있는 명령 guestfs-security입니다.

프로그램:

이름


guestfs-security - libguestfs의 보안

기술


이 매뉴얼 페이지는 libguestfs 사용 시 보안 영향에 대해 설명합니다.
신뢰할 수 없거나 악의적인 게스트 또는 디스크 이미지.

보안 OF 설치 파일 시스템
신뢰할 수 없는 게스트 파일 시스템을 호스트 커널에 직접 마운트해서는 안 됩니다(예:
(루프백이나 kpartx를 사용).

파일 시스템을 마운트할 때 커널 파일 시스템(VFS)의 실수가 다음과 같이 확대될 수 있습니다.
공격자가 악성 파일 시스템을 생성하여 악용하는 경우. 이러한 악용은 매우 심각합니다.
두 가지 이유가 있습니다. 첫째, 커널에는 매우 많은 파일 시스템 드라이버가 있으며
이러한 기능은 거의 사용되지 않으며 개발자가 코드에 많은 주의를 기울이지 않았습니다.
Linux 사용자 공간은 파일 시스템 유형을 감지하여 잠재적인 크래커에게 도움을 줍니다.
예상치 못한 파일 시스템 유형이더라도 자동으로 올바른 VFS 드라이버를 선택합니다.
둘째, 커널 수준 익스플로잇은 로컬 루트 익스플로잇과 유사합니다(어떤 면에서는 더 나쁩니다).
하드웨어 수준까지 시스템에 즉각적이고 완전하게 접근할 수 있습니다.

이러한 악용 사례는 커널에 매우 오랫동안 존재할 수 있습니다.
(https://lwn.net/Articles/538898/).

Libguestfs는 사용자를 악용으로부터 보호하기 위해 계층적 접근 방식을 제공합니다.

신뢰할 수 없는 파일 시스템
--------------------------------------
어플라이언스 커널
--------------------------------------
루트가 아닌 계정으로 실행되는 qemu 프로세스
--------------------------------------
sVirt [libvirt + SELinux를 사용하는 경우]
--------------------------------------
호스트 커널

우리는 qemu 가상 머신 내부에서 Linux 커널을 실행하는데, 일반적으로 루트가 아닌 사용자로 실행합니다.
공격자는 먼저 커널을 악용한 파일 시스템을 작성해야 합니다.
qemu 가상화(예: 잘못된 qemu 드라이버) 또는 libguestfs를 악용했습니다.
프로토콜, 그리고 마지막으로 호스트 커널이 악용하는 것만큼 심각해지려면 다음과 같은 작업이 필요합니다.
루트로 권한을 승격합니다. 또한 libvirt 백엔드를 사용하는 경우
SELinux, sVirt는 qemu 프로세스를 제한하는 데 사용됩니다. 이 다단계 에스컬레이션은
정적 데이터로 하는 일은 극히 어려운 일로 여겨지지만 우리는 결코 그렇게 말하지 않습니다.
보안 문제에 대해서는 '절대' 언급하지 않습니다.

호출자는 마운트 시 파일 시스템 유형을 강제로 지정하여 공격 표면을 줄일 수도 있습니다.
(guestfs_mount_vfs를 사용하세요.)

일반 보안 고려 사항
게스트로부터 다운로드하는 모든 파일이나 데이터에 주의하십시오. (여기서 "다운로드"란 다음을 의미합니다.)
"guestfs_download" 명령뿐만 아니라 파일, 파일 이름을 읽는 모든 명령
디스크 이미지의 디렉토리나 기타 항목). 공격자는 데이터를 조작할 수 있습니다.
프로그램을 속여 잘못된 작업을 수행하게 만드는 방법. 다음과 같은 경우를 생각해 보세요.

· 데이터(파일 등)가 존재하지 않음

· 존재하지만 공허함

· 일반보다 훨씬 더 크다

· 임의의 8비트 데이터를 포함함

· 예상치 못한 문자 인코딩에 있음

· 동음이의어를 포함합니다.

실험 계획안 보안
이 프로토콜은 정의된 상위 값을 갖는 RFC 4506(XDR)을 기반으로 보안되도록 설계되었습니다.
메시지 크기. 그러나 libguestfs를 사용하는 프로그램도 주의해야 합니다. 예를 들어
디스크 이미지에서 바이너리를 다운로드하고 로컬에서 실행하는 프로그램을 작성할 수 있습니다.
그리고 아무리 프로토콜을 안전하게 지키더라도 그 결과로부터 당신을 보호할 수는 없습니다.

검사 보안
검사 API의 일부(검사 참조)는 신뢰할 수 없는 문자열을 직접 반환합니다.
게스트이며, 여기에는 8비트 데이터가 포함될 수 있습니다. 호출자는 이러한 데이터를 이스케이프하는 데 주의해야 합니다.
구조화된 파일에 인쇄하기 전에 (예: HTML 이스케이프를 사용하여 생성)
웹 페이지).

가상 관리자는 게스트 구성을 특이한 방식으로 변경할 수 있습니다.
기계이며 현실을 반영하지 않을 수 있습니다(특히 신뢰할 수 없거나 적극적으로 악의적인 경우)
예를 들어, 우리는 다음과 같은 구성 파일에서 호스트 이름을 구문 분석합니다.
/etc/sysconfig/네트워크 게스트에서 찾을 수 있지만 게스트 관리자는 쉽게 할 수 있습니다.
이러한 파일을 조작하여 잘못된 호스트 이름을 제공합니다.

검사 API는 Augeas(Linux)와 같은 두 개의 외부 라이브러리를 사용하여 게스트 구성을 구문 분석합니다.
구성) 및 hivex(Windows 레지스트리). 둘 다 얼굴에 강하도록 설계되었습니다.
악성 데이터의 경우 서비스 거부 공격이 여전히 가능합니다.
크기가 큰 구성 파일.

달리는 신뢰할 수 없음 GUEST 명령
게스트에서 명령을 실행할 때는 매우 주의하세요.
게스트님, 당신은 동일한 사용자 하에서 당신이 제어하지 않는 바이너리에 CPU 시간을 제공하고 있습니다.
qemu 가상화로 래핑되어 있지만 라이브러리로 계정을 사용합니다. 자세한 정보 및
대안은 "실행 명령" 섹션에서 찾을 수 있습니다.

CVE-2010-3851
https://bugzilla.redhat.com/642934

이 보안 버그는 qemu가 디스크에서 수행하는 자동 디스크 포맷 감지와 관련이 있습니다.
이미지.

원시 디스크 이미지는 헤더가 없는 원시 바이트만 포함합니다. qcow2와 같은 다른 디스크 이미지는
특수 헤더가 포함되어 있습니다. Qemu는 알려진 헤더 중 하나를 찾아 이를 처리합니다.
아무것도 발견되지 않으면 디스크 이미지가 원시 상태라고 가정합니다.

이를 통해 원시 디스크 이미지를 받은 게스트가 다른 헤더를 쓸 수 있습니다.
다음 부팅 시(또는 libguestfs가 디스크 이미지에 액세스할 때) qemu가 자동 감지를 수행합니다.
그리고 디스크 이미지 포맷은 게스트가 작성한 헤더를 기반으로 qcow2라고 생각합니다.

이것 자체로는 문제가 되지 않지만 qcow2는 다음과 같은 많은 기능을 제공합니다.
디스크 이미지가 다른 이미지("백업 디스크"라고 함)를 참조하도록 허용합니다. 이를 통해 다음을 수행합니다.
백업 디스크 경로를 qcow2 헤더에 추가합니다. 이 경로는 검증되지 않습니다.
그리고 모든 호스트 파일을 가리킬 수 있습니다(예: "/ etc / passwd"). 그런 다음 백킹 디스크가 노출됩니다.
물론 완전히 제어 가능한 qcow2 디스크 이미지의 "구멍"을 통해
공격자의.

libguestfs에서는 두 가지 상황을 제외하고는 이를 악용하기가 매우 어렵습니다.

1. 네트워크를 활성화했거나 디스크를 쓰기 모드로 열었습니다.

2. 게스트에서 신뢰할 수 없는 코드를 실행하고 있습니다("명령 실행" 참조).

이를 방지하는 방법은 디스크를 추가할 때 예상되는 디스크 형식을 지정하는 것입니다.
"guestfs_add_drive_opts"에 대한 선택적 "format" 옵션). 항상 이 작업을 수행해야 합니다.
디스크는 원시 포맷이며, 다른 경우에도 좋은 방법입니다. ("디스크 이미지" 참조)
"형식").

"guestfs_add_domain"과 같은 호출을 사용하여 libvirt에서 추가된 디스크의 경우 형식이 페치됩니다.
libvirt에서 받아서 전달했습니다.

libguestfs 도구의 경우 다음을 사용하세요. --체재 적절한 명령줄 매개변수를 사용합니다.

CVE-2011-4127
https://bugzilla.redhat.com/752375

이는 게스트가 호스트 드라이브의 일부를 덮어쓸 수 있도록 허용하는 커널의 버그입니다.
일반적으로 접근할 수 없는 곳입니다.

libguestfs를 변경 사항이 포함된 버전 ≥ 1.16으로 업데이트하면 충분합니다.
문제를 완화합니다.

CVE-2012-2690
https://bugzilla.redhat.com/831117

virt-edit와 guestfish "edit" 명령의 이전 버전은 새 파일을 생성했습니다.
변경 사항을 포함하지만 새 파일의 권한 등을 설정하지 않았습니다.
이전 파일. 그 결과 보안에 민감한 파일(예:
/ etc / 그림자 그러면 편집 후 누구나 읽을 수 있는 상태로 남게 됩니다.

libguestfs를 1.16 이상으로 업데이트하면 됩니다.

CVE-2013-2124
https://bugzilla.redhat.com/968306

이 보안 버그는 특별히 신뢰할 수 없는 게스트가 사용하는 검사의 결함이었습니다.
게스트 OS에서 제작된 파일은 C 라이브러리에서 이중 해제(거부)를 일으킬 수 있습니다.
서비스).

취약하지 않은 버전으로 libguestfs를 업데이트하면 충분합니다: libguestfs ≥
1.20.8, ≥ 1.22.2 또는 ≥ 1.23.2.

CVE-2013-4419
https://bugzilla.redhat.com/1016960

를 사용할 때 게스트 피쉬(1) --원격 또는 손님 물고기 --듣다 옵션, 게스트피쉬가 생성될 것입니다
알려진 위치의 소켓(/tmp/.guestfish-$UID/소켓-$PID).

양쪽이 통신하려면 위치가 알려져 있어야 합니다. 그러나
디렉토리가 포함되어 있는지 확인이 수행되었습니다(/tmp/.guestfish-$UID)는 다음 사람의 소유입니다.
사용자. 따라서 다른 사용자가 이 디렉토리를 생성하고 잠재적으로 소유한 소켓을 하이재킹할 수 있습니다.
다른 사용자의 guestfish 클라이언트나 서버에 의해.

취약하지 않은 버전으로 libguestfs를 업데이트하면 충분합니다: libguestfs ≥
1.20.12, ≥ 1.22.7 또는 ≥ 1.24.

부정 of 서비스 언제 검사 디스크 형상 부정한 btrfs 볼륨
다음으로 libguestfs(및 libguestfs를 라이브러리로 사용하는 프로그램)를 중단시킬 수 있었습니다.
손상된 btrfs 볼륨이 포함된 디스크 이미지를 표시합니다.

이는 서비스 거부를 유발하는 NULL 포인터 역참조로 인해 발생했으며,
더 이상 악용될 수 있다고 생각됩니다.

수정 사항은 커밋 d70ceb4cbea165c960710576efac5a5716055486을 참조하세요. 이 수정 사항은 다음 항목에 포함되어 있습니다.
libguestfs 안정된 브랜치 ≥ 1.26.0, ≥ 1.24.6 및 ≥ 1.22.8, 그리고 RHEL ≥ 7.0에서도 지원됩니다.
이전 버전의 libguestfs는 취약하지 않습니다.

CVE-2014-0191
Libguestfs는 이전에 libvirt XML 파싱에 안전하지 않은 libxml2 API를 사용했습니다. 이러한 API는
특정 XML 문서가 있을 때 네트워크 연결을 허용하도록 기본 설정됨
제시되었습니다. 잘못된 XML 문서를 사용하면 모든 CPU와 메모리를 고갈시킬 수도 있습니다.
또는 머신의 파일 설명자.

libvirt XML은 신뢰할 수 있는 소스(libvirt 데몬)에서 제공되므로
이것이 악용될 수 있다는 것입니다.

이것은 libguestfs ≥ 1.27.9에서 수정되었으며 수정 사항은 안정적인 버전 ≥로 백포트되었습니다.
1.26.2, ≥ 1.24.9, ≥ 1.22.10 및 ≥ 1.20.13.

Shellshock (세게 때리다 CVE-2014-6271)
이 bash 버그는 libguestfs에 간접적으로 영향을 미칩니다. 자세한 내용은 다음을 참조하세요.
https://www.redhat.com/archives/libguestfs/2014-September/msg00252.html

CVE-2014-8484
CVE-2014-8485
binutils의 이 두 버그는 GNU에 영향을 미칩니다. 문자열(1) 프로그램, 따라서
libguestfs의 "guestfs_strings" 및 "guestfs_strings_e" API. 문자열 실행
신뢰할 수 없는 파일은 임의 코드 실행을 유발할 수 있습니다(libguestfs에 국한됨)
기구).

libguestfs ≥ 1.29.5 및 ≥ 1.28.3에서 libguestfs는 "strings"를 사용합니다. -a BFD를 피하기 위한 옵션
파일을 구문 분석합니다.

CVE-2015-5745
https://bugzilla.redhat.com/show_bug.cgi?id=1251157

이것은 libguestfs의 취약점이 아니라 우리가 항상 virtio-serial 포트를 제공하기 때문에
각 게스트에게 (게스트-호스트 커뮤니케이션이 발생하는 방식이기 때문에) 에스컬레이션이 발생합니다.
호스트 qemu 프로세스에 어플라이언스를 연결하는 것은 가능합니다. 다음과 같은 경우 영향을 받을 수 있습니다.

· libguestfs 프로그램은 게스트 외부에서 신뢰할 수 없는 프로그램을 실행합니다("guestfs_sh" 사용)
등), 또는

· (예를 들어) 커널 파일 시스템 코드에서 또 다른 악용 사례가 발견되었습니다.
잘못된 형식의 파일 시스템이 어플라이언스를 장악합니다.

sVirt를 사용하여 qemu를 제한하면 일부 공격이 저지됩니다.

권한 of .ssh 그리고 .ssh/authorized_keys
https://bugzilla.redhat.com/1260778

도구들 가상 사용자 정의(1) virt-sysprep(1)과하면 가상 빌더(1) 가지고 --ssh-주사
가상 머신 디스크 이미지에 SSH 키를 삽입하는 옵션입니다.
~사용자/.ssh 디렉토리 및 ~사용자/.ssh/권한이 있는_키 이 작업을 수행하려면 게스트 파일을 사용하세요.

libguestfs < 1.31.5 및 libguestfs < 1.30.2에서는 새 디렉토리와 파일이 모드를 얻습니다.
각각 0755 및 모드 0644입니다. 그러나 이러한 권한(특히 ~사용자/.ssh)
OpenSSH에서 사용하는 권한보다 더 넓습니다. 현재 libguestfs에서는 디렉터리
그리고 파일은 모드 0700과 모드 0600으로 생성되었습니다.

onworks.net 서비스를 사용하여 guestfs-security를 ​​온라인으로 사용하세요


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad




×
광고
❤️여기에서 쇼핑, 예약, 구매하세요. 비용이 들지 않아 서비스를 무료로 유지하는 데 도움이 됩니다.