حملات لایه برنامه یا حملات DDoS لایه 7 (L7) به نوعی رفتار مخربی اشاره دارد که برای هدف قرار دادن لایه "بالا" در مدل OSI طراحی شده است که در آن درخواست های اینترنتی رایج مانند HTTP GET و HTTP POST رخ می دهد. این حملات لایه 7، برخلاف حملات لایه شبکه مانند تقویت DNS، به دلیل مصرف منابع سرور علاوه بر منابع شبکه، بسیار موثر هستند.
اثربخشی اساسی اکثر حملات DDoS ناشی از اختلاف بین مقدار منابعی است که برای انجام یک حمله لازم است نسبت به مقدار منابعی که برای جذب یا کاهش آن لازم است. در حالی که این مورد هنوز در مورد حملات L7 وجود دارد، کارایی تأثیرگذاری بر سرور هدف و شبکه به پهنای باند کل کمتری برای دستیابی به همان اثر مخرب نیاز دارد. حمله لایه برنامه آسیب بیشتری با پهنای باند کل کمتر ایجاد می کند.
برای بررسی چرایی این موضوع، اجازه دهید نگاهی به تفاوت مصرف نسبی منابع بین مشتری درخواست کننده و سروری که به درخواست پاسخ می دهد بیاندازیم. هنگامی که یک کاربر برای ورود به یک حساب آنلاین مانند یک حساب Gmail درخواستی ارسال می کند، مقدار دادهها و منابعی که رایانه کاربر باید از آن استفاده کند حداقل و نامتناسب با مقدار منابع مصرف شده در فرآیند بررسی اعتبار ورود به سیستم است، و سپس پاسخی حاوی صفحه وب درخواستی را ارسال کنید.
حتی در صورت عدم وجود لاگین، بسیاری از اوقات سروری که درخواستی از یک کلاینت دریافت می کند، برای ایجاد یک صفحه وب باید پرس و جوهای پایگاه داده یا دیگر فراخوانی های API را انجام دهد. هنگامی که این اختلاف در نتیجه بسیاری از دستگاهها که یک ویژگی وب واحد را هدف قرار میدهند، مانند هنگام حمله باتنت، بزرگتر میشود، این تأثیر میتواند سرور مورد نظر را تحت تأثیر قرار دهد و منجر به انکار سرویس برای ترافیک قانونی شود. در بسیاری از موارد صرفاً هدف قرار دادن یک API با حمله L7 برای آفلاین کردن سرویس کافی است.
تمایز بین ترافیک حمله و ترافیک عادی دشوار است، به خصوص در مورد حمله لایه برنامه مانند یک بات نت که حمله HTTP Flood را علیه سرور قربانی انجام می دهد. از آنجایی که هر ربات در یک باتنت درخواستهای به ظاهر قانونی شبکه را ارائه میکند، ترافیک جعل نمیشود و ممکن است در مبدا «عادی» به نظر برسد.
حملات لایه برنامه به یک استراتژی تطبیقی از جمله توانایی محدود کردن ترافیک بر اساس مجموعه قوانین خاصی نیاز دارند که ممکن است به طور منظم در نوسان باشند. ابزارهایی مانند WAF با پیکربندی مناسب میتوانند میزان ترافیک جعلی را که به یک سرور مبدا ارسال میشود کاهش دهند و تأثیر تلاش DDoS را تا حد زیادی کاهش دهند.
با حملات دیگری مانند سیل SYN یا حملات بازتابی مانند تقویت NTP، میتوان از استراتژیها برای کاهش ترافیک نسبتاً مؤثر استفاده کرد، مشروط بر اینکه خود شبکه پهنای باند دریافت آنها را داشته باشد. متأسفانه، بیشتر شبکهها نمیتوانند حمله تقویتی 300 گیگابیت بر ثانیه را دریافت کنند، و حتی تعداد کمتری از شبکهها میتوانند به درستی حجم درخواستهای لایه برنامه را که یک حمله L7 ایجاد میکند، مسیریابی و ارائه دهند.
یکی از روش ها اجرای چالش برای دستگاهی است که درخواست شبکه را ارائه می دهد تا آزمایش شود که آیا ربات است یا خیر. این کار از طریق آزمایشی بسیار شبیه آزمایش CAPTCHA که معمولاً هنگام ایجاد یک حساب آنلاین یافت می شود انجام می شود. با ارائه الزاماتی مانند چالش محاسباتی جاوا اسکریپت، می توان بسیاری از حملات را کاهش داد.
راه های دیگر برای جلوگیری از سیل HTTP شامل استفاده از فایروال برنامه وب، مدیریت و فیلتر کردن ترافیک از طریق پایگاه داده شهرت IP و از طریق تجزیه و تحلیل شبکه در حین پرواز توسط مهندسان است.