আমার প্রশ্নের উত্তর, কোয়ালি থেকে :
আমাদের পরীক্ষার সময়, আমরা একটি প্রুফ-অফ-কনসেপ্ট তৈরি করেছি যাতে আমরা একটি মেল সার্ভারে একটি বিশেষভাবে তৈরি ইমেল প্রেরণ করি এবং লিনাক্স মেশিনে একটি রিমোট শেল পেতে পারি 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
।
উত্স (এবং আরও তথ্য):
- https://access.redhat.com/articles/1332213
- http://www.cyberciti.biz/faq/cve-2015-0235-patch-ghost-on-debian-ubuntu-fedora-centos-rhel-linux/
- http://www.openwall.com/lists/oss-security/2015/01/27/9
- /security/80210/ghost-bug-is-there-a-simple-way-to-test-if-my-system-is-secure
- http://bobcares.com/blog/ghost-hunting-resolving-glibc-remote-code-execution-vulnerability-cve-2015-0235-in-centos-red-hat-ubuntu-debian-and-suse-linux- সার্ভার
- https://community.qualys.com/blogs/laws-of-vulnerabilities/2015/01/27/the-ghost-vulnerability
- https://security-tracker.debian.org/tracker/CVE-2015-0235