ভুত ক্ষতিগ্রস্থতা - CVE-2015-0235


13

না গোস্ট আক্রমণ্যতা অ্যাক্সেস দরকার প্রশ্নে প্রভাবিত ওএস করার জন্য (হচ্ছে একটি ব্যবহারকারী লগ ইন)? কেউ কি 'রিমোট আক্রমণকারী যা একটি অ্যাপ্লিকেশন কল করতে সক্ষম হয়েছে' তা স্পষ্ট করতে পারে? আমি কেবল স্থানীয় সিস্টেমে সরাসরি চালানোর জন্য টেস্টগুলি খুঁজে পেয়েছি তবে দূরবর্তী হোস্ট থেকে নয়।

একাধিক উত্স থেকে ঘোস্ট ভ্লেনারিবিলিটি সম্পর্কে এখনও অবধি আমি যে সমস্ত তথ্য সংগ্রহ করেছি (সেই উত্সগুলিতে ক্রেডিট) আমি অন্য যে কেউ আগ্রহী সে ক্ষেত্রে একটি উত্তরে নীচে পোস্ট করেছি।

সম্পাদনা করুন, আমি আমার উত্তর পেয়েছি :

একটি কোড অডিট চলাকালীন কোয়ালিস গবেষকরা গ্লিবিসি-এর __nss_hostname_digits_dots () ফাংশনে একটি বাফার ওভারফ্লো আবিষ্কার করেছিলেন। এই বাগটি স্থানীয়ভাবে এবং দূরবর্তীভাবে সমস্ত গেস্টস্টবাইনেম * () ফাংশনগুলির মাধ্যমে ট্রিগার করা যেতে পারে । অ্যাপ্লিকেশনগুলিতে ডিএনএস রেজোলভারটিতে প্রাথমিকভাবে ফাংশনগুলির গেথস্টবাইনেম * () সেট এর মাধ্যমে অ্যাক্সেস পাওয়া যায়। এই ফাংশনগুলি একটি হোস্টনামকে একটি আইপি ঠিকানায় রূপান্তর করে।


সম্ভবত যেমন নিরাপত্তা দঃপূঃ সাইটটিতে কিছু লিঙ্ক, যোগ security.stackexchange.com/q/80210/1341 এবং অন্যান্য পোস্ট নেই পাশাপাশি?
ম্যাটবিয়ানকো

মুরু, আমি কন্টেন্ট একটি উত্তরে সরিয়েছি। পরামর্শের জন্য ধন্যবাদ. ম্যাটবিয়ানকো, আমি সেই লিঙ্কটিও যুক্ত করেছি, ধন্যবাদ।
ডিভনুল

আমি কোনও অস্পষ্টতা অপসারণ করতে প্রশ্ন আপডেট করেছি।
ডিভনুল

উত্তর:


20

আমার প্রশ্নের উত্তর, কোয়ালি থেকে :

আমাদের পরীক্ষার সময়, আমরা একটি প্রুফ-অফ-কনসেপ্ট তৈরি করেছি যাতে আমরা একটি মেল সার্ভারে একটি বিশেষভাবে তৈরি ইমেল প্রেরণ করি এবং লিনাক্স মেশিনে একটি রিমোট শেল পেতে পারি get এটি 32-বিট এবং 64-বিট উভয় সিস্টেমে সমস্ত বিদ্যমান সুরক্ষা (যেমন ASLR, PIE এবং NX) কে বাইপাস করে


অন্য কারও সন্ধানের জন্য নীচে আমার সংকলিত গবেষণা:


দাবি পরিত্যাগী

অন্যান্য প্রচুর থ্রেড / ব্লগ আপনাকে যা বলতে পারে তা সত্ত্বেও, আমি আপনাকে এই আপডেটগুলি পুরোপুরি পরীক্ষা না করে অন্ধভাবে থাকা প্রতিটি ওএসকে অবিলম্বে আপডেট না করার পরামর্শ দিই glibc। জানা গেছে যে গ্লিবসি আপডেটগুলি প্রচুর অ্যাপ্লিকেশন সেগফাল্ট করেছে যাতে লোকেরা তাদের পূর্ববর্তী সংস্করণে তাদের গ্লিবসি আপডেটগুলি রোল করতে বাধ্য করে।

এক টেস্ট ছাড়াই কেবল কোনও উত্পাদন পরিবেশকে গণ-আপডেট করে না।


পেছনের তথ্য

GHOST হ'ল 'বাফার ওভারফ্লো' বাগ যা গ্লোব লাইব্রেরিতে জিথস্টবায় নাম () এবং গেথস্টবাইনেম 2 () ফাংশন কলগুলিকে প্রভাবিত করে। এই দুর্বলতা এমন একটি রিমোট আক্রমণকারীকে অনুমতি দেয় যা অ্যাপ্লিকেশনটি চালিত ব্যবহারকারীর অনুমতি নিয়ে স্বেচ্ছাসেবীর কোড কার্যকর করতে এই ফাংশনগুলির মধ্যে একটিতে একটি কল করতে সক্ষম হয়।

প্রভাব

জেথোস্টবাইনেম () ফাংশন কলগুলি ডিএনএস সমাধানের জন্য ব্যবহৃত হয়, এটি একটি খুব সাধারণ ঘটনা। এই দুর্বলতাটি কাজে লাগাতে, আক্রমণকারীকে একটি ডিএনএস রেজোলিউশন সম্পাদন করে এমন একটি অ্যাপ্লিকেশনটিতে একটি অবৈধ হোস্টনাম যুক্তি সরবরাহ করে একটি বাফার ওভারফ্লো ট্রিগার করতে হবে।

প্রভাবিত লিনাক্স ডিস্ট্রোসের বর্তমান তালিকা

RHEL (রেড হ্যাট এন্টারপ্রাইজ লিনাক্স) সংস্করণ 5.x, 6.x এবং 7.x

RHEL 4 ELS              fix available ---> glibc-2.3.4-2.57.el4.2
Desktop (v. 5)          fix available ---> glibc-2.5-123.el5_11.1
Desktop (v. 6)          fix available ---> glibc-2.12-1.149.el6_6.5
Desktop (v. 7)          fix available ---> glibc-2.17-55.el7_0.5
HPC Node (v. 6)         fix available ---> glibc-2.12-1.149.el6_6.5
HPC Node (v. 7)         fix available ---> glibc-2.17-55.el7_0.5
Server (v. 5)           fix available ---> glibc-2.5-123.el5_11.1
Server (v. 6)           fix available ---> glibc-2.12-1.149.el6_6.5
Server (v. 7)           fix available ---> glibc-2.17-55.el7_0.5
Server EUS (v. 6.6.z)   fix available ---> glibc-2.12-1.149.el6_6.5
Workstation (v. 6)      fix available ---> glibc-2.12-1.149.el6_6.5
Workstation (v. 7)      fix available ---> glibc-2.17-55.el7_0.5

সেন্টস লিনাক্স সংস্করণ 5.x, 6.x এবং 7.x

CentOS-5    fix available ---> glibc-2.5-123.el5_11
CentOS-6    fix available ---> glibc-2.12-1.149.el6_6.5
CentOS-7    fix available ---> glibc-2.17-55.el7_0.5

উবুন্টু লিনাক্স সংস্করণ 10.04, 12.04 এলটিএস

10.04 LTS   fix available ---> libc6-2.11.1-0ubuntu7.20
12.04 LTS   fix available ---> libc6-2.15-0ubuntu10.10

দেবিয়ান লিনাক্স সংস্করণ 6.x, 7.x

6.x squeeze              vulnerable
6.x squeeze (LTS)        fix available ---> eglibc-2.11.3-4+deb6u4
7.x wheezy               vulnerable
7.x wheezy (security)    fix available ---> glib-2.13-38+deb7u7

লিনাক্স পুদিনা সংস্করণ 13.0

Mint 13    fix available ---> libc6-2.15-0ubuntu10.10

ফেডোরা লিনাক্স সংস্করণ 19 (বা আরও পুরানো আপগ্রেড করা উচিত)

Fedora 19 - vulnerable - EOL on Jan 6, 2014 (upgrade to Fedora 20/21 for patch)

সুস লিনাক্স এন্টারপ্রাইজ

Server 10 SP4 LTSS for x86                    fix available ---> glibc-2.4-31.113.3
Server 10 SP4 LTSS for AMD64 and Intel EM64T  fix available ---> glibc-2.4-31.113.3
Server 10 SP4 LTSS for IBM zSeries 64bit      fix available ---> glibc-2.4-31.113.3
Software Development Kit 11 SP3               fix available ---> glibc-2.11.3-17.74.13
Server 11 SP1 LTSS                            fix available ---> glibc-2.11.1-0.60.1
Server 11 SP2 LTSS                            fix available ---> glibc-2.11.3-17.45.55.5
Server 11 SP3 (VMware)                        fix available ---> glibc-2.11.3-17.74.13
Server 11 SP3                                 fix available ---> glibc-2.11.3-17.74.13
Desktop 11 SP3                                fix available ---> glibc-2.11.3-17.74.13

ওপেনসুএসই (১১ বছরের বেশি পুরানো সংস্করণ আপগ্রেড করা উচিত)

11.4 Evergreen     fix available ---> glibc-2.11.3-12.66.1
12.3               fix available ---> glibc-2.17-4.17.1


কী প্যাকেজ / অ্যাপ্লিকেশনগুলি এখনও মুছে ফেলা গ্লিবিসি ব্যবহার করছে?

( ক্রেডিট গিলস )

CentOS / RHEL / ফেডোরা / বৈজ্ঞানিক লিনাক্সের জন্য:

   lsof -o / | awk '
   BEGIN {
       while (("rpm -ql glibc | grep \\\\.so\\$" | getline) > 0)
           libs[$0] = 1
   }
   $4 == "DEL" && $8 in libs {print $1, $2}'

উবুন্টু / ডেবিয়ান লিনাক্সের জন্য:

   lsof -o / | awk '
   BEGIN {
       while (("dpkg -L libc6:amd64 | grep \\\\.so\\$" | getline) > 0)
           libs[$0] = 1
   }
   $4 == "DEL" && $8 in libs {print $1, $2}'

আমার লিনাক্স সিস্টেমটি কোন সি লাইব্রেরি (গ্লিবিসি) সংস্করণ ব্যবহার করে?

সংস্করণ নম্বরটি পরীক্ষা করার সহজ উপায়টি হ'ল নিম্নলিখিত কমান্ডটি চালানো:

ldd --version

আরএইচইএল / সেন্টস লিনাক্স ভি 6.6 থেকে নমুনা আউটপুট:

ldd (GNU libc) 2.12
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

উবুন্টু লিনাক্স 12.04.5 এলটিএসের নমুনা আউটপুট:

ldd (Ubuntu EGLIBC 2.15-0ubuntu10.9) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

দেবিয়ান লিনাক্স v7.8 এর নমুনা আউটপুট:

ldd (Debian EGLIBC 2.13-38+deb7u6) 2.13
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

GHOST দুর্বলতা পরীক্ষা করুন

শিকাগো বিশ্ববিদ্যালয় সহজ ডাউনলোডের জন্য নীচের স্ক্রিপ্টটি হোস্ট করছে:

$ wget https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c
[OR]
$ curl -O https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c
$ gcc GHOST.c -o GHOST
$ ./GHOST
[responds vulnerable OR not vulnerable ]
/* 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 ghosttester.c -o ghosttester
$ ./ghosttester
[responds vulnerable OR not vulnerable ]

রেড হ্যাট অ্যাক্সেস ল্যাব: জিএইচওএসটি সরঞ্জামটি এই সরঞ্জামটি ব্যবহার করবেন না, এটির রিপোর্টিংটি ভুল, কোয়ালিসের ভ্লেনারেবিলিটি পরীক্ষক সঠিক।


প্যাচিং


CentOS / RHEL / ফেডোরা / বৈজ্ঞানিক লিনাক্স

sudo yum clean all
sudo yum update

এখন প্রভাব ফেলতে পুনরায় চালু করুন:

sudo reboot

বিকল্পভাবে, যদি আপনার আয়নাতে নতুন প্যাকেজ থাকে না, কেবল সেগুলি ম্যানুয়ালি ডাউনলোড করুন। * দ্রষ্টব্য: আরও উন্নত ব্যবহারকারীদের জন্য

সেন্টস 5

http://mirror.centos.org/centos/5.11/updates/x86_64/RPMS/

সেন্টস 6

mkdir ~/ghostupdate
cd ~/ghostupdate

wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-devel-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-common-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/nscd-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-static-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-headers-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-utils-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-2.12-1.149.el6_6.5.x86_64.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-static-2.12-1.149.el6_6.5.i686.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-devel-2.12-1.149.el6_6.5.i686.rpm
wget http://mirror.centos.org/centos/6.6/updates/x86_64/Packages/glibc-2.12-1.149.el6_6.5.i686.rpm

yum localupdate *.rpm [OR] rpm -Uvh *.rpm

উবুন্টু / ডেবিয়ান লিনাক্স

sudo apt-get clean
sudo apt-get update
sudo apt-get dist-upgrade

আবার শুরু:

sudo reboot

সুস লিনাক্স এন্টারপ্রাইজ

এই SUSE সুরক্ষা আপডেট ইনস্টল করতে YaST অনলাইন_আপডেট ব্যবহার করুন। বা আপনার সংস্করণ অনুযায়ী নিম্নলিখিত কমান্ড ব্যবহার করুন:

সুস লিনাক্স এন্টারপ্রাইজ সফটওয়্যার ডেভলপমেন্ট কিট 11 এসপি 3

zypper in -t patch sdksp3-glibc-10206

ভিএমওয়্যারের জন্য সুস লিনাক্স এন্টারপ্রাইজ সার্ভার 11 এসপি 3

zypper in -t patch slessp3-glibc-10206

সুস লিনাক্স এন্টারপ্রাইজ সার্ভার 11 এসপি 3

zypper in -t patch slessp3-glibc-10206

সুস লিনাক্স এন্টারপ্রাইজ সার্ভার 11 এসপি 2 এলটিএসএস

zypper in -t patch slessp2-glibc-10204

সুস লিনাক্স এন্টারপ্রাইজ সার্ভার 11 এসপি 1 এলটিএসএস

zypper in -t patch slessp1-glibc-10202

সুস লিনাক্স এন্টারপ্রাইজ ডেস্কটপ 11 এসপি 3

zypper in -t patch sledsp3-glibc-10206

আপনার সিস্টেমে আপ-টু-ডেট আনতে অবশেষে সমস্ত সুস লিনাক্স সংস্করণে চালান:

zypper patch

ওপেনসুএস লিনাক্স

একটি ওপেনসুএস লিনাক্সে গ্লিবসি সহ উপলভ্য আপডেটগুলির তালিকা দেখতে, প্রবেশ করুন:

zypper lu

কেবলমাত্র তাদের নতুন উপলব্ধ সংস্করণগুলি সহ ইনস্টল করা গ্লিবসি প্যাকেজ আপডেট করতে, চালনা করুন:

zypper up

আপনার মেশিনে চলমান প্রায় প্রতিটি প্রোগ্রাম গ্লিবিসি ব্যবহার করে। প্যাচ কার্যকর হওয়ার বিষয়টি নিশ্চিত করতে আপনার প্রতিটি পরিষেবা বা অ্যাপ্লিকেশন পুনরায় চালু করতে হবে যা গ্লিবসি ব্যবহার করে। সুতরাং, একটি রিবুট প্রস্তাবিত হয়।


সিস্টেমটি পুনরায় আরম্ভ বা প্রভাবিত না করে কীভাবে পুনরায় চালু করবেন?

telinit u

'ম্যান টেলিনাইট' - আপনি বা ইউ-কে অনুরোধ করতে হবে যাতে (8) ডিমন নিজেই পুনরায় সম্পাদন করবে। এটি সুপারিশ করা হয় না যেহেতু আপস্টার্ট বর্তমানে তার রাজ্যটিকে প্রাক-পরিবেশন করতে অক্ষম, তবে সিস্টেম লাইব্রেরিগুলি আপগ্রেড করার সময় প্রয়োজনীয় is


হুমকির সাথে সাথে একটি সীমিত পদ্ধতিতে অবিলম্বে হ্রাস করা হ'ল আপনার সমস্ত জনসাধারণের মুখোমুখি পরিষেবাগুলিতে বিপরীত ডিএনএস চেক অক্ষম করা। উদাহরণস্বরূপ, যদি আপনি সেটিংস এর দ্বারা, SSH মধ্যে বিপরীত DNS- র চেক নিষ্ক্রিয় করতে পারেন UseDNSথেকে noআপনার /etc/ssh/sshd_config

উত্স (এবং আরও তথ্য):

  1. https://access.redhat.com/articles/1332213
  2. http://www.cyberciti.biz/faq/cve-2015-0235-patch-ghost-on-debian-ubuntu-fedora-centos-rhel-linux/
  3. http://www.openwall.com/lists/oss-security/2015/01/27/9
  4. /security/80210/ghost-bug-is-there-a-simple-way-to-test-if-my-system-is-secure
  5. http://bobcares.com/blog/ghost-hunting-resolving-glibc-remote-code-execution-vulnerability-cve-2015-0235-in-centos-red-hat-ubuntu-debian-and-suse-linux- সার্ভার
  6. https://community.qualys.com/blogs/laws-of-vulnerabilities/2015/01/27/the-ghost-vulnerability
  7. https://security-tracker.debian.org/tracker/CVE-2015-0235

1
নিতপিক: দুর্বলতার পরীক্ষার কোডটি ওপেনওয়াল থেকে নয়, কোয়ালিজের। লিঙ্কযুক্ত ওপেনওয়াল পোস্টটি কেবল তাদের মেলিং তালিকায় পোস্ট করা Qualys পরামর্শদণ্ড।
মুরু

"গ্লিবসি-র উপর নির্ভরশীল প্রচুর অ্যাপ্লিকেশন / সিস্টেম ইউটিলিটিগুলির কারণে" -> আপনি সম্ভবত সেই জিনিসটি বাইরে নিয়ে যেতে পারেন, বা এই বিষয়টির উপর জোর দিতে পারেন যে সম্পূর্ণরূপে সমস্ত কিছুর 100% সরাসরি লিবসি-র উপর নির্ভর করে যেগুলি খুব অদ্ভুত বিষয়গুলি হিসাবে সংকলন করা হয়েছে। একটি বিশাল স্ট্যাটিক পিণ্ড। বিটিডব্লিউ এর জন্য ধন্যবাদ!
সোনারলোকস

@ গোল্ডিলোকস, পরামর্শের জন্য ধন্যবাদ। আমি এটির সাথে আরও কিছু জিনিস সম্পাদনা করেছি। খুশি এটা সাহায্য করে!
ডেভনুল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.