
Finding and Exploiting Security Flaws
این کتاب یک راهنمای کاملاً کاربردی و تخصصی برای کشف و بهرهبرداری از رخنههای امنیتی در برنامههای کاربردی تحت وب است. منظور از برنامههای کاربردی تحت وب، سیستمهایی هستند که برای ارتباط با سرور وب، از مرورگرها استفاده میکنند. در این اثر، طیف گستردهای از فناوریهای مختلف مانند پایگاههای داده، سیستمهای مدیریت فایل و خدمات وب مورد بررسی قرار میگیرند؛ اما این بررسی تنها در چارچوبی انجام میشود که این فناوریها توسط برنامههای تحت وب به کار گرفته شده باشند.
اگر هدف شما یادگیری اسکن پورتها، حمله به دیوارههای آتش یا نفوذ به سرورها از روشهای دیگر است، این کتاب برای شما مناسب نیست. اما اگر میخواهید بدانید که چگونه میتوان به یک برنامه تحت وب نفوذ کرد، دادههای حساس را به دست آورد و اقدامات غیرمجاز انجام داد، این کتاب دقیقاً همان چیزی است که به آن نیاز دارید. موضوعات مطرح شده در این زمینه به قدری جذاب و گسترده هستند که نیازی به ورود به حوزههای دیگر امنیت شبکه نخواهد بود.
تمرکز این اثر به شدت بر روی مفاهیم عملی و کاربردی است. اگرچه پیشزمینه و تئوری کافی برای درک کامل آسیبپذیریهای موجود در برنامههای وب ارائه شده است، اما دغدغه اصلی، آموزش وظایف و تکنیکهایی است که برای نفوذ به این سیستمها باید بر آنها مسلط شوید. در سراسر این متن، مراحل دقیقی که باید برای تشخیص هر نوع آسیبپذیری و نحوه بهرهبرداری از آن طی کنید، به روشنی بیان شده است. همچنین، مجموعه غنی از مثالهای واقعی که حاصل سالها تجربه نویسندگان است، نشان میدهد که چگونه انواع مختلف رخنههای امنیتی در برنامههای وب امروزی خود را نشان میدهند.
آگاهی امنیتی همواره مانند یک شمشیر دو لبه عمل میکند. همانطور که توسعهدهندگان میتوانند از درک روشهای مهاجمان بهرهمند شوند، متخصصین تست نفوذ نیز میتوانند از دانستن نحوه دفاع موثر برنامهها سود ببرند. علاوه بر توصیف آسیبپذیریهای امنیتی و تکنیکهای حمله، اقدامات متقابل و راهکارهای دفاعی نیز به تفصیل شرح داده شدهاند تا برنامهها بتوانند در برابر مهاجمان مقاومت کنند. اگر شما آزمونهای نفوذ برنامههای وب را انجام میدهید، این اطلاعات به شما کمک میکند تا مشاورههای اصلاحی با کیفیت بالا را به صاحبان سیستمهایی که بررسی میکنید، ارائه دهید.
مخاطب اصلی این اثر تحلیلی، هر فردی است که علاقه شخصی یا حرفهای به بررسی و ارزیابی امنیتی برنامههای وب دارد. همچنین، مطالعه این متن به تمام افرادی که مسئولیت توسعه و مدیریت برنامههای تحت وب را بر عهده دارند، به شدت توصیه میشود. شناخت نحوه عملکرد مهاجمان، به شما کمک میکند تا سیستمهای خود را در برابر آنها ایمن سازید.
فرض بر این است که خواننده با مفاهیم اولیه امنیتی مانند ورود به سیستم و کنترل دسترسی آشنایی دارد و درک پایهای از فناوریهای اصلی وب مانند مرورگرها، سرورهای وب و پروتکلهای ارتباطی دارد. با این حال، هرگونه نقص در دانش فعلی شما در این زمینهها، به راحتی از طریق توضیحات ارائه شده در همین کتاب یا منابع ارجاع داده شده، قابل جبران خواهد بود. در طول بررسی دستهبندیهای مختلف رخنههای امنیتی، بخشهایی از کدهای برنامهنویسی ارائه شده است که نشان میدهد چگونه برنامهها میتوانند آسیبپذیر باشند. این مثالها به قدری ساده هستند که بدون نیاز به دانش قبلی از زبان برنامهنویسی مربوطه، قابل درک میباشند؛ اما اگر تجربه اولیهای در خواندن یا نوشتن کد داشته باشید، این مثالها برای شما بسیار مفیدتر خواهند بود.
کلمات کلیدی:ساختار این کتاب تقریباً بر اساس وابستگیهای موجود بین موضوعات مختلف تنظیم شده است. اگر به تازگی وارد حوزه ارزیابی امنیتی برنامههای وب شدهاید، باید مطالعه را از ابتدا تا انتها انجام دهید تا دانش و درک لازم برای مواجهه با فصلهای بعدی را به دست آورید. اگر در این زمینه تجربه قبلی دارید، میتوانید مستقیماً به سراغ هر فصل یا زیربخشی که برایتان جذابتر است بروید. در صورت نیاز، ارجاعات متقابلی به سایر فصلها گنجانده شده است تا بتوانید هرگونه خلأ دانشی خود را پر کنید.
این بخش با سه فصل زمینهساز آغاز میشود که وضعیت فعلی امنیت در برنامههای وب و روندهایی را که نشاندهنده نحوه تکامل آن در آینده نزدیک است، توصیف میکند.
فصل ۱: ناامنی در برنامههای وب
این فصل وضعیت کنونی امنیت را در اینترنت امروز بررسی میکند. برخلاف اطمینانخاطرهای رایج، اکثریت برنامهها ناامن هستند و میتوان با سطح مهارت متوسطی به آنها نفوذ کرد. این فصل نشان میدهد که چگونه یک مشکل اساسی یعنی توانایی کاربران در ارسال ورودیهای دلخواه، منجر به بروز آسیبپذیری میشود و چگونه نقص در برنامههای وب میتواند زیرساخت فنی یک سازمان را به شدت در معرض خطر قرار دهد.
فصل ۲: مکانیزمهای دفاعی هسته
در این بخش، مکانیزمهای امنیتی کلیدی که برای مقابله با مشکل اساسی غیرقابل اعتماد بودن ورودی کاربران به کار میروند، شرح داده میشود. این مکانیزمها، روشهایی هستند که برنامه از طریق آنها دسترسی کاربران را مدیریت کرده، ورودیها را پردازش نموده و به مهاجمان پاسخ میدهد. درک نحوه عملکرد این مکانیزمها، پیشنیاز اساسی برای ارزیابی و حمله موثر به آنها است.
فصل ۳: فناوریهای وب
این فصل یک راهنمای کوتاه در مورد فناوریهای کلیدی است که احتمالاً در هنگام ارزیابی برنامهها با آنها مواجه خواهید شد. تمام جنبههای مرتبط با پروتکلهای ارتباطی، فناوریهای سمت کاربر و سرور، و روشهای مختلف کدگذاری دادهها در این بخش پوشش داده شده است.
بخش عمدهای از محتوای کتاب به موضوع اصلی یعنی تکنیکهای نفوذ اختصاص یافته است. این مطالب حول وظایف کلیدی سازماندهی شدهاند که برای انجام یک حمله جامع باید انجام دهید.
فصل ۴: نقشهبرداری از برنامه
این فصل اولین اقدامی را که باید هنگام هدف قرار دادن یک سیستم جدید انجام دهید، توصیف میکند: جمعآوری بیشترین اطلاعات ممکن برای ترسیم سطح حمله و تدوین طرح ارزیابی. این فرآیند شامل کاوش در برنامه برای فهرست کردن تمام محتوا و عملکردها، شناسایی تمام نقاط ورود دادهها و کشف فناوریهای مورد استفاده است.
فصل ۵: دور زدن کنترلهای سمت کاربر
این بخش اولین حوزه آسیبپذیری واقعی را پوشش میدهد که زمانی رخ میدهد که برنامه برای امنیت خود به کنترلهای پیادهسازی شده در سمت کاربر متکی باشد. این رویکرد معمولاً ناقص است، زیرا هرگونه کنترل سمت کاربر به راحتی قابل دور زدن است. در این فصل، فناوریهای مختلفی از جمله کنترلهای سبک در زبانهای نشانهگذاری و اسکریپتهای سمت کاربر بررسی میشوند.
فصلهای ۶، ۷ و ۸ برخی از مهمترین مکانیزمهای دفاعی پیادهسازی شده در برنامههای وب را پوشش میدهند: مکانیزمهای مسئول کنترل دسترسی کاربران.
فصل ۶: ارزیابی احراز هویت
این فصل عملکردهای مختلفی را بررسی میکند که برنامهها از طریق آنها از هویت کاربران خود اطمینان حاصل میکنند. این موارد شامل عملکرد اصلی ورود به سیستم و عملکردهای جانبی مانند ثبتنام، تغییر رمز عبور و بازیابی حساب کاربری است. مکانیسمهای احراز هویت دارای انبوهی از آسیبپذیریهای مختلف در طراحی و پیادهسازی هستند که یک مهاجم میتواند برای به دست آوردن دسترسی غیرمجاز از آنها بهرهبرداری کند.
فصل ۷: ارزیابی مدیریت نشست
این بخش مکانیزمی را بررسی میکند که بیشتر برنامهها از آن برای ایجاد مفهوم یک نشست پایدار استفاده میکنند تا بتوانند هر کاربر را در چندین درخواست مختلف به طور یکتا شناسایی کنند. این مکانیزم یک هدف کلیدی است، زیرا در صورت شکستن آن، میتوانید به طور موثر از ورود به سیستم عبور کرده و بدون دانستن اعتبارنامهها، خود را جای کاربران دیگر جا بزنید.
فصل ۸: ارزیابی کنترلهای دسترسی
این فصل به روشهایی میپردازد که برنامهها کنترلهای دسترسی را اعمال میکنند و برای این کار به مکانیزمهای احراز هویت و مدیریت نشست متکی هستند. ما روشهای مختلفی را که کنترلهای دسترسی میتوانند شکسته شوند و نحوه تشخیص و بهرهبرداری از این نقاط ضعف را شرح میدهیم.
فصلهای ۹ و ۱۰ دسته بزرگی از آسیبپذیریهای مرتبط را پوشش میدهند که زمانی رخ میدهند که برنامهها ورودی کاربر را به روشی ناامن در کدهای مفسر تعبیه میکنند.
فصل ۹: ارزیابی ذخیرهگاههای داده
این فصل با بررسی دقیق آسیبپذیریهای تزریق کد پایگاه داده آغاز میشود و طیف کاملی از حملات، از بدیهیترین تا پیشرفتهترین تکنیکهای بهرهبرداری را پوشش میدهد. برای هر نوع آسیبپذیری، تفاوتهای کلیدی بین پایگاههای داده رایج شرح داده شده است.
فصل ۱۰: ارزیابی اجزای پسزمینه
این بخش چندین دسته دیگر از آسیبپذیریهای تزریق را شرح میدهد، از جمله تزریق دستورات سیستمعامل، تزریق به زبانهای اسکریپتنویسی وب، حملات پیمایش مسیر فایل و تزریق به ساختارهای دادهای مختلف.
فصل ۱۱: ارزیابی منطق برنامه
این فصل یک حوزه مهم و اغلب نادیده گرفته شده از سطح حمله هر برنامه را بررسی میکند: منطق داخلی که برای اجرای عملکردهای خود استفاده میکند. نقص در منطق برنامه بسیار متنوع است و توصیف آنها دشوارتر از آسیبپذیریهای رایج است. به همین دلیل، مجموعهای از مثالهای واقعی ارائه شده است که نشان میدهد چگونه منطق معیوب، یک برنامه را آسیبپذیر کرده است.
فصلهای ۱۲ و ۱۳ یک حوزه بسیار مهم از آسیبپذیریهای مرتبط را پوشش میدهند که زمانی رخ میدهند که نقص در یک برنامه وب میتواند کاربر مخرب را قادر سازد تا به سایر کاربران حمله کرده و آنها را در معرض خطر قرار دهد.
فصل ۱۲: حملات تزریق اسکریپت از طریق سایت
این فصل برجستهترین آسیبپذیری از این نوع را بررسی میکند که یک نقص بسیار شایع است و اکثریت قریب به اتفاق برنامههای وب را تحت تاثیر قرار میدهد. ما به تفصیل تمام اشکال مختلف این آسیبپذیری را بررسی کرده و یک روششناسی موثر برای تشخیص و بهرهبرداری از پیچیدهترین حالتهای آن را توصیف میکنیم.
فصل ۱۳: سایر تکنیکهای حمله به کاربران
این بخش به چندین نوع دیگر از حملات علیه کاربران میپردازد، از جمله وادار کردن کاربر به انجام اقدامات از طریق جعل درخواست، ثبت دادههای بیندامنهای، تزریق هدرهای ارتباطی و حملات حریم خصوصی محلی.
این بخش شامل تکنیکهای پیشرفته و رویکردهای جامع برای تکمیل فرآیند ارزیابی است.
فصل ۱۴: خودکارسازی حملات سفارشی
این فصل یک تکنیک حیاتی را توصیف میکند که برای ارزیابی موثر برنامههای وب باید بر آن مسلط شوید. از آنجا که هر برنامه متفاوت است، بیشتر حملات باید سفارشیسازی شوند. انجام دستی این درخواستها بسیار پرزحمت و مستعد خطا است. برای تبدیل شدن به یک متخصص واقعی، باید بیشتر این کارها را خودکار کنید تا حملات شما آسانتر، سریعتر و موثرتر شوند.
فصل ۱۵: بهرهبرداری از افشای اطلاعات
این بخش روشهای مختلفی را بررسی میکند که برنامهها در هنگام تحت حمله قرار گرفتن، اطلاعات را فاش میکنند. ما شرح میدهیم که چگونه میتوانید رفتار غیرعادی و پیامهای خطا را برای به دست آوردن درک عمیقتر از عملکردهای داخلی برنامه بررسی کنید.
فصل ۱۶ تا ۲۱: از معماری تا جعبه ابزار
فصلهای پایانی کتاب موضوعات پیشرفتهتری مانند حمله به برنامههای کامپایل شده بومی، معماری برنامه، سرور برنامه، یافتن آسیبپذیریها در کد منبع، و در نهایت معرفی یک جعبه ابزار جامع و یک روششناسی کامل برای انجام یک ارزیابی عمیق را پوشش میدهند. این فصول تمام رشتههای معرفی شده در کتاب را به هم پیوند داده و یک ساختار یکپارچه ارائه میدهند.
با گذشت زمان از انتشار ویرایش اول، پیشرفت فناوری باعث ظهور آسیبپذیریها و حملات جدیدی شده است. با این حال، مفاهیم بنیادی و فناوریهای پایه همچنان اصالت خود را حفظ کردهاند. این ویرایش جدید، با بهروزرسانی حدود ۳۰ درصد از محتوا، اطلاعات کاملاً جدیدی را در زمینه فناوریهای نوظهور، ابزارهای مدرن و تکنیکهای بهرهبرداری پیشرفته ارائه میدهد. اضافه شدن بخشهای مربوط به فناوریهای جدید، روشهای نوین دور زدن مکانیزمهای دفاعی، و بررسی دقیقتر حملات سمت کاربر، این اثر را به یک مرجع بیبدیل تبدیل کرده است.
خرید و مطالعه این کتاب به شما این امکان را میدهد که با تمرکز بالا، تمام جزئیات فنی و مثالهای کاربردی را بررسی کرده و دانش خود را در زمینه امنیت سایبری به بالاترین سطح ممکن ارتقا دهید. این محصول یک سرمایهگذاری ارزشمند برای تمام متخصصان و علاقهمندان به دنیای امنیت نرمافزار است.
نمونه چاپ کتاب موجود نیست.
نظرات کاربران (0)