আমার ড্রুপাল সাইটটি SA-CORE-2018-002 - 2018 মার্চ শোষণ থেকে গঠিত কিনা তা কীভাবে বলবেন?


9

সবেমাত্র প্রকাশিত শোষণ: https://www.drupal.org/sa-core-2018-002 --- ড্রুপাল কোর - অত্যন্ত সমালোচনামূলক - রিমোট কোড এক্সিকিউশন - SA-CORE-2018-002

  • কেউ যদি আমার সাইট হ্যাক করতে এই শোষণ ব্যবহার করে তবে আমি কীভাবে বলতে পারি?
  • সঠিকভাবে কার্যকর করা হলে তারা এই শোষণের সাথে কী করতে পারে?
  • আমি এখন আমার ড্রুপাল সাইটগুলি আপডেট করতে পারি না, সহজেই এই গর্তটি প্যাচ করার জন্য ভাল বিকল্পটি কী?

1
এটি কারওর পক্ষে সহায়ক হলে সর্বশেষ বড় শোষণ সম্পর্কে আপনার পোস্টের সাথে এটি লিঙ্ক করতে চেয়েছিলাম: drupal.stackexchange.com/questions/133996/…
ক্রিশ্চিয়া

2
এটি আপনার অ্যাক্সেস লগগুলিতে সন্ধানযোগ্য। রিমোট কোড এক্সিকিউশন এটিকে অত্যন্ত সমালোচনা করে তোলে। যে কোনও পিএইচপি কোড কার্যকর করা যায়! প্যাচগুলি asap প্রয়োগ করুন - ক্রিশ্চিয়া থেকে উত্তর দেখুন
rémy

1
To our knowledge the issue is not currently being exploited.সম্ভাবনা প্রতিটি কম।
এসএসওয়েট

1
সিকিউরিটি নোটিশ প্রকাশের আগে ইতিমধ্যে এটি ব্যবহার করা হয়েছিল এমন সম্ভাবনা খুব কম, তবে খুব শীঘ্রই এটির ব্যবহার করা হবে না এমন সব কম নয়।
রোবি

4
এটা তুচ্ছ। এটি শোষিত কিনা তা দেখার জন্য অপেক্ষা করবেন না, কেবল এটি প্যাচ করুন।
কেভিন

উত্তর:


8

কি হতে পারে

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

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

আপনাকে হ্যাক করা হয়েছে কিনা তা কীভাবে বলবেন

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

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

আপনি যদি এখনই আপনার সাইটে প্যাচ করতে না পারেন

আপনি যদি এখনই সাইটটি প্যাচ করতে না পারেন তবে আমি অ্যাপাচি / এনগিনেক্স সার্ভারটি কাটার পরামর্শ দেব যাতে কেউ আপনার সাইটে না যায়। অথবা, সার্ভারের সমস্ত ট্র্যাফিককে কোনও HTML পৃষ্ঠায় ডাইরেক্ট করুন যা বোঝায় যে আপনি রক্ষণাবেক্ষণের জন্য অবধি রয়েছেন, যেমন "হার্ড রক্ষণাবেক্ষণ মোড"। সমস্ত ক্ষেত্রেই, আপনি কোনও আপগ্রেড বা জায়গায় প্যাচ না পাওয়া পর্যন্ত বুটস্ট্র্যাপিং ড্রুপালে কোনও দর্শনার্থীকে কোনও শট দেওয়ার অনুমতি দিতে চান না।

এবং আমার সাইটটিকে হ্যাক হওয়ার কথা চিন্তা করে, মনে রাখবেন যে প্রথম দ্রুপালগেডন আক্রমণ মুক্তির 7 ঘন্টা পরে শুরু হয়েছিল এবং এটি একটি স্ক্রিপ্ট আকারে যা হাজার হাজার সাইটগুলিকে স্বয়ংক্রিয়ভাবে হ্যাক করেছিল। দ্রুত ঘুরো!

যদি হ্যাক হয়

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


10

কেউ যদি আমার সাইট হ্যাক করতে এই শোষণ ব্যবহার করে তবে আমি কীভাবে বলতে পারি?

আপনার ড্রুপাল 7 বা 8 সাইটটি ডেটা ক্ষতি বা চুরির অভিজ্ঞতা অর্জন করতে পারে, ডেটা মুছে ফেলা, মুছে ফেলা বা পরিবর্তন করা যেতে পারে, সাইটটিতে বিভিন্ন উপায়ে সর্বনাশ।

আপনার ওয়েবসাইট হ্যাক হয়েছে কিনা তা পরীক্ষা করার জন্য সাধারণ তথ্যের জন্য এই স্ট্যাক এক্সচেঞ্জের পোস্টটি দেখুন।

সঠিকভাবে কার্যকর করা হলে তারা এই শোষণের সাথে কী করতে পারে?

শোষণ হল একটি রিমোট কোড প্রয়োগের দুর্বলতা, যার অর্থ কোনও ডেটা প্রভাবিত হওয়ার সম্ভাবনা রয়েছে।

এই শোষণটিকে 21/25 এর ঝুঁকিপূর্ণ স্কোর দেওয়া হয়েছে যা এটি এটির চেয়ে প্রায় সর্বোচ্চ। এই ঝুঁকিপূর্ণ স্কোরটি অন্যদের মধ্যে নিম্নলিখিত দুর্বলতাগুলিও সংজ্ঞায়িত করে:

  • এসি (অ্যাক্সেস জটিলতা): অ্যাক্সেস এবং শোষণের জন্য সহজ (কোনও দক্ষতা নেই)
  • একটি (প্রমাণীকরণ): কোনও বিশেষ প্রমাণীকরণের প্রয়োজন নেই
  • সিএল (গোপনীয়তার প্রভাব): সমস্ত অ-পাবলিক ডেটা অ্যাক্সেসযোগ্য
  • II (স্বীকৃতি প্রভাব): সমস্ত ডেটা পরিবর্তন বা মুছতে পারে

ঝুঁকি স্কোরিং এবং সংজ্ঞা সম্পর্কে আরও পড়ুন এখানে

আমি এখন আমার ড্রুপাল সাইটগুলি আপডেট করতে পারি না, সহজেই এই গর্তটি প্যাচ করার জন্য ভাল বিকল্পটি কী?

আপনি এখনই কোর আপডেট করতে অক্ষম হলে একটি প্যাচ উপলব্ধ। দ্রুপাল.অর্গ থেকে:

আপনি যদি 7.x চলমান থাকেন তবে দ্রুপাল 7.58 এ আপগ্রেড করুন । (আপনি যদি অবিলম্বে আপডেট করতে অক্ষম হন তবে আপনি সম্পূর্ণরূপে আপডেট করতে সক্ষম হওয়া অবধি দুর্বলতাটি ঠিক করতে এই প্যাচটি প্রয়োগ করার চেষ্টা করতে পারেন ))

আপনি যদি 8.5.x চলমান থাকেন তবে দ্রুপাল 8.5.1 এ আপগ্রেড করুন । (আপনি যদি অবিলম্বে আপডেট করতে অক্ষম হন তবে আপনি সম্পূর্ণরূপে আপডেট করতে সক্ষম হওয়া অবধি দুর্বলতাটি ঠিক করতে এই প্যাচটি প্রয়োগ করার চেষ্টা করতে পারেন ))

আরও পড়তে, শোষণ সম্পর্কে একটি FAQ এখানে


2
আমি এই সরকারী পরিষেবা 21 মার্চের ঘোষণার সাথে একটি লিঙ্ক যুক্ত করতে চাই । শোষণ কয়েক ঘন্টা বা দিনের মধ্যে আশা করা যেতে পারে। সুতরাং ASAP আপডেট করুন।
নিওগ্রাফ 734

হ্যাক করা সাইটগুলির জন্য এখানে ড্রুপাল গাইড রয়েছে, যদি কারও এটির প্রয়োজন হয়: drupal.org/drupal- সুরক্ষা-team/…
ক্রিশ্চিয়া

1
আমি বলব কর্মের সেরা কোর্স হ'ল প্যাচটি তাত্ক্ষণিকভাবে প্রয়োগ করা, তারপরে আপনার সাইটগুলি সর্বশেষ সংস্করণে আপডেট করুন। কারণটি হ'ল, যদি না আপনার সাইটটি সর্বদা আপ টু ডেট থাকে, মডিউল সুরক্ষা আপডেটের এক রাউন্ড সঠিক পরীক্ষার যথাযথ পরিমাণ দিতে আরও সময় নেয় এবং সম্ভবত আরও জড়িত মোতায়েনের প্রয়োজন হয়। সুতরাং যত তাড়াতাড়ি সম্ভব সবচেয়ে গুরুত্বপূর্ণ সমাধান করা পছন্দসই পদ্ধতির হওয়া উচিত।
রোবীয়

1

কীভাবে ড্রুপাল কোর এর বিপরীতে ড্রপাল x.x প্যাচ করবেন - অত্যন্ত সমালোচনামূলক - রিমোট কোড এক্সিকিউশন - এসএ-কোরে -২০১--00

আপনি যদি ড্রুপাল x.x এ থাকেন এবং আপনার লাইভ সাইটটি .5.৫৮ এ আপডেট করতে অক্ষম হন, প্যাচ প্রয়োগের সাথে পরিচিত নন, বা কোনও দ্রুপাল সংস্করণে আছেন যার জন্য প্যাচটি ব্যর্থ হয় নিম্নলিখিতটি:

1> ড্রুপাল 7.58 ডাউনলোড এবং নিষ্কাশন করুন।

2> আপনার ওয়েবসাইটের / অন্তর্ভুক্ত ডিরেক্টরিতে 7.58 বিতরণ থেকে /includes/request-sanitizer.inc ফাইলটি অনুলিপি করুন (এফটিপি বা আপনার হোস্টিং নিয়ন্ত্রণ প্যানেল ফাইল ম্যানেজারের মাধ্যমে সহজতম)।

3> আপনার লাইভ ওয়েবসাইটে /includes/bootstrap.inc এর সংস্করণ সম্পাদনা করুন (প্রথমে ব্যাকআপ!) _ড্রুপাল_ বুটস্ট্র্যাপ_ কনফিগারেশন () ফাংশনটি সন্ধান করুন। Drupal_settings_initialize () বিবৃতি দেওয়ার পরে নিম্নলিখিত 3 লাইন যুক্ত করুন; :

// Sanitize unsafe keys from the request.
require_once DRUPAL_ROOT . '/includes/request-sanitizer.inc';
DrupalRequestSanitizer::sanitize();

সংরক্ষণ.

আরাম করুন।


0

এখানে একটি সাধারণ 1-2-2 প্রক্রিয়া এখানে:

  1. এখান থেকে কোডটি ক্লিপবোর্ডে অনুলিপি করুন https://cgit.drupalcode.org/drupal/rawdiff/?h=7.x&id=2266d2a83db50e2f97682d9a0fb8a18e2722cba5 বা নীচে উদ্ধৃত হয়েছে ।
  2. আপনার ড্রুপাল ডিরেক্টরিটির মূল ফোল্ডারে 2018march.patch ফাইল নামে একটি ফাঁকা ফাইল তৈরি করুন।
  3. ফাইলটি কোডটি আটকান
  4. টার্মিনালে কমান্ডটি চালান: প্যাচ -p1 <2018march.patch

আপনার যদি এসএসএইচ বা টার্মিনাল অ্যাক্সেস না থাকে। ব্যবহারকারীর @ এলব সমাধান ব্যবহার করে আপনাকে এটি ম্যানুয়ালি করতে হবে।

diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 655db6d..880557e 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -2632,6 +2632,10 @@ function _drupal_bootstrap_configuration() {
   timer_start('page');
   // Initialize the configuration, including variables from settings.php.
   drupal_settings_initialize();
+
+  // Sanitize unsafe keys from the request.
+  require_once DRUPAL_ROOT . '/includes/request-sanitizer.inc';
+  DrupalRequestSanitizer::sanitize();
 }

 /**
diff --git a/includes/request-sanitizer.inc b/includes/request-sanitizer.inc
new file mode 100644
index 0000000..1daa6b5
--- /dev/null
+++ b/includes/request-sanitizer.inc
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * @file
+ * Contains code for sanitizing user input from the request.
+ */
+
+/**
+ * Sanitizes user input from the request.
+ */
+class DrupalRequestSanitizer {
+
+  /**
+   * Tracks whether the request was already sanitized.
+   */
+  protected static $sanitized = FALSE;
+
+  /**
+   * Modifies the request to strip dangerous keys from user input.
+   */
+  public static function sanitize() {
+    if (!self::$sanitized) {
+      $whitelist = variable_get('sanitize_input_whitelist', array());
+      $log_sanitized_keys = variable_get('sanitize_input_logging', FALSE);
+
+      // Process query string parameters.
+      $get_sanitized_keys = array();
+      $_GET = self::stripDangerousValues($_GET, $whitelist, $get_sanitized_keys);
+      if ($log_sanitized_keys && $get_sanitized_keys) {
+        _drupal_trigger_error_with_delayed_logging(format_string('Potentially unsafe keys removed from query string parameters (GET): @keys', array('@keys' => implode(', ', $get_sanitized_keys))), E_USER_NOTICE);
+      }
+
+      // Process request body parameters.
+      $post_sanitized_keys = array();
+      $_POST = self::stripDangerousValues($_POST, $whitelist, $post_sanitized_keys);
+      if ($log_sanitized_keys && $post_sanitized_keys) {
+        _drupal_trigger_error_with_delayed_logging(format_string('Potentially unsafe keys removed from request body parameters (POST): @keys', array('@keys' => implode(', ', $post_sanitized_keys))), E_USER_NOTICE);
+      }
+
+      // Process cookie parameters.
+      $cookie_sanitized_keys = array();
+      $_COOKIE = self::stripDangerousValues($_COOKIE, $whitelist, $cookie_sanitized_keys);
+      if ($log_sanitized_keys && $cookie_sanitized_keys) {
+        _drupal_trigger_error_with_delayed_logging(format_string('Potentially unsafe keys removed from cookie parameters (COOKIE): @keys', array('@keys' => implode(', ', $cookie_sanitized_keys))), E_USER_NOTICE);
+      }
+
+      $request_sanitized_keys = array();
+      $_REQUEST = self::stripDangerousValues($_REQUEST, $whitelist, $request_sanitized_keys);
+
+      self::$sanitized = TRUE;
+    }
+  }
+
+  /**
+   * Strips dangerous keys from the provided input.
+   *
+   * @param mixed $input
+   *   The input to sanitize.
+   * @param string[] $whitelist
+   *   An array of keys to whitelist as safe.
+   * @param string[] $sanitized_keys
+   *   An array of keys that have been removed.
+   *
+   * @return mixed
+   *   The sanitized input.
+   */
+  protected static function stripDangerousValues($input, array $whitelist, array &$sanitized_keys) {
+    if (is_array($input)) {
+      foreach ($input as $key => $value) {
+        if ($key !== '' && $key[0] === '#' && !in_array($key, $whitelist, TRUE)) {
+          unset($input[$key]);
+          $sanitized_keys[] = $key;
+        }
+        else {
+          $input[$key] = self::stripDangerousValues($input[$key], $whitelist, $sanitized_keys);
+        }
+      }
+    }
+    return $input;
+  }
+
+}

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