تست امنیت ممکن است برای هر فردی مفید باشد. ممکن است شرکت های بزرگ بخواهند با استفاده از یک سری ابزار امنیت بخش دیجیتال خود را تست کنند. حتی افرادی که شرکتی ندارند هم از تست نفوذ و تست امنیت استفاده می کنند. به عنوان مثال همه ی ما در معرض هک گوشی هستیم و از این جهت امنیت آن برای ما مهم است. بنابراین یک فرد هم می تواند از ابزار ها استفاده کند و تست امنیت را برای گوشی هوشمند خود یا رایانه شخصی انجام دهد. در این مقاله همه چیز را در مورد تست های امنیت به شما گفته می شود.
آنچه در این مقاله خواهید خواند :
تست امنیتی آسیب پذیر بودن نرم افزار در برابر حملات سایبری را بررسی می کند . همچنین تاثیر ورودی های مخرب یا غیرمنتظره را بر روی عملیات آن آزمایش می کند. تست امنیتی شواهدی را ارائه می دهد که سیستم ها و اطلاعات ایمن و قابل اعتماد هستند و ورودی های غیرمجاز را نمی پذیرند.
تست امنیتی نوعی تست غیرعملکردی است. بر خلاف تست عملکردی، که بر عملکرد صحیح عملکردهای نرم افزار تمرکز می کند (“آنچه” نرم افزار انجام می دهد). آزمایش غیرعملکردی بر روی این موضوع تمرکز می کند که آیا برنامه به درستی طراحی و پیکربندی شده است (“چگونه” آن را انجام می دهد).
شناسایی دارایی ها – چیزهایی که باید محافظت شوند، مانند برنامه های کاربردی نرم افزار و زیرساخت های محاسباتی.
شناسایی تهدیدات و آسیبپذیریها – فعالیتهایی که میتوانند به یک دارایی آسیب وارد کنند، یا ضعفهایی در یک یا چند دارایی که میتوانند توسط مهاجمان مورد سوء استفاده قرار گیرند.
شناسایی ریسک – هدف آزمایش امنیتی ارزیابی ریسکی است که تهدیدات یا آسیبپذیریهای خاص تأثیر منفی بر کسبوکار دارند. ریسک با شناسایی شدت یک تهدید یا آسیب پذیری و احتمال و تأثیر بهره برداری ارزیابی می شود.
اصلاح را انجام دهید – تست امنیتی فقط یک ارزیابی منفعلانه از دارایی ها نیست. راهنمای عملی برای اصلاح آسیبپذیریهای کشفشده ارائه میکند و میتواند تأیید کند که آسیبپذیریها با موفقیت برطرف شدهاند.
📚 📚 📚 بیشتر بخوانید : هر آنچه می خواهید درباره ی 👈 هک تلگرام با شماره 👉 بدانید .
هدف آزمایش امنیت اطمینان از اینکه سیستمها، برنامهها و دادههای یک سازمان از اصول امنیتی زیر حمایت میکنند انجام میشود:
محرمانه بودن – محدود کردن دسترسی به دسترسی حساس که توسط یک سیستم مدیریت می شود.
یکپارچگی – اطمینان از اینکه داده ها در طول چرخه عمر خود سازگار، دقیق و قابل اعتماد هستند و نمی توانند توسط نهادهای غیرمجاز اصلاح شوند.
احراز هویت – اطمینان از اینکه سیستمها یا دادههای حساس توسط مکانیزمی محافظت میشوند که هویت فردی را که به آنها دسترسی دارد تأیید میکند.
مجوز – حصول اطمینان از کنترل صحیح سیستم ها یا داده های حساس برای کاربران تأیید شده با توجه به نقش ها یا مجوزهای آنها.
در دسترس بودن – حصول اطمینان از اینکه سیستم ها یا داده های حیاتی در صورت نیاز برای کاربرانشان در دسترس هستند.
عدم انکار – با تبادل اطلاعات احراز هویت با یک مهر زمانی قابل اثبات، تضمین میکند که دادههای ارسال شده یا دریافتی نمیتوانند رد شوند.
تست نفوذ فرآیند تحریک حملات سایبری واقعی علیه یک برنامه کاربردی، نرم افزار، سیستم یا شبکه تحت شرایط ایمن است. این می تواند به ارزیابی چگونگی اندازه گیری اقدامات امنیتی موجود در یک حمله واقعی کمک کند. مهمتر از همه، تست نفوذ می تواند آسیب پذیری های ناشناخته، از جمله تهدیدات روز صفر و آسیب پذیری های منطق تجاری را پیدا کند.
تست نفوذ به طور سنتی به صورت دستی توسط یک متخصص امنیتی مورد اعتماد و تایید شده به نام هکر اخلاقی انجام می شد. هکر تحت یک محدوده توافق شده کار می کند . تلاش می کند تا سیستم های یک شرکت را به شیوه ای کنترل شده و بدون ایجاد آسیب نقض کند. در سالهای اخیر، ابزارهای تست نفوذ خودکار به سازمانها کمک میکنند. تا با هزینه کمتر و با فرکانس تست بالاتر، به مزایای مشابهی دست یابند.
تست امنیت برنامه روشهایی را توصیف میکند که سازمانها میتوانند برای یافتن و حذف آسیبپذیریها در برنامههای نرمافزاری استفاده کنند. این روش ها شامل آزمایش، تجزیه و تحلیل و گزارش وضعیت امنیتی یک برنامه نرم افزاری در طول چرخه عمر توسعه نرم افزار (SDLC) است.
هدف اصلی AST جلوگیری از آسیبپذیریهای نرمافزاری قبل از عرضه برنامهها به بازار است . در صورت عدم موفقیت، شناسایی سریع و اصلاح آنها در تولید است. AST موفقیت آمیز منجر به کد منبع قوی تر و ایمن تر، دید بیشتر نسبت به مسائل امنیتی برنامه و محافظت بهتر در برابر تهدیدات داخلی و خارجی می شود.
هدف از تست امنیت برنامه های کاربردی وب این است که مشخص شود. آیا یک برنامه وب در برابر حمله آسیب پذیر است یا خیر. انواع تکنیک های خودکار و دستی را پوشش می دهد.
هدف آزمایش نفوذ برنامه وب جمع آوری اطلاعات در مورد یک برنامه وب، کشف آسیب پذیری ها یا نقص های سیستم، بررسی موفقیت در بهره برداری از این نقص ها یا آسیب پذیری ها و ارزیابی خطر آسیب پذیری های برنامه وب است.
پروژه Open Web Application Security Project (OWASP) جامعه ای است. که به کشف و گزارش آسیب پذیری های امنیتی در برنامه های کاربردی وب اختصاص داده شده است.
📚 📚 📚 بیشتر بخوانید : هک اینستاگرام بدون نرم افزار و از راه دور
تست امنیت API به شناسایی آسیبپذیریها در رابطهای برنامهنویسی کاربردی (API) و سرویسهای وب کمک میکند . به توسعهدهندگان در رفع این آسیبپذیریها کمک میکند. API ها دسترسی به داده های حساس را فراهم می کنند و مهاجمان می توانند از آنها به عنوان نقطه ورود به سیستم های داخلی استفاده کنند. آزمایش دقیق و منظم APIها می تواند آنها را از دسترسی و سوء استفاده غیرمجاز محافظت کند.
APIها به ویژه در برابر تهدیداتی مانند حملات Man in Middle (MiTM) آسیب پذیر هستند. که در آن مهاجمان می توانند ارتباطات API را استراق سمع کنند . داده ها یا اعتبارنامه ها را سرقت کنند، تزریق های API، که در آن مهاجمان می توانند کد مخرب را به سیستم های داخلی تزریق کنند. انکار سرویس (DoS) ) که در آن مهاجمان APIها را با ترافیک جعلی سرازیر می کنند تا خدمات را به کاربران قانونی رد کنند.
برای کاهش این تهدیدات، یک API باید تأیید شود که دارای احراز هویت قوی درخواستهای کاربر، مجوز کاربران مطابق با اصل حداقل امتیاز، رمزگذاری تمام ارتباطات با استفاده از SSL/TLS، و سالمسازی ورودیهای کاربر برای جلوگیری از تزریق کد و دستکاری باشد. .
مدیریت آسیبپذیری یک فرآیند مستمر است که سازمان را قادر میسازد تا آسیبپذیریهای امنیتی را در نقاط پایانی، بار کاری و شبکهها شناسایی، ارزیابی، گزارش، مدیریت و اصلاح کند. تیمهای امنیتی معمولاً از ابزارهای اسکن آسیبپذیری برای شناسایی آسیبپذیریها و پیادهسازی فرآیندهای دستی یا خودکار برای رفع آنها استفاده میکنند.
یک برنامه مدیریت آسیبپذیری قوی از هوش تهدید استفاده میکند . از دانش عملیات فناوری اطلاعات برای درک تأثیر واقعی آسیبپذیریها، اولویتبندی ریسکها و اصلاح آسیبپذیریهای با اولویت بالا در سریعترین زمان ممکن استفاده میکند.
اسکن امنیتی، همچنین به عنوان اسکن پیکربندی شناخته می شود. فرآیند شناسایی پیکربندی نادرست نرم افزار، شبکه و سایر سیستم های محاسباتی است. این نوع اسکن معمولاً سیستم ها را در برابر فهرستی از بهترین شیوه ها که توسط سازمان های تحقیقاتی یا استانداردهای انطباق مشخص شده است، بررسی می کند.
ابزارهای اسکن پیکربندی خودکار، پیکربندیهای نادرست را شناسایی میکنند. گزارشی با جزئیات بیشتر در مورد هر پیکربندی نادرست، همراه با پیشنهادهایی برای رفع آنها ارائه میدهند.
ممیزی امنیتی فرآیندی ساختاریافته برای بازبینی/ممیزی یک برنامه/نرم افزار بر اساس یک استاندارد تعریف شده است. ممیزی ها معمولاً شامل بررسی کدها یا معماری ها در پرتو الزامات امنیتی، تجزیه و تحلیل شکاف های امنیتی. و ارزیابی وضعیت امنیتی پیکربندی های سخت افزاری، سیستم عامل ها و شیوه های سازمانی است. همچنین انطباق با مقررات و استانداردهای انطباق را ارزیابی می کند.
ارزیابی ریسک به یک سازمان اجازه میدهد تا ریسکهای امنیتی را که داراییهای حیاتی تجاری خود با آن مواجه است شناسایی، تجزیه و تحلیل و طبقهبندی کند. ارزیابی ریسک می تواند به درک مهم ترین تهدیدات برای زیرساخت یک سازمان کمک کند . اصلاح سیستم ها را در اولویت قرار دهد. همچنین می تواند به برنامه ریزی بلندمدت و بودجه بندی سرمایه گذاری های امنیتی کمک کند.
ارزیابی وضعیت امنیتی اسکنهای امنیتی، هک اخلاقی و ارزیابی ریسک را ترکیب میکند. تا نه تنها خطرات پیش روی یک سازمان، بلکه کنترلهای امنیتی فعلی آن و میزان مؤثر بودن آنها را نیز شناسایی کند. می تواند شکاف های موجود در وضعیت امنیتی فعلی را شناسایی کند . تغییرات یا بهبودهایی را توصیه کند که امنیت دارایی های محافظت شده را بهبود می بخشد.
تست امنیتی برای سیستم های احراز هویت باید شامل موارد زیر باشد:
قوانین رمز عبور را بررسی کنید — سطح امنیتی رمز عبور و کیفیت مورد نیاز سایت را آزمایش کنید.
آسیب پذیری های شمارش نام کاربری را شناسایی کنید – بررسی کنید که آیا خطا بسته به وجود کاربر متفاوت است یا خیر.
تست قدرت رمز عبور – حداقل مورد نیاز برای ایجاد رمز عبور.
آسیبپذیریهای بازیابی حساب را شناسایی کنید – بررسی کنید که آیا حملات میتوانند حسابها را بازیابی کنند (یعنی با تغییر ایمیل یا رمز عبور).
قدرت نام کاربری را بررسی کنید – مطمئن شوید نامهای کاربری منحصر به فرد هستند.
شناسایی احراز هویت باز با شکست – بررسی کنید که آیا سیستم حتی زمانی که احراز هویت با شکست مواجه میشود، دسترسی باز را فراهم میکند یا خیر.
بررسی محدوده کوکی – بررسی کنید که آیا کوکی ها در دامنه دامنه قرار دارند یا مهاجمان می توانند آنها را بدزدند.
تست اعتبار سنجی ورودی باید شامل موارد زیر باشد:
پارامترهای درخواست فاز – پارامترهای منعکس شده را بررسی کنید و تغییر مسیر را باز کنید.
آسیب پذیری های تزریق SQL را شناسایی کنید – بررسی کنید که آیا سیستم پارامترها را به عنوان SQL مدیریت می کند یا خیر.
آسیبپذیریهای تزریق SOAP را شناسایی کنید – بررسی کنید که آیا برنامه به SOAP پاسخ میدهد یا خیر.
آسیبپذیریهای تزریق LDAP را شناسایی کنید – آزمایشی برای عدم پاکسازی ورودیها.
آسیبپذیریهای تزریق XML را شناسایی کنید – بررسی کنید که آیا XML تزریق شده روی برنامه تأثیر میگذارد یا خیر.
آسیبپذیریهای تزریق XXE را شناسایی کنید – بررسی کنید که آیا مهاجمان میتوانند موجودیتهای خارجی را تزریق کنند.
این موارد تست برای تست امنیتی مهم هستند.
و نیاز به مداخله دستی دارند (با توجه به منحصربفرد بودن منطق هر برنامه، برای خودکارسازی آنها بسیار پیچیده هستند). آزمایش ها باید شامل موارد زیر باشد:
سطح حمله منطقی برنامه را تعیین کنید – برنامه کاربردی چه می کند.
بررسی انتقال داده از مشتریان – ببینید آیا انتقال اطلاعات بین برنامه ها متفاوت است یا خیر.
اعتبار سنجی ورودی را در سمت سرویس گیرنده شناسایی کنید – بررسی کنید که برنامه منطق خود را در کجا قرار می دهد.
اشکالات منطقی در فرآیندهای چند مرحله ای را شناسایی کنید – بررسی کنید که آیا دور زدن مراحل امکان پذیر است یا خیر.
بررسی کنترل ناقص ورودی – بررسی کنید که آیا برنامه ورودی معیوب را پردازش می کند.
روابط اعتماد را بررسی کنید – برای مثال، اگر کاربران می توانند به عملکردهای مدیریت دسترسی داشته باشند.
تستهای متفرقه دیگری برای کمک به اطمینان از امنیت برنامه و شناسایی آسیبپذیریهای زیر وجود دارد:
آسیب پذیری های DOM مانند XSS.
عدم وجود هدرهای امنیتی HTTP.
آسیب پذیری های حریم خصوصی محلی
کوکی های ضعیف و ماندگار.
رمزهای SSL ضعیف
پارامترهای URL حاوی اطلاعات حساس
در تست جعبه سیاه، تستر امنیتی امنیت سیستم را از بیرون ارزیابی میکند، بدون اینکه از فرآیندهای داخلی که پاسخها را ایجاد میکنند بدانند. جعبه سیاه یک سیستم مات است، به این معنی که فقط ورودی ها و خروجی ها قابل مشاهده هستند. در برخی موارد، تستر ساختار داخلی سیستم را نادیده می گیرد، حتی اگر امکان درک آن وجود داشته باشد.
تست جعبه سیاه جدایی بین تستر و سازنده کد را تضمین می کند. این آزمایشگر را مجبور میکند که دیدگاه یک فرد خارجی را برای آزمایش نرمافزار اتخاذ کند، همانطور که مهاجم ممکن است به آن نزدیک شود. جدایی اجتماعی و فنی بین آزمون و فرآیند توسعه نرمافزار، آزمایشکننده را قادر میسازد تا سازنده را به چالش بکشد – برای مثال، با دستکاری برنامه به گونهای که توسعهدهنده در نظر نگرفته است.
در تست جعبه سفید، آزمایشکننده موارد تست و تستها را بر اساس کد منبع نرمافزار طراحی میکند. آزمایشکننده ساختار کد را میداند و به جای آزمایش جعبه سیاه یا آزمایش جعبه خاکستری (جایی که آزمایشکننده دانش محدودی از ساختار کد دارد) میداند و درک میکند. به دلیل این قابلیت مشاهده به عنوان تست جعبه شفاف، شفاف یا شیشه ای نیز شناخته می شود.
تکنیک تست جعبه سفید بر روی کارکردهای داخلی برنامه و اجزای نرم افزاری برای آزمایش طراحی و ساختار آن از داخل تمرکز دارد. تیمهای آزمایش میتوانند این تکنیک را برای تستهای سیستم، ادغام و واحد اعمال کنند.
تست جعبه خاکستری ترکیبی از تست جعبه سفید و جعبه سیاه است – تست جعبه سیاه شامل یک شی آزمایشی با ساختار داخلی ناشناخته است. تست جعبه سفید مستلزم آن است که ساختار داخلی برنامه به طور کامل شناخته شود. در تست جعبه خاکستری، تستر نمای جزئی از ساختار داخلی و عملکرد سیستم دارد.
آزمایشکنندگان میتوانند آزمایشهای خود را بر اساس درک محدودی از معماری و کد زیربنایی برنامه قرار دهند. بنابراین جسم آزمایشی نیمه شفاف یا “خاکستری” است. این رویکرد تکنیک های تست جعبه سفید و جعبه سیاه را برای استخراج بهترین ها از هر دو ترکیب می کند. آزمایشکنندههای جعبه خاکستری، هدفگذاری کد تست جعبه سفید را با رویکردهای متنوع و نوآورانه تست جعبه سیاه، مانند تست عملکردی و رگرسیون، ادغام میکنند. تسترها می توانند به طور همزمان سطح کاربر و عملکرد داخلی نرم افزار را ارزیابی کنند.
در اینجا چند روش برتر وجود دارد که می تواند به شما در اجرای تست امنیتی و اجرای موفقیت آمیز آن کمک کند.
جابجایی تست امنیتی به سمت چپ میتواند به توسعهدهندگان کمک کند. تا مسائل امنیتی را درک کنند و بهترین شیوههای امنیتی را در زمانی که نرمافزار در حال توسعه است پیادهسازی کنند. همچنین میتواند به آزمایشکنندگان کمک کند. تا مشکلات امنیتی را زودتر از زمان تولید نرمافزار پیدا کنند. در نهایت، تیمهای عملیاتی و امنیتی میتوانند از تست امنیتی در تولید برای کشف مشکلات و همکاری با تیمهای دیگر برای رفع آنها استفاده کنند.
آزمایش هک و امنیت معمولاً روی تهدیدات خارجی مانند ورودی های کاربر از فرم های وب در دسترس عموم تمرکز می کند. با این حال، به طور فزاینده ای رایج است که مهاجمان از نقاط ضعف در سیستم های داخلی سوء استفاده کنند. باید از تست امنیتی استفاده کنید. تا بررسی کنید که رابط های امنی بین سیستم های داخلی وجود دارد . اینکه تهدیدات داخلی یا حساب های در معرض خطر نمی توانند برای افزایش امتیازات استفاده شوند. این سازمان شما را به یک مدل امنیتی اعتماد صفر نزدیکتر می کند.
در حالی که انجام تستهای امنیتی دستی، مانند تستهای نفوذ کامل یا ممیزیهای امنیتی مهم است، سازمانها باید تستهای امنیتی را خودکار کرده و آن را به طور مکرر انجام دهند . ترجیحاً با هر تغییری در برنامهها یا زیرساختهای محاسباتی.
برنامههای کاربردی سازمانی از تعداد زیادی مؤلفه استفاده میکنند. که ممکن است به بهروزرسانیهای امنیتی نیاز داشته باشند یا دیگر توسط فروشندگان نرمافزار پشتیبانی نشوند. سیستمهای حیاتی کسبوکار را اغلب آزمایش کنید، به مسائل امنیتی که بر آنها تأثیر میگذارد اولویت بالایی میدهند و فوراً منابع را برای رفع آنها اختصاص میدهند.
سازمانها باید تستهای امنیتی را برای کدهای شخص ثالث مورد استفاده در برنامههایشان، بهویژه اجزای منبع باز، اتخاذ کنند.
اعتماد به نرم افزارهای تجاری غیرعاقلانه است . به همان اندازه مهم است که مؤلفه های منبع باز را آزمایش کنید، که ممکن است نیاز به به روز رسانی داشته باشند. یا ممکن است به درستی ایمن نباشند. شما باید کد شخص ثالث را مانند کد خود اسکن و اصلاح کنید و به روز رسانی، اصلاح یا جایگزینی اجزای ناامن را در اولویت قرار دهید.
Bright Security به رفع کمبود پرسنل امنیتی کمک میکند. تیمهای AppSec را قادر میسازد تا برای تستهای امنیتی حکمرانی کنند و هر توسعهدهندهای را قادر میسازد تا تستهای امنیتی خود را اجرا کند.
Brightem به توسعه دهندگان این امکان را می دهد که یک تست امنیتی خودکار پویا (DAST) را زودتر از همیشه در فرآیند تست واحد خود بگنجانند. تا بتوانند نگرانی های امنیتی را به عنوان بخشی از فرآیند توسعه چابک خود حل کنند. پلت فرم DAST Bright به طور کامل و یکپارچه در SDLC ادغام می شود:
نتایج آزمایش در اختیار CISO و تیم امنیتی قرار میگیرد و آسیبپذیریهای یافت شده و اصلاح شده را کاملاً نشان میدهد.
بلیط ها به طور خودکار برای توسعه دهندگان در سیستم ردیابی اشکال باز می شوند تا بتوانند به سرعت رفع شوند
هر یافته امنیتی به طور خودکار تأیید می شود و موارد مثبت کاذب و نیاز به اعتبار سنجی دستی را حذف می کند
Bright Security میتواند هر هدفی را اسکن کند. اعم از برنامههای وب، APIها (REST/SOAP/GraphQL) و سوکتهای وب برای کمک به تقویت DevSecOps و دستیابی به انطباق مقرراتی با گزارشهای عملی رایگان و مثبت نادرست ما از آسیبپذیریها. علاوه بر این، راه حل DAST مبتنی بر ML ما یک راه حل خودکار برای شناسایی آسیب پذیری های منطق تجاری ارائه می دهد.
تست امنیتی مهم ترین آزمایش برای یک برنامه است . بررسی می کند که آیا داده های محرمانه محرمانه باقی می مانند یا خیر. در این نوع آزمایش، تستر نقش مهاجم را ایفا می کند و در اطراف سیستم بازی می کند. تا باگ های مربوط به امنیت را پیدا کند. تست امنیت در مهندسی نرم افزار برای محافظت از داده ها به هر وسیله ای بسیار مهم است.