ماخذ شائع ہو چکا ہے، لائسنس صاف ہے، اور کنکشن اب بھی شروع سے آخر تک تصدیق نہیں ہو سکتا۔ یہ خلا عام ہے، اور یہ کوئی اسکینڈل نہیں ہے۔ کوڈ شائع کرنا ایک جزو کو ان لوگوں کے لیے قابلِ جانچ بناتا ہے جنہیں مدعو نہیں کیا گیا تھا، اور یہ ایک حقیقی اور غیر معمولی خصوصیت ہے۔ اس سے یہ لازم نہیں آتا کہ آپ نے جو بائنری نصب کی وہ اسی کوڈ سے آئی ہے، یا فراہم کنندہ دوسری طرف جو کچھ چلاتا ہے اس میں سے کچھ بھی جانچا گیا ہے۔

جزو کو مصنوع سے الگ کریں

چار چیزیں اوپن سورس کا لیبل لے سکتی ہیں، اور ان سب کا کھلا ہونا کم ہی ہوتا ہے۔ کلائنٹ ایپلیکیشن وہ ہے جس کا لوگ مطلب لیتے ہیں۔ اس کے نیچے پروٹوکول کا نفاذ ایک اور شے ہے، کبھی لائبریری اور کبھی درخت کے اندر کوڈ۔ سرور سافٹ ویئر تیسرا ہے، اور فراہم کنندہ کا اپنا بنیادی ڈھانچہ، اکاؤنٹ پورٹل اور معاونت کے اوزار چوتھا ہے۔ ہر ایک آزادانہ طور پر کھلا یا بند ہو سکتا ہے۔

اس لیے "ہماری ایپ اوپن سورس ہے" جیسے بیانات پہلی شے بیان کرتے ہیں اور باقی کو بغیر جواب چھوڑ دیتے ہیں، جو بددیانتی نہیں بلکہ اصناف کی کھسک ہے۔ کارآمد سوال یہ ہے کہ کون سی ریپوزٹری، کس ٹیگ پر، آپ کے بھروسے والے جزو سے مطابقت رکھتی ہے۔

یہ فرق یہ بھی واضح کرتا ہے کہ ایک جیسے کھلے کلائنٹ والی دو مصنوعات بہت مختلف یقین دہانیاں کیوں دے سکتی ہیں۔ کلائنٹ وہ حصہ ہے جو آپ جانچ سکتے ہیں؛ آپریٹر کا رویہ وہ حصہ ہے جو آپ کو دوسرے ذرائع سے پرکھنا ہے۔

نصب شدہ بلڈ کو شائع شدہ ٹیگ سے ملائیں

ریپوزٹری نیت کا ریکارڈ ہے؛ آپ کی ڈسک پر موجود بائنری وہ چیز ہے جو چلتی ہے۔ اس خلا کو بند کرنا ایک مشینی مشق ہے، اور یہ اسی کی نشاندہی سے شروع ہوتا ہے کہ واقعی کیا نصب ہے، نہ کہ ڈاؤن لوڈ صفحے نے کیا مشتہر کیا تھا۔

ComponentWhat inspection can showWhat it leaves untouched
Client sourceHow profiles, packets and optional telemetry are handledWhether the shipped binary matches that source
Build outputWhether a declared build reproduces a matching artefactWhether the source is correct or the toolchain is clean
Server softwareWhat the implementation is capable of loggingWhat the operator actually configures and retains
Account and support systemsAlmost nothing, unless they are separately publishedEverything about how those systems treat your data

پیکیج میٹاڈیٹا آپ کو ورژن اور ماخذ بتاتا ہے، جو پرانے یا تبدیل شدہ پیکیج کی سادہ صورت کو خارج کرتا ہے۔ یہ نہیں بتاتا کہ وہ پیکیج کیسے کمپائل ہوا، اور اسی سوال کا جواب دینے کے لیے دوبارہ تیار ہونے والے بلڈ موجود ہیں۔ دوبارہ تیار ہونے والے بلڈ ایک آزاد فریق کو اجازت دیتے ہیں کہ اسی ماخذ سے دوبارہ تعمیر کرے اور نتیجے کا بائٹ بہ بائٹ موازنہ کرے، تاکہ عدم مطابقت شبہے کی بجائے ثبوت بن جائے۔

مکمل مطابقت بھی لوگوں کی توقع سے کم ثابت کرتی ہے۔ یہ دکھاتی ہے کہ شے ماخذ اور بلڈ کی ترکیب سے مطابقت رکھتی ہے، نہ یہ کہ ماخذ بے عیب ہے، اور نہ یہ کہ استعمال شدہ اوزاروں کی زنجیر قابلِ اعتماد تھی۔ دونوں جاننے کے قابل ہیں، لیکن یہ الگ دعوے ہیں۔

dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wg

علامت عام طور پر کہاں سے شروع ہوتی ہے

اس مطالعے کا سبب بننے والی شکایت کم ہی "کوڈ بند ہے" ہوتی ہے۔ عام طور پر یہ ایک مخصوص مشاہدہ ہوتا ہے: کوئی کلائنٹ جو کہیں غیر متوقع طور پر رابطہ کرتا ہے، کوئی ورژن جو ریلیز نوٹس سے مختلف ہے، یا کوئی معاون عمل جو سرنگ کی ضرورت سے زیادہ مانگتا ہے۔ ان میں سے ہر نکتہ الگ جزو کی طرف اشارہ کرتا ہے۔

کلائنٹ سے غیر متوقع نیٹ ورک ٹریفک کلائنٹ کے ماخذ کوڈ کا سوال ہے، اور اس کا جواب کنکشن کھولنے والے کوڈ راستے کو پڑھ کر دیا جا سکتا ہے۔ ورژن کا عدم مطابقت پیکیجنگ کا سوال ہے۔ شناختی دستاویزات مانگنے والا معاون عمل اکاؤنٹ سسٹم کا سوال ہے، اور کوئی کلائنٹ آڈٹ اسے حل نہیں کرے گا۔

جزو کا نام دینا مبہم عدم اعتماد کو مخصوص جانچ میں بدل دیتا ہے۔ مخصوص جانچ کا جواب دیا جا سکتا ہے، اس پر بحث کی جا سکتی ہے یا اسے بند کیا جا سکتا ہے۔ متبادل یہ ہے کہ اگلے قدم کے بغیر مستقل شبہ رہے۔

جائزہ کہاں تک نہیں پہنچ سکتا، اور اس کی بجائے کیا کرنا چاہیے

فراہم کنندہ کے سرورز پر محفوظ رکھنا کلائنٹ کی رسائی سے باہر ہے۔ بلنگ پورٹل، فراڈ جانچنے والے وینڈر یا معاون ڈیسک کا رویہ بھی، جو منسلکات رکھتا ہے۔ "ہم نے سروس کا آڈٹ کیا" تک کھینچا گیا کلائنٹ جائزہ ایسا دعویٰ کرتا ہے جس کی ثبوت تائید نہیں کرتے۔

پڑھیں کہ آپریٹر محفوظ رکھنے اور درخواستوں کے بارے میں کیا شائع کرتا ہے، تاریخ نوٹ کریں، اور اسے پیمائش نہیں بلکہ دلچسپی رکھنے والے فریق کا بیان سمجھیں۔ یہ ثبوت کی کمزور شکل ہے، اور دوبارہ سناتے وقت اسے بڑھانے سے بہتر ہے کہ فرق واضح کہا جائے۔

پھر جو آپ کے پاس ہے اسے کئی اِن پٹ میں سے ایک کے طور پر استعمال کریں: نصب شدہ ریلیز کی شناخت، کیا سافٹ ویئر کی دیکھ بھال ہوتی ہے، کلائنٹ کی ترتیب کیسی ہے، اور آپریٹر اپنے نظاموں کے بارے میں کیا کہتا ہے۔ کھلا کوڈ اس جانچ کو ایک نکتے پر مضبوط کرتا ہے۔ یہ باقی کی جگہ نہیں لیتا۔

آڈٹ کے دعوے میں ہمیشہ اس کے اجزا اور ورژن کے نام ہونے چاہئیں۔ اگر کوئی رپورٹ یہ نہ بتا سکے کہ اس نے کون سی ریپوزٹری اور کون سا بلڈ جانچا، تو وہ مصنوع نہیں بلکہ نیت بیان کر رہی ہے۔

متعلقہ مضامین