تھرڈ پارٹی پورٹلز کے خلاف UI پر منحصر آٹومیشن
ہر انٹرپرائز کے پاس پورٹلز کی فہرست ہے جن میں ملازمین روزانہ دستی طور پر لاگ ان کرتے ہیں وہ کام کرنے کے لیے جو خودکار ہونا چاہیے لیکن نہیں ہے۔ آرڈر اسٹیٹس چیک کرنے کے لیے وینڈر پورٹلز۔ ریگولیٹری سبمیشنز کے لیے سرکاری سائٹس۔ اہلیت تصدیق اور کلیم اسٹیٹس جانچنے کے لیے انشورنس ادائیگی کنندہ پورٹلز۔ اسناد کی تصدیق کے لیے ریاستی لائسنسنگ بورڈز۔ تعمیل فائلنگز کے لیے ٹیکس اتھارٹی پورٹلز۔
ان پورٹلز کے پاس APIs نہیں ہیں۔ یا ان کے پاس APIs ہیں جو غیر دستاویزی، ریٹ محدود، یا "ترجیحی پارٹنرز" تک محدود ہیں جو رسائی کے لیے ادائیگی کرتے ہیں۔ ڈیٹا لاگ ان صفحے کے پیچھے رہتا ہے، HTML میں ظاہر ہوتا ہے، اور اسے باہر نکالنے کا واحد طریقہ لاگ ان کرنا اور UI کو نیوی گیٹ کرنا ہے۔
روایتی آٹومیشن براؤزر اسکرپٹس استعمال کرتی ہے۔ Selenium، Playwright، یا Puppeteer اسکرپٹس جو لاگ ان کرتی ہیں، صحیح صفحے پر جاتی ہیں، CSS سلیکٹر یا XPath سے عناصر تلاش کرتی ہیں، ڈیٹا نکالتی ہیں، اور لاگ آؤٹ کرتی ہیں۔ یہ اسکرپٹس تب تک کام کرتی ہیں جب تک نہیں کرتیں۔ پورٹل ری ڈیزائن CSS کلاس ناموں کو بدل دیتا ہے۔ لاگ ان فلو میں نیا CAPTCHA شامل ہو جاتا ہے۔ نیوی گیشن مینو سائڈ بار سے ہیمبرگر مینو پر منتقل ہو جاتا ہے۔ کوکی کنسینٹ بینر سبمٹ بٹن کو ڈھکنا شروع کر دیتا ہے۔ اسکرپٹ خاموشی سے ٹوٹ جاتی ہے، اور کوئی نہیں دیکھتا جب تک کہ ڈیٹا پر منحصر ڈاؤن اسٹریم عمل غلطیاں پیدا کرنا شروع نہ کر دے۔
ریاستی طبی بورڈ ایک خاص طور پر سخت مثال ہے۔ ان میں سے پچاس ہیں، ہر ایک مختلف ویب سائٹ، مختلف لے آؤٹس، مختلف تصدیقی طریقوں، اور مختلف ڈیٹا فارمیٹس کے ساتھ۔ وہ بغیر نوٹس کے اپنے شیڈولز پر ری ڈیزائن کرتے ہیں۔ ایک اسناد کی تصدیق سروس جو ان سائٹس کو کھرچنے پر انحصار کرتی ہے کسی بھی وقت اپنی پچاس میں سے پانچ یا دس اسکرپٹس ٹوٹی ہو سکتی ہیں، ہر ایک کو نئے لے آؤٹ کا معائنہ کرنے اور سلیکٹرز کو دوبارہ لکھنے کے لیے ڈویلپر کی ضرورت ہوتی ہے۔
Triggerfish اسے کیسے حل کرتا ہے
Triggerfish کی براؤزر آٹومیشن CDP کنٹرولڈ Chromium کو LLM بنیاد بصری نیوی گیشن کے ساتھ جوڑتی ہے۔ ایجنٹ صفحے کو رینڈرڈ پکسلز اور قابل رسائی اسنیپ شاٹس کے طور پر دیکھتا ہے، DOM ٹری کے طور پر نہیں۔ یہ عناصر کو ان کے نظر آنے اور کرنے کی بنیاد پر شناخت کرتا ہے، CSS کلاس ناموں سے نہیں۔ جب پورٹل ری ڈیزائن ہوتا ہے، ایجنٹ ڈھل جاتا ہے کیونکہ لاگ ان فارم ابھی بھی لاگ ان فارم جیسے نظر آتے ہیں، نیوی گیشن مینوز ابھی بھی نیوی گیشن مینوز جیسے نظر آتے ہیں، اور ڈیٹا ٹیبلز ابھی بھی ڈیٹا ٹیبلز جیسی نظر آتی ہیں۔
سلیکٹر اسکرپٹس کی بجائے بصری نیوی گیشن
براؤزر آٹومیشن ٹولز سات آپریشنز کے ذریعے کام کرتے ہیں: نیوی گیٹ، اسنیپ شاٹ، کلک، ٹائپ، سلیکٹ، اسکرول، اور ویٹ۔ ایجنٹ URL پر جاتا ہے، رینڈرڈ صفحے کا اسنیپ شاٹ لیتا ہے، جو دیکھتا ہے اس پر استدلال کرتا ہے، اور فیصلہ کرتا ہے کہ کیا اقدام کرنا ہے۔ کوئی evaluate ٹول نہیں ہے جو صفحے کے سیاق میں بے ترتیب JavaScript چلاتا ہو۔ یہ ایک جان بوجھ کر سیکیورٹی فیصلہ ہے۔ ایجنٹ صفحے کے ساتھ اسی طرح بات چیت کرتا ہے جیسے انسان کرتا ہے، UI کے ذریعے، اور وہ کوڈ نہیں چلا سکتا جو کسی نقصاندہ صفحے سے استحصال کیا جا سکے۔
جب ایجنٹ لاگ ان فارم کا سامنا کرتا ہے، یہ بصری لے آؤٹ، پلیس ہولڈر متن، لیبلز، اور صفحے کی ساخت کی بنیاد پر یوزرنیم فیلڈ، پاس ورڈ فیلڈ، اور سبمٹ بٹن کی شناخت کرتا ہے۔ اسے جاننے کی ضرورت نہیں کہ یوزرنیم فیلڈ میں id="auth-input-email" یا class="login-form__email-field" ہے۔ جب ری ڈیزائن میں وہ شناخت کار بدل جاتے ہیں، ایجنٹ نوٹس نہیں کرتا کیونکہ اس نے ان پر کبھی انحصار نہیں کیا تھا۔
مشترک ڈومین سیکیورٹی
براؤزر نیوی گیشن ویب فیچ آپریشنز کی طرح ایک ہی ڈومین سیکیورٹی کنفیگریشن شیئر کرتی ہے۔ triggerfish.yaml میں ایک کنفیگ بلاک SSRF ڈینی لسٹس، ڈومین الاؤ لسٹس، ڈومین ڈینی لسٹس، اور ڈومین سے درجہ بندی کی میپنگز تعریف کرتا ہے۔ جب ایجنٹ CONFIDENTIAL پر درجہ بند وینڈر پورٹل پر جاتا ہے، سیشن taint خودکار طریقے سے CONFIDENTIAL تک ایسکلیٹ ہوتا ہے، اور اس ورک فلو میں تمام اگلے اقدامات CONFIDENTIAL سطح کی پابندیوں کے تابع ہوتے ہیں۔
SSRF ڈینی لسٹ ہارڈ کوڈ شدہ اور ناقابل نظرانداز ہے۔ پرائیویٹ IP رینجز، لنک لوکل ایڈریسز، اور کلاؤڈ میٹاڈیٹا اینڈ پوائنٹس ہمیشہ بلاک رہتے ہیں۔ DNS ریزولیوشن درخواست سے پہلے جانچا جاتا ہے، DNS ری بائنڈنگ حملوں کو روکتا ہے۔ یہ اہمیت رکھتا ہے کیونکہ براؤزر آٹومیشن کسی بھی ایجنٹ سسٹم میں سب سے زیادہ حملے کی سطح ہے۔ نقصاندہ صفحہ جو ایجنٹ کو اندرونی سروس پر ری ڈائریکٹ کرنے کی کوشش کرتا ہے درخواست سسٹم سے نکلنے سے پہلے بلاک ہو جاتا ہے۔
براؤزر پروفائل واٹر مارکنگ
ہر ایجنٹ اپنا براؤزر پروفائل برقرار رکھتا ہے، جو وقت کے ساتھ پورٹلز کے ساتھ بات چیت کرتے ہوئے کوکیز، لوکل اسٹوریج، اور سیشن ڈیٹا جمع کرتا ہے۔ پروفائل ایک درجہ بندی واٹر مارک رکھتا ہے جو اس کے استعمال کی سب سے اعلی درجہ بندی کی سطح ریکارڈ کرتا ہے۔ یہ واٹر مارک صرف ایسکلیٹ ہو سکتا ہے، کم نہیں ہو سکتا۔
اگر ایجنٹ اپنا براؤزر پروفائل CONFIDENTIAL وینڈر پورٹل میں لاگ ان کرنے کے لیے استعمال کرتا ہے، پروفائل CONFIDENTIAL پر واٹر مارک ہو جاتا ہے۔ PUBLIC درجہ بندی پر چلنے والا اگلا سیشن وہ پروفائل استعمال نہیں کر سکتا، کیشڈ اسناد، کوکیز، یا سیشن ٹوکنز کے ذریعے ڈیٹا لیک کو روکتا ہے جن میں حساس معلومات ہو سکتی ہیں۔ پروفائل آئسولیشن فی ایجنٹ ہے، اور واٹر مارک نفاذ خودکار ہے۔
یہ پورٹل آٹومیشن میں ایک باریک لیکن اہم مسئلہ حل کرتا ہے۔ براؤزر پروفائلز حالت جمع کرتے ہیں جو ان کے رسائی کردہ ڈیٹا کو ظاہر کرتی ہے۔ واٹر مارکنگ کے بغیر، حساس پورٹل میں لاگ ان ہونے والا پروفائل آٹو کمپلیٹ تجاویز، کیشڈ صفحہ ڈیٹا، یا مستقل کوکیز کے ذریعے کم درجہ بند سیشن کو معلومات لیک کر سکتا ہے۔
اسناد کا انتظام
پورٹل اسناد OS کی چابی زنجیر (ذاتی درجے) یا انٹرپرائز والٹ (انٹرپرائز درجے) میں محفوظ ہیں، کنفیگریشن فائلز یا ماحولیاتی متغیرات میں نہیں۔ SECRET_ACCESS hook ہر اسناد کی بازیابی لاگ کرتا ہے۔ اسناد عمل وقت پر ورک فلو انجن کے ذریعے حل کیے جاتے ہیں اور ٹائپنگ انٹرفیس کے ذریعے براؤزر سیشنز میں لگائے جاتے ہیں، پروگرامی طریقے سے فارم ویلیوز سیٹ کرنے سے نہیں۔ اس کا مطلب ہے اسناد اسی سیکیورٹی پرت سے بہتی ہیں جیسے کوئی اور حساس آپریشن۔
پورٹل کی عام تبدیلیوں کے خلاف لچک
جب پورٹل کی عام تبدیلیاں ہوتی ہیں تو کیا ہوتا ہے:
لاگ ان صفحہ ری ڈیزائن۔ ایجنٹ نیا اسنیپ شاٹ لیتا ہے، اپ ڈیٹ شدہ لے آؤٹ کی شناخت کرتا ہے، اور بصری سیاق سے فارم فیلڈز تلاش کرتا ہے۔ جب تک پورٹل نے مکمل طور پر مختلف تصدیقی طریقہ (SAML، OAuth، ہارڈ ویئر ٹوکن) نہ اپنایا ہو، لاگ ان کوئی کنفیگریشن تبدیلی کے بغیر کام کرتا رہتا ہے۔
نیوی گیشن ری اسٹرکچر۔ ایجنٹ لاگ ان کے بعد صفحہ پڑھتا ہے اور URL نمونوں کی بجائے لنک متن، مینو لیبلز، اور صفحہ سرخیوں کی بنیاد پر ہدف سیکشن پر جاتا ہے۔ اگر وینڈر پورٹل نے "آرڈر اسٹیٹس" کو بائیں سائڈ بار سے اوپر والے نیوی گیشن ڈراپ ڈاؤن پر منتقل کیا، ایجنٹ اسے وہاں تلاش کر لیتا ہے۔
نیا کوکی کنسینٹ بینر۔ ایجنٹ بینر دیکھتا ہے، قبول/رد بٹن کی شناخت کرتا ہے، اسے کلک کرتا ہے، اور اصل کام جاری رکھتا ہے۔ یہ LLM کی عمومی صفحہ سمجھ سے سنبھالا جاتا ہے، نہ کہ خاص مقصد کوکی ہینڈلر سے۔
CAPTCHA شامل۔ یہاں طریقہ ایمانداری سے محدود ہے۔ سادہ تصویر CAPTCHAs LLM کی بینائی صلاحیتوں کے لحاظ سے حل ہو سکتی ہیں، لیکن reCAPTCHA v3 اور اسی طرح کے رویے کے تجزیاتی سسٹمز خودکار براؤزرز کو بلاک کر سکتے ہیں۔ ورک فلو انہیں خاموشی سے ناکام ہونے کی بجائے انسانی مداخلت کیو کو بھیج دیتا ہے۔
ملٹی فیکٹر تصدیق کے اشارے۔ اگر پورٹل ایسی MFA مانگنا شروع کر دیتا ہے جس کی پہلے ضرورت نہیں تھی، ایجنٹ غیر متوقع صفحے کا پتا لگاتا ہے، نوٹیفیکیشن سسٹم کے ذریعے صورتحال کی رپورٹ کرتا ہے، اور ورک فلو روک دیتا ہے جب تک انسان MFA قدم مکمل نہیں کر لیتا۔ ورک فلو MFA مکمل ہونے کا انتظار کرنے اور پھر رکے جگہ سے جاری رکھنے کے لیے کنفیگر کیا جا سکتا ہے۔
متعدد پورٹلز پر بیچ پروسیسنگ
ورک فلو انجن کی for لوپ سپورٹ کا مطلب ہے کہ ایک ورک فلو متعدد پورٹل اہداف پر تکرار کر سکتا ہے۔ اسناد کی تصدیق سروس ایک ورک فلو تعریف کر سکتی ہے جو ایک بیچ رن میں تمام پچاس ریاستی طبی بورڈز پر لائسنس اسٹیٹس جانچتی ہے۔ ہر پورٹل تعامل اپنے براؤزر سیشن، اپنی درجہ بندی ٹریکنگ، اور اپنی خرابی ہینڈلنگ کے ساتھ الگ سب اسٹیپ کے طور پر چلتا ہے۔ اگر پچاس میں سے تین پورٹلز ناکام ہو جاتے ہیں، ورک فلو باقی سینتالیس مکمل کرتا ہے اور تین ناکامیوں کو تفصیلی خرابی سیاق کے ساتھ جائزہ کیو کو بھیجتا ہے۔
عملی طور پر یہ کیسا نظر آتا ہے
ایک اسناد سازی تنظیم فراہم کنندہ اندراج کے عمل کے حصے کے طور پر ریاستی طبی بورڈز پر صحت کی دیکھ بھال فراہم کنندہ لائسنسز کی تصدیق کرتی ہے۔ روایتی طور پر، تصدیقی معاون ہر بورڈ کی ویب سائٹ میں دستی طور پر لاگ ان کرتے، فراہم کنندہ تلاش کرتے، لائسنس اسٹیٹس کا اسکرین شاٹ لیتے، اور ڈیٹا اسناد سازی سسٹم میں داخل کرتے۔ ہر تصدیق میں پانچ سے پندرہ منٹ لگتے ہیں، اور تنظیم ہفتے میں سینکڑوں پروسیس کرتی ہے۔
Triggerfish کے ساتھ، ایک ورک فلو مکمل تصدیقی سائیکل سنبھالتا ہے۔ ورک فلو فراہم کنندگان کا ایک بیچ ان کے لائسنس نمبرز اور ہدف ریاستوں کے ساتھ وصول کرتا ہے۔ ہر فراہم کنندہ کے لیے، براؤزر آٹومیشن متعلقہ ریاستی بورڈ پورٹل پر جاتی ہے، محفوظ اسناد سے لاگ ان کرتی ہے، فراہم کنندہ تلاش کرتی ہے، لائسنس اسٹیٹس اور میعاد ختم ہونے کی تاریخ نکالتی ہے، اور نتیجہ محفوظ کرتی ہے۔ نکالا گیا ڈیٹا CONFIDENTIAL پر درجہ بند ہوتا ہے کیونکہ اس میں فراہم کنندہ PII ہے، اور رائٹ ڈاؤن روک تھام کے اصول اسے اس درجہ بندی سطح سے نیچے کسی بھی چینل کو بھیجنے سے روکتے ہیں۔
جب کوئی ریاستی بورڈ اپنا پورٹل ری ڈیزائن کرتا ہے، ایجنٹ اگلی تصدیق کی کوشش پر ڈھل جاتا ہے۔ جب کوئی بورڈ CAPTCHA شامل کرتا ہے جو خودکار رسائی کو بلاک کرتا ہے، ورک فلو اس ریاست کو دستی تصدیق کے لیے نشان زد کرتا ہے اور باقی بیچ پروسیس کرتا رہتا ہے۔ تصدیقی معاونین تمام تصدیقات دستی طور پر کرنے سے صرف ان استثناءات کو سنبھالنے میں منتقل ہو جاتے ہیں جنہیں آٹومیشن حل نہیں کر سکتی۔
