اعضای یکی از گروه‌های مجرمانه فروشگاه‌های آنلاین شرکت‌هایی نظیر 7-Eleven، Hannaford Brothers و چندین خرده‌فروشی دیگر را هک کردند. هدف آن‌ها پیدا‌کردن رخنه‌ای بود که به حلقه کلاه‌برداری کارت‌های خریدشان امکان جمع‌آوری اطلاعات کافی برای انجام یک کلاه‌برداری بزرگ را بدهد. در روزهای آغازین آن سال، به‌لطف هکرهای روسی که در میان آژانس‌های امنیتی به هکر ۱ و هکر ۲ مشهور بودند، آن‌ها دستبرد به خزانه اصلی را انجام دادند.  هکرها که در هلند و کالیفرنیا مستقر بودند، توانستند نقطه‌ضعفی را در ‌سایت سیستم پرداخت هارت‌لند (Heartland Payment System) پیدا کنند. این سرویس ماهانه 100 میلیون تراکنش را برای حدود 250 هزار مشتری به انجام می‌رساند. با استفاده از سیستم نفوذی که به‌اصطلاح تزریق سیکوئل (SQL Injection) نامیده می‌شود، توانستند در این شبکه پرداخت آنلاین جای پایی برای خود فراهم کنند و نفوذی را رقم زدند که برای هارت‌لند زیانی در حدود 12.6 میلیون دلار به‌همراه داشت. مغز متفکر این هک، هکر شناخته شده آلبرت گونزالس بود. این هک به یکی از نمونه‌های به یادماندنی خرابکاری‌هایی تبدیل شد که ممکن است در نتیجه نفوذپذیری‌های معمولی که در همه کامپیوترهای سرور وجود دارد، اتفاق بیفتد. متخصصان امنیت نرم‌افزارهای وب مدت‌ها است که درباره هزینه‌ای که این باگ‌ها می‌توانند برای کسب‌وکارها به‌وجود آورند، هشدار می‌دهند اما انگار در بیش‌تر مواقع این هشدارها نادیده گرفته می‌شوند. با این حال، پس از هک هارتلند، هیچ‌کس نمی‌توانست اهمیت کنترل این باگ‌ها و میزان خسارت ناشی از آن‌ها را انکار کند. علاوه‌بر میلیون‌ها دلاری که این حمله به هارتلند ضرر زد، شرکت با از دست دادن اعتبارش در میان مشتریان و سرمایه‌گذاران نیز زیان قابل ملاحظه‌ای را تجربه کرد.

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

6- تنظیمات نادرست امنیتی

این باگ‌ها به‌طور عمومی، به حمله‌کننده‌ها اجازه می‌دهند به عملکردهای قدرتمند سیستم یا داده‌های حساس دسترسی پیدا کنند. این باگ‌ها اغلب نتیجه تنظیمات نادرست وب سرورها، برنامه‌های وبی یا کدهای اختصاصی هستند. مستحکم کردن محیط وب (مثلاً به‌روز نگه داشتن سیستم‌عامل، برنامه‌ها و سایر نرم‌افزارها)، غیرفعال‌کردن یا حذف سرویس‌های ناخواسته و همچنین از کارانداختن تمام حساب‌های کاربری و گذرواژه‌های پیش‌فرض از جمله راه‌های مبارزه با این باگ‌ها است.

7- رمزنگاری نا امن سیستم ذخیره‌سازی

این مجموعه شامل نمونه باگ‌هایی است که به‌تازگی برخی متخصصان امنیتی در سرویس ذخیره‌سازی ابری کیم دات کام یعنی Mega کشف کرده‌اند. سیستم ذخیره‌سازی رمزنگاری‌شده ناامن ممکن است شکل‌های مختلفی به خود بگیرد. از موفق نبودن در رمزنگاری اطلاعات کارت‌های اعتباری یا سایر داده‌های حساس گرفته تا استفاده از پیاده‌سازی‌های ناامن رمزنگاری که به حمله‌کنندگان اجازه می‌دهد محتوای رمزنگاری شده را رمزگشایی کنند.  Mega با ناتوانی در امن نگاه داشتن کلید مورد استفاده در الگوریتم برخی از کدهای رمزنگاری‌اش، درس مهمی را در زمینه ذخیره‌سازی رمزنگاری شده به توسعه‌دهندگان وب داد. یکی دیگر از بی‌توجهی‌های مهمی که در این زمینه اتفاق می‌افتد، مشکل در حفاظت از پایگاه‌های داده حاوی گذرواژه‌های کاربران سایت در زمانی است که یک سایت مورد نفوذ قرار می‌گیرد.  با این‌که هش‌کردن گذرواژه‌ها برای رمزنگاری الزامی است، اما به تنهایی کافی نیست. نکته مهم دیگر این است که الگوریتم استفاده شده به‌صورت اختصاصی برای رمزنگاری گذرواژه‌ها طراحی شده باشد. الگوریتم‌هایی نظیر Bcrypt، PBKDF2 یا SHA512crypt انتخاب‌های خوبی هستند. اما نمونه‌هایی نظیر SHA1 ،SHA3 و MD5 چندان مناسب نیستند. (نکته: یکی دیگر از روش‌های دفاع اساسی این است که به جز در موارد ضروری از اطلاعات کارت‌های اعتباری و سایر اطلاعات حساس صرف‌نظر کنیم.)

8- ناتوانی در محدود کردن دسترسی URL

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

9- حفاظت ناکافی از لایه نقل‌وانتقال شبکه (Transport Layer)

پروتکل SSL (سرنام Secure Sockets Layer) و دیگر نمونه مشابه‌اش یعنی TLS (سرنام Transport Layer Security) در واقع مبنای تمام رمزنگاری‌هایی هستند که برای اعتبارسنجی سایت‌ها و رمزنگاری داده‌های جابه‌جا شده میان آن‌ها و کاربر نهایی، مورد استفاده قرار می‌گیرند. نکته عجیب اینجا است که این پروتکل‌ها اغلب به‌درستی مورد استفاده قرار نمی‌گیرند. به‌عنوان مثال، سرویس هات‌میل مایکروسافت تازه در نوامبر سال گذشته بود که امکان امن کردن کل نشست سیستم ایمیل تحت وب از طریق SSL را برای کاربران فراهم کرد. تا پیش از آن کاربران پس از عبور از صفحه لاگین، راهی برای حفاظت از نشست خود در برابر حمله‌های  man-in-the-middle نداشتند. اما وجود نداشتن یک سیستم حفاظتی SSL یا TLS ‌از ابتدا تا انتهای مسیر تنها یکی از نمونه‌های محافظت ناکافی از لایه نقل و انتقال شبکه است. کوکی‌های مرورگرها که برای اعتبارسنجی و سایر موارد حساس مورد استفاده قرار می‌گیرند، باید از یک flag  امن استفاده کنند. همچنین گواهی‌های تأیید اعتبار (Certificateها) نباید توسط خود سایت استفاده کننده امضا شده باشند و همچنین نباید به آن‌ها اجازه انقضا داده شود. 

از همه مهم‌تر این‌که پیاده‌سازی‌های SSL و TLS‌ باید در برابر انواع حمله‌های جدیدی که در چند سال اخیر انجام شده‌اند مقاوم باشند. به‌عنوان نمونه‌ای از این حمله‌ها می‌توان به حمله‌های مذاکره دوباره  (Renegotiation Attack) و حفره‌ای که Beast نامیده می‌شود اشاره کرد. SSL Pulse ‌سایتی است که توسط شرکت امنیتی Qualys پشتیبانی می‌شود و کارایی حدود دویست‌هزار سایت پرکاربردی را که از SSL استفاده می‌کنند، پایش می‌کند. به گزارش این ‌سایت، متأسفانه تخمین زده می‌شود که حدود دو سوم ‌سایت‌هایی که از SSL و TLS استفاده می‌کنند، هنوز در برابر Beast‌ مقاوم نشده‌اند.

10- ارجاع و انتقال نامعتبر (Unvalidated redirects and forwards)

باگ‌های این دسته باعث می‌شوند که بازدیدکنندگان به سایر بخش‌های یک سایت یا سایتی در کل متفاوت هدایت شوند. در طی این فرآیند آن‌ها در معرض حمله‌های فیشینگ یا توزیع‌کنندگان بدافزارها قرار می‌گیرند. این توزیع‌کنندگان بدافزار اغلب با لینکی به سایت‌های مشهور مثلاً گوگل یا بانک امریکا، کاربران را فریفته و آن‌ها را به سایت‌های آلوده هدایت می‌کنند. 

تصور کنید که نفوذپذیر هستید

با پیچیدگی فزاینده سرورها و برنامه‌های وب خوانندگان این مقاله باید این طور فرض کنند که سایت‌شان حداقل در معرض برخی از آسیب‌پذیری‌هایی که به آن‌ها اشاره کردیم قرار دارد. به این ترتیب، ارزشمندترین دارایی‌های تجاری شما تنها چند کلیک با دانلود شدن توسط مجرمان سخت‌کوش یا نفوذگران فاصله دارد. اگر فکر می‌کنید این مطلب اغراق‌آمیز است، نگاهی به داستان هشداردهنده HBGary Federal بیاندازید. این شرکت حدود دو سال پیش توسط اعضای گروه انانیموس  هک شد. با این که خود این شرکت سرویس‌های امنیت وب را به شرکت‌های معتبر فهرست فورچون ۵۰۰ و آژانس‌های دولتی عرضه می‌کرد، چندان به امن کردن سایت خودش توجه نکرده بود. سیستم مدیریت محتوای این سایت در برابر حمله‌های تزریق SQL آسیب‌پذیر بود و به لینک‌های به ظاهر بی‌ضرری مانند http://www.hbgaryfederal.com/pages.php?pageNav=2&page=27  اجازه می‌داد که کوئری‌های اعتبارسنجی نشده‌ای را روی پایگاه داده سایت اجرا کنند.  در نتیجه پایگاه داده لیستی از نام‌های کاربری، آدرس‌های ایمیل و هش‌های گذرواژه‌ها را بیرون می‌ریخت که متعلق به کارکنان برخی از قدرتمندترین سازمان‌های دنیا بودند. اگر سیستم مدیریت محتوای مورد استفاده در برابر حمله‌های تزریقی امن شده بود، شاید نفوذ به صورت کامل هیچ‌گاه امکان‌پذیر (یا حداقل ویران‌کننده)  نمی‌بود.برای بدتر کردن اوضاع هش‌های گذرواژه لو رفته با الگوریتم MD5 رمزنگاری شده بودند، الگوریتمی که متخصصان امنیتی مدت‌ها است اشاره می‌کنند که برای نگه‌داری گذرواژه‌ها اصلاً مناسب نیست. دلیل این امر آن است که این الگوریتم‌ها سریع بوده و به محاسبات چندان احتیاج ندارند و همین باعث می‌شود که شکستن این هش‌ها بسیار ساده‌تر شود.

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

به‌یقین مهم‌ترین کاری که یک مدیر وب می‌تواند برای مستحکم نگه‌داشتن یک سایت انجام دهد به روز نگه‌داشتن سیستم‌عامل و کل برنامه‌های در حال اجرا روی آن است.  به‌روز نگه داشتن در اینجا یعنی تمام وصله‌های امنیتی ظرف  ۲۴ ساعت یا کمتر نصب شوند. اما به در‌نظر گرفتن، پیچیدگی پلتفرم‌های اغلب ‌سایت‌ها، نصب وصله‌ها به تنهایی کافی نیست. لازم است که ادمین‌ها نیز در زمینه امنیت مهارت‌هایی را کسب کنند. OWASP‌ محل خوبی برای شروع این کار است.در‌نهایت، بررسی‌های دوره‌ای و منظم توسط شرکت‌های تخصصی حوزه امنیت برای سایت‌هایی که اطلاعات گذرواژه‌ها، کارت‌های اعتباری و سایر داده‌های حساس را نگه‌داری می‌کنند، یک الزام است. اینترنت پر از سایت‌هایی مانند هارتلند و HBGary است. چیدن علف‌های هرزی که آن‌ها را به دردسر انداخت ساده نیست، اما ارزشش  را دارد.