কেন থম্পসনের সংকলক হ্যাক এখনও হুমকি?


156

কেন থম্পসন হ্যাক (1984)

কেন থম্পসন ১৯ 1984৪ সালে একটি সংকলক বাইনারি (এবং অন্যান্য সংকলিত সফ্টওয়্যার, * * নিক্স সিস্টেমে লগইন স্ক্রিপ্টের মতো) দূষিত করার জন্য একটি পদ্ধতির রূপরেখার কথা উল্লেখ করেছিলেন। আমি জানতে আগ্রহী যে আধুনিক সংকলন এই সুরক্ষা ত্রুটিটি মোকাবেলা করেছে কিনা।

ছোট বিবরণ:

2 ত্রুটিগুলি ধারণ করতে সংকলক কোডটি আবার লিখুন:

  • নিজস্ব বাইনারি সংকলন করার সময়, সংকলককে অবশ্যই এই ত্রুটিগুলি সংকলন করতে হবে
  • কিছু অন্যান্য পূর্বনির্ধারিত কোড (লগইন ফাংশন) সংকলন করার সময় এটি কিছু স্বেচ্ছাসেবী ব্যাকডোর সংকলন করতে হবে

সুতরাং, সংকলকটি স্বাভাবিকভাবে কাজ করে - যখন এটি কোনও লগইন স্ক্রিপ্ট বা অনুরূপ সংকলন করে, তখন এটি একটি সুরক্ষা পিছনের ঘর তৈরি করতে পারে এবং ভবিষ্যতে যখন এটি নিজের নতুন সংস্করণগুলি সংকলন করে, তখন এটি পূর্ববর্তী ত্রুটিগুলি ধরে রাখে - এবং ত্রুটিগুলি কেবলমাত্র সংকলকটিতে উপস্থিত থাকবে বাইনারি তাই সনাক্ত করা অত্যন্ত কঠিন।

প্রশ্নাবলী:

ওয়েবে আমি এগুলির কোনও উত্তর খুঁজে পাইনি:

  • এটি কীভাবে ইন-টাইম সংকলনের সাথে সম্পর্কিত?
  • প্রোগ্রামটি যখন * নিক্স সিস্টেমে লগইনগুলি পরিচালনা করে তবে কি সেগুলি সঞ্চালিত হওয়ার পরে সংকলিত হয়?
  • এটি কি এখনও একটি বৈধ হুমকি, বা সংকলনের সুরক্ষার ক্ষেত্রে ১৯৮৪ সাল থেকে এমন কিছু উন্নয়ন ঘটেছে যা এটিকে একটি গুরুত্বপূর্ণ সমস্যা হতে বাধা দেয়?
  • এটি কি সমস্ত ভাষাকে প্রভাবিত করে?

আমি কেন জানতে চাই?

কিছু হোমওয়ার্ক করার সময় আমি এটি পেরিয়ে এসেছি এবং এটি আকর্ষণীয় বলে মনে হয়েছিল তবে এটি কোনও বর্তমান সমস্যা, না কোনও সমাধান হওয়া সমস্যা কিনা তা কংক্রিট উপায়ে বুঝতে আমার পটভূমির অভাব রয়েছে।

আমার মুখোমুখি


6
বিবিধ ডাবল সংকলন কৌশলটি কোনও আরটিটি রিগড সংকলক উপস্থিতি সনাক্ত করার একটি যুক্তিসঙ্গত নির্ভরযোগ্য উপায়।
dmckee

3
আমি ভাবছি এনএসএ এই ধরণের আক্রমণে অনেক কাজ করেছে।
পল এম

উত্তর:


110

এই হ্যাকটি প্রসঙ্গে বুঝতে হবে। এটি এমন এক সময়ে এবং সংস্কৃতিতে প্রকাশিত হয়েছিল যেখানে ইউনিক্স সব ধরণের বিভিন্ন হার্ডওয়্যারে চালিত ছিল প্রভাবশালী সিস্টেম।

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

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


27
বা, যেহেতু বেশিরভাগ লোক উত্স থেকে কোনও কিছু সংকলন করে না (উইন্ডোতে বলুন) আপনার গড় ট্রোজান যথেষ্ট হবে :) (আমি একমত যে একটি আপসড কম্পাইলারটি ওয়েভারকিল)
অ্যান্ড্রেস এফ

16
@ArjunShankar: উন্মুক্ত নয় মালিকানা বাইনারি শুধুমাত্র কম্পাইলার দরকার নেই, আর থাকতে পারে না এই খিড়কি। এই ব্যাকডোরটি কেবল সেই সংকলকগুলিতে প্রযোজ্য যা আপনি উত্স কোড থেকে নিজেকে সংকলন করেন।
রুখ

12
ডেস্কটপ ব্যতীত ইউনিক্স এবং এর সমস্ত রূপগুলি এখনও প্রভাবশালী অপারেটিং সিস্টেম।
রব

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

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

74

এই বক্তৃতার উদ্দেশ্য এমন দুর্বলতাটি হাইলাইট করা ছিল না যার দিকে মনোযোগ দেওয়া দরকার, বা এমন একটি তাত্ত্বিক দুর্বলতারও প্রস্তাব দেওয়া যা সম্পর্কে আমাদের সচেতন হওয়া দরকার।

উদ্দেশ্যটি ছিল, যখন এটি সুরক্ষার কথা আসে, আমরা কারও উপর নির্ভর করতে চাই না, তবে দুর্ভাগ্যক্রমে এটি অসম্ভব। আপনাকে সর্বদা কাউকে বিশ্বাস করতে হবে (সুতরাং শিরোনাম: " বিশ্বাসের উপর প্রতিচ্ছবি")


এমনকি যদি আপনি অদ্ভুত টাইপ হন যিনি তার ডেস্কটপ হার্ড-ড্রাইভকে এনক্রিপ্ট করে এবং কোনও সফ্টওয়্যার যা আপনি নিজেরাই সংকলন করেননি চালনা করতে অস্বীকার করেছেন, তবুও আপনার অপারেটিং সিস্টেমে বিশ্বাস রাখতে হবে। এমনকি আপনি নিজে অপারেটিং সিস্টেমটি সংকলন করলেও, আপনার এখনও ব্যবহৃত সংকলকটির উপর আপনার বিশ্বাস করা দরকার। এমনকি আপনি যদি নিজের নিজস্ব সংকলক সংকলন করেন তবে আপনার এখনও সেই সংকলকটির উপর নির্ভর করা দরকার ! এবং এটি এমনকি হার্ডওয়্যার নির্মাতারা উল্লেখ করা হয় না!

কারও উপর নির্ভর করে আপনি পালাতে পারবেন না । তিনি সেই জায়গাটি পেরিয়ে যাওয়ার চেষ্টা করছিলেন।


2
যদি কারও কাছে একটি ওপেন সোর্স সংকলক থাকে যার আচরণ কোনও বাস্তবায়ন-সংজ্ঞায়িত বা অনির্দিষ্ট আচরণের উপর নির্ভর করে না, এটি বিভিন্নভাবে স্বতঃ-বিকাশিত সংকলক (বিশ্বস্ত বা না) ব্যবহার করে সংকলন করে, এবং তারপরে সমস্ত বিভিন্ন সংকলিত সংস্করণ ব্যবহার করে একটি প্রোগ্রাম সংকলন করে যে ওপেন সোর্স এক, প্রতিটি সংকলক ঠিক একই আউটপুট উত্পাদন করা উচিত। যদি তারা তা করে, তবে এটিই পরামর্শ দেবে যে কোনওভাবেই কোনও ট্রোজান হতে পারে যদি তা সমস্তভাবে অভিন্ন হয়। এটি বরং অসম্ভব বলে মনে হবে। .Net অনেক, যদিও আমার peeves এক, ...
supercat

9
@ সুপের্যাট: মনে হচ্ছে আপনি পয়েন্টটি মিস করছেন। আপনি বলছেন যে কেন থম্পসন উপস্থাপিত হয়েছে তা প্রায় কাজ করা যেতে পারে। আমি বলছি যে তিনি যে বিশেষ হ্যাকটি বেছে নিয়েছেন তাতে কিছু আসে যায় না; এটি কেবল একটি উদাহরণ ছিল, তার বৃহত্তর বিষয়টি প্রদর্শন করা যে আপনাকে অবশ্যই সর্বদা কাউকে বিশ্বাস করতে হবে । এ কারণেই এই প্রশ্নটি কিছুটা অর্থহীন - এটি গাছের জন্য বনটিকে পুরোপুরি মিস করে।
ব্লুরাজা - ড্যানি পিফ্লুঘুফ্ট

9
@ সুপের্যাট: এটির সম্ভাবনা খুব কম নয় যে বিভিন্ন সংকলকগুলি বিভিন্ন ডিজাইনের সিদ্ধান্ত, অপ্টিমাইজেশন ইত্যাদির কারণে যে কোনও অ-তুচ্ছ প্রোগ্রামের জন্য একই বাইকোড তৈরি করবে এটি প্রশ্ন উত্থাপন করে - আপনি কীভাবে জানবেন যে বাইনারিগুলি অভিন্ন?
অঙ্কিত সোনি

1
@ অঙ্কিতসনি: আমার উত্তরটি আরও বিশদে যায়। বিভিন্ন সংকলকগুলির মাধ্যমে উপযুক্ত-লিখিত ওপেন-সোর্স সংকলক / লিঙ্কারকে খাওয়ানোতে বিভিন্ন নির্বাহককে একইরকম আচরণ করা উচিত । যদি এক্সিকিউটেবলগুলি বাস্তবে অভিন্ন আচরণ করে তবে ওপেন-সোর্স সংকলক / লিঙ্কারের কোড যদি তাদের মধ্য দিয়ে দেওয়া হয় তবে তারা একই আউটপুট তৈরি করবে। ফাইলগুলি তুলনা করতে, কেউ সেগুলি ফ্লপি ডিস্কে অনুলিপি করতে পারে এবং তাদের তুলনা করার জন্য একটি অ্যান্টিক কম্পিউটার ব্যবহার করতে পারে।
সুপারক্যাট

2
এই কথোপকথনের কিছুটির অর্থ কি এই নয় যে আপনি পরীক্ষিত জিনিসগুলির জন্য বাইনারি / হার্ডওয়্যার প্রত্যাশার সাথে আচরণ করেছেন? এখনও এটা কিছু আপনি হতে পারে না জন্য পরীক্ষা এবং অজ্ঞাত।
বার্ট সিলভারস্ট্রিম

53

না

আদি হিসাবে বর্ণিত, আক্রমণটি কখনও হুমকি ছিল না। যদিও কোনও সংকলক তাত্ত্বিকভাবে এটি করতে পারে, আসলে আক্রমণটি সরিয়ে ফেলতে সংকলকটির প্রোগ্রামিংয়ের প্রয়োজন হবে

  • উত্স কোডটি সংকলিত হওয়ার সময় সনাক্ত করুন এবং
  • এটিতে হ্যাক sertোকাতে কীভাবে স্বেচ্ছাসেবক উত্স কোডটি পরিবর্তন করতে হবে তা চিত্রিত করুন।

এটি সংঘটন ছাড়াই এটি সংশোধন করতে পারে যাতে এটির উত্স কোড থেকে সংকলক কীভাবে কাজ করে তা নির্ধারণের জন্য এটি জড়িত।

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

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

এআই সমস্যা সমাধান হলেও, লোকেরা লক্ষ্য করবে যে যদি তাদের ছোট সংকলক ফলাফলগুলি একটি বাইনারিতে সংযুক্ত একটি বিশাল এআই লাইব্রেরির সাথে সংযুক্ত করে তা সংকলন করে।

অভিন্ন আক্রমণ: বুটস্ট্র্যাপিং বিশ্বাস

তবে আক্রমণটির একটি সাধারণীকরণ প্রাসঙ্গিক। মূল সমস্যাটি হ'ল আপনার বিশ্বাসের শৃঙ্খলাটি কোথাও থেকে শুরু করতে হবে এবং অনেকগুলি ডোমেনে এর উত্স পুরো চেইনটিকে একটি হার্ড-টু-ডিটেক্ট পদ্ধতিতে বিপর্যস্ত করতে পারে।

বাস্তব জীবনে সহজেই টানা যেতে পারে এমন একটি উদাহরণ

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

আপনি স্বাক্ষর কীটি পেয়েছেন? আপনি যখন প্রথম অপারেটিং সিস্টেম বিতরণ ডাউনলোড করেন।

আপনাকে বিশ্বাস করতে হবে যে আপনার শৃঙ্খলাবদ্ধতার উত্স, এই স্বাক্ষর কী, মন্দ নয়।

যে কেউ আপনার এবং উবুন্টু ডাউনলোড সার্ভারের মধ্যে ইন্টারনেট সংযোগ এমআইটিএম করতে পারে - এটি আপনার আইএসপি হতে পারে, এমন একটি সরকার যা ইন্টারনেট অ্যাক্সেস নিয়ন্ত্রণ করে (যেমন চীন), বা উবুন্টুর হোস্টিং সরবরাহকারী - এই প্রক্রিয়াটিকে হাইজ্যাক করতে পারে:

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

এরপরে, আপনি আক্রমণকারীর সার্ভার থেকে আপনার আপডেটগুলি নিরাপদে পাবেন। আপডেটগুলি রুট হিসাবে চালিত হয়, সুতরাং আক্রমণকারীর সম্পূর্ণ নিয়ন্ত্রণ থাকে।

আসলটি খাঁটি তা নিশ্চিত করে আপনি আক্রমণটি আটকাতে পারবেন। তবে এটির জন্য আপনি ডাউনলোড করা সিডি চিত্রটি একটি হ্যাশ ব্যবহার করে যাচাই করতে হবে ( কিছু লোক আসলে এটি করেন ) — এবং হ্যাশটি নিজেই সুরক্ষিতভাবে ডাউনলোড করা আবশ্যক, যেমন HTTPS- র মাধ্যমে। এবং যদি আপনার আক্রমণকারী আপনার কম্পিউটারে একটি শংসাপত্র যুক্ত করতে পারে (কর্পোরেট পরিবেশে সাধারণ) বা একটি শংসাপত্র কর্তৃপক্ষকে নিয়ন্ত্রণ করে (যেমন চীন), এমনকি এইচটিটিপিএস কোনও সুরক্ষা দেয় না।


47
এটা মিথ্যা। সংকলকটি কেবল তখনই নির্ধারণ করতে হয় যে যখন এটি খুব নির্দিষ্ট বিষয়বস্তু সহ একটি নিজস্ব উত্স কোড থেকে খুব নির্দিষ্ট উত্স ফাইলটি সংকলন করছে তখন নয়, যখন এটি কোনও সংকলক সংকলন করছে তখন !!!
কাজ

14
@ কাজ - এক পর্যায়ে, সংকলক বা লগইন প্রোগ্রামের উপরের বোর্ড পরিবর্তনগুলি এমন পর্যায়ে পৌঁছতে পারে যেখানে তারা ব্যাকডোরের সংকলক-সনাক্তকারী / লগইন-শনাক্তকারীকে পরাজিত করে এবং পরবর্তী পুনরাবৃত্তির পিছনের অংশটি হারাতে পারে। এটি নির্দিষ্ট কিছু রোগের জন্য অনাক্রম্যতা প্রদান এলোমেলো জৈবিক পরিব্যক্তির সাথে সাদৃশ্যপূর্ণ।
রাসেল বোরোগোভ

12
আপনার উত্তরের প্রথমার্ধে কাজটি বর্ণিত সমস্যাটি রয়েছে, তবে দ্বিতীয়ার্ধটি এত ভাল যে আমি যাইহোক +1 করছি!
রুখ

7
একটি অশুভ সংকলক যা কেবল এটির নিজস্ব উত্সটি স্বীকৃতি দেয় তা নির্মাণ করা সহজ, তবে অনুশীলনে তুলনামূলকভাবে মূল্যহীন few খুব কম লোক যাদের কাছে ইতিমধ্যে এই সংকলকটির বাইনারি রয়েছে তা বাইনারিটিকে পুনরায় তৈরি করতে ব্যবহার করবে said আক্রমণটি দীর্ঘ সময়ের জন্য সফল হওয়ার জন্য, সংকলকটির নিজস্ব উত্সের নতুন রায়গুলি প্যাচ করার জন্য আরও বুদ্ধি প্রয়োজন, এভাবে সেন্সওয়ারটিতে বর্ণিত সমস্যাগুলির দিকে চালিত হয় into
ব্যবহারকারী 281377

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

25

প্রথমত, এই হ্যাকটির আমার প্রিয় লিখনআপটিকে স্ট্রেঞ্জ লুপস বলে

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

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

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

তাই সর্বদা, গভীরতার প্রতিরক্ষা।

(**) ধরে নিই কেন এর আক্রমণ আসলেই ছিল। তিনি শুধু আলোচনা কিভাবে এটি পারে সম্পন্ন করা। তিনি বলেননি যে তিনি যতদূর আমার জানা হিসাবে এটি করেছেন।


আপনার দ্বিতীয় পাদটীকা সম্পর্কে, কেন বলেছেন "বিল্ড করুন এবং বিতরণ করবেন না"।
বিট্রি

15

এটি কি সমস্ত ভাষাকে প্রভাবিত করে?

এই আক্রমণটি মূলত স্ব-হোস্টিংয়ের ভাষাগুলিকে প্রভাবিত করে। এটি সেই ভাষাগুলি যেখানে সংকলকটি ভাষায় লেখা হয়। সি, স্কুয়াক স্মলটালক এবং পাইপাই পাইথন দোভাষী এটি দ্বারা প্রভাবিত হবে। পার্ল, জাভাস্ক্রিপ্ট, এবং সিপথন পাইথন দোভাষী দিত না।

এটি কীভাবে ইন-টাইম সংকলনের সাথে সম্পর্কিত?

খুব বেশী না. এটি সংকলকের স্ব-হোস্টিং প্রকৃতি যা হ্যাককে আড়াল করার অনুমতি দেয়। আমি কোনও স্ব-হোস্টিং জেআইটি সংকলক সম্পর্কে জানি না। (সম্ভবত এলএলভিএম?)

প্রোগ্রামটি যখন * নিক্স সিস্টেমে লগইনগুলি পরিচালনা করে তবে কি সেগুলি সঞ্চালিত হওয়ার পরে সংকলিত হয়?

সাধারণত না. প্রশ্নটি কখন সংকলিত হয় তা নয় , তবে কোন সংকলক দ্বারা । লগইন প্রোগ্রামটি যদি কোনও কলঙ্কিত সংকলক দ্বারা সংকলিত হয় তবে তা কলঙ্কিত হবে। এটি একটি পরিষ্কার সংকলক দ্বারা সংকলিত থাকলে, এটি পরিষ্কার হবে।

এটি কি এখনও একটি বৈধ হুমকি, বা সংকলনের সুরক্ষার ক্ষেত্রে ১৯৮৪ সাল থেকে এমন কিছু উন্নয়ন ঘটেছে যা এটিকে একটি গুরুত্বপূর্ণ সমস্যা হতে বাধা দেয়?

এটি এখনও একটি তাত্ত্বিক হুমকি, তবে খুব সম্ভবত এটি নয়।

এটি হ্রাস করার জন্য আপনি যা করতে পারেন তা হ'ল একাধিক সংকলক ব্যবহার করা। উদাহরণস্বরূপ, একটি এলএলভিএম সংকলক যা নিজেই জিসিসি দ্বারা সংকলিত হয় একটি পিছনের দরজা দিয়ে পাস করবে না। একইভাবে, এলএলভিএম দ্বারা সংকলিত একটি জিসিসি একটি পিছনের দরজা দিয়ে পাস করবে না। সুতরাং, আপনি যদি এই ধরণের আক্রমণ সম্পর্কে উদ্বিগ্ন হন তবে আপনি আপনার সংকলকটিকে অন্য একটি জাতের সংকলক দিয়ে সংকলন করতে পারেন। এর অর্থ এই যে দুষ্ট হ্যাকার (আপনার ওএস বিক্রেতার কাছে?) একে অপরকে সনাক্ত করতে উভয় সংকলককে কলঙ্কিত করতে হবে; আরও অনেক কঠিন সমস্যা।


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

ন্যায্য বিন্দু. সর্বোপরি, হ্যাক লগইন করার জন্য পিছনের অংশে এবং কম্পাইলারের জন্য একটি মোড বহন করে, তাই এটি অন্য সংকলকটির জন্যও একটি মোড বহন করতে পারে। তবে এটি ক্রমশ অসম্ভব হয়ে ওঠে।
শন ম্যাকমিলান

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

12

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

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


হয় বা বিশ্বস্ত সংকলকটি ব্যবহারকারী হিসাবে ভেবেছিল তেমন বিশ্বাসযোগ্য নয়। তবে কোনও ভাষার দুটি স্বতন্ত্র বাস্তবায়নের জন্য, তাদের একই ঘরের দরজা থাকার সম্ভাবনা নগণ্য।
দামিয়ান ইয়ারিক

বা আপনি যে
ডিফ সরঞ্জামগুলি

@ কেনিকোক যাইহোক, "এই দুটি ফাইলই অভিন্ন" তুলনা সরঞ্জামটি লেখা নয়, সমস্ত বিষয় বিবেচনা করা হয়, যেটি কঠিন (যেমন একটি সিস্কেল রেফারেন্স দেওয়া হয়েছে, এটি বাইনারি মেশিন কোডের 2-16 ঘন্টার মধ্যে করা উচিত)।
ভ্যাটাইন

3

একটি নির্দিষ্ট আক্রমণ হিসাবে এটি যতটা হুমকির আগে ছিল তেমন, এটি মোটেই কোনও হুমকি নয়।

এটি কীভাবে ইন-টাইম সংকলনের সাথে সম্পর্কিত?

আপনি যে দ্বারা অর্থ কি নিশ্চিত নয়। এটির জন্য একটি জিটর কি প্রতিরোধক? না এটি আরও ঝুঁকিপূর্ণ? আসলে তা না. একজন বিকাশকারী হিসাবে আপনার অ্যাপ্লিকেশনটি আরও ঝুঁকিপূর্ণ কেবল কারণ আপনি এটি যাচাই করতে পারেন না। নোট করুন যে আপনার এখনও অবিকল্পিত অ্যাপ্লিকেশনটি মূলত এটির এবং সমস্ত ব্যবহারিক প্রকরণের জন্য অনাক্রম্য, আপনার কেবলমাত্র একটি সংকলক যা আপনার কোডের চেয়েও নতুন about

প্রোগ্রামটি যখন * নিক্স সিস্টেমে লগইনগুলি পরিচালনা করে তবে কি সেগুলি সঞ্চালিত হওয়ার পরে সংকলিত হয়?

এটি আসলে প্রাসঙ্গিক নয়।

এটি কি এখনও একটি বৈধ হুমকি, বা সংকলনের সুরক্ষার ক্ষেত্রে ১৯৮৪ সাল থেকে এমন কিছু উন্নয়ন ঘটেছে যা এটিকে একটি গুরুত্বপূর্ণ সমস্যা হতে বাধা দেয়?

সংকলনের সত্যিকারের সুরক্ষা নেই এবং তা হতে পারে না। এটাই ছিল তাঁর আলাপের মূল বিষয়, যে কোনও সময় আপনাকে কারও উপর নির্ভর করতে হবে।

এটি কি সমস্ত ভাষাকে প্রভাবিত করে?

হ্যাঁ. মৌলিকভাবে, এক সময় বা অন্য কোনও সময়ে, আপনার নির্দেশাবলী কম্পিউটারকে ছাড় দেওয়া কিছুতে পরিণত করতে হবে এবং সেই অনুবাদটি ভুলভাবে করা যেতে পারে।


-2

ডেভিড হুইলারের একটি ভাল নিবন্ধ রয়েছে: http://www.dwheeler.com/trusting-trust/

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


3
-1, আপনার উত্তরের বেশিরভাগ অংশ প্রশ্নের উত্তর দিতে ব্যর্থ।

-3

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


2
আপনার উত্তর প্রশ্নের পৃষ্ঠায় স্ক্র্যাচ করে, তবে কী জিজ্ঞাসা করা হচ্ছে তা সত্যিই সমাধান করে না।

-4

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

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

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

অন্যান্য সংকলকগুলির বয়স এবং বংশের উপর নির্ভর করে, এটি নিশ্চিত করা সম্ভব যে এ জাতীয় ভাইরাসগুলি তাদের মধ্যে বোধগম্যভাবে উপস্থিত থাকতে পারে না। উদাহরণস্বরূপ, যদি কেউ ২০০৮ সালে স্ক্র্যাচ থেকে এমপিডাব্লির একটি সংস্করণ যা স্ক্র্যাচ থেকে লেখা হয়েছিল এমন একটি সংকলককে খাওয়ানোর জন্য একটি অ্যান্টিক ম্যাকিনটোস ব্যবহার করে, তবে 1980 এর সংকলক 2007 সালের সংকলকটিতে ভাইরাস inোকাতে কোথায় তা জানেন না। আজ কোনও সংকলকের পক্ষে এটি নির্ধারণের জন্য পর্যাপ্ত কোড বিশ্লেষণ করা সম্ভব হতে পারে, তবে এই জাতীয় বিশ্লেষণের জন্য প্রয়োজনীয় গণনার মাত্রা কেবল কোডটি সংকলনের জন্য প্রয়োজনীয় গণনার মাত্রার চেয়ে অনেক বেশি পরিমাণে অতিক্রম করতে পারে এবং খুব ভালভাবে নজর দেওয়া যায় না could এমন একটি মার্কেটপ্লেসে যেখানে সংকলনের গতি ছিল একটি প্রধান বিক্রয় কেন্দ্র।

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

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


2
-1। আপনার উত্তর কীভাবে প্রশ্নের মূল দিকগুলি সম্বোধন করে তা আমি দেখতে পাই না।

@ গ্লেনএইচ 7: অনেকগুলি পুরনো সংকলন সরঞ্জামগুলি বিট-অভিন্ন ইনপুট দেওয়ার সময় ধারাবাহিকভাবে বিট-অভিন্ন আউটপুট তৈরি করতে পারে [ টাইমের মতো বাইরের জিনিস , যা "অফিসিয়াল" সংকলনের সময় জানার জন্য টুইট করা যেতে পারে]। এই জাতীয় সরঞ্জামগুলি ব্যবহার করে, কেউ সংকলক ভাইরাসের বিরুদ্ধে সুরক্ষা দিতে পারে। কিছু জনপ্রিয় বিকাশ কাঠামো "সংবৈজ্ঞানিকভাবে" সংকলনের কোডের কোনও উপায় সরবরাহ করে না তার অর্থ যে পুরানো সরঞ্জামগুলিতে ভাইরাসগুলির বিরুদ্ধে সুরক্ষিত থাকতে পারে এমন কৌশলগুলি নতুনগুলির সাথে কার্যকরভাবে ব্যবহার করা যাবে না।
সুপারক্যাট

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