এলোমেলো অপরিচিত ব্যক্তির কাছ থেকে উত্স কোডের একটি অংশ সংকলন করা কতটা নিরাপদ? [বন্ধ]


41

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

তাদের কোড সংকলন সম্পর্কে কি? আমি যদি সংকলক সতর্কতা চাই তবে তা চাই যদি তাদের কোডটিতে আমার কিছু সংক্ষিপ্ত অক্ষর রয়েছে যা আমার সংকলকটি ব্যবহার করে এবং আমার সংকলকটি আমার মেশিনকে আপস করে?

আমি যখন "সংকলক দুর্বলতাগুলির" জন্য গুগল পাই তখন হিটগুলি সংকলক অপটিমাইজেশন এবং কোড নিঃসরণ সম্পর্কে এবং নির্গত কোডটি মূল উত্স কোডের মতো নিরাপদ কিনা তা।

সংকলকগণ সাধারণত কিছু চৌকস কোডটি সংকলন করার সময় তারা ব্যবহারকারী মেশিনের সাথে আপস করবেন না তা নিশ্চিত করার জন্য কি সাধারণত যাচাই করা হয়? অপরিচিত ব্যক্তির কাছ থেকে কোনও কোডের সংকলন করা কতটা নিরাপদ?


40
কেবল একটি ভার্চুয়াল মেশিন ব্যবহার করুন ...
ফ্লোরিয়ান মার্জাইন

14
আপনি যদি প্রকৃতপক্ষে কোডটি পর্যালোচনা করে দেখেন, তবে খেয়াল না করে "ইউজার মেশিনকে গজিয়ে তোলা" এর মতো শক্ত কিছু পাওয়া উচিত, তাই না?
রিমকো গ্রিলিচ

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

9
জাভা মন্তব্যগুলিতে রান্নেবল কোডটি লুকানোর অনুমতি দেয়। সমস্ত জাভা আইডিই সিনট্যাক্স হাইলাইট করার সময় ইউনিকোড রূপান্তরগুলি সম্পাদন করে না, যা দূর থেকে একই জিনিস নয়।
পিট কিরখাম

68
এমনকি কোডটি পড়বেন না। তারা আপনার মস্তিষ্কের একটি দুর্বলতা কাজে লাগাতে পারে।
হেনরিক

উত্তর:


34

এটা নির্ভর করে.

এই মেকফিলের টুকরাটি আপনার হোম ডিরেক্টরি মুছতে পারে:

all:
    rm -rf ~

সুতরাং, আপনার যদি কোনও সরঞ্জাম (যেমন cmake বা মেকফাইল সিস্টেম) ব্যবহার করা প্রয়োজন, তবে এটি নিরাপদ নয়। কোডারটি কতটা দূষিত তা কেবল এটি নির্ভর করে।

অন্যদিকে, সংকলকরা লোকেরা প্রোগ্রাম করে, তাই তারা বাগ পেয়েছে। সুতরাং, এটি সম্ভবত সংকলনের সময় কেউ দূষিত কোড কার্যকর করার কোনও উপায় খুঁজে পেয়েছে।

মন্তব্যে যেমন পরামর্শ দেওয়া হয়েছে, আপনি যদি নিশ্চিত হন যে আপনার মেশিনে কোনও মজার কাজ হচ্ছে না, তবে ভার্চুয়াল মেশিনটি ব্যবহার করুন।


32
"ভার্চুয়াল মেশিনটি ব্যবহার করুন" - এবং যদি আপনি সত্যিই ভৌতিক হয়ে থাকেন তবে মনে রাখবেন যে একাধিক ত্রুটিগুলি কাজে লাগিয়ে ম্যালওয়্যার সম্ভাব্যভাবে আপনার ভিএম থেকে বেরিয়ে আসতে পারে এবং আপনাকে শ্বাসরোধ করতে পারে ( venom.crowdstrike.com )
স্টিভ

23
@ স্টিভ জেসোপ হ্যাঁ, ভালভাবে নেস্টেড ভিএম ব্যবহার করুন;) কোডার বুঝতে পারে না যে কোনও ভিএম ভেঙে ফেলেছে, সে এখনও অন্যটির ভিতরে রয়েছে।
রুস্লান

3
অথবা কোডটি পরীক্ষা করতে কেবল একটি পুরানো ল্যাপটপ ব্যবহার করুন। যতক্ষণ না এটির কোনও নেটওয়ার্ক ক্ষমতা নেই ততক্ষণ আপনি সর্বদা নিশ্চিত থাকবেন যে ম্যালওয়্যারটি বাইরে বেরিয়ে আসবে না। যদি না সফ্টওয়্যার বাগগুলি ম্যাজিকালি বাস্তবের বাগগুলিতে পরিণত হয়।
মাস্তে

5
@ রুসলান: দুর্ভাগ্যক্রমে বেশিরভাগ হ্যাকাররা ইনসেপশন দেখেছেন।
স্টিভ জেসোপ

2
@ রাস্লান এটি আক্ষরিক অর্থে আমার এই পৃষ্ঠার আগে যে ট্যাবটি খোলা হয়েছে: ম্যাট্রিক্স.উইকিয়া / উইকি / ম্যাট্রিক্স_ইন_ম্যাট্রিক্স_তত্ত্ব যা আমি সাইফাই এসই সাইটে কোনও সম্পর্কযুক্ত প্রশ্নের কারণে পড়ছিলাম।
আরমানি

23

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

  • আবেদনকারী আপনার সম্পর্কে একটি প্রশংসনীয় ধারণা তৈরি করে তিনি সত্যই আপনার সংস্থায় চাকরি চান (এবং মামলা নয়)

  • লোকটি জানেন না আপনার উপর কতটা পর্যালোচনা করা হচ্ছে

  • আপনি কোন সঠিক সংকলক সংস্করণটি ব্যবহার করছেন তা সে / সে জানে না

  • সে নিরাপদে থাকার জন্য আপনি ভার্চুয়াল পরিবেশ বা কোনও অনলাইন সংকলক ব্যবহার করেন কিনা তা তিনি জানেন না

  • কার্যকরভাবে পর্যালোচনা করার জন্য খুব বড় যে প্রোগ্রামগুলি আপনি গ্রহণ করেন না

  • আপনার কাছে সন্দেহজনক মনে হয় এমন কোনও কিছুই আপনি সংকলন করেন না

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

সুতরাং তাত্ত্বিকভাবে সংকলন "সম্পূর্ণরূপে নিরাপদ" না হলেও বাস্তবে আইএমএইচও ঝুঁকি অত্যন্ত কম যে আপনার "সংকলক বেঁধে যায়"।


15
অবরুদ্ধ ভাল। আন্ডারহ্যান্ডড আরও ভাল। underhanded-c.org

11
"আবেদনকারী সত্যই আপনার সংস্থায় একটি চাকরি চায় (এবং মামলা নয়)" এটি স্পষ্ট নয় যে কোনও অপরিচিত ব্যক্তি যে আবেদনটি পাঠায় সত্যই সে চাকরি চায়।
খ্রিস্টান

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

13

আমাদের বেশ কয়েকটি কেস আলাদা করতে হবে:

  1. সংকলকটিতে একটি বাগ। প্রতিটি জটিল প্রোগ্রামের মতো, একটি সংকলকটিতে বাগ থাকতে পারে এবং এই বাগগুলির মধ্যে একটি শোষণীয় হতে পারে।
  2. একটি ট্রোজান ঘোড়া। আক্রমণকারী সংকলন প্রক্রিয়ার অংশ হিসাবে আপনাকে কিছু স্বেচ্ছাসেবক কোড কার্যকর করতে পারে। এ Makefile, ক build.xml, configureশেল স্ক্রিপ্ট ইত্যাদি প্রযুক্তিগতভাবে এটি আক্রমণকারীর কোড সংকলনের কারণে নয় বরং সংকলন পরিবেশ স্থাপনের কারণে ঘটে।
  3. সংকলনের সময় স্বেচ্ছাসেবক কোড চালানোর অনুমতি দেয় এমন ভাষা। স্কালার ম্যাক্রো ল্যাঙ্গুয়েজ স্কেল, কমন লিস্পের ম্যাক্রো ল্যাঙ্গুয়েজ কমন লিস্প, টেম্পলেট হাস্কেলের ম্যাক্রো ল্যাঙ্গুয়েজ হ্যাস্কেল। স্কালায় সংকলক প্লাগইনও রয়েছে যা আবার নির্বিচারে স্কাল কোড যা সংকলন সময়ে চলে। এফ # এর প্রকার সরবরাহকারী রয়েছে।
  4. যে ভাষাগুলি সংকলনের সময় টুরিং-গণনার অনুমতি দেয়। স্কালার এবং হাস্কেলের টাইপ সিস্টেমগুলি টিউরিং-সম্পূর্ণ, যেমন সি ++ এর টেম্পলেট। সংকলনের সময় আপনি নির্বিচারে টিউরিং-গণনা সম্পাদনের জন্য সংকলকটি পেতে পারেন, অসীম লুপগুলি সহ তবে সীমাবদ্ধ নয়। নোট করুন যে টুরিং-সম্পূর্ণর অর্থ কেবল আপনি প্রতিটি টিউরিং-গণনাযোগ্য ফাংশন গণনা করতে পারবেন, এর অর্থ এই নয় যে আপনি ফাইলসিস্টেম বা এর মতো কিছু অ্যাক্সেস করতে পারবেন। তবে, আপনি এমন একটি প্রোগ্রাম তৈরি করতে পারেন যা সংকলিত করতে অসীম সময় নিবে।
  5. খুব দীর্ঘ সময় সংকলন। উদাহরণস্বরূপ, ওভারলোড রেজোলিউশনের জন্য সি # এর নিয়মগুলি এত জটিল যে আপনি কোনও #-স্যাট সমস্যা সি-ওভারলোড রেজোলিউশন হিসাবে এনকোড করতে পারবেন। 3-স্যাট অবশ্যই বিখ্যাতভাবে এনপি-সম্পূর্ণ। অন্য কথায়, আমাদের বর্তমান জ্ঞান অনুসারে, সি # তে ওভারলোড রেজোলিউশনের জন্য একটি কার্যকর অ্যালগরিদম খুঁজে পাওয়া অসম্ভব। আপনি সংকলনটিকে অসীম দীর্ঘ নিতে পারেন না, তবে মহাবিশ্বের জীবদ্দশার চেয়ে সংকলনটি আরও বেশি সময় নিতে পারে না, যা কার্যত একই জিনিস।

# 4। এবং # 5। সর্বাধিক ফলাফল পরিষেবা অস্বীকার করবে। বাস্তবে C ++ এবং Scala কম্পাইলার, পুনরাবৃত্তির আপনি কি করতে পারেন পরিমাণ সীমিত, যাতে তা না হয় আসলে একটি অসীম লুপ লিখতে সম্ভব। স্কালায়, এটি কেবলমাত্র একটি বাস্তবায়ন বাধা, তবে সি ++ তে এটি স্পষ্টভাবে মঞ্জুরির দ্বারা অনুমোদিত, আমি বিশ্বাস করি।

# 2। প্রযুক্তিগতভাবে প্রশ্নের আওতার বাইরে কারণ প্রশ্নটি কোডিংটি পরিচালনা না করার বিষয়ে ছিল (ওটিওএইচ, গভীর দার্শনিক প্রশ্ন রয়েছে: যদি হ্যাস্কেল প্রোগ্রামটি পরীক্ষা করে নির্বিচারে টুরিং-গণনা সম্পাদন করতে পারে, তবে কি এটি সংকলন বা কোনও প্রোগ্রাম চালানো সম্ভব?)

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

এটি আমাদের সাথে 3 টি ছেড়ে যায় Some কিছু সংকলক সিস্টেমে সংকলন টাইম কোডের প্রকারের অ্যাক্সেসকে সীমাবদ্ধ করতে পারে তবে কিছু ব্যবহারের ক্ষেত্রে সম্পূর্ণ অ্যাক্সেস থাকা অনিবার্য। উদাহরণস্বরূপ, এফ # এর ধরণের সরবরাহকারীগুলির উদ্দেশ্য হ'ল "জাল" সিন্থেটিক প্রকারের ডেটা যার জন্য টাইপ সিস্টেমটি F # এর সাথে মেলে না, যাতে আপনি কথাবার্তা বলতে পারেন, বলুন, একটি ওয়েব সার্ভিসে একটি দৃ that়-টাইপযুক্ত একটি WSDL স্কিমা রয়েছে ফ্যাশন। যাইহোক, এটি করার জন্য, টাইপ সরবরাহকারীর ডাব্লুএসডিএল স্কিমা রিসোর্সগুলি ফাইল সিস্টেমে বা ওয়েবে অ্যাক্সেস থাকা দরকার, সুতরাং এতে ফাইল সিস্টেম এবং নেটওয়ার্ক অ্যাক্সেস থাকা দরকার।

সুতরাং, এটি নিরাপদ? প্রযুক্তিগতভাবে, না। এটা কি ঝুঁকিপূর্ণ? আসলে তা না.


1
সি ++ প্রকৃতপক্ষে টেমপ্লেটের তাত্ক্ষণিক গভীরতা কিছু বাস্তবায়ন-নির্ভর মানের মধ্যে সীমাবদ্ধ করে। এটি কয়েক ডজন ব্যবহৃত হত; আধুনিক বাস্তবায়ন সীমা কয়েকশতে উন্নীত করেছে। তবুও, প্রতিটি স্তরের প্রতি সংখ্যার টেম্পলেটগুলির সংখ্যাকে দ্বিগুণ করার পক্ষে এটি সম্পূর্ণ তুচ্ছ, সুতরাং 100 স্তরের 2 100 টেমপ্লেট ইনস্ট্যান্ট করার জন্য সংকলকটির প্রয়োজন হবে। এটি কেবল একটি ডস আক্রমণ পর্যন্ত till
এমসাল্টারস

3

কেবল কোডটি সংকলন করে কোনও ঝুঁকি থাকা উচিত নয় । ইন তত্ত্ব কম্পাইলার একটি চালাক হ্যাকারের গ্রহণ করতে পারে কিন্তু শব্দ অত্যন্ত অসম্ভাব্য মধ্যে একটি বাগ সংশোধন করা হতে পারে।

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


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

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

3

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

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

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

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

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

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


2

ঠিক আছে, আমি "তাদের কোড পর্যালোচনা" দিয়ে শুরু করব। আসলে কোড চালানোর দরকার আছে কেন?

এগুলি ছাড়াও, অনেকগুলি অনলাইন সংকলক রয়েছে যেখানে আপনি কেবল কোডটি লিখতে পারেন এবং সংকলন করতে পারেন এবং / অথবা চালাতে পারেন। আপনি এটি একটি প্রয়োজনীয়তা তৈরি করতে পারেন: এটি এটি এবং অনলাইন সংকলকটিতে সংকলন করে।

এখানে অনলাইন সংকলক সহ একটি পৃষ্ঠার উদাহরণ: অনলাইন সংকলক

কোনও কাজের সাক্ষাত্কারের জন্য পর্যালোচনার জন্য কোডটি এত বড় হওয়া উচিত নয় যে কী হচ্ছে তা আপনি বুঝতে না।


3
"আসলে কোড চালানোর দরকার কেন?" কোড। এটি অবশ্যই কোনও ভাল কিনা তা অনুসন্ধান করার জন্য একটি পর্যালোচনা কেবল আপনাকে বলে দেয় যে এর ব্যর্থতাগুলি সূক্ষ্ম :-)। "উপরের কোডে বাগগুলি সম্পর্কে সাবধান থাকুন; আমি কেবল এটি সঠিক প্রমাণ করেছি, এটি চেষ্টা করে দেখিনি।" - নথ
স্টিভ জেসোপ

2

সংকলকগণ সাধারণভাবে কোডের কিছু চৌকস টুকরা সংকলন করার সময় ব্যবহারকারী মেশিনকে pwn করবেন না তা নিশ্চিত করার জন্য কি সাধারণত যাচাই করা হয়?

সাধারণভাবে তারা খুব জটিল এবং প্রায়শই এমন ভাষাগুলি ব্যবহার করে লিখিত হয় যাতে এই সম্পত্তিটি প্রমাণ করার পক্ষে এটি ব্যবহারিক নয়।

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

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

অপরিচিত ব্যক্তির কাছ থেকে কোনও কোডের সংকলন করা কতটা নিরাপদ?

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

সাধারণ কোডের সংকলন-সময় সম্পাদনের জন্য সুবিধাসমূহ সহ যে কোনও ভাষা বা সংকলক অবশ্যই সন্দেহজনক। সি ++ টেমপ্লেটগুলি কার্যকরীভাবে সম্পূর্ণ তবে সিস্টেমে (উদ্দেশ্যযুক্ত) অ্যাক্সেস নেই, সুতরাং এগুলি তুলনামূলকভাবে কম ঝুঁকিপূর্ণ। BЈовић makeঅত্যন্ত উচ্চ-ঝুঁকিপূর্ণ হিসাবে উল্লেখ করেছে (যেহেতু এটি অপরিচিত ব্যক্তির কোডটি কার্যকর করছে, কোডটি makeসি ++ তে নয়, ভাষায় লেখা হতে পারে )। যদি সংকলকটি চলতে থাকে systemতবে আপনি একই নৌকোতে রয়েছেন। আমি কোনও এসেম্বলারের সাথে কাজ করতাম যা যদি আমি সঠিকভাবে মনে করি তবে নির্বিচারে সংকলন-সময় কোড কার্যকর করতে পারি। এটি লুক-আপ টেবিলগুলি গণনা করার উদ্দেশ্যে করা হয়েছিল, তবে আমি মনে করি না যে কোনও কিছুই আপনাকে সিস্টেম কল করতে বাধা দিয়েছে।

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

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


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

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

1

যদিও এটি সাধারণত উদ্বেগজনক তবে আমি মনে করি সেটআপের কারণে বিষয়টি অস্তিত্বহীন।

আবেদনকারী আপনাকে কিছু উত্স কোড প্রেরণ করেছে। কীভাবে বা কেন ঘটেছিল?

স্পষ্টতই কেবল তিনটি সম্ভাবনা রয়েছে:

  1. আপনি আবেদনকারীকে তার দক্ষতা নির্ধারণের জন্য কোনও নির্দিষ্ট (সু-সংজ্ঞায়িত) সমস্যা সমাধানের জন্য একটি নিয়োগ দিয়েছেন।
  2. আবেদনকারী শীতল কিছু লিখেছিলেন show
  3. আবেদনকারী একটি বোকা বা গুপ্তচর বা অন্যথায় দূষিত ব্যক্তি এবং ভাড়াটে আসার ক্ষেত্রে আসলে আগ্রহী নয়। তিনি যা আশা করেন তা হ'ল আপনি তাঁর কোডটি চালানোর পক্ষে যথেষ্ট বোকা।

প্রায় 2) এবং 3)

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

প্রায় 1)

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

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

কোডটি যদি সেই প্রথম ট্রায়াজটি পাস করে তবে আপনি আরও ভালভাবে এটি দেখতে আরও ২-৩ মিনিট সময় ব্যয় করতে চাইতে পারেন। এরপরে আপনি যা দেখেছেন তাতে যদি আপনি সন্তুষ্ট হন তবে আপনি এটি একটি স্ট্যাটিক বিশ্লেষকের মাধ্যমে চালাতে পারেন এবং এটি একটি উচ্চ সতর্কতা স্তরে ভার্চুয়াল মেশিনে সংকলন করতে পারেন।

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

এই মুহুর্তে মন্দ বিষয়গুলির সংঘটিত হওয়ার ঝুঁকি ( সংকলকটি ব্যবহার করে এবং ভিএম থেকে বেরিয়ে আসা) অবহেলাযোগ্য, আপনি কীভাবে কোডটির মাধ্যমে ইতিমধ্যে চালিত চেক পরিচালনা করেছেন তা দেখে seeing ঘটতে যাচ্ছে না.


0

যদি সম্ভাবনাটি আপনাকে উদ্বেগজনক করে তোলে তবে একটি পুরানো মেশিন নিন (আমাদের মধ্যে বেশিরভাগের কাছে কয়েকজন বসে নেই?), লিনাক্সের বর্তমান সংস্করণটি ইনস্টল করুন এবং সংকলক & সি করুন, এতে উত্স কোডটি অনুলিপি করুন, নেটওয়ার্ক কেবলটি আনপ্লাগ করুন (বা ওয়াইফাই বন্ধ করুন) ), এবং সংকলন করুন। যদি বাজে কিছু ঘটে তবে তা * অন্য কোনও কিছুর উপর প্রভাব ফেলবে না।

এবং মেকফিলের ম্যালওয়্যারের জন্য এটি প্রকৃতপক্ষে না করে কী করবে তা দেখার জন্য এটি -n পতাকা (আইআইআরসি, আরটিএমএফ) দিয়ে চালান।

* অবশ্যই আপনার প্রোগ্রামার ম্যালওয়্যারকে কোড করেছে যাতে এটি পুনরায় সংযোগের জন্য অপেক্ষা করে তবে সেই ক্ষেত্রে আপনি ক) মেশিনটি মুছুন; এবং খ) লোকটির জীবনবৃত্তিকে এনএসএতে ফরোয়ার্ড করুন, 'কারণ তিনি বাণিজ্যিক বিশ্বে নষ্ট হয়েছেন :-)


0

নীচের লাইনটি হ'ল ঝুঁকি রয়েছে। অন্যান্য উত্তর নোট হিসাবে ঝুঁকি মোটামুটি ছোট, তবে একটি ঝুঁকি রয়েছে। এর অর্থ আপনার দুটি প্রশ্ন জিজ্ঞাসা করতে হবে:

  1. ঝুঁকি হ্রাস করতে আমি কী করতে পারি?
  2. ঝুঁকি কি যথেষ্ট যে আমার যত্ন নেওয়া উচিত?

দ্বিতীয়টি হ'ল আপনি এখানে এই প্রশ্নটিতে কী পোস্ট করেছেন তবে এটি এই বিশেষ ক্ষেত্রে ভুল ফোকাস। ঝুঁকি হ্রাস করার উত্তরটি পরিষ্কার এবং সহজেই উপলব্ধ: আপনার মেশিনে কোডটি সংকলন করবেন না । আপনার নিজের মেশিনটি ব্যবহার না করে এটি সংকলনের দুটি সুস্পষ্ট উপায়:

  1. একটি ভার্চুয়াল মেশিন ব্যবহার করুন (হিসাবে মন্তব্যগুলিতে @ ফ্লোরিয়ানমার্গাইন তত্ক্ষণাত নির্দেশিত)। আপনি কেবল এটি সংকলনের আগে স্ন্যাপশট এবং তারপরে আপনার কাজ শেষ হয়ে গেলে স্ন্যাপশটটি পুনরুদ্ধার করুন।
  2. একটি হোস্ট করা পরিষেবা ব্যবহার করুন (যেমন একটি অনলাইন সংকলক)।

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


0

অবিশ্বাস্য অবস্থান (ই, জি, ডাউনলোড বা নেটওয়ার্ক ভাগ) থেকে কোনও প্রকল্প খুললে ভিজুয়াল স্টুডিও আসলে আপনাকে সতর্ক করে।

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

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

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

অনুরূপ ভেক্টর সম্ভবত অন্যান্য ভাষা / ওএস এর সাথে উপস্থিত রয়েছে।


0

উত্স কোড পড়া: সম্পূর্ণ নিরাপদ। সংকলন উত্স কোড: সম্পূর্ণ নিরাপদ। সংকলিত বাইনারিগুলি কার্যকর করা: ভাল ... এটি নির্ভর করে।

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


3
সংকলন সম্পূর্ণ নিরাপদ কেন তার কোনও ব্যাখ্যা? একজন চতুরতার সাথে কারুকাজ করা বার্তা প্রেরণ করে একটি সার্ভার pwn করতে পারে - কেন তিনি চতুরতার সাথে কারুকাজ করা ইনপুট দিয়ে কোনও সংকলক pwn করতে পারবেন না?
শার্পটোথ

2
আমি মনে করি আপনি কোনও সার্ভারে বা কোনও সংকলকের দুর্বলতা কাজে লাগানোর জন্য নকশাকৃতভাবে চালিতভাবে ক্র্যাফটার কোডটি লক্ষ্য করেছেন। তবে এটিকে চূড়ান্ত দিকে নিয়ে যাওয়ার পরে কেন কোডটি দেখার ঝুঁকি কেন ?! সম্পাদকদের মধ্যে বেশ কয়েকটি শোষণ রয়েছে যা কেবল একটি ফাইল দেখে শোষণ করা যায় ।
gbjbaanb

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

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

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

-1

আমি মনে করি আপনি দুটি স্বাদের একটি সম্পর্কে চিন্তিত:

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

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

যদি আপনার সিস্টেমটি সংকলন-সময় শোষণের ফলে বন্ধ হয়ে যায় তবে ব্যাকআপগুলি থেকে পুনরুদ্ধার করুন (আপনার সেগুলি আছে, তাই না?)

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