info[at]nsec.ir
(+۹۸)-۳۱-۳۳۹۱۵۳۳۶

به دنبال ضعف‌های امنیتی در پایتون

خلاصه: امروزه امنیت نرم‌افزار یک نگرانی مهم برای سازمان‌ها تلقی می‌شود، اما توجه به اشکالات امنیتی موجود در برنامه‌های خاص نسبتا کم می‌باشد. امروزه ابزار‌های بسیاری برای تست امنیت نرم‌افزار‌ها وجود دارند؛ ولی اکثر این ابزار‌ها برای کشف آسیب‌پذیری‌های موجود در کد برنامه کارآمد نیستند. هرچند که این برنامه‌ها نمی‌توانند جایگزین یک تحلیل‌گر متخصص کدنویسی امن شوند، اما می‌توانند دستیار مناسبی برای توسعه‌دهندگان باشند.

 

 

امروزه با استفاده از زبان پایتون، می‌توان با سهولت مدل‌های اولیه خوبی ساخت؛ ولی در زبان های دیگر این فرآیند نسبتا سخت و زمان‌گیر است. در زبان پایتون، هسته برنامه‌نویسی امن است؛ ولی مشکل این زبان استفاده زیاد از قسمت‌های آماده است که برخی از آن‌ها دارای باگ‌های امنیتی هستند.

آسیب‌پذیری‌های با ریسک بالای پایتون

در ادامه لیست آسیب‌پذیری‌هایی را که توسعه دهندگان زبان پایتون باید نسبت به آن‌ها حساس باشند بیان می‌کنیم.

تزریق SQL

در این نوع حمله، مهاجم با ایجاد تغییرات در دستوراتی که به زبان SQL نوشته شده باعث از کار افتادن پایگاه داده و یا تغییر و استخراج اطلاعات از پایگاه داده می‌شود.

CROSS SITE SCRIPTING ‪(XSS)‬

فرد حمله کننده با استفاده از ابزار های وب به دزدیدن کوکی‌ها، رمز‌های عبور و اسکریپت‌های موجود در برنامه اقدام می نماید.

CROSS SITE REQUEST FORGERY ‪(CSRF)‬

در این نوع حمله، فرد حمله کننده اقداماتی را تدارک می‌بیند که باعث می ‌شود کاربران عادی از مسیر اصلی برنامه منحرف شده و کار‌‌هایی را انجام دهند که دلخواه مهاجم است.

LDAP INJECTIONS

فرد حمله‌کننده با تغییر در دستورات LDAP اقدامات مخربانه انجام می‌دهد.

COMMAND INJECTIONS

مهاجم با استفاده از دستورات سیستم‌عامل، سعی در ایجاد تغییرات در وب سرور برنامه و به دست گرفتن کنترل سرور می‌نماید.

XPATHI

فرد حمله کننده با ارسال یک سری داده جعلی سعی در پیدا کردن فرمت و قالب داده های برنامه می نماید.

اسکنر‌های امنیتی:

ابزار های زیر برای کشف آسیب پذیری ها در زبان پایتون استفاده می‌شود:

ابزار تحلیل استاتیک Python Taint

با استفاده از این نوع ابزار می‌توان حملات از نوع XSS و SQLI را انجام داده و آسیب‌پذیری‌های مشاهده شده را رفع نمود.

ابزار اسکن سایت Tinfoil Security

این ابزار حفره های امنیتی موجود در وب سرور و برنامه را پیدا کرده و راهکار رفع آن‌ها را پیشنهاد می‌کند.

تحلیل استاتیک مبتنی بر AST با نام Bandit

این ابزار یک تحلیل کننده برنامه است که ریسک های رایج در این زبان را شناسایی می کند.

ابزار تحلیل کد ایستای Pyntch

به وسیله این ابزار می‌توان خطاهای موجود در زمان اجرا را تشخیص داد.

پویشگر امنیتیSpaghetti

با این ابزارمتن باز می‌توان حملات مختلف بروی فریم ورک های متفاوت را از جمله کوکی و ... انجام داد. این ابزار قابلیت تشخیص فایل‌های پیش‌فرض، پیکربندی‌های اشتباه و فایل‌های ناامن را دارد. این ابزار امکان تشخیص حملاتی همچون پنل ادمین، امنیت کوکی، فاش‌سازی اطلاعات حساس، تزریق SQL و بسیاری از حملات دیگر را دارد.

ابزار‌های بررسی ناهنجاری‌های امنیتی (RATS):

این ابزار‌ها با اسکن کد برنامه خطاهای مرتبط با امنیت را مورد توجه قرار می‌دهند. هرچند که نمی‌توانند جای بررسی متخصصین را بگیرند، اما می‌توانند دستیاری قدرت‌مند برای تشخیص آسیب‌پذیری‌ها و ضعف‌های امنیتی هستند.

موتور تشخیص باگ ویندوزی پایتون به نام PyDbgEng

به وسیله این ابزار می توان دیباگ را در حالت‌های user-mode و kernel-mode و با استفاده از نقاط توقف انجام داد. به کمک این ابزار می‌توان کارهایی همچون تزریق خطا، فازینگ و باز نمودن خودکار فایل‌های اجرایی را انجام داد.

ابزار python-ptrace

این ابزار دیباگ متن باز به عنوان یک دنبال کننده عمل می‌کند که درخواست‌های سیستم را در سیستم‌عامل‌های مختلف در دست می‌گیرد.

ابزار دیباگ برای تحلیل بدافزار و اکسپلویت با نام vdb/vtrace

این ابزار برای تحلیل پویا به کار می‌رود و یک پلت‌فرم برای تحلیل فریم‌ورک‌های پایتون ارایه می‌کند

ابزار تست نفوذ پایتون با نام Immunity Debuggr

این ابزار از اسکریپت‌های پایتون استفاده می‌نماید و دارای یک رابط گرافیکی و محیط خط فرمان است.