Code property graph
কম্পিউটার বিজ্ঞানে, একটি কোড প্রপার্টি গ্রাফ (সিপিজি) হল একটি কম্পিউটার প্রোগ্রাম উপস্থাপনা যা একটি প্রপার্টি গ্রাফে বাক্য গঠন, নিয়ন্ত্রণ প্রবাহ এবং ডেটা নির্ভরতা ধারণ করে। ধারণাটি মূলত সি এবং সি + + সিস্টেম কোডে নিরাপত্তা দুর্বলতা সনাক্ত করার জন্য চালু করা হয়েছিল, কিন্তু তারপর থেকে ওয়েব অ্যাপ্লিকেশন, ক্লাউড স্থাপন এবং স্মার্ট চুক্তি বিশ্লেষণের জন্য নিযুক্ত করা হয়েছে। দুর্বলতা আবিষ্কারের বাইরে, কোড সম্পত্তি গ্রাফগুলি কোড ক্লোন সনাক্তকরণ, আক্রমণ-পৃষ্ঠ সনাক্তকরণ, শোষণ প্রজন্ম, কোড টেস্টেবিলিটি পরিমাপ এবং সুরক্ষা প্যাচগুলির ব্যাকপোর্টে প্রয়োগ খুঁজে পায়। সংজ্ঞা একটি প্রোগ্রামের কোড প্রপার্টি গ্রাফ হল প্রোগ্রামের বিমূর্ত সিনট্যাক্স ট্রি (এ. এস. টি), কন্ট্রোল-ফ্লো গ্রাফ (সি. এফ. জি) এবং প্রোগ্রাম ডিপেন্ডেন্স গ্রাফ (পি. ডি. জি) বিবৃতি এবং প্রেডিকেট নোডগুলিতে একত্রিত করে প্রাপ্ত একটি গ্রাফ উপস্থাপনা। ফলস্বরূপ গ্রাফটি একটি সম্পত্তি গ্রাফ, যা নিও4জে, জানুসগ্রাফ এবং ওরিয়েন্টডিবি-র মতো গ্রাফ ডেটাবেসের অন্তর্নিহিত গ্রাফ মডেল যেখানে ডেটা কী-মান জোড়া হিসাবে নোড এবং প্রান্তে সংরক্ষণ করা হয়। প্রকৃতপক্ষে, কোড প্রপার্টি গ্রাফগুলি গ্রাফ ডাটাবেসে সংরক্ষণ করা যেতে পারে এবং গ্রাফ কোয়েরি ভাষা ব্যবহার করে প্রশ্ন করা যেতে পারে। উদাহরণস্বরূপ একটি সি প্রোগ্রামের কার্যকারিতা বিবেচনা করুনঃ অকার্যকর ফো () {int x = উৎস (); যদি (x <MAX) {int y = 2 * x; sink (y);} ফাংশনের কোড প্রপার্টি গ্রাফটি তার বিমূর্ত সিনট্যাক্স ট্রি, কন্ট্রোল-ফ্লো গ্রাফ এবং বিবৃতিগুলিতে প্রোগ্রাম নির্ভরতা গ্রাফকে একত্রিত করে প্রাপ্ত হয় এবং নিম্নলিখিত চিত্রটিতে দেখা যায়ঃ বাস্তবায়ন জোয়ারন সিপিজি। ওপেন-সোর্স কোড বিশ্লেষণ সরঞ্জাম জোয়ার্নের অংশ হিসাবে 2013 সালে গটিঙেন বিশ্ববিদ্যালয়ে সি/সি + +-এর জন্য মূল কোড সম্পত্তি গ্রাফ প্রয়োগ করা হয়েছিল। এই মূল সংস্করণটি বন্ধ করে দেওয়া হয়েছে এবং ওপেন-সোর্স জোয়ারন প্রকল্প দ্বারা প্রতিস্থাপিত হয়েছে, যা একাধিক প্রোগ্রামিং ভাষার জন্য প্রযোজ্য একটি আনুষ্ঠানিক কোড সম্পত্তি গ্রাফ নির্দিষ্টকরণ সরবরাহ করে। প্রকল্পটি সি/সি + +, জাভা, জাভা বাইটকোড, কোটলিন, পাইথন, জাভাস্ক্রিপ্ট, টাইপস্ক্রিপ্ট, এল. এল. ভি. এম বিটকোড এবং x86 বাইনারিগুলির জন্য কোড সম্পত্তি গ্রাফ জেনারেটর সরবরাহ করে। প্লুম সিপিজি। 2020 সালে স্টেলেনবশ বিশ্ববিদ্যালয়ে বিকশিত এবং অ্যামাজন সায়েন্স দ্বারা স্পন্সর করা, ওপেন-সোর্স প্লুম প্রকল্পটি জোয়ারন প্রকল্প দ্বারা প্রদত্ত কোড সম্পত্তি গ্রাফ নির্দিষ্টকরণের সাথে সামঞ্জস্যপূর্ণ জাভা বাইটকোডের জন্য একটি কোড সম্পত্তি গ্রাফ সরবরাহ করে। 2021 সালে দুটি প্রকল্প একত্রিত হয়। ফ্রাউনহোফার এআইএসইসি সিপিজি। এটি সি/সি + +, জাভা, গোলাং এবং পাইথনের জন্য ওপেন-সোর্স কোড প্রপার্টি গ্রাফ জেনারেটর সরবরাহ করে, যদিও কোনও আনুষ্ঠানিক স্কিমা নির্দিষ্টকরণ ছাড়াই। এটি ক্লাউড প্রপার্টি গ্রাফও প্রদান করে, যা কোড প্রপার্টি গ্রাফ ধারণার একটি সম্প্রসারণ যা ক্লাউড স্থাপনার বিবরণ মডেল করে। এলএলভিএম-এর জন্য গ্যালোইস সিপিজি। গ্যালোইস ইনকর্পোরেটেড এল. এল. ভি. এম কম্পাইলারের উপর ভিত্তি করে একটি কোড সম্পত্তি গ্রাফ সরবরাহ করে। গ্রাফটি সংকলনের বিভিন্ন পর্যায়ে কোড এবং এই উপস্থাপনাগুলির মধ্যে একটি ম্যাপিং উপস্থাপন করে। এটি একটি কাস্টম স্কিমা অনুসরণ করে যা এর ডকুমেন্টেশনে সংজ্ঞায়িত করা হয়েছে। কোড সম্পত্তি গ্রাফের উপর মেশিন লার্নিং দুর্বলতা আবিষ্কারের জন্য বেশ কয়েকটি মেশিন-লার্নিং-ভিত্তিক পদ্ধতির ভিত্তি প্রদান করে। বিশেষত, গ্রাফ নিউরাল নেটওয়ার্কগুলি (জি. এন. এন) দুর্বলতা সনাক্তকারী পেতে নিযুক্ত করা হয়েছে। আরও দেখুন অ্যাবস্ট্রাক্ট সিনট্যাক্স ট্রি (এ. এস. টি) কন্ট্রোল-ফ্লো গ্রাফ (সি. এফ. জি) প্রোগ্রাম ডিপেন্ডেন্স গ্রাফ (পি. ডি. জি) গ্রাফ ডাটাবেস রেফারেন্স কম্পিউটার সিকিউরিটি সফ্টওয়্যার অ্যাপ্লিকেশন-নির্দিষ্ট গ্রাফ।