송곳

송곳

즉, 가장 가까운 다음 릴리스에서 충분히 가까운 패키지를 찾을 수 있습니까? 아니면 소스 코드에서 컴파일하는 것이 더 복잡하고 더 낫습니까? 아니면 데비안에서 구할 수 있나요?

(이 질문은 적어도 Ubuntu 11.10 및 12.10에 관한 것입니다. 다른 사람들도 이 문제를 겪을 것이라고 확신합니다. 따라서 특정 수명 종료 Ubuntu가 무엇인지에 따라 조언이 다른 경우 무엇을 해야할지 말하는 것이 도움이 될 수 있습니다! )

PS "업그레이드"는 답변으로 받아들여지지 않습니다. ;-) 알아요. 하지만 때로는 서버를 폐기/업그레이드/교체하는 데 시간이 걸리고 bash를 먼저 패치하고 싶습니다.

답변1

계속 사용하고 싶기 때문에공식적으로 지원되지 않음일단 출판되면 유일한 선택은 직접 지원하는 것입니다.

Ubuntu의 특정 버전(11.0, 12.0 또는 13.10)에 대한 소스 코드를 얻은 다음 참조를 위해 공식 패키지와 동일한 패치를 적용하는 것이 좋습니다.

Bash 취약점은 언론에서 가장 많이 보도되는 반면, 거의 매일 수많은 다른 취약점이 발견되고 있으므로 적어도 구독을 진지하게 고려해야 합니다.우분투 보안 권고그래서 당신은 항상 그것들을 알고 있습니다. 지원되지 않는 버전을 사용하고 있으므로 이는 특히 중요합니다.

답변2

Quantal(Ubuntu 12.10)에 대한 짧은 답변: 다운로드 및 설치배쉬 패키지정확한 저장소에서.

송곳

Quantum(Ubuntu 12.10)의 경우 IBash 패키지 검색근처 버전입니다. 나는 희귀하고 정확한 패키지를 다운로드했습니다.

시작하기 전에 새로 설치가 실패할 경우 시스템을 복원할 수 있도록 기존 bash 패키지를 백업했습니다. (dpkg-repack 패키지가 필요합니다.)

$ dpkg-repack bash

긴급 상황에서 복원하기가 더 쉽기 때문에 실행 파일을 복사 /bin/bash했어야 했지만./root/bash.vulnerable

라린

먼저 시도했습니다Raring의 패키지:

$ dpkg -i bash_4.2-5ubuntu3_i386.deb

그런데 테스트 결과는여전히 취약하다!

정밀한

그런 다음 시도했습니다.정밀한 포장:

$ dpkg -i bash_4.2-2ubuntu2.6_i386.deb

다음과 같이 테스트됨안전한, 사용bashcheck 스크립트.

Testing /bin/bash ...
GNU bash, version 4.2.25(1)-release (i686-pc-linux-gnu)

Variable function parser pre/suffixed [%%, upstream], bugs not exploitable
Not vulnerable to CVE-2014-6271 (original shellshock)
Not vulnerable to CVE-2014-7169 (taviso bug)
Not vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Not vulnerable to CVE-2014-6277 (lcamtuf bug #1)
Not vulnerable to CVE-2014-6278 (lcamtuf bug #2)

하지만 LTS 버전을 설치했으면 좋았을 텐데요. 시간되면 업그레이드 하려고 하는데..

답변3

termcap소스에서 bash를 빌드하는 것은 매우 간단합니다. 작동하는 C 개발 환경(gcc, binutils 등)과 라이브러리 및 헤더(기본값이지만 사용할 수 있음 )가 필요합니다 curses.

당신은해야적어도이 작업을 완료하기 전에 현재 바이너리를 백업하십시오. bash전체 백업이나 복구 디스크를 백업하는 것이 좋습니다. 운영 체제에 따라 bash시작 스크립트의 중요한 부분일 수 있습니다!새 버전에는 이전 버전과 호환되지 않는 동작 변경 사항이 포함되는 경우가 있습니다.

bash-2.05b에서 bash-4.3까지 모든 버전에서 동일한 단계 순서가 작동해야 합니다. 필요한 경우 동일한 버전을 사용할 수 있도록 필요에 따라 "4.3"을 바꾸십시오. 다소 오래된 bash-2.05b를 실행하지 않는 한 취약하지만 공식 패치가 없으며 AFAICT 수정 사항이 2.05b로 백포트되었습니다.

다시 확인해야합니다공식 웹 사이트오래된 이미지가 나타날 경우를 대비해 현재 패치 수준입니다.

mkdir -p /usr/local/src/dist && cd /usr/local/src/dist
wget http://ftpmirror.gnu.org/bash/bash-4.3.tar.gz.sig
wget http://ftpmirror.gnu.org/bash/bash-4.3.tar.gz
wget http://tiswww.case.edu/php/chet/gpgkey.asc
gpg --import gpgkey.asc
gpg --verify bash-4.3.tar.gz.sig
cd ..
tar xzvf dist/bash-4.3.tar.gz
cd bash-4.3
mkdir patches && cd patches 
wget -r --no-parent --accept "bash43-*" -nH -nd  \
  ftp.heanet.ie/mirrors/gnu/bash/bash-4.3-patches/     # Use a local mirror
echo *sig | xargs -n 1 gpg --verify --quiet            # see note 2

cd ..
echo patches/bash43-0?? | xargs -n 1 patch -p0 -i      # see note 3 below

./configure --prefix=/usr  --bindir=/bin \             
        --docdir=/usr/share/doc/bash-4.3 \
        --without-bash-malloc            \
        --with-installed-readline

 make
 make test && make install   # see note 6

노트:

  1. -r로컬 미러를 사용하여 패치를 얻으려면 ftpmirror.gnu.org가 리디렉션을 반환하지만 이는 전체 디렉터리를 다운로드 하는 옵션에서는 작동하지 않습니다.
  2. (은박지 모자의 경우) gpg유용한 오류 코드를 설정하지 않으며 유효성 검사가 실패해도 큰 소리로 불평하지 않습니다. (풍부한) 출력에서 ​​"BAD" 문자열을 찾으세요.
  3. 현재 bash-4.3에 대한 패치는 25 27 30개 이며 , 그 중 25~30개는 CVE-2014-6271 및 후속 관련 문제를 해결합니다.이 문제를 해결하기 위해 더 많은 패치가 나올 수 있습니다!patch"잠재적으로 위험한 파일 이름을 무시합니다../bash-4.3/patchlevel.h"와 같은 경고가 나타날 수 있습니다.~해야 한다무해한 경우 patchlevel.h예상되는 패치 수준의 줄이 포함되어 있는지 확인하세요.#define PATCHLEVEL ...
  4. 옵션은 configure기본값을 변경합니다 /usr/local/. 이는 make install이 현재 설정을 덮어써야 함을 의미합니다.bash
  5. --without-bash-malloc더 빠르고 약간 낭비적인 내부 구현보다 libc malloc을 선택하십시오. 이것가능한로드 가능한 bash 모듈을 사용하면 비호환성이 발생할 수 있으므로 영향을 받지만 이 기능을 사용하는 사람은 많지 않습니다. 이 패키지는 다음과 같이 호출될 수 있습니다.배쉬 내장 함수.
  6. make test시간이 좀 필요해요. 이 작업을 수행하려면 루트여야 합니다 make install(소프트웨어를 루트로 컴파일하는 것은 일반적으로 나쁜 습관으로 간주됩니다).
  7. Ubuntu는 Debian의 파생물이며 Debian과 동일한 추가 패치를 사용할 수 있습니다.여기예를 들어. 이러한 패치에는 귀하가 사용하는 기능이 포함될 수 있습니다. Bash 소스 트리에 패치를 적용하는 경우 debian/README자세한 내용은 이 파일을 참조하세요.
  8. 또 다른 문제는 여전히 static-bash 바이너리가 있을 수 있으므로 그것도 다시 빌드해야 한다는 것입니다. 이렇게 하려면 ./configure ..." " 단계부터 다시 시작하고 --enable-static-link.

살펴보실 수도 있고,bashLinux에서 처음부터 구축하기. 이것오픈 소스 소프트웨어이 목록은 패치와 현재 상태를 검토하기에 좋은 곳입니다.

답변4

누군가 이 작업을 수행하기 위해 Perl 스크립트를 만들었습니다.

배치 스크립트용 Github 저장소입니다.

$ git clone https://github.com/sillymoose/bashfix.git
$ cd bashfix
$ chmod +x bashfix.pl
$ ./bashfix.pl
Bash version 4.2.13 detected
Created working directory /tmp/PIRKRioxmM
Downloading Bash
Downloading Patches
Bash patched to level 52
Bash fully patched!
Configuring Bash ...
Building and testing Bash ...
Success. New Bash binary built!
Making backup copy of /usr/bin/bash at /usr/bin/bash.bak
Making backup copy of /bin/bash at /bin/bash.bak
Bash version 4.2.52 is now installed

관련 정보