안녕하세요, 며칠 전리눅스GNU glibc 표준 라이브러리의 gethostbyname 함수에서 버퍼 오버플로우 취약점이 발견되었으며, 취약점 번호는 CVE-2015-0235입니다. 해커들은 gethostbyname 함수 시리즈를 사용해 원격 코드를 실행하고 이를 획득할 수 있습니다서버이 취약점은 여러 트리거 경로와 광범위한 영향을 가지고 있으니, 주의 깊게 주목하시고 적시에 임시로 수정해 주시면 가능한 한 빨리 업데이트하겠습니다미러링고쳐. 꼭 알아주세요.
1. 취약점 공개일
20152019년 1월 27일
2. 성공적으로 사용된 것으로 확인된 소프트웨어 및 시스템
글리브크 2.22.17까지 (버전 2.2와 2.17 포함)
3. 취약점 설명
GNU glibc버퍼 오버플로우 취약점이 표준 라이브러리의 gethostbyname 함수에서 노출되었으며, 취약점 번호는 CVE-2015-0235입니다. Glibc는 시스템 호출과 open, malloc, printf 등과 같은 기본 기능을 제공하는 C 라이브러리입니다. 모든 동적 연결 프로그램은 Glibc를 사용합니다. 원격 공격자는 이 취약점을 악용해 임의의 코드를 실행하고 애플리케이션을 실행하는 사용자의 권한을 강화할 수 있습니다.
4. 취약점 탐지 방법
지침을 따라 하세요작동깡통. #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <끈.h> #include <어노.h> #define 카나리아"in_the_coal_mine" struct { 차터 버퍼[1024]; 샤 카나리아[sizeof(CANARY)]; } 온도 = { "버퍼", CANARY }; int main(void) { Struct Hostent Resbuf; struct hostent *결과; int herrno; 내트 리발; /*** strlen (name) = size_needed -크기 (*host_addr) - 크기 (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) -16*sizeof(부호 없는 char) - 2*sizeof(char *) - 1; char name[sizeof(temp.buffer)]; 멤셋(이름, '0', 렌); name[len] = '\0'; retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); if (strcmp(temp.canary, CANARY) !=0) { puts("취약한"); 출구(EXIT_SUCCESS); } 만약 (retval == ERANGE) { puts("vulnerable"); 출구(EXIT_SUCCESS); } puts("일어나지 말아야 한다"); 출구(EXIT_FAILURE);
}
GHOST.c로 저장하세요 gcc GHOST.c -o GHOST 실행
$./GHOST 노버러블 성공적인 수리를 의미합니다.
5. 수리 계획 제안
특별 참고: glibc는 리눅스 시스템의 기본 구성 요소이므로, 서버에 패치가 미치는 영향을 피하기 위해 적절한 수리 시기를 정하고, 복구 전에 스냅샷 작업을 통해 반드시 백업하는 것이 권장됩니다.
센토스 5/6/7:
맛있는 업데이트 글리브크
Ubuntu 12/14
APT-GET 업데이트
apt-get install libc6
데비안 6
wget -O /etc/apt/sources.list.d/debian6-lts.listhttp://mirrors.aliyun.com/repo/debian6-lts.list APT-GET 업데이트 apt-get install libc6
데비안 7
APT-GET 업데이트
apt-get install libc6
오펜수즈 13
자이퍼 리프레시
자이퍼 업데이트 글리브크*
Aliyun linux 5u7
wget -O /etc/yum.repos.d/aliyun-5.repohttp://mirrors.aliyun.com/repo/aliyun-5.repo 맛있는 업데이트 글리브크
|