টার্মিনালগুলিতে পালানোর ক্রম আক্রমণটি কীভাবে এড়ানো যায়?


29

পড়া জন্য CVE-2009-4487 বিবরণ (যা লগ ফাইলের মধ্যে পালাবার ক্রম বিপদ সম্পর্কে) আমি একটু অবাক হলাম।

সিভিই -2009-4487 উদ্ধৃত :

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

স্পষ্টতই, এটি প্রকৃতপক্ষে এনজিঙ্ক্সের কোনও সুরক্ষা গর্ত সম্পর্কে নয়, তবে টার্মিনাল এমুলেটরগুলির মধ্যে।

অবশ্যই, সম্ভবত catটার্মিনালে একটি লগ ফাইল যুক্ত করা দুর্ঘটনাক্রমে ঘটে তবে grepলগফাইলে প্রবেশ করা খুব সাধারণ। lessসম্ভবত পালানোর ক্রম স্যানিটাইজ করে, কিন্তু শেল কমান্ডগুলি কীভাবে পালানোর ক্রম পরিবর্তন করে না ...

আমি বার্নিশ প্রতিক্রিয়ার সাথে একমত হতে চাই :

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

এইভাবে আমার প্রশ্নগুলি:

আমি কীভাবে আমার এক্সটার্মকে সুরক্ষিত করতে পারি, যেমন পালাবার সিকোয়েন্সগুলির মাধ্যমে আদেশগুলি চালানো বা ফাইলগুলিকে ওভাররাইট করা আর সম্ভব নয়?

এক্স এর জন্য কোন টার্মিনাল এমুলেটর এই আক্রমণ থেকে সুরক্ষিত?


4
অনেকগুলি পালানোর ক্রম বৈধ কাজ করে (পুনরায় নামকরণ / আকার পরিবর্তন / ইত্যাদি একটি এক্সটার্ম)। তবে যে কেউ পালানোর ক্রমগুলি সনাক্ত করতে পারে যা আদেশগুলি কার্যকর করে বা ফাইলগুলিকে ওভাররাইট করে ?
ক্রুবো


সুরক্ষা এসই-তে পেস্ট-নিয়ন্ত্রণ-চরগুলি-ওয়েব-ব্রাউজারের আক্রমণ সম্পর্কিত একই সমস্যা: আমি কীভাবে এই জাতীয় ক্লিপবোর্ডের অপব্যবহার থেকে নিজেকে রক্ষা করতে পারি? tl; dr: আপনি যদি 2013/2015-এর পরে মুক্তিপ্রাপ্ত একটি এক্সটার্ম / ভিটিই ভিত্তিক টার্মিনাল ব্যবহার করছেন তবে আপনি এটির বিরুদ্ধে সুরক্ষিত হবেন কারণ তারা ডিফল্টরূপে নিয়ন্ত্রণের অক্ষরগুলি ফিল্টার করে চলেছে।
maxschlepzig

উত্তর:


27

ভিটি 100 টার্মিনালগুলি (যা সমস্ত আধুনিক টার্মিনাল এমুলেটরগুলি কিছুটা পরিমাণে অনুকরণ করে) বেশ কয়েকটি সমস্যাযুক্ত কমান্ডকে সমর্থন করে তবে আধুনিক এমুলেটর বা বিতরণ আরও সমস্যাযুক্ত এবং কম দরকারীকে অক্ষম করে। এখানে সম্ভাব্য ঝুঁকিপূর্ণ অব্যাহতি সিকোয়েন্সগুলির একটি অ-সম্পূর্ণ তালিকা রয়েছে (কেবলমাত্র কোনও উপায়ে প্রদর্শনটি অপঠনযোগ্য করে তোলে এমনগুলি অন্তর্ভুক্ত নয়):

  • Rxvt এবং Eterm এ নির্বিচারে লগ ফাইল কমান্ডগুলি এইচডি মুর দ্বারা প্রতিবেদন করা হয়েছে । এগুলি প্রকৃতপক্ষে বড় বাগগুলি, ভাগ্যক্রমে দীর্ঘ স্থির।
  • রিটার্ন টার্মিনাল স্ট্যাটাস নামে পরিচিত, উত্তরবাক কমান্ড, দ্বারা প্রেরণ করা হয়েছিল ENQ( Ctrl+E)। এটি টার্মিনালে পাঠ্য সন্নিবেশ করায় যেন ব্যবহারকারী এটি টাইপ করেছেন। যাইহোক, এই টেক্সট আক্রমণকারী নিয়ন্ত্রণে নয়: এটা টার্মিনাল নিজস্ব নাম, সাধারণত ভালো কিছু হয় xtermবা screen। আমার সিস্টেমে (ডেবিয়ান স্কুইজ), এক্সটার্ম খালি স্ট্রিংটি ডিফল্টরূপে দেয় (এটি answerbackStringসংস্থান দ্বারা নিয়ন্ত্রিত হয় )।
  • ডিভাইস প্রেরণ কমান্ড, ESC [ cএবং বন্ধুকে বৈশিষ্ট্য দিন। টার্মিনালটি সাড়া দেয় ESC [ … c(যেখানে কেবলমাত্র অঙ্কগুলি এবং এএসসিআইআই বিরামচিহ্নগুলি থাকতে পারে)। এটি বেশিরভাগ অপ্রচলিত তবে সম্ভবত পুরানো অ্যাপ্লিকেশন দ্বারা ব্যবহৃত কিছু টার্মিনাল ক্ষমতা জিজ্ঞাসা করার একটি উপায়। আবার, টার্মিনালের প্রতিক্রিয়া ব্যবহারকারীর ইনপুট থেকে পৃথক পৃথক, তবে এটি আক্রমণকারীর নিয়ন্ত্রণে নেই। নিয়ন্ত্রণ ক্রমটি কোনও ফাংশন কী হিসাবে দেখতে পারে তবে কেবলমাত্র যদি ব্যবহারকারীর একটি অস্বাভাবিক কনফিগারেশন থাকে (আমি যে সাধারণ সেটিংসের মুখোমুখি হয়েছি তার কোনওটিরই একটি বৈধ ফাংশন কী এস্কেপ ক্রম নেই যা টার্মিনাল প্রতিক্রিয়ার একটি উপসর্গ)।
  • বিভিন্ন ডিভাইস নিয়ন্ত্রণের ক্রিয়াকলাপগুলি (ডিসিএস পলায়ন করে শুরু করে ESC P)।
    • আমি জানি না DECUDKএকটি সাধারণ টার্মিনাল এমুলেটরটিতে (ব্যবহারকারী-সংজ্ঞায়িত কীগুলি সেট করুন) এর মাধ্যমে কী ক্ষতি করা যায় ।
    • DECRQSS(অনুরোধের স্থিতি স্ট্রিং) এটি আর একটি কমান্ড যা এতে টার্মিনালটি একটি পালানোর ক্রমের সাথে সাড়া দেয়, এবার এই দিয়ে শুরু \eP; এটি সমস্যাযুক্ত হতে পারে যেহেতু \ePএকটি বৈধ কী ( Alt+ Shift+ P)।
    • এক্সটার্মে আরও দুটি পরীক্ষামূলক বৈশিষ্ট্য রয়েছে: ESC P + p …এবং ESC P + q …, টার্মক্যাপ স্ট্রিংগুলি পেতে এবং সেট করতে। বর্ণনা থেকে, এটি কমপক্ষে ফাংশন কীগুলির প্রভাব সংশোধন করতে ব্যবহৃত হতে পারে।
  • বেশ কয়েকটি স্থিতির প্রতিবেদন আদেশ: ESC [ … n(ডিভাইসের স্থিতি প্রতিবেদন)। টার্মিনালটি একটি পালানোর ক্রমের সাথে সাড়া দেয়। এই পালানোর সিকোয়েন্সগুলির বেশিরভাগই ফাংশন কী এস্কেপ সিকোয়েন্সগুলির সাথে সামঞ্জস্য করে না। এক সমস্যাযুক্ত দেখায়: প্রতিবেদন ESC [ 6 nফর্ম হল যেখানে এবং অঙ্ক ক্রম, এবং এই কেমন দেখাতে পারে কিছু সংশোধনকারীদের সঙ্গে।ESC [ x ; y RxyF3
  • উইন্ডো ম্যানিপুলেশন কমান্ড ESC [ … t
    • এর মধ্যে কয়েকটি এক্সটার্ম উইন্ডোটিকে পুনরায় আকার দেওয়ার, আইকনযুক্তকরণ ইত্যাদি করার অনুমতি দেয় যা বিঘ্নযুক্ত।
    • এর মধ্যে কয়েকটি টার্মিনালটিকে একটি পালানোর ক্রমের সাথে সাড়া দেয়। এর মধ্যে বেশিরভাগ পালানোর সিকোয়েন্সগুলি কম ঝুঁকিপূর্ণ দেখায়, তবে দুটি বিপজ্জনক কমান্ড রয়েছে: টার্মিনাল উইন্ডোর আইকন লেবেল এবং শিরোনাম যথাক্রমে উত্তর ESC [ 2 0 tএবং ESC [ 2 1 tঅন্তর্ভুক্ত এবং আক্রমণকারী এগুলি চয়ন করতে পারে।
    • কমপক্ষে ডেবিয়ান স্কিওজের অধীনে, এক্সটার্ম ডিফল্টরূপে এই আদেশগুলি উপেক্ষা করে; তারা allowWindowOpsসংস্থান স্থাপনের মাধ্যমে বা নির্বাচিতভাবে সংস্থান দ্বারা সক্ষম করা যেতে পারে disallowedWindowOps। উবুন্টু 10.04 এর অধীনে জিনোম-টার্মিনাল ডিফল্টরূপে এমনকি শিরোনাম উত্তরব্যাকগুলিও প্রয়োগ করে। আমি অন্যান্য টার্মিনাল বা সংস্করণগুলি পরীক্ষা করে দেখিনি।
  • টার্মিনাল শিরোনাম বা আইকন নাম সেট করতে আদেশ। এক্সটার্ম এবং বেশিরভাগ এক্স এক্স টার্মিনালের অধীনে সেগুলি । স্ক্রিনের অধীনে, পালানোর ক্রমটি । আমি এই আদেশগুলি উদ্রেক করা নিয়ে উদ্বিগ্নতা খুঁজে পাই। যদিও তারা কিছুটা দুষ্কর্মের অনুমতি দেয় তবে যে কোনও ওয়েব পৃষ্ঠায় একই সমস্যা রয়েছে। সম্পূর্ণ তার শিরোনামের ভিত্তিতে এবং তার শ্রেণিতে নয় এমন একটি উইন্ডোতে অভিনয় করা এমন একটি ফাইল খোলার অনুরূপ যা আপনার নামটি অবিশ্বস্ত পক্ষ দ্বারা আপনাকে দেওয়া হয়েছিল, বা শেল স্ক্রিপ্টে পরিবর্তনশীল প্রসারকে উদ্ধৃত না করে, বা নাকের উপর একটি কৌতুকপূর্ণ কুকুরকে চাপড় দেওয়া নয় - কামড় দিলে অভিযোগ করবেন না।ESC ] digit ; title ESC \ESC k title ESC \

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

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

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

পাঠ্য ফাইলগুলিতে নিয়ন্ত্রণের অক্ষরগুলির মতো ছাপানো অক্ষর নেই বলে মনে করা হয়। লগ ফাইলগুলি সাধারণত পাঠ্য ফাইল বলে আশা করা যায়। লগ ফাইলগুলিতে নিয়ন্ত্রণের অক্ষর থাকা উচিত নয়।

যদি আপনি শঙ্কিত হন যে কোনও ফাইলের মধ্যে পালানোর ক্রম থাকতে পারে তবে এটি সম্পাদকে খুলুন, বা lessকোনও বিকল্প -rবা -Rবিকল্প ছাড়াই এটি দেখতে বা এটির মাধ্যমে দেখুন cat -v


2
"এইগুলির জন্য ioctl কলগুলিতে পুরোপুরি নির্ভর করা সম্ভব হবে" তবে অ্যাপ এবং টার্মিনালের মধ্যে যদি সত্যিই সিরিয়াল কেবল থাকে তবে কী হবে?
মিমভি-রু

5

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

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


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

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

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