ہر کوئی pull request جو اینڈ پوائنٹ کو جوڑتا یا تبدیل کرتا ہے آپ کے API اٹیک کی سطح کو تبدیل کرتا ہے۔ زیادہ تر API سیکیورٹی ٹولز اس وقت تک نوٹس نہیں لیتے جب تک کہ وہ اختتامی نقطہ لائیو نہ ہو اور پہلے ہی ٹریفک لے رہا ہو۔ تب تک، درستگی اب کوڈ کے جائزے میں ایک لائن کی تبدیلی نہیں رہی، یہ ایک واقعہ کے ردعمل کی بات چیت ہے۔
API سیکورٹی خطرات کو تلاش کرنے اور بند کرنے کی مشق ہے کہ کس طرح ایک ایپلی کیشن اپنے اختتامی نقطوں کو ظاہر کرتی ہے: انہیں کون کال کر سکتا ہے، وہ کون سا ڈیٹا واپس کرتے ہیں، اور کیا وہ وہی کرتے ہیں جو دستاویزات کے مطابق وہ کرتے ہیں۔
اس مسئلے کے لیے بنائے گئے زیادہ تر ٹولنگ API کو رن ٹائم کے وقت باہر سے ٹیسٹ کرتی ہیں، اسی طرح حملہ آور کرتا ہے۔ یہ نقطہ نظر کام کرتا ہے، لیکن یہ API کے تعینات ہونے کے بعد ہی کام کرتا ہے۔ زیجینی پہلے کا راستہ اختیار کرتا ہے: یہ آپ کے سورس کوڈ اور آپ کے API کی تفصیلات کو پڑھتا ہے اس سے پہلے کہ ایک بھی درخواست اختتامی نقطہ پر پہنچ جائے۔
API کو جانچنے کے چار طریقے، اور ہر ایک کیا جواب دیتا ہے۔
زیادہ تر بالغ پروگرام ان میں سے ایک سے زیادہ چلاتے ہیں:
- جامد جانچ تعیناتی سے پہلے سورس کوڈ اور API کی تفصیلات کا تجزیہ کرتا ہے۔ یہ جواب دیتا ہے "ہم نے ابھی کیا بے نقاب کیا؟" یہ وہ نقطہ نظر ہے جس پر یہ مضمون توجہ مرکوز کرتا ہے۔
- ڈائنامک ٹیسٹنگ (DAST) چلانے والے API پر حقیقی ٹریفک بھیجتا ہے اور مشاہدہ کرتا ہے کہ یہ کیسے جواب دیتا ہے۔ یہ جواب دیتا ہے کہ "ابھی اصل میں قابل رسائی اور فائدہ مند کیا ہے؟"
- دھندلاہٹ سطح کے کریشوں اور ایج کیس کی ناکامیوں کے لیے اختتامی پوائنٹس پر خراب یا غیر متوقع ان پٹ پھینک دیتا ہے۔ یہ جواب دیتا ہے کہ "ان پٹ کے تحت کیا ٹوٹتا ہے جس کی ہمیں توقع نہیں تھی؟"
- دستی دخول کی جانچ منطقی خامیوں کو تلاش کرنے کے لیے انسانی فیصلے کا اضافہ کرتا ہے خودکار ٹولز مس۔ یہ جواب دیتا ہے کہ "ایک سمارٹ حملہ آور ایک ساتھ مل کر کیا کرے گا؟"
ان میں سے کوئی بھی دوسرے کی جگہ نہیں لیتا۔ وہ لائف سائیکل کے مختلف پوائنٹس پر مختلف سوالات کے جوابات دیتے ہیں، اور زیادہ تر پروگراموں میں پہلا فرق ہوتا ہے۔
زیادہ تر API سیکیورٹی ٹولز خطرے کو بہت دیر سے کیوں دیکھتے ہیں۔
رن ٹائم API سیکیورٹی ٹیسٹنگ لائیو ایپلیکیشن پر ٹریفک بھیجتی ہے اور دیکھتی ہے کہ یہ کیسے جواب دیتا ہے۔ یہ ایک جائز اور ضروری پرت ہے۔ یہ، تعمیر کے لحاظ سے، ایک پیچھے رہ جانے والا اشارے بھی ہے: ایک اختتامی نقطہ ہونا ضروری ہے، اسے تعینات کیا جائے، اور اس سے پہلے کہ رن ٹائم اسکینر اس کے بارے میں کچھ بھی کہہ سکے۔ جو کچھ بھی ملتا ہے وہ پہلے ہی بے نقاب ہو چکا تھا تاہم اسکین کو چلانے میں کافی وقت لگا۔
اس وقت کے مسئلے کے نیچے دوسرا فرق ہے۔ رن ٹائم ٹولز صرف وہی جانچ سکتے ہیں جو وہ جانتے ہیں کہ موجود ہے۔ اگر کسی اینڈ پوائنٹ کو کبھی دستاویزی شکل نہیں دی گئی تھی، یا OpenAPI کی قیاس آرائی اس لمحے پرانی ہو گئی ہے جب کسی نے نیا راستہ بھیج دیا ہے، تو رن ٹائم سکینر کے پاس یہ جاننے کا کوئی طریقہ نہیں ہے کہ یہ وہاں ہے۔ یہ نقشہ کی جانچ کرتا ہے، علاقے کا نہیں۔
جامد API سیکیورٹی ٹیسٹنگ چیک کو اس طرف منتقل کر کے دونوں خلا کو بند کر دیتی ہے جہاں اختتامی نقطہ کی تعریف کی گئی ہے: آپ کا کوڈ اور آپ کی API تفصیلات، تعیناتی سے پہلے۔ ایک ہی pull request جو ایک اختتامی نقطہ متعارف کراتی ہے۔ pull request جو اس کے خطرے کو ظاہر کرتا ہے۔
جامد API سیکیورٹی کا اصل مطلب کیا ہے۔
Xygeni آپ کی API انوینٹری کو دو ذرائع سے بناتا ہے: آپ کی ایپلیکیشن کا سورس کوڈ اور آپ کی API وضاحتیں بشمول OpenAPI اور Swagger۔
صرف مخصوص انوینٹری وہ اختتامی نکات دکھاتی ہے جسے کسی نے دستاویز کرنا یاد رکھا تھا۔ صرف کوڈ کی انوینٹری ظاہر کرتی ہے کہ کیا موجود ہے لیکن ضروری نہیں کہ اسے کس طرح استعمال کیا جائے۔ دونوں کو پڑھنا آپ کو مکمل تصویر فراہم کرتا ہے: اختتامی پوائنٹس جو آپ کی ٹیموں نے دستاویز کیے ہیں، اور جو کسی نے نہیں کیے ہیں۔
وہ انوینٹری وہ بنیاد ہے جس پر باقی سب کچھ بناتا ہے:
- کُل APIs دریافت ہوئے، اور خطرے میں اثاثوں کی پیمائش بیس لائن کے خلاف کی گئی۔
- ایچ ٹی ٹی پی کے طریقہ سے ٹوٹے ہوئے اختتامی پوائنٹس
- سروس کے لحاظ سے گروپ کردہ مسائل
- ہر اختتامی نقطہ اس کے طریقہ کار، راستہ، سروس، ماڈیول، تصدیق کی حالت اور رسک سکور کے ساتھ
آپ کی انجینئرنگ لیڈز ایک ٹکٹ کھولے بغیر آپ کے API کی سطح کی شکل دیکھتے ہیں۔
ہر اختتامی نقطہ Xygeni پایا، اس کے طریقہ کار، تصدیق کی حالت اور رسک سکور کے ساتھ، کوڈ اور تفصیلات سے مل کر بنایا گیا ہے۔
Production note کسی بھی API سیکیورٹی اسکرین شاٹ سے AI Triage پینل کو تراشیں۔
OWASP API سیکیورٹی ٹاپ 10 میں نقشہ بنایا گیا ہے۔
نتائج اس فریم ورک کو بتاتے ہیں جو آپ کی سیکیورٹی ٹیمیں اور آپ کے آڈیٹرز پہلے ہی استعمال کر رہے ہیں۔ Xygeni OWASP API سیکیورٹی میں خطرے کا پتہ لگاتا ہے۔ ٹاپ 10 (2023):
| OWASP | رسک | عملی طور پر اس کا کیا مطلب ہے۔ |
|---|---|---|
API1 | ٹوٹے ہوئے آبجیکٹ لیول کی اجازت | ایک اختتامی نقطہ کسی دوسرے صارف یا کرایہ دار سے تعلق رکھنے والے ڈیٹا کو واپس کرتا ہے یا اس میں ترمیم کرتا ہے۔ |
API2 | غیر تصدیق شدہ اختتامی پوائنٹس | ایک راستہ بغیر کسی تصدیق کے قابل رسائی ہے۔ |
API3 | ضرورت سے زیادہ ڈیٹا کی نمائش | جواب کال کرنے والے کی ضرورت سے زیادہ فیلڈز واپس کرتا ہے یا اسے دیکھنا چاہیے۔ |
API3 | بڑے پیمانے پر تفویض | ایک اختتامی نقطہ ان فیلڈز کو قبول کرتا ہے اور لاگو کرتا ہے جو اسے کبھی قبول کرنا نہیں تھا۔ |
API3 / API10 | جوابات میں حساس ڈیٹا | PII، PCI یا PHI کلائنٹ تک ایسے اختتامی نقطہ سے پہنچتا ہے جسے اسے نہیں بھیجنا چاہیے۔ |
API4 | لاپتہ شرح کی حدود | اختتامی نقطہ کو بدسلوکی یا ظالمانہ کالوں کے خلاف کوئی تحفظ نہیں ہے۔ |
API5 | ٹوٹا ہوا فنکشن لیول کی اجازت | ایک اینڈ پوائنٹ کال کرنے والے کو اجازت دیے بغیر ایک مراعات یافتہ عمل انجام دیتا ہے۔ |
API7 | ایس ایس آر ایف | حملہ آور کی جانب سے درخواستیں کرنے کے لیے API کو دھوکہ دیا جا سکتا ہے۔ |
API8 | JWT غلط کنفیگریشن | ٹوکن کی توثیق، دستخط، یا میعاد ختم ہونے کو غلط طریقے سے ترتیب دیا گیا ہے۔ |
API8 | CORS غلط کنفیگریشن | کراس اوریجن قوانین کافی قابل استعمال ہونے کے قابل ہیں۔ |
API9 | زومبی اور یتیم کے اختتامی مقامات | فرسودہ یا بھولے ہوئے راستے جو اب بھی قابل رسائی ہیں، اور ایسے راستے جو کسی کے پاس نہیں ہیں۔ |
ایک زمرہ جان بوجھ کر غائب ہے۔ API6، حساس کاروباری بہاؤ تک غیر محدود رسائی، یہ سمجھنے کی ضرورت ہے کہ کاروباری عمل کس چیز کی اجازت دیتا ہے، اور کوئی جامد تجزیہ کار اس کا معتبر طریقے سے پتہ نہیں لگاتا ہے۔ کوئی بھی دکاندار جو دوسری صورت میں دعوی کرتا ہے وہ آپ کو ایک چیک باکس فروخت کر رہا ہے۔ وہ آپ کے خطرے کی ماڈلنگ اور آپ کے دخول ٹیسٹرز کے ساتھ رہتا ہے۔
ہر تلاش برابر نہیں ہے: ڈیٹا کی حساسیت اور زہریلے امتزاج
نتائج کی ایک فلیٹ لسٹ ایک غیر تصدیق شدہ ہیلتھ چیک اینڈ پوائنٹ کے ساتھ ایک غیر تصدیق شدہ اینڈ پوائنٹ کی طرح برتاؤ کرتی ہے جو کسٹمر کے ریکارڈ کو لوٹاتا ہے۔ یہ ایک جیسے مسئلہ نہیں ہیں، اور ترجیحی ماڈل جو انہیں یکساں طور پر اسکور کرتا ہے آپ کی ٹیموں کو فہرست کو نظر انداز کرنے کی تربیت دیتا ہے۔
Xygeni ڈیٹا کی درجہ بندی کرتا ہے جو ہر اینڈ پوائنٹ ہینڈل کرتا ہے، درخواست کے پیرامیٹرز اور جوابات میں PII، PCI اور PHI کو جھنڈا لگاتا ہے، اور جو اینڈ پوائنٹ کی تصدیق کی حالت کے ساتھ جوڑتا ہے۔
یہ ان نتائج کو بھی جوڑتا ہے جو ایک ہی اختتامی نقطہ پر اترتے ہیں اور جب وہ مرکب ہوتے ہیں تو شدت میں اضافہ ہوتا ہے۔ جواب میں PII کا لیک ہونا اپنے طور پر ایک سنگین تلاش ہے۔ ایک اختتامی نقطہ پر وہی لیک جس کے لیے کسی تصدیق کی ضرورت نہیں ہے، اہم ہے، اور پلیٹ فارم کسی کو دستی طور پر نوٹس لینے کے لیے کنکشن چھوڑنے کے بجائے اس طرح اسکور کرتا ہے۔
زومبی اور آرفن اینڈ پوائنٹس: کوڈ اور اسپیک کے درمیان بڑھے
چونکہ Xygeni آپ کے کوڈ اور آپ کے API تفصیلات کو ساتھ ساتھ پڑھتا ہے، یہ دیکھتا ہے کہ وہ کہاں متفق نہیں ہیں۔ یہ بڑھاؤ تین قابل شناخت نمونوں کے طور پر ظاہر ہوتا ہے:
- غیر دستاویزی اختتامی نکات۔ وہ کوڈ میں رہتے ہیں اور انہیں کبھی بھی قیاس میں شامل نہیں کیا گیا تھا۔
- زومبی اینڈ پوائنٹس۔ انہیں فرسودہ یا ریٹائرڈ کے بطور نشان زد کیا گیا ہے، اور وہ اب بھی قابل رسائی ہیں۔
- یتیم اختتامی مقامات۔ موجودہ ٹیم میں کوئی بھی ان کا مالک نہیں ہے۔
ان میں سے کوئی بھی صرف مخصوص انوینٹری میں ظاہر نہیں ہوتا ہے، کیونکہ قیاس بالکل وہی ہے جو ان میں غائب ہے۔
ثبوت جس پر آپ کارروائی کر سکتے ہیں، تفتیش کے لیے ٹکٹ نہیں۔
ہر فائنڈنگ پوائنٹس عین مطابق ذمہ دار ہینڈلر پر ہے: فائل، کلاس، طریقہ، اور مخصوص لائن جس نے خامی کو متعارف کرایا، اس کے ساتھ پیش کردہ ناگوار کوڈ کے ساتھ۔ ہر ایک میں اس کی شدت، اس کی OWASP API سیکیورٹی ٹاپ 10 کیٹیگری، اس کی CWE، اینڈ پوائنٹ کی تصدیق کی حالت، اور اس میں شامل ڈیٹا کی حساسیت کی درجہ بندی بھی ہوتی ہے۔
ایک ایسی تلاش جو صرف ایک اختتامی نقطہ کا نام رکھتی ہے ایک ڈویلپر کو کوڈ بیس کے ذریعے شکار بھیجتا ہے اس سے پہلے کہ وہ کسی بھی چیز کو ٹھیک کرنا شروع کر سکے۔ لائن کو نام دینے والی تلاش انہیں فوری طور پر ٹھیک کر دیتی ہے۔
فائنڈنگز JSON، CSV، Markdown اور SARIF 2.1.0 کے بطور برآمد ہوتی ہیں، لہذا وہ ٹی میں اترتے ہیں۔آپ کی ٹیمیں پہلے ہی کام کر رہی ہیں۔
ہینڈلر، لائن، اور کوڈ جس نے نمائش کو متعارف کرایا۔ تفتیش کے لیے ٹکٹ نہیں۔
یہ ایک پلیٹ فارم میں کیوں رہتا ہے، دوسرے کنسول میں نہیں۔
Xygeni API سیکیورٹی کے ساتھ ساتھ چلاتا ہے۔ SAST, SCA, راز کی حفاظت, IaC اور ڈاسٹ ایک ہی پلیٹ فارم کے اندر، اس کے ذریعے منسلک ASPM، اسے اپنے ساتھ ایک علیحدہ ٹول کے طور پر بھیجنے کے بجائے login اور اس کا اپنا بیک لاگ۔
یہ اہمیت رکھتا ہے کیونکہ جامد نتائج اور رن ٹائم نتائج ایک ہی اختتامی نقطہ کے بارے میں مختلف سوالات کے جوابات دیتے ہیں، اور وہ ایک دوسرے کے علاوہ زیادہ مفید ہیں۔ جامد آپ کو بتاتا ہے کہ ایک اختتامی نقطہ اس کے بھیجنے سے پہلے خطرناک ہے۔ DAST اس بات کی تصدیق کرتا ہے کہ ایک بار چلنے کے بعد اصل میں کیا قابل رسائی اور فائدہ مند ہے۔
اس کو دو کنسولز میں تقسیم کریں اور متعلقہ خطرہ دو غیر متعلقہ بیک لاگ بن جاتا ہے۔ کوئی بھی ان سے مصالحت نہیں کرتا ہے، اور اختتامی نقطہ جو غیر دستاویزی اور غیر مستند ہے، نہ ہی قطار میں بیٹھتا ہے۔
اپنی اصلی API حملے کی سطح دیکھیں۔ API سیکیورٹی بطور ایک دستیاب ہے۔ Enterprise Xygeni پلیٹ فارم میں شامل کریں، اور ایک اسکین آپ کے اپنے انفراسٹرکچر کے اندر آپ کے اپنے ذخیروں کے خلاف چلتا ہے۔
اکثر پوچھے جانے والے سوالات
کیا یہ بتا سکتا ہے کہ کون سے اینڈ پوائنٹس حساس ڈیٹا کو سنبھالتے ہیں؟
جی ہاں Xygeni اختتامی پیرامیٹرز اور ردعمل میں PII، PCI اور PHI کو جھنڈا دیتا ہے، اور اس درجہ بندی کو حقیقی نمائش کے ذریعے نتائج کی درجہ بندی کرنے کے لیے استعمال کرتا ہے۔
کیا یہ ہر ایک پر چل سکتا ہے۔ pull request?
جی ہاں انکریمنٹل اسکیننگ صرف ان ہی اینڈ پوائنٹس کا تجزیہ کرتی ہے جو تبدیل ہوتے ہیں، اور اس سے جو مینی فیسٹ تیار ہوتا ہے وہ انہی اینڈ پوائنٹس پر بعد کے DAST اسکین کو فوکس کر سکتا ہے، اس لیے جامد اور رن ٹائم ٹیسٹنگ اس کے مطابق رہتی ہے جو اصل میں منتقل ہوا ہے۔
کیا میرا کوڈ میرے ماحول کو چھوڑ دیتا ہے؟
نہیں۔ اسکینز آپ کے اپنے بنیادی ڈھانچے میں چلتے ہیں۔ صرف نتائج اپ لوڈ کیے جاتے ہیں، ٹرانزٹ اور آرام کے وقت محفوظ ہوتے ہیں۔
میں API سیکیورٹی کیسے حاصل کروں؟
API سیکیورٹی بطور ایک دستیاب ہے۔ Enterprise اضافہ ایک PoC کی درخواست کریں اور اس کا دائرہ آپ کے پاس رکھا جائے گا۔





