প্রকল্প সম্পর্কে
ysoserial হলো একটি প্রুফ-অফ-কনসেপ্ট নিরাপত্তা টুল যা অনিরাপদ অবজেক্ট deserialization শোষণ করে এমন সিরিয়ালাইজড Java পেলোড তৈরি করে। এটি মূলত AppSecCali 2015-এর 'Marshalling Pickles: how deserializing objects will ruin your day' বক্তৃতার অংশ হিসেবে প্রকাশিত হয়েছিল, যাতে Apache Commons Collections (3.x এবং 4.x), Spring Beans/Core (4.x) এবং Groovy (2.3.x)-এর জন্য প্রাথমিক গ্যাজেট চেইন ছিল; পরে JRE 1.7u21 এবং অন্যান্য অনেক লাইব্রেরির জন্য চেইন যোগ করা হয়।
প্রধান ড্রাইভার প্রোগ্রামটি ব্যবহারকারীর দেওয়া কমান্ড নেয়, এটি একটি নির্দিষ্ট গ্যাজেট চেইনে মোড়ানো হয় — যা সাধারণ Java লাইব্রেরিতে পাওয়া ক্লাস থেকে তৈরি প্রপার্টি-ওরিয়েন্টেড প্রোগ্রামিং সিকোয়েন্স — এবং ফলস্বরূপ অবজেক্টগুলো stdout-এ সিরিয়ালাইজ করে। যখন কোনো অ্যাপ্লিকেশন, যার ক্লাসপাথে প্রয়োজনীয় গ্যাজেট থাকে, এই ডেটা অনিরাপদভাবে deserializes করে, তখন চেইনটি স্বয়ংক্রিয়ভাবে সক্রিয় হয় এবং কমান্ডটি অ্যাপ্লিকেশন হোস্টে কার্যকর হয়। প্রকল্পটি জোর দিয়ে বলে যে দুর্বলতাটি অ্যাপ্লিকেশনটির অনিরাপদ deserialization করার মধ্যে, ক্লাসপাথে গ্যাজেট লাইব্রেরির উপস্থিতিতে নয়।
টুলটিতে অসংখ্য গবেষকের অবদানে ৩০টিরও বেশি পেলোড টাইপ রয়েছে। এর মধ্যে সাতটি CommonsCollections ভেরিয়েন্ট রয়েছে যা commons-collections 3.x এবং commons-collections4 4.x-কে কভার করে, সাথে CommonsBeanutils, Spring (দুটি ভেরিয়েন্ট), Groovy, Hibernate (দুটি ভেরিয়েন্ট), C3P0, BeanShell, Jython, Clojure, Mozilla Rhino (দুটি ভেরিয়েন্ট), ROME, JSON-lib, MyFaces (দুটি ভেরিয়েন্ট), Click, FileUpload, Vaadin, Wicket, Javassist/Weld, JBoss interceptors, AspectJWeaver, Jdk7u21, URLDNS (যা কোনো নির্ভরতা তালিকাভুক্ত করে না), এবং JRMPClient/JRMPListener-এর জন্য চেইন রয়েছে। একটি বান্ডলড হেল্পার, ysoserial.exploit.RMIRegistryExploit, উদাহরণে RMI রেজিস্ট্রিতে পেলোড পৌঁছে দেওয়ার জন্য দেখানো হয়েছে।
ব্যবহার একটি একক কমান্ড, যেমন: java -jar ysoserial.jar CommonsCollections1 calc.exe। তৈরি পেলোড সরাসরি টার্গেটে পাইপ করা যায় বা ফাইলে সংরক্ষণ করা যায়, যেমন README-তে netcat দিয়ে দেখানো হয়েছে। প্রি-বিল্ট জার GitHub রিলিজ থেকে পাওয়া যায়, এবং Java 1.7+ এবং Maven 3.x+ দিয়ে 'mvn clean package -DskipTests' ব্যবহার করে সোর্স থেকে প্রকল্পটি তৈরি করা যায়।
রক্ষণাবেক্ষণকারীরা স্পষ্টভাবে বলেন যে সফটওয়্যারটি সম্পূর্ণরূপে একাডেমিক গবেষণা এবং কার্যকর প্রতিরক্ষামূলক কৌশল উন্নয়নের জন্য তৈরি করা হয়েছে, এবং স্পষ্টভাবে অনুমোদিত ছাড়া সিস্টেমে আক্রমণ করতে এটি ব্যবহার করার উদ্দেশ্যে নয়; ব্যবহারকারীদের দায়িত্বের সাথে এটি ব্যবহার করতে বলা হয়েছে। README-তে উল্লেখিত সম্পর্কিত প্রকল্পগুলির মধ্যে marshalsec (অন্যান্য Java deserialization ফরম্যাট এবং লাইব্রেরি কভার করে এমন একটি সহযোগী প্রকল্প), ysoserial.net (.NET সমতুল্য), এবং Java-Deserialization-Cheat-Sheet অন্তর্ভুক্ত, যা সম্পর্কিত দুর্বলতা, টুল এবং রাইট-আপ সংগ্রহ করে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.