Visual Studio گھر میں عام طور پر شروع ہوتا ہے، پھر وہی لیپ ٹاپ کارپوریٹ ٹنل سے جڑتا ہے اور ہر آغاز آدھا منٹ اسپلش اسکرین پر رکتا ہے۔ پالیسی ہٹائیں تو تاخیر بھی اس کے ساتھ چلی جاتی ہے؛ ٹنل ہٹائیں تو وہی بات ہوتی ہے۔ دونوں مشاہدات درست ہیں، اسی لیے دونوں اجزا ایک دوسرے کو قصوروار ٹھہراتے رہتے ہیں۔ فیصلہ کن سوال یہ ہے کہ کیا سرٹیفکیٹ کی منسوخی کی استفسار اُس راستے کا انتظار کر رہی ہے جو صرف ٹنل فراہم کرتا ہے، یا اُسے کوئی راستہ ملتا ہی نہیں۔

آغاز نہیں، حصول کا وقت ناپیں

ایک WDAC پالیسی، جو دستخط شدہ SiPolicy.p7b کے طور پر تعینات ہے، مشین پر کون سی امیجز چل سکتی ہیں یہ طے کرتی ہے۔ کوڈ کی سالمیت عمل درآمد سے پہلے امیج کے دستخطوں کا سلسلہ تصدیق کرتی ہے، اور اس تصدیق میں منسوخی کا سوال شامل ہو سکتا ہے۔ جواب CRL تقسیم نقطے یا OCSP جواب دہندہ پر منحصر ہے جس کا نام سرٹیفکیٹ اپنے اندر دیتا ہے۔

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

ہر دستخط شدہ امیج نیٹ ورک کال پیدا کر سکتی ہے

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

certutil -verify -urlfetch C:\Tools\Contoso.Editor.dll
nslookup ocsp.contoso.example
Test-NetConnection ocsp.contoso.example -Port 80

آؤٹ پٹ سلسلہ، CRL اور OCSP پتے اور یہ بتاتی ہے کہ ہر حصول کامیاب ہوا یا نہیں۔ جو جواب دہندہ ٹنل پر وقت ختم کرتا ہے اور باہر جواب دیتا ہے، وہی وہ ثبوت ہے جو آپ کو درکار ہے، اور یہ سستی کے تاثر سے کہیں زیادہ وزن رکھتا ہے۔ اگر حصول آہستہ سے کامیاب ہو، تو پتہ نوٹ کریں تاکہ اگلا مرحلہ اُس ہوسٹ کو براہ راست جانچ سکے۔

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

کنٹرول ہٹائے بغیر تاخیر کم کریں

پالیسی غیر فعال کرنا یا اسے آڈٹ موڈ میں لے جانا تاخیر ختم کرتا ہے اور تنظیم کا نافذ کردہ کنٹرول ہٹا دیتا ہے، اس لیے اسے غلط مرمت سمجھیں۔ تنگ تر اختیارات یہ ہیں: روٹنگ تبدیلی تاکہ جواب دہندہ ٹنل کے ذریعے قابل رسائی ہو، جواب دہندہ ہوسٹس کے لیے تقسیم شدہ ٹنل میں استثنا، جب نام ناقابل رسائی پتے پر حل ہو تو DNS اصلاح، یا منسوخی ڈیٹا کے لیے معاون کیشنگ پراکسی۔ ہر ایک کا الگ مالک ہے: PKI ٹیم جواب دہندہ کی رسائی، نیٹ ورک ٹیم ٹنل کی تقسیم اور اینڈ پوائنٹ ٹیم پالیسی کی مالک ہے۔

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

تبدیلی کے بعد کولڈ اسٹارٹ کی تصدیق کریں

دونوں حالتوں میں کولڈ اسٹارٹ ناپیں اور اعداد رکھیں، کیونکہ اسمبلیاں کیش ہونے کے بعد وارم اسٹارٹ تقریباً کچھ ثابت نہیں کرتا۔ نئے سیشن سے آغاز دہرائیں تاکہ توسیعات کے لوڈ ہونے کا راستہ دوبارہ استعمال ہو۔

Get-WinEvent -LogName Microsoft-Windows-CodeIntegrity/Operational -MaxEvents 40 |
  Where-Object { $_.TimeCreated -gt (Get-Date).AddMinutes(-10) }
Get-ChildItem C:\Windows\System32\CodeIntegrity\CiPolicies\Active
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard

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

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