Code property graph
کمپیوٹر سائنس میں، کوڈ پراپرٹی گراف (سی پی جی) ایک کمپیوٹر پروگرام کی نمائندگی ہے جو پراپرٹی گراف میں نحو ڈھانچے، کنٹرول فلو، اور ڈیٹا انحصار پر قبضہ کرتی ہے۔ یہ تصور اصل میں سی اور سی + + سسٹم کوڈ میں حفاظتی خطرات کی نشاندہی کرنے کے لیے متعارف کرایا گیا تھا، لیکن اس کے بعد سے اسے ویب ایپلی کیشنز، کلاؤڈ تعیناتی اور سمارٹ معاہدوں کا تجزیہ کرنے کے لیے استعمال کیا گیا ہے۔ کمزوری کی دریافت کے علاوہ، کوڈ پراپرٹی گراف کوڈ کلون کا پتہ لگانے، حملے کی سطح کا پتہ لگانے، استحصال نسل، کوڈ کی جانچ کی پیمائش، اور حفاظتی پیچوں کی بیک پورٹنگ میں ایپلی کیشنز تلاش کرتے ہیں۔ تعریف کسی پروگرام کا کوڈ پراپرٹی گراف اس پروگرام کی گراف کی نمائندگی ہے جو اس کے تجریدی نحو درختوں (اے ایس ٹی)، کنٹرول فلو گراف (سی ایف جی) اور پروگرام انحصار گراف (پی ڈی جی) کو بیان اور پیش گوئی نوڈس میں ضم کرکے حاصل کیا جاتا ہے۔ نتیجے میں گراف ایک پراپرٹی گراف ہے، جو گراف ڈیٹا بیس جیسے Neo4j، जऩवरि گراف اور اورینٹ ڈی بی کا بنیادی گراف ماڈل ہے جہاں ڈیٹا نوڈس اور کناروں میں کلیدی قدر کے جوڑوں کے طور پر محفوظ کیا جاتا ہے۔ درحقیقت، کوڈ پراپرٹی گراف کو گراف ڈیٹا بیس میں محفوظ کیا جا سکتا ہے اور گراف استفسار کی زبانوں کا استعمال کرتے ہوئے پوچھ گچھ کی جا سکتی ہے۔ مثال سی پروگرام کے فنکشن پر غور کریں: وایڈ فو () {انٹ ایکس = سورس () ؛ اگر (x <MAX) {انٹ وائی = 2 * ایکس ؛ سنک (وائی) ؛} فنکشن کا کوڈ پراپرٹی گراف اس کے تجریدی نحو درخت، کنٹرول فلو گراف، اور بیانات پر پروگرام انحصار گراف کو ضم کرکے حاصل کیا جاتا ہے اور جیسا کہ درج ذیل اعداد و شمار میں دیکھا گیا ہے: نفاذ جورن سی پی جی۔ اصل کوڈ پراپرٹی گراف کو C/C + + کے لیے 2013 میں گوٹنگن یونیورسٹی میں اوپن سورس کوڈ تجزیہ ٹول جورن کے حصے کے طور پر نافذ کیا گیا تھا۔ اس اصل ورژن کو بند کر دیا گیا ہے اور اوپن سورس جورن پروجیکٹ نے اس کی جگہ لے لی ہے، جو متعدد پروگرامنگ زبانوں پر لاگو ایک رسمی کوڈ پراپرٹی گراف کی تفصیلات فراہم کرتا ہے۔ یہ پروجیکٹ C/C + +، جاوا، جاوا بائٹ کوڈ، کوٹلن، ازگر، جاوا اسکرپٹ، ٹائپ اسکرپٹ، LLVM بٹ کوڈ، اور x86 بائنری (گھیدرا ڈائیسیبلر کے ذریعے) کے لیے کوڈ پراپرٹی گراف جنریٹر فراہم کرتا ہے۔ پلیوم سی پی جی۔ 2020 میں اسٹیلنبوش یونیورسٹی میں تیار کیا گیا اور ایمیزون سائنس کے زیر اہتمام، اوپن سورس پلیوم پروجیکٹ جاوا بائٹ کوڈ کے لیے ایک کوڈ پراپرٹی گراف فراہم کرتا ہے جو جورن پروجیکٹ کے فراہم کردہ کوڈ پراپرٹی گراف کی تفصیلات کے مطابق ہے۔ دونوں منصوبے 2021 میں ضم ہو گئے۔ فرینہوفر اے آئی ایس ای سی سی پی جی۔ یہ سی/سی + +، جاوا، گولانگ، اور ازگر کے لیے اوپن سورس کوڈ پراپرٹی گراف جنریٹر فراہم کرتا ہے، حالانکہ یہ رسمی اسکیما تفصیلات کے بغیر ہے۔ یہ کلاؤڈ پراپرٹی گراف بھی فراہم کرتا ہے، جو کوڈ پراپرٹی گراف تصور کی توسیع ہے جو کلاؤڈ تعیناتی کی تفصیلات کا نمونہ ہے۔ ایل ایل وی ایم کے لیے گالوئس کا سی پی جی۔ گالوئس انکارپوریٹڈ ایل ایل وی ایم مرتب پر مبنی کوڈ پراپرٹی گراف فراہم کرتا ہے۔ گراف تالیف کے مختلف مراحل پر کوڈ کی نمائندگی کرتا ہے اور ان نمائندوں کے درمیان نقشہ سازی کرتا ہے۔ یہ ایک کسٹم اسکیما کی پیروی کرتا ہے جس کی وضاحت اس کے دستاویزات میں کی گئی ہے۔ کوڈ پراپرٹی گراف پر مشین لرننگ کوڈ پراپرٹی گراف کمزوری کی دریافت کے لیے مشین لرننگ پر مبنی کئی طریقوں کی بنیاد فراہم کرتے ہیں۔ خاص طور پر، گراف نیورل نیٹ ورک (جی این این) کو کمزوری کا پتہ لگانے والے آلات حاصل کرنے کے لیے استعمال کیا گیا ہے۔ تجریدی نحو درخت (اے ایس ٹی) کنٹرول فلو گراف (سی ایف جی) پروگرام انحصار گراف (پی ڈی جی) گراف ڈیٹا بیس حوالہ جات کمپیوٹر سیکیورٹی سافٹ ویئر ایپلی کیشن مخصوص گراف بھی دیکھیں۔