অ্যাপাচে (httpd) 'লগজাম' দুর্বলতা কীভাবে ঠিক করবেন


56

সম্প্রতি, ডিফি-হেলম্যানের একটি নতুন দুর্বলতা, যা অনানুষ্ঠানিকভাবে 'লগজাম' হিসাবে উল্লেখ করা হয়েছে তা প্রকাশিত হয়েছে, যার জন্য এই পৃষ্ঠাটি একত্রিত করা হয়েছে কীভাবে দুর্বলতার মোকাবিলা করার পরামর্শ দেওয়া হয়েছে:

টিএলএসের জন্য ডিফি-হেলম্যানকে সঠিকভাবে মোতায়েনের জন্য আমাদের কাছে তিনটি সুপারিশ রয়েছে:

  1. রফতানিকারক সিফার স্যুট অক্ষম করুন। যদিও আধুনিক ব্রাউজারগুলি আর রফতানি স্যুটগুলিকে সমর্থন করে না, ফ্রেস এবং লগজাম আক্রমণগুলি একজন মধ্য-মধ্য-আক্রমণকারীকে ব্রাউজারগুলিকে রফতানি-গ্রেড ক্রিপ্টোগ্রাফি ব্যবহারের অনুমতি দেয়, যার পরে টিএলএস সংযোগটি ডিক্রিপ্ট করা যায়। রফতানি সিফাররা 1990-এর-যুগের নীতির অবশিষ্টাংশ যা শক্তিশালী ক্রিপ্টোগ্রাফিক প্রোটোকলগুলি মার্কিন যুক্তরাষ্ট্র থেকে রফতানি করতে বাধা দেয়। কোনও আধুনিক ক্লায়েন্ট রফতানি স্যুটগুলির উপর নির্ভর করে না এবং এগুলি অক্ষম করার ক্ষেত্রে সামান্য খারাপ দিক রয়েছে।
  2. স্থাপন করুন (ইফেমেরাল) উপবৃত্তাকার-বক্ররেখা ডিফি-হেলম্যান (ইসিডিএইচই)। এলিপটিক-কার্ভ ডিফি-হেলম্যান (ইসিডিএইচ) কী বিনিময় সমস্ত পরিচিত ফিজিবল ক্রিপ্ট্যানালিটিক আক্রমণকে এড়িয়ে চলে এবং আধুনিক ওয়েব ব্রাউজারগুলি এখন মূল, সসীম ক্ষেত্র, ডিফি-হেলম্যানের চেয়ে ECDHE পছন্দ করে। আমরা স্ট্যান্ডার্ড ডিফি-হেলম্যান গ্রুপগুলিতে আক্রমণ করার জন্য ব্যবহৃত লগ অ্যালগরিদমগুলি পূর্বেগমন থেকে কোনও সুবিধার মতো শক্তিশালী লাভ করতে পারি না এবং স্বতন্ত্র সার্ভারগুলিকে অনন্য উপবৃত্তাকার বক্ররেখা উত্পন্ন করার প্রয়োজন হয় না।
  3. একটি শক্তিশালী, অনন্য ডিফি হেলম্যান গ্রুপ তৈরি করুন । কয়েকটি নির্দিষ্ট গ্রুপ লক্ষ লক্ষ সার্ভার দ্বারা ব্যবহৃত হয়, যা তাদের পূর্ববর্তীকরণ এবং সম্ভাব্য শ্রবণশক্তি জন্য অনুকূল লক্ষ্য করে তোলে। প্রশাসকদের প্রতিটি ওয়েবসাইট বা সার্ভারের জন্য "নিরাপদ" প্রাইম ব্যবহার করে অনন্য, 2048-বিট বা শক্তিশালী ডিফি-হেলম্যান গ্রুপ তৈরি করা উচিত।

উপরোক্ত প্রস্তাবনাগুলি অনুসারে আমার সার্ভারটি সুরক্ষিত করার জন্য আমার সর্বোত্তম অনুশীলনের পদক্ষেপগুলি কী কী?


উত্তর:


82

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

  1. রফতানিকারক সিফার স্যুট অক্ষম করুন

আমরা নীচে ২. যে কনফিগারেশন পরিবর্তন করব সেগুলি নিয়ে ডিল্ট করুন ( রেখার !EXPORTশেষের দিকে SSLCipherSuiteআমরা কীভাবে রফতানি সিফার স্যুটগুলি অক্ষম করব)

  1. ডিপোলি (ইফেমেরাল) উপবৃত্তাকার-বক্ররেখা ডিফি-হেলম্যান (ইসিডিএইচই)

এই জন্য, আপনাকে আপনার অ্যাপাচি কনফিগ ফাইলে কিছু সেটিং এডিট করতে হবে - যথা SSLProtocol, SSLCipherSuite, SSLHonorCipherOrderএকটি "বেস্ট পদ্ধতি" সেটআপ আছে। নীচের মত কিছু যথেষ্ট হবে:

SSLProtocol             all -SSLv2 -SSLv3

SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA

SSLHonorCipherOrder     on

দ্রষ্টব্য: কোন SSLCipherSuiteসেটিংসটি ব্যবহার করবেন সে হিসাবে এটি সর্বদা পরিবর্তিত হয় এবং সর্বশেষ প্রস্তাবিত কনফিগারেশন পরীক্ষা করার জন্য এই জাতীয় সংস্থার সাথে পরামর্শ করা ভাল ধারণা ।

৩. একটি শক্তিশালী, অনন্য ডিফী হেলম্যান গ্রুপ তৈরি করুন

এটি করতে, আপনি চালাতে পারেন

openssl dhparam -out dhparams.pem 2048

নোট করুন যে প্যারামগুলি উত্পন্ন হওয়ার সাথে সাথে এটি সার্ভারে উল্লেখযোগ্য বোঝা চাপিয়ে দেবে - আপনি সর্বদা অন্য মেশিনে প্যারাম তৈরি করে এবং ব্যবহারের scpজন্য প্রশ্নে সার্ভারে স্থানান্তর করতে বা ব্যবহার করে অনুরূপ সমস্যার সমাধান করতে পারেন।

অ্যাপাচি ডকুমেন্টেশনdhparams থেকে এই নতুন উত্পাদিত অ্যাপাচি ব্যবহার করতে :

কাস্টম ডিএইচ প্যারামিটার তৈরি করতে, ওপেনএসএল ধাপারম কমান্ডটি ব্যবহার করুন। বিকল্পভাবে, আপনি আরএফসি 2409, বিভাগ 6.2 থেকে সম্পর্কিত এসএসসি সার্টিফিকেট ফাইলটিতে নিম্নলিখিত মানক 1024-বিট ডিএইচ প্যারামিটার যুক্ত করতে পারেন :

(জোর আমার)

এরপরে একটি স্ট্যান্ডার্ড 1024-বিট ডিএইচ প্যারামিটার অনুসরণ করা হবে। এ থেকে আমরা অনুমান করতে পারি যে কাস্টম-উত্পন্ন ডিএইচ প্যারামিটারগুলি কেবল SSLCertificateFileপ্রশ্নে প্রাসঙ্গিকভাবে সংযুক্ত করা যেতে পারে ।

এটি করতে, নিম্নলিখিতগুলির মতো কিছু চালান:

cat /path/to/custom/dhparam >> /path/to/sslcertfile

বিকল্পভাবে, আপনি মূলত লিঙ্ক করা নিবন্ধটির অ্যাপাচি উপবিধান অনুসারে, আপনি নিজেরাই তৈরি করেছেন কাস্টম dhparams ফাইলটি নির্দিষ্ট করে দিতে পারেন যদি আপনি শংসাপত্রের ফাইলটি নিজেই পরিবর্তন না করতে চান তবে:

SSLOpenSSLConfCmd DHParameters "/path/to/dhparams.pem"

যে কোনও ক্ষেত্রে অ্যাপাচি কনফিগারেশন (গুলি) আপনার নির্দিষ্ট এসএসএল / টিএলএস বাস্তবায়নের সাথে প্রাসঙ্গিক - সাধারণত conf.d/ssl.confবা conf.d/vhosts.confকিন্তু তবে আপনি কীভাবে অ্যাপাচি কনফিগার করেছেন তার উপর নির্ভর করে এটি পৃথক হবে।

এটি লক্ষণীয় যে এই লিঙ্ক অনুসারে ,

অ্যাপাচি ২.৪.। এর আগে ডিএইচ প্যারামিটার সর্বদা 1024 বিটে সেট করা থাকে এবং এটি ব্যবহারকারী কনফিগারযোগ্য নয়। এটি mod_ssl 2.4.7 এ স্থির করা হয়েছে যে রেড হ্যাট তাদের আরএইচএল 6 অ্যাপাচি ২.২ ডিস্ট্রিবিউটে httpd-2.2.15-32.el6 সহ ব্যাকপোর্ট করেছে

ডেবিয়ান হুইজি অ্যাপাচি 2 আপগ্রে 2.2.22-13 + deb7u4 বা তারপরে এবং 1.0.1e-2 + deb7u17 এ ওপেনসেল করুন। উপরের এসএসএল সিফারসুইটটি পুরোপুরি কার্যকরভাবে কাজ করে না, পরিবর্তে এই ব্লগ অনুসারে নিম্নলিখিতটি ব্যবহার করুন :

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA

আপনার অ্যাপাচি সংস্করণটি আপনার বিতরণের উপর নির্ভর করে এই সংস্করণ সংখ্যাগুলির চেয়ে পরে আছে কিনা তা পরীক্ষা করা উচিত এবং যদি না হয় - তবে সম্ভব হলে আপডেট করুন।

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


1
প্যারামগুলি তৈরি করে সার্ভারে চাপানো লোডের জন্য, আপনি সর্বদা এটিকে অন্য কোনও মেশিনে তৈরি করতে পারেন এবং কেবলমাত্র স্ক্র্যাপ করতে পারেন বা এমনকি লক্ষ্য সার্ভারে ফাইলটি অনুলিপি-পেস্ট করতে পারেন। প্রোডাকশন সার্ভারে প্যারামগুলি তৈরি করার দরকার নেই।
ইরথিয়েল

2
আপনি আপনার কনফিগারেশন পরিবর্তন করার পরে, আপনি SSLLabs.com এ একটি চেক চালাতে চাইতে পারেন ঠিক নিশ্চিত হতে।
ব্যবহারকারী 2428118

2
অ্যাপাচি / ২.২.২২ (উবুন্টু ১২.০৪) এ এই দুর্বলতাটি ঠিক করার কোনও উপায় আছে? আমি dhparams.pem সার্টিফিকেট.সিআরটিতে যুক্ত করেছিলাম তবে দুর্বল ..org/sysadmin.html এখনও অভিযোগ করে

2
@tersmitten এটি এই একটি সম্পূর্ণ পৃথক প্রশ্ন।
মাইকেল হ্যাম্পটন

3
আপনি সর্বদা 'দুর্দান্ত' আদেশ দ্বারা কী প্রজন্ম চালাতে পারেন। সুতরাং, আপনি এটি হিসাবে রাখতে পারেন: সুন্দর 19 ওপেনসেল ধাপ্পারআউট dhparams.pem 2048। এটি দীর্ঘ সময় কাজ করবে তবে কেবল অব্যবহৃত সিপিইউ সময় গ্রহণ করবে।
Znik

1

উইনি নীসনের এক প্যাচের উপর ভিত্তি করে আমি অ্যাপাচি / ২.২.২২ (ডেবিয়ান হুইজি, সম্ভবত উবুন্টুতে ব্যবহারযোগ্য) এর জন্য একটি প্রকাশও প্রকাশ করেছি: https://flo.sh/deban-wheezy-apache2-logjam-fix/ - thx । আপনার মতামতের জন্য


3
এটি সমাধানের চেয়ে হ্যাকিশ হ্যাক। রিভার্স-প্রক্সি হিসাবে আপনার অ্যাপাচে সাম্প্রতিক এনজিন্সের সম্মুখভাগ স্থাপন করা আরও সহজ হবে এবং তৃতীয় পক্ষের অ্যাপাচে কেউ নির্ভর করে না।
সেখানে লোকটি

6
কেন আমাদের এই বাইনারি বিশ্বাস করা উচিত?
একটি সিভিএন

2
আপনি বাইনারি বিশ্বাস করতে হবে না; আপনি যদি সময় নেন তবে ব্যাখ্যা করা পদক্ষেপগুলি অনুসরণ করে আপনি খুব সহজেই অ্যাপাচি ২.২.x পুনরায় সংকলন করতে পারেন। এটি আপনার সুরক্ষা আরও বাড়িয়ে তুলবে, কারণ তখন আপনার সেটআপে অনন্য প্রাথমিক কী রয়েছে।
ফ্লো

ওপেনসোর্স সফ্টওয়্যারটিতে প্যাচগুলি ঠিক করার বিষয়ে লোকেরা অভিযোগ না করার পরামর্শ দেবে।
ফ্লোরিয়ান হেইগল


-7

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

আমি পুরোপুরি সুইচ আপ। টিএলএস সংক্রান্ত অনেক সময় সাশ্রয়ী সমস্যা সমাধানের জন্য আমাকে বাঁচিয়েছে, এবং - আমাদের কনফিগারেশনের জন্য - এটি একই সময়ে প্রচুর র‌্যাম মুক্ত করে। প্রকৃতপক্ষে, আমি এনজিএনএক্সের কর্মজীবন সতেজ এবং সরলভাবে পেয়েছি, আমার অভ্যস্ত হয়ে উঠেছে এমন httpd / Apache এর কনফিগার জটিলতার অস্তিত্বের তুলনায়। স্বাদের বিষয় হতে পারে, আমি মোড় নেওয়ার আগে আমি httpd / অ্যাপাচি পুনর্লিখন / কনফিগারেশন / রক্ষণাবেক্ষণে বেশ সাবলীল হয়ে উঠেছিলাম এবং আমার ভয় হওয়ার চেয়ে এটি আরও সহজ ছিল। অনলাইনে উপলব্ধ এনজিএনএক্স কনফিগারেশনে উপযুক্ত সাম্প্রতিক তথ্য রয়েছে এবং এর ব্যবহারকারীর ভিত্তি বিশাল, খুব সক্রিয় এবং সমর্থন-বান্ধব। https://news.netcraft.com/wp-content/uploads/2018/11/wpid-wss-top-1m-share.png


3
রফতানিকারক সাইফারদের জন্য অনুমতি দেওয়ার জন্য সেট করা এনজিনেক্স লগজাম আক্রমণে ঠিক ততটাই দুর্বল হয়ে পড়বে যেমন রফতানি সাইফারগুলির জন্য অনুমতি দেওয়ার জন্য অ্যাপাচি সার্ভার সেট আপ করা হয়েছিল। এছাড়াও, প্রশ্নটি অ্যাপাচে সমাধানের জন্য জিজ্ঞাসা করে।
একটি সিভিএন

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

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

1
জ্ঞাত আক্রমণগুলির বিরুদ্ধে সুরক্ষিত হওয়ার জন্য কোনও সফ্টওয়্যার সঠিকভাবে কনফিগার করা কি "হ্যাকসের জটিল রুট"? আমি একটি সহজ অ্যাপাচি কনফিগারেশন সহ ssllabs.com এ A পেয়েছি, আপনি যে সফ্টওয়্যারটি ব্যবহার করছেন সেটি কীভাবে সঠিকভাবে কনফিগার করতে হবে তা বোঝার জন্য আপনাকে সময় নিতে হবে এবং কিছু গবেষণা করতে হবে, এখানে কোনও হ্যাক নেই ...
চাজি চাজ

1
@ জুলিয়াস - নীচের জনগণ সম্ভবত জিজ্ঞাসিত প্রশ্ন সম্পর্কিত আপনার উত্তরের মূল্যহীনতার সাথে আরও বেশি কিছু করতে পারে, সম্ভবত কোনও লুকানো "এজেন্ডা" লোকেরা আপাতত এনগিনেক্স বনাম থাকতে পারে। এটি যেমন ঘটে থাকে, আমি আমার পছন্দ হিসাবে বিশেষত nginx ব্যবহার করি - তবে আমিই এই প্রশ্নের উত্তর দিয়েছিলাম। "কীভাবে সমাধান করতে হবে (কোনও সমস্যা)" এর জন্য "অন্যান্য সফ্টওয়্যারটিতে স্যুইচ করুন" কোনও গ্রহণযোগ্য উত্তর নয়। উল্লেখ করার মতো নয়, আপনি প্রকৃত দুর্বলতার বিন্দুটিও পুরোপুরি মিস করেছেন - এটি ডিফাই-হেলম্যানম্যান এক্সচেঞ্জে ছিল, অ্যাপাচি (বা
এনজিনেক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.