کتاب Web Application Security: Exploitation and Countermeasures for Modern Web Applications, 2nd Edition (امنیت برنامههای کاربردی وب: بهرهبرداری و اقدامات متقابل برای برنامههای کاربردی وب مدرن، ویرایش دوم) با زبانی ساده امنیت برنامههای تحت وب و چالشهای موجود در آن را بررسی میکند. این کتاب انواع حملات و تهدیدهایی که مهاجمان سایبری، از هکرهای کلاه سفید تا کلاه سیاه را بررسی و همچنین با ارائه راهکارهایی جدید و به روز از وقوع آن جلوگیری میکند.
مقدمه ای بر کتاب Web Application Security نسخه دوم:
به امنیت برنامههای کاربردی وب: بهرهبرداری و اقدامات متقابل برای برنامههای کاربردی وب مدرن خوش آمدید. در این مقدمه، محتوای کتاب و اینکه این کتاب برای چه کسانی است، از جمله مجموعه مهارتهایی که برای استفاده حداکثری از محتوای فنی در فصلهای بعدی لازم است، بحث خواهیم کرد. خواندن پیشگفتار به شما کمک میکند بفهمید که آیا این کتاب برای شما مناسب است یا خیر.
تغییرات از نسخه اول کتاب Web Application Security
هنگام مقایسه کتاب Web Application Security با چاپ اول قبلی، تغییرات قابل توجهی را خواهید دید. بیش از صد صفحه محتوای جدید وجود دارد، اما فراتر از آن دهها صفحه ویرایش شده وجود دارد.
نسخه اول کتاب Web Application Security عمدتاً بر روی مهندس سطح ابتدایی و متوسط متمرکز بود، اما بازخورد اغلب محتوای پیشرفتهتری را درخواست میکرد که از آن میتوانید مسیر یادگیری خاصی را برای هر فصل ادامه دهید. اکنون اکثر فصلها دارای محتوای پیشرفته هستند و به همین دلیلامیدوارم که متخصصان ارشد امنیتی اکنون از خواندن کتاب Web Application Security بهره بیشتری ببرند.
علاوه بر این، کتاب Web Application Security دارای مقدار قابل توجهی به روزرسانی برای ترکیب فناوریهای اخیر است. اضافه کردن موارد و کدهای نمونه برای ایمنسازی و حمله به اشکال جدید اما رایج فناوری در برنامههای کاربردی وب، به عنوان مثال پایگاه دادههای GraphQL و NoSQL ضروری است.
نسخه دوم کتاب Web Application Security دارای بخشهای قابل توجهی از محتوای امنیتی جدید از جمله محتوایی است که جدیدترین و محبوبترین فناوریهای کاربردی وب را پوشش میدهد. همچنین برای گنجاندن محتوای پیشرفتهتر در هر فصل و گنجاندن دهها، اگر نه صدها پیشنهاد و درخواست خواننده و ویرایشگر در صفحات خود، اصلاح شده است.
امیدوارم کتاب Web Application Security به خوبی سازماندهی شده و خواندن آن برای شما لذت بخش باشد، و پس از اتمام آن، با دانش و دیدگاههای جدیدی که مجموعه مهارتهای امنیت اطلاعات شما را افزایش میدهد کنار بروید.
کتاب Web Application Security چگونه تنظیم شده است؟
به زودی خواهید دید که ساختار این کتاب کاملاً متفاوت از سایر کتابهای فناوری است. این عمدی است. این کتاب به گونهای هدفمند طراحی شده است که نسبت فصلهای مربوط به هک (تخلف) و امنیت (دفاع) تقریباً ۱: ۱ است.
ما ماجراجویی خود را با کمی درس تاریخ و کمی کاوش در فناوری، ابزارها و بهرهبرداریهای گذشته آغاز میکنیم. سپس به موضوع اصلی خود میرویم: بهرهبرداری و اقدامات متقابل برای برنامههای کاربردی وب مدرن. (از این رو عنوان فرعی این کتاب است. )
محتوای اصلی کتاب Web Application Security به سه بخش عمده تقسیم میشود که هر بخش شامل بسیاری از فصلهای مجزا است که طیف وسیعی از موضوعات را پوشش میدهد. در حالتایدهآل، شما میتوانید این کتاب را به صورت خطی، از صفحه اول تا صفحه آخر، مرور کنید.
همانطور که گفته شد، مطالعه کتاب Web Application Security به ترتیب بیشترین یادگیری ممکن را فراهم میکند، اما میتوان از آن به عنوان یک مرجع هک یا یک مرجع مهندسی امنیت با تمرکز بر نیمه اول یا دوم نیز استفاده کرد. تا به حال باید درک کنید که چگونه کتاب را مرور کنید، بنابراین بیایید سه بخش اصلی را مرور کنیم تا اهمیت هر کدام را درک کنیم.
Recon
بخش اول این کتاب «Recon» است، که در آن روشهای به دست آوردن اطلاعات در مورد یک برنامه وب بدون نیاز به تلاش برای هک کردن آن را ارزیابی میکنیم. در «Recon»، تعدادی از فناوریها و مفاهیم مهم را مورد بحث قرار میدهیم که اگر میخواهید یک هکر شوید، تسلط بر آنها ضروری است.
این موضوعات همچنین برای هر کسی که به دنبال قفل کردن برنامه موجود است مهم خواهد بود زیرا اطلاعاتی که توسط بسیاری از این تکنیکها در معرض دید قرار میگیرد را میتوان با برنامهریزی مناسب کاهش داد.
من این فرصت را داشتهام که با افرادی که معتقدم برخی از بهترین تستکنندههای نفوذ و شکارچیان باگ در جهان هستند کار کنم. از طریق گفتگوهایم با آنها و تجزیه و تحلیل من از نحوه انجام کارشان، متوجه شدم که این موضوع بسیار مهمتر از آن چیزی است که بسیاری از کتابهای دیگر به آن اشاره میکنند.
برای بسیاری از برترین شکارچیان جایزه اشکال در جهان، توانایی شناسایی در سطح متخصص چیزی است که هکرهای \”بزرگ\” را از هکرهای \”خوب\” متمایز میکند. به عبارت دیگر، داشتن یک ماشین سریع یک چیز است (در این مورد، شاید دانستن نحوه ساخت اکسپلویتها)، اما بدون دانستن کارآمدترین مسیر برای رسیدن به خط پایان، ممکن است در مسابقه برنده نشوید.
اگر مسیر کارآمدتری طی شود، خودروی کندتر میتواند در زمان کمتری نسبت به خودروی سریع به خط پایان برسد. اگر قیاسهای مبتنی بر فانتزی به خانه نزدیکتر شوند، میتوانید مهارتهای بازیابی را چیزی شبیه به یک سرکش در یک بازی نقشآفرینی در نظر بگیرید.
در مورد ما، وظیفه سرکش این نیست که صدمات زیادی وارد کند، بلکه کارش این است که جلوتر از گروه را ببیند و با اطلاعات به عقب برگردد. این شخصیت است که به ردیف کردن ضربات کمک میکند و مشخص میکند که کدام نبردها بیشترین پاداش را خواهند داشت.
بخش آخر کتاب Web Application Security به طور خاص بسیار ارزشمند است زیرا به احتمال زیاد میتوان انواع مختلفی از حملات را علیه اهدافی که به خوبی از آنها دفاع میشود ثبت کرد. این بدان معنی است که شما ممکن است فقط یک فرصت برای سوء استفاده از یک حفره نرمافزاری خاص قبل از یافتن و بسته شدن آن داشته باشید. ما با خیال راحت میتوانیم نتیجه بگیریم که دومین کاربرد شناسایی این است که بفهمیم چگونه میتوان اکسپلویتهای خود را اولویتبندی کرد.
اگر به شغلی به عنوان تستر نفوذ یا شکارچی باگ علاقه دارید، قسمت اول برای شما بسیار مهم خواهد بود. این عمدتاً به این دلیل است که آزمایشها به سبک «جعبه سیاه» در دنیای شکار باگ بونتی و تا حدودی تست نفوذ انجام میشوند. تست \”جعبه سیاه\” سبکی از آزمایش است که در آن آزمایشکننده هیچ دانشی از ساختار و کد داخل یک برنامه ندارد و از این رو باید درک خود را از برنامه از طریق تجزیه و تحلیل و بررسی دقیق ایجاد کند.
تخلف
بخش دوم \”تخلف\” است. در اینجا تمرکز کتاب Web Application Security از بازیابی و جمعآوری دادهها به تجزیه و تحلیل کد و درخواستهای شبکه میرود. سپس با این دانش ما سعی خواهیم کرد از برنامههای کاربردی وب که به طور ناامن نوشته شده یا پیکربندی نامناسبی دارند استفاده کنیم.
تعدادی از فصول کتاب Web Application Security، تکنیکهای هک واقعی مورد استفاده هکرهای کلاه سیاه مخرب در دنیای واقعی را توضیح میدهند.
ضروری است که اگر تکنیکهای موجود در کتاب Web Application Security را آزمایش میکنید، این کار را فقط در برابر برنامهای انجام دهید که مالک آن هستید یا مجوز کتبی صریح دارید. برای آزمایش اکسپلویتها در برابر. استفاده نادرست از تکنیکهای هک ارائه شده در کتاب Web Application Security بسته به قوانین کشور شما در مورد فعالیت هک میتواند منجر به جریمه، زندان و غیره شود.
در قسمت دوم کتاب Web Application Security، نحوه ساخت و استقرار اکسپلویتها را یاد میگیریم. این اکسپلویتها برای سرقت دادهها یا تغییر اجباری رفتار یک برنامه طراحی شدهاند. این بخش از کتاب مبتنی بر دانش بخش اول، \”Recon\” است. با استفاده از مهارتهای شناسایی که قبلاً به دست آوردهایم و مهارتهای جدید هک را به دست آوردهایم، ما شروع به کنترل و حمله به برنامههای وب دمو خواهیم کرد.
بخش دوم کتاب Web Application Security بر اساس بهرهبرداری به بهرهبرداری سازماندهی شده است. هر فصل به تفصیل نوع دیگری از اکسپلویت را توضیح میدهد. این فصلها با توضیحی در مورد خود اکسپلویت شروع میشوند تا بتوانید نحوه عملکرد مکانیکی آن را درک کنید.
سپس نحوه جستجوی آسیبپذیریها را که در آن میتوان این اکسپلویت را اعمال کرد، بحث میکنیم. در نهایت، ما یک محموله خاص برای برنامه آزمایشی که از آن بهرهبرداری میکنیم ایجاد میکنیم. سپس محموله را مستقر میکنیم و نتایج را مشاهده میکنیم.
XSS، یکی از اولین اکسپلویتهایی است که به آن میپردازیم، نوعی حمله است که علیه طیف گستردهای از برنامههای کاربردی وب کار میکند، اما میتوان آن را برای برنامههای کاربردی دیگر نیز اعمال کرد (مانند برنامههای موبایل، بازیهای Flash/ActionScript و غیره).. این حمله خاص شامل نوشتن کدهای مخرب بر روی دستگاه شخصی شما، سپس استفاده از مکانیسمهای ضعیف فیلتراسیون در یک برنامه است که به اسکریپت شما اجازه میدهد روی دستگاه کاربر دیگری اجرا شود.
وقتی درباره یک اکسپلویت مانند حمله XSS صحبت میکنیم، با یک برنامه آسیبپذیر شروع میکنیم. این برنامه آزمایشی ساده و دقیق خواهد بود، در حالتایدهآل فقط چند پاراگراف کد. از این پایه، ما یک بلوک کد مینویسیم تا به عنوان یک بار به برنامه آزمایشی تزریق شود، که سپس از یک کاربر فرضی در طرف دیگر استفاده میکند.
ساده به نظر میرسد، اینطور نیست؟ و باید باشد. بدون هیچ گونه دفاعی، بیشتر سیستمهای نرمافزاری به راحتی قابل نفوذ هستند. در نتیجه، با اکسپلویتی مانند XSS که در آن دفاعهای زیادی وجود دارد، ما به تدریج به جزئیات نوشتن و به کارگیری یک حمله عمیقتر و عمیقتر خواهیم پرداخت.
ما در ابتدا تلاش خواهیم کرد تا دفاعهای معمول را از بین ببریم و در نهایت به سمت دور زدن مکانیسمهای دفاعی پیشرفتهتر برویم. به یاد داشته باشید، فقط به این دلیل که شخصی برای دفاع از پایگاه کد خود دیواری ساخته است، به این معنی نیست که نمیتوانید از روی آن یا زیر آن عبور کنید. اینجاست که میتوانیم از خلاقیت استفاده کنیم و راه حلهای منحصر به فرد و جالبی پیدا کنیم.
بخش دوم کتاب Web Application Security مهم است زیرا درک طرز فکر یک هکر اغلب برای معماری پایگاههای کد امن حیاتی است. این برای هر کسی که علاقهمند به هک کردن، تست نفوذ، یا شکار پاداش اشکال است، بسیار مهم است.
دفاع
بخش سوم و آخر کتاب Web Application Security، \”دفاع\”، در مورد ایمنسازی کد خود در برابر هکرها است. در قسمت سوم، به عقب برمیگردیم و به هر نوع اکسپلویتی که در قسمت دوم پوشش دادهایم نگاه میکنیم و سعی میکنیم دوباره آنها را با دیدگاهی کاملاً مخالف در نظر بگیریم. در اینجا، ما بر نفوذ به سیستمهای نرمافزاری تمرکز نخواهیم کرد. ما تلاش خواهیم کرد تا از احتمال نفوذ یک هکر به سیستم ما جلوگیری کنیم یا آن را کاهش دهیم.
در قسمت سوم شما یاد خواهید گرفت که چگونه از قسمت دوم در برابر اکسپلویتهای خاص محافظت کنید، علاوه بر این، حفاظتهای عمومی را یاد خواهید گرفت که پایگاه کد شما را در برابر انواع مختلفی از حملات ایمن میکند. این حفاظتهای عمومی از روشهای مهندسی «ایمن بهطور پیشفرض» گرفته تا بهترین شیوههای کدگذاری ایمن که میتواند به راحتی توسط یک تیم مهندسی با استفاده از آزمایشها و سایر ابزارهای ساده خودکار (مانند یک لنگر) اجرا شود.
علاوه بر یادگیری نحوه نوشتن کد ایمنتر، شما همچنین تعدادی ترفندهای ارزشمند را برای دستگیر کردن هکرها در عمل و بهبود نگرش سازمان خود نسبت به امنیت نرمافزار یاد خواهید گرفت.
بیشتر فصلهای قسمت سوم کتاب Web Application Security تا حدودی شبیه به فصلهای هک در قسمت دوم هستند.
ما با یک مرور کلی از فنآوری و مهارتهای مورد نیاز شروع میکنیم، زیرا آمادهسازی دفاع در برابر نوع خاصی از حمله را آغاز میکنیم. در ابتدا ما یک دفاع در سطح پایه را آماده خواهیم کرد، که باید به کاهش حملات کمک کند، اما ممکن است همیشه نتواند از سرسختترین هکرها جلوگیری کند. در نهایت، ما دفاع خود را تا حدی بهبود خواهیم داد که بیشتر، اگر نه همه، تلاشهای هک متوقف شود.
در این مرحله، ساختار قسمت سوم کتاب Web Application Security، شروع به تفاوت با ساختار قسمت دوم میکند زیرا ما در مورد مبادلاتی که ناشی از بهبود امنیت برنامه است بحث میکنیم. به طور کلی، همه اقدامات برای بهبود امنیت نوعی معاوضه خارج از امنیت دارند. ممکن است جای شما نباشد که پیشنهاداتی در مورد اینکه چه سطحی از ریسک باید با قیمت تمام شده محصول شما پذیرفته شود، ارائه دهید، اما باید از مبادلاتی که انجام میشود آگاه باشید.
اغلب، این مبادلات به شکل عملکرد برنامه به وجود میآیند. هرچه تلاش بیشتری برای خواندن و پاکسازی دادهها انجام دهید، عملیات بیشتری خارج از عملکرد استاندارد برنامه شما انجام میشود. از این رو یک ویژگی ایمن معمولاً به منابع محاسباتی بیشتری نسبت به یک ویژگی ناامن نیاز دارد.
با عملیات بیشتر، کد بیشتری نیز ارائه میشود که به معنای نگهداری، آزمایشها و زمان مهندسی بیشتر است. این سربار توسعه برای امنیت اغلب به صورت ورود به سیستم یا نظارت بر سربار نیز میآید. در نهایت، برخی از اقدامات احتیاطی امنیتی به قیمت کاهش قابلیت استفاده تمام میشود.
یک مثال بسیار ساده از این فرآیند مقایسه مزایای امنیتی با هزینه آنها، از نظر قابلیت استفاده و عملکرد، فرم ورود است. اگر هنگام تلاش برای ورود به سیستم، پیام خطای یک نام کاربری نامعتبر به کاربر نمایش داده شود، برای هکرها به طور قابل توجهی سادهتر میشود که ترکیبات نام کاربری: رمز عبور را به زور انجام دهد. این به این دلیل رخ میدهد که هکر دیگر مجبور نیست لیستی از نامهای کاربری فعال ورود به سیستم را پیدا کند، زیرا برنامه یک حساب کاربری را تأیید میکند. هکر فقط باید چند نام کاربری را با موفقیت به زور وارد کند، که میتوان آنها را تأیید کرد و برای تلاشهای بعدی نفوذ کرد.
در مرحله بعد، هکر تنها به استفاده از گذرواژههای بیرحمانه نیاز دارد تا ترکیبات نام کاربری: رمز عبور، که به معنی کاهش قابل توجه پیچیدگی ریاضی است و زمان و منابع بسیار کمتری را میگیرد.
علاوه بر این، اگر برنامه به جای طرح نام کاربری و رمز عبور، از طرحایمیل و رمز عبور برای ورود استفاده کند، مشکل دیگری داریم. یک هکر میتواند از این فرم ورود برای یافتن آدرس هایایمیل معتبری که میتوانند برای اهداف بازاریابی یا هرزنامه فروخته شوند استفاده کند.
حتی اگر اقدامات احتیاطی برای جلوگیری از اجبار بیرحمانه انجام شود، ورودیهای با دقت ساخته شده (مانند first. [email protected]، [email protected]، [email protected]) میتوانند به هکر اجازه دهند تا طرح مورد استفاده برای حسابهایایمیل شرکت را مهندسی معکوس کند. و حسابهای معتبر مدیران فروش یا افراد دارای معیارهای دسترسی مهم برای فیشینگ را مشخص کنید.
در نتیجه، ارائه پیامهای خطای عمومیتر به کاربر، اغلب بهترین روش در نظر گرفته میشود. البته، این تغییر با تجربه کاربر در تضاد است زیرا پیامهای خطای خاصتر قطعاً برای کاربردپذیری برنامه شماایدهآل هستند.
این یک مثال عالی از مبادلهای است که میتواند برای بهبود امنیت برنامه انجام شود، اما به قیمت کاهش قابلیت استفاده. این باید به شماایدهای از نوع مبادلاتی که در قسمت سوم کتاب Web Application Security مورد بحث قرار گرفته است، بدهد.
این بخش از کتاب Web Application Security برای هر مهندس امنیتی که میخواهد مهارتهای خود را تقویت کند یا هر مهندس نرمافزاری که به دنبال انتقال به یک نقش مهندسی امنیت است، بسیار مهم است. اطلاعات ارائه شده در اینجا به معماری و نوشتن برنامههای کاربردی ایمنتر کمک میکند.
همانطور که در قسمت دوم کتاب Web Application Security، درک اینکه چگونه امنیت یک برنامه را میتوان بهبود بخشید، دارایی ارزشمندی برای هر نوع هکری است. این به این دلیل است که در حالی که اغلب میتوان از دفاعهای معمول به راحتی عبور کرد، دفاعهای پیچیدهتر نیاز به درک عمیق و دانش بیشتری برای دور زدن دارند. این دلیل دیگری است که نشان میدهد چرا خواندن کتاب را از ابتدا تا انتها پیشنهاد میکنم.
اگرچه ممکن است برخی از بخشهای کتاب Web Application Security به شما آموزشهای ارزشمندتری نسبت به سایرین بدهد، اما بسته به اهدافتان، شک دارم که هر کدام از آنها هدر برود. آموزش متقابل از این نوع بسیار ارزشمند است، زیرا هر بخش از کتاب فقط دیدگاه دیگری از همان پازل است.
بیشتر بخوانید: کتاب Cybersecurity – Attack and Defense Strategies
سرفصل های کتاب Web Application Security نسخه دو:
- Copyright
- Table of Contents
- Preface
- Chapter 1. The History of Software Security
- Part I. Recon
- Chapter 2. Introduction to Web Application Reconnaissance
- Chapter 3. The Structure of a Modern Web Application
- Chapter 4. Finding Subdomains
- Chapter 5. API Analysis
- Chapter 6. Identifying Third-Party Dependencies
- Chapter 7. Identifying Weak Points in Application Architecture
- Chapter 8. Part I Summary
- Part II. Offense
- Chapter 9. Introduction to Hacking Web Applications
- Chapter 10. Cross-Site Scripting
- Chapter 11. Cross-Site Request Forgery
- Chapter 12. XML External Entity
- Chapter 13. Injection
- Chapter 14. Denial of Service
- Chapter 15. Attacking Data and Objects
- Chapter 16. Client-Side Attacks
- Chapter 17. Exploiting Third-Party Dependencies
- Chapter 18. Business Logic Vulnerabilities
- Chapter 19. Part II Summary
- Part III. Defense
- Chapter 20. Securing Modern Web Applications
- Chapter 21. Secure Application Architecture
- Chapter 22. Secure Application Configuration
- Chapter 23. Secure User Experience
- Chapter 24. Threat Modeling Applications
- Chapter 25. Reviewing Code for Security
- Chapter 26. Vulnerability Discovery
- Chapter 27. Vulnerability Management
- Chapter 28. Defending Against XSS Attacks
- Chapter 29. Defending Against CSRF Attacks
- Chapter 30. Defending Against XXE
- Chapter 31. Defending Against Injection
- Chapter 32. Defending Against DoS
- Chapter 33. Defending Data and Objects
- Chapter 34. Defense Against Client-Side Attacks
- Chapter 35. Securing Third-Party Dependencies
- Chapter 36. Mitigating Business Logic Vulnerabilities
- Chapter 37. Part III Summary
- Conclusion
- The History of Software Security
- Recon
- Offense
- Defense
- More to Learn
- Index
- About the Author
- Colophon
فایل کتاب Web Application Security را میتوانید پس از پرداخت دانلود کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.