суббота, 31 января 2015 г.

Новая уязвимость GHOST (CVE-2015-0235)

Описание можно почитать тут: http://habrahabr.ru/company/pt/blog/249097/
http://www.opennet.ru/opennews/art.shtml?num=41577

Проверить уязвима ли ваша система можно с помощью небольшой программы на С:
/* ghosttest.c:  GHOST vulnerability tester */
/* Credit: http://www.openwall.com/lists/oss-security/2015/01/27/9 */
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
 
#define CANARY "in_the_coal_mine"
 
struct {
  char buffer[1024];
  char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY };
 
int main(void) {
  struct hostent resbuf;
  struct hostent *result;
  int herrno;
  int retval;
 
  /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
  size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
  char name[sizeof(temp.buffer)];
  memset(name, '0', len);
  name[len] = '\0';
 
  retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
 
  if (strcmp(temp.canary, CANARY) != 0) {
    puts("vulnerable");
    exit(EXIT_SUCCESS);
  }
  if (retval == ERANGE) {
    puts("not vulnerable");
    exit(EXIT_SUCCESS);
  }
  puts("should not happen");
  exit(EXIT_FAILURE);
}



Скомпилируем программу:
# gcc ghosttest.c -o ghosttest
# ./ghosttest

Если Ваша система уязвима, вы увидите сообщение: vulnerable , если же не уязвима, то: not vulnerable.

Что бы посмотреть, какие пакеты подвержены данной уязвимости на вашем сервере можно воспользоваться командой:
lsof | grep libc | awk '{print $1}' | sort | uniq
acpid
apache2
atd
atop
awk
bash
cron
dbus-daem
dovecot
dovecot-a
exim4
getty
grep
ihttpd
imap-logi
init
logger
lsof
mdadm
memcached
mysqld
mysqld_sa
named
ntpd
pop3-logi
proftpd
python
rsyslogd
sort
sshd
udevd
uniq
zabbix_ag

А решить это можно с помощью обновления пакета libc6:
# apt-get install libc6
# yum install libc6

И перезагрузкой сервера или всех уязвимых сервисов

Комментариев нет:

Отправить комментарий