আমি কীভাবে বেস 64 এনকোডড স্প্যাম ইমেল প্রত্যাখ্যান করতে পারি?


11

আমি সবেমাত্র একই রকম সামগ্রী সহ কয়েকটি মেল পেয়েছি যা বেস 64 এর সাথে এনকোড করা হয়েছিল। এখন আমি বডি চেক ব্যবহার করে এই জাতীয় ইমেলগুলি প্রত্যাখ্যান বা বাতিল করতে চাই।

আমার শরীরে থাকার আগে_এরকম কিছু পরীক্ষা করে দেখেছি:

/Quanzhoucooway/ DISCARD

তবে যেহেতু বার্তাটি এনকোড করা হয়েছে সেই কীওয়ার্ডটি সনাক্ত করা যাবে না।

এখানে একটি বেস 64 এনকোড করা বার্তা রয়েছে:

DQpIaSBGcmllbmRzLA0KDQpHb29kIGRheSENCg0KVGhpcyBpcyBWaWN0b3JpYSBmcm9tIFF1YW56
aG91Y29vd2F5IHNob2VzIHRyYWRpbmcgY28uLGx0ZCwgYSBwcm9mZXNzaW9uYWxtYW51ZmFjdHVy
ZXIgYW5kIGV4cG9ydGVyIG9mIGFsbCBraW5kcyBvZiBzaG9lcywgbWFpbmx5IGluIGNhc3VhbCBz
aG9lcyBhbmQgc3BvcnRzIHNob2VzICwgd2hpY2ggaGFzIGJlZW4gc3VwcGxpZWQgdG8gdGhlIGZh
bW91cyBmYXNoaW9uIGJyYW5kIHN0b3JlcyBmcm9tIDIwMTAuDQoNCk5vdGljaW5ndGhhdCB5b3Ug
YXJlIGxvb2tpbmcgZm9yIGhpZ2ggcXVhbGl0eSBmYXNoaW9uIHNob2VzLCBzbyBJIGhvcGUgd2Ug
Y2FuIHdvcmsgdG9nZXRoZXIgaW4gdGhlIGZ1dHVyZS4gSWYgeW91IGFyZSBpbnRlcmVzdGVkLCBJ
IHdpbGwgc2VuZCB5b3Ugb3VyIGl0ZW1zIGFjY29yZGluZ2x5Lg0KDQpGWUksIHdlIGNhbiBtYWtl
IGN1c3RvbWl6ZWQgc2FtcGxlcyBmb3IgeW91IGFjY29yZGluZ2x5Lg0KDQpMb29raW5nIGZvciB5
b3VyIHNvb25lc3QgcmVzcG9uc2UuDQoNCkJSIQ0KDQpWaWN0b3JpYSANCg==

তাহলে এই জাতীয় ইমেলগুলি ব্লক করার সর্বোত্তম অনুশীলন কোনটি?


3
সঠিক স্প্যাম ফিল্টারিং যা বার্তার প্রকৃত ডিকোডড সামগ্রীগুলিতে কাজ করে?
ceejayoz

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

"এমটিএ বার্তা সংস্থাগুলি বেসড করবেন না" এর ত্রুটি বার্তায় আমি তাদের এমটিএ-প্রত্যাখ্যান করব।
জোশডসন

উত্তর:


19

পোস্টফিক্স দিয়ে এটি করবেন না body_checkতবে পরিবর্তে এর জন্য একটি স্প্যামাসাসিন নিয়ম লিখুন । স্প্যামাসেইন এর বিধি প্রয়োগ করার আগে বার্তাটির মূল অংশটি ডিকোড করে। কিছুটা এইরকম:

body     LOCAL_QUANZHOUCOOWAY  /Quanzhoucooway/
score    LOCAL_QUANZHOUCOOWAY  7.0
describe LOCAL_QUANZHOUCOOWAY  Block word Quanzhoucooway

এই নিয়মগুলি /etc/mail/spamassassin/local.cf(বা ~/.spamassassin/user_prefs) এর অন্তর্গত ।


1
এই কীওয়ার্ডটি সেখানে content বিষয়বস্তুর মতো বেস 64 এর সাথে এনকোড করা থাকলেও এটি কি কাজ করবে?
ব্যবহারকারী 134969

2
হ্যাঁ. এটি পরিষ্কার করতে কেউ ইতিমধ্যে আমার উত্তর সম্পাদনা করেছে। অজ্ঞাতনামা ব্যক্তিকে ধন্যবাদ! :)
এসা জোকিনেন

9

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

কৌশলটি অনুধাবন করা হয় যে বেস 6464 এনকোডিংটি কাঁচা আনইনকোডড ডেটার 3-বাইট ব্লকের বেস 64 অক্ষরের 4-অক্ষর ব্লকগুলিতে নির্ধারিত ম্যাপিং। সুতরাং, যে কোনও সময় আনইনকোডড ডেটাতে 3-বাইট ব্লকের একটি নির্দিষ্ট ক্রম উপস্থিত হবে, 4-অক্ষর ব্লকের একই ক্রমটি এনকোডড সংস্করণে উপস্থিত হবে।

উদাহরণস্বরূপ, আপনি যদি Quanzhoucoowayএকটি বেস 64 এনকোডারটিতে স্ট্রিংটি প্রবেশ করেন তবে আপনি আউটপুট পাবেন UXVhbnpob3Vjb293YXk=। যেহেতু ইনপুটটির দৈর্ঘ্য 3 বাইটের একাধিক নয়, আউটপুটটির শেষে কিছু প্যাডিং রয়েছে তবে আমরা যদি চূড়ান্ত =লক্ষণগুলি এবং শেষ আসল বেস 64 অক্ষরটি ফেলে রাখি k(যেহেতু এটি কিছু প্যাডিং বিটগুলিও এনকোড করে), আমরা স্ট্রিংটি পাই UXVhbnpob3Vjb293YXযে Base64- এনকোডেড তথ্য প্রদর্শিত করতে যখনই বাইট Triplets নিশ্চিত করা হয় Qua, nzh, ouc, oowএবং আংশিক ত্রয়ী ay, যাতে ইনপুট প্রদর্শিত হয়।

তবে, অবশ্যই, স্ট্রিংটি Quanzhoucoowayট্রিপলেট সীমানায় ঠিক না শুরু হতে পারে। উদাহরণস্বরূপ, যদি আমরা XQuanzhoucoowayপরিবর্তে স্ট্রিংটি এনকোড করি তবে আমরা আউটপুটটি পাই WFF1YW56aG91Y29vd2F5যা সম্পূর্ণ ভিন্ন looks এবার, ইনপুট দৈর্ঘ্যটি তিনটি দ্বারা বিভাজ্য, সুতরাং শেষে কোন প্যাডিং অক্ষর বাতিল করতে হবে না, তবে আমাদের প্রথম দুটি অক্ষর ( WF) দুটি ফেলে দিতে হবে যা প্রতিটি প্রিপেন্ডেড Xবাইট থেকে কিছু বিট এনকোড করে আমাদের সাথে রেখে দেয় F1YW56aG91Y29vd2F5

অবশেষে, বেস 64 এনকোডিং XXQuanzhoucoowayআউটপুট দেয় WFhRdWFuemhvdWNvb3dheQ==, যার উভয় প্রান্তে প্যাডিং রয়েছে। প্রথম তিনটি অক্ষর WFh(যা XXউপসর্গটি এনকোড করে ) এবং শেষ তিনটি অক্ষর Q==(যা শেষে শূন্য বিট প্যাডিংকে এনকোড করে ) সরানো হচ্ছে , আমরা স্ট্রিংটি রেখে চলেছি RdWFuemhvdWNvb3dhe। সুতরাং, আমরা নিম্নলিখিত তিনটি বেস 64-এনকোডযুক্ত স্ট্রিংগুলি পেয়েছি:

UXVhbnpob3Vjb293YX
F1YW56aG91Y29vd2F5
RdWFuemhvdWNvb3dhe

যার মধ্যে (কমপক্ষে) একটি অবশ্যই শব্দ অন্তর্ভুক্ত যে কোনও ইনপুট স্ট্রিংয়ের বেস 64 এনকোডড ফর্মটিতে উপস্থিত হবে Quanzhoucooway

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

/UXVh\s*bnpo\s*b3Vj\s*b293\s*YX/ DISCARD
/F1\s*YW56\s*aG91\s*Y29v\s*d2F5/ DISCARD
/R\s*dWFu\s*emhv\s*dWNv\s*b3dh\s*e/ DISCARD

এই নিদর্শনগুলি হাতে হাতে তৈরি করা এক ধরণের বিরক্তিকর, তবে আপনার পছন্দসই প্রোগ্রামিং ভাষায় এটি করার জন্য একটি সহজ স্ক্রিপ্ট লেখা শক্ত হবে না, যতক্ষণ না এটি বেস 64৪ এনকোডার সরবরাহ করে।

আপনি যদি সত্যিই চেয়েছিলেন, আপনি এমনকি বেসওয়ার্ডের ছোট ছোট এবং বড় হাতের অক্ষর উভয়কেই এনওয়ার্ড করে কেস-সংবেদনশীল মিলটি প্রয়োগ করতে পেরেছিলেন এবং তাদের কোনও সংমিশ্রনের সাথে মিলে এমন একটি রেজিএক্সএক্সে সংযুক্ত করে। উদাহরণস্বরূপ, এর করুন Base64- এনকোডিং quanzhoucoowayহয় cXVhbnpob3Vjb293YXk=যখন যে QUANZHOUCOOWAYহয় UVVBTlpIT1VDT09XQVk=, নিয়ম তাই হয়:

/[cU][XV]V[hB]\s*[bT][nl]p[oI]\s*[bT][31]V[jD]\s*[bT][20]9[3X]\s*[YQ][XV]/ DISCARD

বেস 64 এর এনকোডড শব্দের সাথে "কোয়ানজুউকোয়া" কোনও ক্ষেত্রেই মিলবে, তবে শর্ত থাকে যে এটি ট্রিপল সীমানায় শুরু হয়। স্থানান্তরিত সংস্করণগুলির জন্য অন্য দুটি সম্পর্কিত রেজেক্সপগুলি তৈরি করা অনুশীলন হিসাবে ছেড়ে যায়। ;)

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


1
হ্যাঁ, এটা সম্ভব ; এতটা ব্যবহারিক নয় এবং এমন প্রতিটি কিছু নয় যা আপনি প্রতিটি শব্দের জন্য আবার করতে চান। ব্যাখ্যার জন্য +1: যদিও এটি খুব কার্যকর নাও হতে পারে তবে এটি অবশ্যই শিক্ষিত!
এসা জোকিনেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.