Новая уязвимость GHOST угрожает популярным дистрибутивам на базе Linux
Как вы знаете, уязвимости находят постоянно. Другое дело, что не каждый день находят такие, которые могут угрожать сразу всем популярным дистрибутивам на базе Linux. К тому же, на этот раз была найден именно такая, которая позволяет злоумышленнику получить удаленный контроль над системой. А это уже не шутки. Подробности читайте далее…
Что меня огорчило больше всего, так это тот факт, что под ударом оказались пользователи Debian 7 (wheezy), Red Hat Enterprise Linux 6 & 7, CentOS 6 & 7, Ubuntu 12.04. Я тоже использую такие системы в различных проектах, а значит настала пора позаботиться о них.
Более подробно об этой напасть можно прочесть в одноименной статье на хабр пройдя по ссылке: http://habrahabr.ru/company/pt/blog/249097/
Проверим систему на уязвимость GHOST
Уже существует программа написанная на C, способная проверить уязвимость вашей системы. Вот код который следует сохранить в файл ghosttest.c или любой другой (может вам нравится придумывать свои имена) и скормить его gcc
/* 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);
}
А можно пойти немного другим путем и сделать следующим образом:
wget https://gist.githubusercontent.com/koelling/ef9b2b9d0be6d6dbab63/raw/de1730049198c64eaf8f8ab015a3c8b23b63fd34/gistfile1.c
gcc gistfile1.c -o CVE-2015-0235
./CVE-2015-0235
В результате вы получите либо
not vulnerable
и тогда все нормально, либо
vulnerable
и тогда вас стоит заняться пациентом.
Начинаем бороться с уязвимость GHOST в CentOS
Этот фикс подойдет для CentOS/RHEL/Fedora/Scientific Linux. Выполните следующие команды:
sudo yum clean all
sudo yum update
После всех обновлений перезагрузите систему
sudo reboot
Fix уязвимости GHOST в Ubuntu Linux
Выполняем команды:
sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade
и после обновлений выполним перезагрузку:
sudo reboot
Теперь можно выполнить проверки и убедиться, что все хорошо.
./CVE-2015-0235
not vulnerable
Можно и дальше спокойно заниматься важными делами.
Комментарии
Пока нет комментариев.
Прокомментировать