ایجاد سیستم تحلیل امنیتی کد منبع
بسیاری از حوادث امنیت اطلاعات نتیجه آسیبپذیریهای برنامهها هستند، از جمله مواردی که در داخل یا توسط شرکتهای ثالث توسعه یافتهاند. این به دلیل خطاهایی است که در مراحل مختلف تولید و عملکرد نرم افزار ایجاد می شود. در عین حال، طبق تحقیقاتInstitute IBM System Science ، هزینه تشخیص و رفع خطاها در نرم افزار پس از انتشار 4 تا 5 برابر بیشتر از مرحله توسعه است. اگر این سیستم در بخش صنعتی استفاده شود، هزینه می تواند تا 100 برابر بیشتر شود. به همین دلیل است که بهترین روش جهانی پیاده سازی توسعه ایمن و تحلیل کیفیت کد نرم افزار است.
یک ابزار ضروری فرآیند توسعه ایمن(S-SDLC)، سیستمی برای تحلیل امنیتی کد منبع است که تشخیص آسیب پذیری های برنامه و به روز رسانی آن را در مراحل اولیه ممکن می سازد. سپس با کمترین تلاش می توان آسیب پذیری ها را از بین برد. اگر برنامه ای توسط یک شرکت ثالث با دسترسی به کد منبع در حال توسعه است، امنیت برنامه و به روز رسانی های آن را می توان با استفاده از این سیستم تحلیل امنیتی کد منبع بررسی کرد.
بنابراین، داشتن چنین سیستمی خطرات حوادث امنیتی در حین کار نرم افزار را کاهش می دهد و به لطف تشخیص زودهنگام آن، هزینه های حذف آسیب پذیری را به میزان قابل توجهی کاهش می دهد. این شرکت قادر خواهد بود احتمال ضررهای مادی و نقض الزامات نظارتی را کاهش دهد.
اهداف این سیستم عبارتند از:
• بهبود کیفیت و سرعت بررسی های امنیتی کد منبع برنامه.
• کسب به موقع اطلاعات موثق در مورد آسیب پذیری ها به منظور اتخاذ تدابیری برای رفع آنها.
• شناسایی به موقع قابلیت های مشکوک اعلام نشده.
• کاهش هزینه حذف آسیب پذیری با شناسایی نقص های امنیتی در مراحل اولیه توسعه.
• عدم نیاز به استقرار برنامه به منظور تحلیل آن.
• جلوگیری از خسارات مالی ناشی از حملات به برنامه ها.
• توسعه ایمن مستمر برنامه های کاربردی وب.
• مطابق با استانداردهای امنیتی
وظایفی که توسط سیستم حل می شوند :
برای دستیابی به اهداف ذکر شده، سیستم وظایف زیر را انجام می دهد:
• متضمن کردن تحلیل در چرخه ساخت نرم افزار در خطوط لوله CI/CD.
• ارزیابی خودکار سطح امنیتی یک برنامه کاربردی بر اساس سیاستی که قوانین پردازش خودکار نتایج تحلیل را تعریف می کند.
• استفاده از ترکیبی از روش های استاتیک (SAST) و پویا (DAST) برای تحلیل امنیت کد منبع برنامه و به دست آوردن کامل ترین و مطمئن ترین اطلاعات در مورد آسیب پذیری ها (به حداقل رساندن موارد مثبت کاذب).
• اطلاعات مربوط به آسیب پذیری ها را می توان با موارد زیر غنی کرد:
o تحلیل فایل های پیکربندی برنامه
o تحلیل نسخه ها و آسیب پذیری های نرم افزار طرف ثالث در حال استفاده
o اسکن نرم افزارهای مستقر شده
• ایجاد یک اسکریپت برای بهره برداری از آسیب پذیری های شناسایی شده برای تایید حضور آنها
• رتبه بندی آسیب پذیری های شناسایی شده بر اساس شدت
• نمایش نمودارهای جریان داده برای آسیب پذیری های شناسایی شده
• ارائه توصیه هایی برای قرار دادن بهینه وظایف بررسی داده ها در کد
• ایجاد گزارش با شرح آسیب پذیری های انتخاب شده و گزارش های تحلیلی پویا بر اساس نتایج تحلیل منظم برنامه
برای تحلیل امنیت کد منبع می توان از سه رویکرد استفاده کرد:
SAST
تحلیل استاتیک می تواند برای جستجوی کدهایی که به طور بالقوه حاوی آسیب پذیری هستند استفاده شود. این رویکرد، تست استاتیک امنیت برنامه (SAST) نامیده می شود. عمق تحلیل به ابزار مورد استفاده بستگی دارد و ممکن است از شناسایی رفتار ماژول ها انفزادی تا تحلیل همه کد منبع موجود، از جمله کد کتابخانه های طرف ثالث، متفاوت باشد.
DAST
تحلیل پویا کد، تحلیل نرم افزاری است که بدون دسترسی به کد منبع انجام می شود. برنامه ها بر روی یک پردازنده واقعی اجرا می شوند. تحلیل دینامیکی که برای یافتن آسیبپذیریها انجام میشود، تست پویای امنیت برنامه (DAST) نامیده میشود. برای اینکه تحلیل پویا موثرتر باشد، یک برنامه آزمایش شده باید با داده های ورودی کافی برای پوشش کامل کد ارائه شود. یکی دیگر از الزامات به حداقل رساندن تأثیر ابزار تحلیل پویا بر اجرای برنامه (از جمله ویژگی های زمانی) است. مزایای DAST شامل استفاده آسان و عدم نیاز به دسترسی به بخش سرور برنامه است. یکی دیگر از مزایای قابل توجه استقلال نسبی از پلتفرم های توسعه، چارچوب ها و زبان های برنامه نویسی کاربردی است.
IAST
IAST (تست تعاملی امنیت برنامه ها) تحلیل امنیت برنامه با دسترسی به کد منبع و محیط اجرا است در تجزیه و تحلیل تعاملی، کد تا حدی اجرا می شود، که به تحلیلگر اجازه می دهد تا به طور همزمان نمایش ایستا کد و رفتار آن را برای داده های ورودی خاص مشاهده کند.
SCA
SCA (تحلیل ترکیب نرم افزار) تحلیل استفاده از نرم افزار منبع باز است. کتابخانه ها و مؤلفه های طرف ثالث بخشی جدایی ناپذیر از برنامه های کاربردی مدرن هستند. کنترل استفاده از آنها یک جنبه مهم امنیت برنامه است. PT AI بررسی هایی را در برابر پایگاه داده های آسیب پذیری های شناخته شده انجام می دهد تا در مورد نیاز به به روز رسانی نسخه یا خطرناک بودن نرم افزار طرف ثالث مطلع کند و در باره خطر استفاده از آن به اطلاع دهد.
سیستم تحلیل امنیتی کد منبع مبتنی براساس Positive Technologies Application Inspector است. PT AI از رویکردی استفاده می کند که مزایای SAST، DAST و IAST را ترکیب می کند و در عین حال نواقص آنها را کاهش می دهد. روش اصلی تحلیل امنیت کد منبع در PT AI SAST است که از استقرار یک برنامه جلوگیری می کند: فایل های کد منبع برای تحلیل کافی هستند. علاوه بر تحلیل ساده امضا، می توان از تفسیر انتزاعی و اجرای کد نمادی استفاده کرد. آنها شامل تجزیه و تحلیل جریان کنترل و جریان داده، و محاسبه شرایط لازم برای بهره برداری موفقیت آمیز از آسیب پذیری ها هستند. تحلیل آسیب پذیری بردارهای حمله احتمالی را تعیین می کند و اجرای کد جزئی را برای ارزیابی شانس حملات انجام می دهد. این را می توان با کمک IAST (تست تعاملی امنیت برنامه ها) به دست آورد و به کاهش تعداد موارد مثبت کاذب کمک می کند.
شکلهای زیر رابط PT AI را هنگام شناسایی آسیبپذیری (درپشتی) نشان میدهند که به مهاجم اجازه میدهد فایلهای دلخواه را از سرور بخواند، مشروط بر اینکه رمز عبوری میداند که با مجموع هش کدگذاری شده مطابقت دارد 161ebd7d45089b3446ee4e0d86dbcf92:
شکل 1. آسیب پذیری شناسایی شده در رابط PT AI نمایش داده شده است
هنگام تحلیل کد اصلی برنامه، زبان های مرتبط باید در نظر گرفته شوند. به عنوان مثال، در یک برنامه وب PHP، HTML، JavaScript و jQuery را می توان برای اجرای مرورگر و از SQL92، T-SQL یا PL/SQL برای دسترسی به پایگاه داده استفاده کرد. برای چنین مواردی، PT AI از گرامرهای جزیره ای برای بهینه سازی منابع هنگام ساخت نمودار درختی تجزیه برنامه با استفاده از زبان های اولیه و ثانویه استفاده می کند.
برای کاهش تعداد آسیبپذیریهای از دست رفته، PT AI میتواند امنیت پارامترها را در فایلهای پیکربندی وب سرور تحلیل کند. PT AI همچنین امنیت نرم افزارهای اختیاری طرف ثالث و کتابخانه های مورد استفاده در برنامه مورد تحلیل را بررسی می کند. برای بررسی برنامه های وب، PT AI می تواند DAST را به طور جداگانه اعمال کند، یعنی برنامه های مستقر را اسکن کند.
در حال حاضر، PT AI تحلیل کد منبع برنامه های کاربردی وب را انجام می دهد که در PHP، Java (شامل bytecode و Android applications )، C#، VB.NET (شامل MSIL و iOS/Android applications در پلتفرم Xamarin)، Objective-C، Swift، C/C++، Kotlin، Python، Go، JavaScript/TypeScript و database queries (SQL، T-SQL، PL/SQL).
معماری سیستم
سیستم تحلیل امنیتی کد منبع شامل اجزای زیر است:
• سرور PT AI مستقر شده بر روی یک پلتفرم سخت افزاری و نرم افزاری اختصاصی که روی لینوکس در کانتینرهای داکر اجرا می شود
• عامل اسکن PT AI مستقر شده روی یک پلتفرم سخت افزاری و نرم افزاری اختصاصی که روی سرور ویندوز اجرا می شود
• افزونه PT AI مستقر شده بر روی سرور ساخت کد موجود در زیرساخت DevOps مشتری
• رابط کاربری PT AI از طریق یک مرورگر در ایستگاه های کاری موجود کاربران سیستم در دسترس است
تعاملات بین اجزای سیستم و سیستم های اطلاعاتی مرتبط با مشتری در شکل زیر نشان داده شده است.
Auditor workstation
شکل 2. تعاملات بین اجزای PT AI و سیستم های اطلاعاتی مشتری
شکل زیر رابط پلاگین PT AI را هنگام جاسازی تحلیل کد در یک کار ساخت آزاد در سرور Jenkins CI نشان می دهد.
شکل 3. جاسازی تحلیل کد در یک کار ساخت سرور Jenkins
یک سناریوی عملیاتی احتمالی سیستم به شرح زیر است:
• توسعه دهنده تغییراتی را در کد منبع برنامه ایجاد می کند و آنها را در سرور مخزن کد منبع موجود منتشر می کند.
• سرور ساخت Jenkins کد منبع را از مخزن دانلود می کند و خط لوله ساخت را شروع می کند که یکی از مراحل آن تحلیل آسیب پذیری کد است.
• افزونه PT AI مستقر در سرور ساخت فایل های منبع را بسته بندی می کند، آنها را به سرور PT AI منتقل می کند و تحلیل کد را شروع می کند. این نه تنها کد منبع برنامه را تحلیل می کند، بلکه کتابخانه های طرف ثالث و فایل های پیکربندی در حال استفاده را نیز بررسی می کند. نتایج تحلیل عبارتند از:
o در پایگاه داده روی سرور PT AI ذخیره می شود. دسترسی به آنها از طریق کنسول PT AI، کنسول وب یا REST API است.
o فایل های گزارش HTML و JSON به دایرکتوری کار سرور ساخت منتقل می شود. سپس گزارش JSON می تواند برای پردازش خودکار نتایج تحلیل کد تولید شده در قالب خواندن توسط ماشین استفاده شود.
• علاوه بر این، PT AI می تواند در امتداد همان خطوط مثل Security Gate در راه حل SonarQube عمل کند. مدیر سیستم می تواند مجموعه ای از قوانین را تعریف کند که در صورت نقض آن، ساخت سرور CI متوقف می شود.
نمونه ای از این قوانین:
o آسیب پذیری های پرخطر در طول تحلیل برنامه شناسایی شدند.
o برای این آسیب پذیری ها بهره برداریهایی وجود دارد.
o اگر این آسیبپذیریها زودتر شناسایی نشدند، یا شناسایی شدند و نشان داده نشدند که مثبت کاذب هستند، باید ساخت متوقف شود.
• برای دسترسی به نتایج تحلیل، از کنسول PT AI نصب شده بر روی ایستگاه های کاری کاربر استفاده می شود. دسترسی به PT AI از طریق ارائه دهندگان SSO برای اطمینان از جداسازی مبتنی بر نقش حقوق دسترسی اختصاص داده شده توسط مدیران سیستم است.
• بسته به نقش تعیین شده، کنسول PT AI می تواند برای کنترل پارامترهای اسکن کد، پردازش نتایج تحلیل استفاده شود و وظایف برای توسعه دهندگان در سرور ردیاب اشکال تعیین کند.
مزیت این معماری این است که می توان آن را به راحتی در خطوط لوله ساخت برنامه های کاربردی موجود قرار داد: فقط باید مرحله ساخت را تعریف کرد (به عنوان مثال، پس از کامپایل)، و سپس تحلیل کد و افزونه PT AI را ادغام کرد.
سیستم همچنین می تواند در مراحل بعدی چرخه عمر توسعه استفاده شود، به عنوان مثال، در طول آزمایش بدون دسترسی به کد منبع با انجام DAST.
از آنجایی که تمام تعاملات با سرور PT AI از طریق REST API ارائه شده انجام می شود، مشتری می تواند از این API برای گسترش قابلیت های سیستم استفاده کند. برای این کار می توان از یک REST API با مشخصات Swagger استفاده کرد. یکی از راه های دسترسی به آن از طریق مرورگر وب است.
یکپارچه سازی با سیستم های دیگر
این سیستم به دانلود فایل های گزارش از PT AI در قالب XML اجازه می دهد تا به طور خودکار آنها را به Application Firewall Positive Technologies ، فایروال لایه برنامه وب، وارد کند و قوانین مسدودسازی ایجاد کند (وصله مجازی). این به طور خودکار ایجاد قوانینی را برای جلوگیری از حملات بهره برداری از آسیب پذیری های کشف شده توسط PT AI در زمانی که ایجاد تغییرات سریع در کد منبع یک برنامه در حال اجرا غیرممکن است، انجام می دهد.
بازخورد مشتری
گئورگی کراوچنکو، مدیر عامل سیستم های نرم بانکها (BSS): “کمک به موقع توسط کارشناسان PT SOC ، BSS را قادر ساخت تا بینش کاملی از بدافزار شناسایی شده در شبکه ما که در آن زمان در پایگاههای داده آنتی ویروس وجود نداشت، به دست آورد و توانایی آن را ارزیابی کند . برای گسترش در محیط ما و تعامل با سرورهای C2، دور زدن سیستم های حفاظتی در محل. متخصصان Positive Technologies درک دقیقی از مشکلات امنیتی مربوط به سیستم های بانکداری آنلاین نشان دادند.”
نیکولای آندریف، مدیر عامل Sberbank-AST: “من می خواهم از طرف Sberbank-AST به خاطر حرفه ای بودن که توسط کارشناسان Positive Technologies در طول آزمایش نفوذ آنها در سال 2016 نشان داده شده است تشکر کنم. ما ارزیابی عینی و مستقلی از شرکت خود به دست آوردیم. سطح فعلی حفاظت از سیستم در برابر حملات خارجی، که قطعاً کیفیت خدمات ما را بهبود می بخشد، Positive Technologies درک عمیقی از مسائل امنیتی این حوزه نشان داد و رویکردی عملی برای حل این مسائل اتخاذ کرد.»
سرگئی گورلنکو، معاون رئیس امنیت اطلاعات Gazprombank: ” Gazprombank یکی از سه بانک پیشرو روسیه است و دارای شبکه گسترده ای از شعب محلی است. هر شعبه در واقع یک واحد مستقل است که برای نیازهای منطقه خود سفارشی شده است. بنابراین ما نیاز به یک سیستم متمرکز برای نظارت بر امنیت دارایی های اطلاعاتی در تمام شعب بانک داشتیم که مشخصات هر یک را نیز در نظر گرفته باشد. کارشناسان Positive Technologies در طول کل پروژه در کنار ما بوده اند و برای کارمندان شعبه آموزش می دادند.”
ایوان مارشف، رئیس امنیت اطلاعات بانک UniCredit: “ایستگاههای کاری کارکنان یکی از آسیبپذیرترین بخشهای زیرساخت فناوری اطلاعات بانک هستند: آنها هدف آسانی برای حملات هکری ارائه میدهند. برای ما، نظارت مستمر بر انطباق ایستگاه کاری مهم است. استانداردهای فنی امنیت اطلاعات بانک مشکل در وجود سطوح ناهماهنگ امنیت در سراسر ایستگاه های کاری است مورد نیاربود که آنها به سطح امنیت بالا برسانند. پیاده سازی PT AI به ما امکان می دهد به آن دست یابیم.”
ویاچسلاو تودوروف، رئیس امنیت اطلاعات، Open Code: “امروزه، مسائل امنیت اطلاعات بسیار حاد است، به ویژه زمانی که فناوری های آنلاین عمیقاً در تجارت سازمان ها ادغام شده اند. از این نظر، تحلیل کد برنامه ها توسعه یافته برای خدمات آنلاین در حال تبدیل شدن به بخشی جدایی ناپذیر از یک رویکرد برای ساختن محصولات نرم افزاری با کیفیت و ایمن است. PT AI به دلیل مجموعه ویژگی های غنی آن انتخاب شد که به ما امکان می داد وظیفه توسعه نرم افزار ایمن را حل کنیم.”
ایگور بلیاکوف، مدیر ارشد امنیت اطلاعات بانک سن پترزبورگ: ” “با در نظر گرفتن ویژگی های حوزه خود، ما به طور کامل از اطلاعات مالی و محرمانه مشتریان خود که روزانه از برنامه های ما استفاده می کنند محافظت می کنیم. برای تحلیل امنیت برنامه های خود، از PT AI استفاده کردیم، زیرا مکانیزم های پیشرفته ای برای تشخیص دقیق و پیچیده آسیب پذیری دارد. PT AI قابلیت اطمینان خود را ثابت کرد: تعداد موارد مثبت کاذب حداقل بود، و نتایج به وضوح ارائه شده و توصیه های دقیق در مورد نحوه حذف آسیب پذیری ها به بهبود امنیت خدمات آنلاین ما کمک کرد. ما PT AI را به همه کسانی که می خواهند ابزاری قابل اعتماد و راحت برای تحلیل امنیت برنامه داشته باشند توصیه می کنیم.”
لئونید شرباکوف، رئیس امنیت اطلاعات Mediascope: “برنامه هایی که توسط یک تحلیلگر کد تایید نشده اند، فرصت هایی را برای حمله به منابع مهم ایجاد می کنند. حذف آسیب پذیری ها در مرحله توسعه به طور قابل توجهی محافظت از برنامه را بهبود می بخشد. استفاده از تحلیلگرهای کد با کیفیت بالا یک روش خوب است . استفاده از تحلیلگرهای کد باکیفیت، یک اقدام خوب و ضروری برای امنیت اطلاعات امروزی است که سلاحی اضافی در برابر حملات سایبری ایجاد میکند.»
الکسی پروخوروف، مدیر توسعه سفارشی RedSys: “ما بایستیم امنیت پنج سیستمی را که از جمله برای کار با داده های شخصی و تراکنش های پولی طراحی شده اند، آزمایش می کردیم. پس از تحلیل آنها با PT AI، گزارش مفصلی در مورد آسیب پذیری ها و شدت آنها و همچنین توصیه هایی در مورد نحوه رفع آنها دریافت کردیم. این گزارش و کمک متخصصان Positive Technologies در تفسیر و تحلیل نتایج اسکن به ما امکان داد تا سطح امنیت نرم افزار خود را به دقت تعیین کنیم. در نتیجه اقدامات مناسبی برای حذف خطرات کشف شده انجام دادیم. ما PT AI را توصیه می کنیم و مشتاقانه منتظر همکاری مثمر با Positive Technologies هستیم.”
مزایای رقابتی
مقایسه کلی با رقبا
محصول PTAI در بسیاری از جنبه های کلیدی تجزیه و تحلیل امنیت کد منبع نسبت به دو رقیب اصلی خود یعنی Checkmarx و SonarQube عملکرد بهتری ارائه میدهد ویژگیهای برجسته این محصول عبارتند از:
• پشتیبانی کامل از تحلیل پویا
• کاهش مثبت های کاذب برای آسیب پذیری های روز صفر
• تأیید تجربی آسیب پذیری ها
• شناسایی آسیب پذیری ها در کدهای مبهم
• اطلاع رسانی نقصهای پیکربندی
• پشتیبانی از خرید قانونی و ارائه خدمات پشتیبانی در ایران
این قابلیت ها PT AI را به گزینه ای مناسب برای سازمانهایی تبدیل میکند که به دنبال یک راهکار جامع برای تحلیل امنیت نرم افزار هستند در حالی که Checkmarx و SonarQube هر دو ابزارهای توانمندی هستند اما در برخی حوزه ها مانند تحلیل پویا کاهش مثبت های کاذب و تأیید تجربی آسیب پذیری ها محدودیتهایی دارند به علاوه اینکه با نصف نسخه های غیر قانونی نرم افزارهای رقبا به علت نبود نمایندگی رسمی در ایران کاربر در معرض آسیبهای جدی سایبری قرار میگیرد.
| Function | Checkmarx | SonarQube | PT AI |
| Static Application Security Testing (SAST) | ✅ | ✅ | ✅ |
| Static Testing of Binary Code | ✅ | ❌ | ✅ |
| Real-Time Dynamic Application Security Testing (DAST) | Partial | ❌ | ✅ |
| Pattern Matching for Known Vulnerabilities | ✅ | ✅ | ✅ |
| Data Flow Analysis | ✅ | ✅ | ✅ |
| Minimization of False Positives for Zero-Day Exploits | ❌ | ❌ | ✅ |
| Empirical Confirmation of Vulnerabilities | ❌ | ❌ | ✅ |
| Detection of Vulnerabilities in Obfuscated Code | ✅ | Partial | ✅ |
| Notification of Configuration Flaws | Partial | ❌ | ✅ |
| Detection in Third-Party Libraries | ✅ | ✅ | ✅ |
| Buffer Overflow Detection | ✅ | ✅ | ✅ |
| Detection of Dangerous API Calls | ✅ | Partial | ✅ |
| Programming Language Autodetection | ✅ | ✅ | Partial |
| Supported Development Environments | Eclipse IntelliJ | Git | Jenkins |
| Visual Studio | Bitbucket | TFS | |
| Atlassian Jira | Azure DevOps | Git | |
| SonarQube Plugin | Eclipse | Atlassian Jira | |
| Jenkins | IntelliJ IDEA | GitHub | |
| GitHub | Visual Studio | Atlassian Bitbucket | |
| Bamboo | VS Code | ||
| Maven | |||
| Atlassian Bitbucket | |||
| Azure DevOps | |||
| (TFS) | |||
| Git | |||
| TeamCity | |||
| Threadfix | |||
| Commands for Additional Scan Info | ✅ | ❌ | ✅ |
| Customizable Rules | ✅ | Partial | ✅ |
| WAF Virtual Patching | ✅ | ❌ | ✅ |
| API Availabilitiy | ✅ | ✅ | ✅ |
| Role-Based Access Control | ✅ | ✅ | ✅ |
| Reporting | ✅ | ❌ | ✅ |
| Support Availability | ❌ | ❌ | ✅ |
| Legal Purchase Availability | ❌ | ❌ | ✅ |
انواع آسیب پذیری
لیستی از خطرناک ترین و فوری ترین تهدیدات برای برنامه های کاربردی وب در وب سایت OWASP منتشر شده است.
PT AI تمام 10 آسیب پذیری برتر OWASP را شناسایی می کند.
Creation of arbitrary files Insecure cookie attribute: Do- main Application configuration er- rors
Arbitrary file removal Insecure cookie attribute: Path Leakage of debugging infor- mation
Arbitrary file modification Cross-site scripting Denial of service
Arbitrary file reading Hard-coded password Directory indexing
Arbitrary data deserialization HTTP response splitting Overly long user session
LDAP injection Insecure RSA padding Information leakage
Local file inclusion Insecure random number gen- erator Insufficient authentication
Object injection Insecure data transfer Logout flaws
OS commanding Open redirect Insecure data transfer
Remote code execution Log spoofing Obsolete functions
Unrestricted file upload Flaws in CORS policy restric- tions Use of reverse path in direc- tories
Resource injection Flaws in random number gen- erator parameters Remote command execution
Server-side request forgery (SSRF) Leakage of debugging informa- tion Arbitrary file connection
SQL injection Use of components with known vulnerabilities Response splitting
Arbitrary file upload Weak hashing algorithms Server configuration errors
XML external entity injection Weak encryption algorithms Session hijacking
Xpath injection Weak encryption algorithms: use of compromised algorithm Use of hashing without salt
XQuery injection XML external entity injection Use of cryptographic key stored in application code

