debian testing / jessie에서 Shellshock 보안 취약점을 어떻게 해결합니까?


24

테스트 명령

x='() { :;}; echo vulnerable' bash

내 것을 보여준다 데비안 8 (제시) 설치도 최신 업데이트와 함께, 취약합니다. 연구에 따르면 안정적이고 불안정한 패치가 있지만 테스트는 패치되지 않았습니다.

패치가 며칠 만에 테스트를 할 것이라고 생각하지만 실제로는 편집증에 빠질 정도로 불쾌하게 보입니다. 패키지를 불안정하게 가져 와서 시스템을 손상시키지 않고 설치할 수있는 방법이 있습니까? 불안정한 것으로 업그레이드하면 해결하는 것보다 더 많은 문제가 발생합니다.


Bob에 따르면 두 번째 패치로 수정 된 두 번째 Shellshock 취약점이 있습니다. 테스트는 다음과 같습니다.

 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("

그러나 나는 이것이 Bash가 이것이 의미하는 바 또는 왜 문제인지를 해결할만큼 숙련되지 않았습니다. 어쨌든 64 비트 시스템에서 bash_4.3-9.2_amd64.deb에 의해 방지되는 이상한 일을합니다. 편집시에는 안정적이고 불안정하지만 Jessie / testing 에는 없습니다 .

Jessie를 위해이 문제를 해결하려면 불안정한 최신 Bash를 가져 와서 설치하십시오 dpkg -i.

예 메나 케 제공

wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb

머신의 4.3-9.2 버전을 얻는 명령으로.

그리고 당신은 그것을 따라갈 수 있습니다 :

sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb

그것을 설치하십시오.

Jessie 시스템에 불안정한 패치를 추가로 필요로한다면 , 이것이 분명한 방법입니다 ( mutatis mutandis ).

답변:


5

이 링크 를 통해 불안정한 패키지를 다운로드하십시오 . 불안정한 bash가 테스트의 bash와 동일한 종속성을 갖는 것처럼 보이지만 종속성을 확인할 수도 있습니다. 다운로드 한 deb를 다음과 같이 설치하십시오.

dpkg -i

1
고마워, 나는 그것을했고 눈에 띄게 아무것도 파괴하지 않고 문제를 해결했습니다. 아마도 정상적인 업데이트 과정에서 결국 덮어 쓰일 것입니까?
John Lawrence Aspden

3
GUI에서 브라우저를 실행하는 경우 위의 링크가 좋습니다. 쉘 세션에서 lynx를 실행하는 경우에는 덜 그렇습니다. 명령 줄에 바로 붙여 넣을 수있는 것을 원하는 경우 다음을 시도 wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb 하십시오. 상자에 적합한 아키텍처를 가져옵니다.
Jemenake

1
@ Jemenake 별도의 답변으로 게시해야합니다.
Excellll

이것은 내가 원했던 대답 이었지만 지금은 업데이트가 Jessie에 적용되었으므로 이제는 사람들이 필요한 답변을 찾는 것이 더 좋다고 생각합니다. 그래서 나는 진드기를 움직입니다. 그래도 고마워!
John Lawrence Aspden

실제로, 두 개의 쉘 쇼크 버그가 있으며, 두 번째 버그에 대한 수정은 현재 sid이지만 jessie에는 있지 않습니다. 따라서 이것은 여전히 ​​정답입니다 (4.3-9.2를 얻으십시오!). 곧.
John Lawrence Aspden

25

월요일에 릴리스 된 추가 bash 수정 사항에 대해이 답변을 편집했습니다.

Ubuntu 12.04의 경우 업데이트를 실행했지만 취약점을 제거하려면 bash 용 설치를 실행해야했습니다.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

이 명령은 시스템이 취약하다는 것을 나타내므로 업데이트를 실행하십시오.

apt-get update && apt-get -y upgrade

다시 테스트하십시오.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

여전히 취약합니다.

apt-get install -y bash

다시 테스트하십시오.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

편집 : 추가 패치가 릴리스 된 후 출력이 변경되었습니다.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

예이! 결정된. 이것은 다른 버전에서도 작동하지만 12.04 이후로는 테스트하지 않았습니다.

또한 아래의 runamok의 답변이 잘 작동하므로 투표를하십시오!


6
그냥 apt-get update && apt-get install -y bash작동하는 것 같습니다.
runamok

@JabawokJayUK의 답변을 기반으로 우분투 12.04의 bash 업데이트 후에도 여전히 첫 번째 테스트에 실패했습니다.
Birla

나는 this is a test오류와 경고 만 받고 있습니다. 내 로컬 컴퓨터에서 오류가 발생하지만 서버에서는 그렇지 않습니다. 그게 무슨 소리 야? 내 서버가 패치 되었습니까? 고맙습니다.
ElBaulP

apt-get install -y 단계를 수행 할 필요가 없기 때문에 저장소가 최신 상태 인 것 같습니다. 업그레이드 후 문제가 해결되었습니다.
user316566

1
이것은 실제로 데비안 테스트 / 제시에 관한 질문에 대답하지 않습니다 . 우분투는 독립적 인 패키지 저장소와 패치 일정을 가진 다른 배포판입니다.
Bob

16

Debian 7 (Wheezy)에서 패키지를 가져 오지 않고 Debian 6.0 (Squeeze)에 대한 대안 :

패치가 백 포트 된 LTS 보안 저장소를 사용하십시오.

이것을 다음에 추가하십시오 /etc/apt/sources.list:

#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

그런 다음를 실행하십시오 apt-get update && apt-get install bash.

경유 : linuxquestions


데비안 6에서 작동합니다. 우리는 항상 LTC 보안을 목록에 유지합니다!
stanleyxu2005

4

apt-get update전에 apt-get dist-upgrade패치를 얻을 수 있습니다. 방금 직접 해 보았고 문제를 해결하는 bash 업그레이드가 진행되었습니다.


2
문제는 데비안 테스트에 아직 업데이트 된 패키지가 없었기 때문에 불안정한 상태에서 수동으로 다운로드하여 설치하는 것이 당시 가장 간단한 해결책이었습니다. 이 답변에 제공된 해결책은 효과가 없었습니다. (패키지가 테스트로 마이그레이션되었을 수 있기 때문에 지금은 가능할 것입니다.)
wurtel

이것은 원래의 질문에 대한 답은 아니지만 사람들이 지금해야 할 일이므로 사람들이 가장 먼저 보게 될 것입니다. 내 어려움에 대한 '실제'답변 (안정적이고 안정적이지만 테스트 중이 아님)은 새로운 bash-????. deb 및 dpkg -i의 수동 다운로드를 사용하는 wurtel의 대답입니다.
John Lawrence Aspden

또한 이것이 우분투에 대한 답이라고 생각합니다. 이제 그들이 수정을 올바르게 푸시했으며 아마도 사람들이 수정을 푸시 한 시점까지 유지되는 다른 데비안 기반 배포판에 대해서도 가능합니다.
John Lawrence Aspden

실제로 두 가지 쉘 쇼크 버그가 있으며 두 번째 버그에 대한 수정은 아직 제시하지 않았습니다.
John Lawrence Aspden

이것은 여전히 ​​유효한 솔루션이며 데비안 테스트 보안 팀이 업데이트를 추진하는 한 계속 유지됩니다. 그들은 OP 질문 당시 테스트에 없었을 수도 있습니다. 다른 옵션은 모든 사용자가 대시를 사용하도록 설정하는 것입니다. 이것은 주로 서버 문제이며
MGD_Toronto

3

Hackintosh 에서 다음과 같이 수정했습니다 .

$ brew install bash

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash-4.3$ 

2
양조장을 설치하기 전에 잊지 마십시오 ...
Marcos Maciel

1

구 우분투 버전에서 apt-get 으로이 작업을 수행하는 방법에 대한 기사를 작성했습니다. 기본적으로 sources.list를 최신으로 업데이트 한 다음 apt-get update 및 upgrade bash를 실행하십시오. 단계별로 읽거나 여기 에서 복사하여 붙여 넣을 수 있습니다 .

개요:

sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get install --only-upgrade bash

old-releases.ubuntu.com을 사용하는 경우 기사를 읽고 다시 변경하고 싶을 수 있습니다.

sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list

어 .. 그러면 source.list에 시스템이 Trusty로 남습니다. 다음에 업데이트하면 시스템이 Trusty로 업그레이드됩니다. 이로 인해 시스템이 심각하게 손상 될 수 있습니다.
strugee

1

Bash 패키지 의 수정 된 버전 ( changelog 참조 )은 2014-09-26 14:18 UTC 기준으로 현재 Debian 8 (Jessie)에 있습니다 ( 패키지 정보 참조 ).

아래 주석에서 언급 된 두 번째 수정 사항은 이제 Jessie 저장소에도 있습니다. 불안정한 상태에서 설치할 필요가 없습니다. 위의 패키지 정보 링크를 참조하십시오.

더 이상 불안정한 상태에서 설치할 필요가 없습니다.

그냥 실행 :

# aptitude update

뒤에 :

# aptitude upgrade

그런 다음 새로 열린 셸에서 취약점이 사라 졌는지 확인하십시오.

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'

후속 조치 CVE-2014-7169를 아직 수정하지 않았습니다.
Bob

@ 밥, 나는 그것이 우분투에만 관련이 있다고 생각합니까? 아마도 우분투는 이미 그것을 고쳤습니다.
John Lawrence Aspden

트윗 담아 가기 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("인쇄를 시도 still vulnerable하면 후자의 패치가 아직 패치되지 않습니다. AFAIK, jessie는 여전히 취약합니다. 이 명령은 echo성공하면 현재 디렉토리에 이름이 지정된 파일을 생성 하므로 테스트를 다시 실행하기 전에 파일을 삭제해야합니다.
Bob

@ 밥, 나는 이것의 머리 나 꼬리를 만들 수 없다. 세미콜론까지의 비트는 무엇입니까?
John Lawrence Aspden

@ 밥,하지만 그것이 무엇이든, 당신은 불안정한 상태에서 4.3-9.2 버전으로 업그레이드하면 중단됩니다!
John Lawrence Aspden
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.