امنیت در فروشگاه اینترنتی (بهترین نکته‌ها و راهکارها)

دسته‌بندی:

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

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

وبسایت دستکاری‌شده می‌تواند تاثیرات طولانی‌مدتی هم برای مشتری و هم برای فروشنده داشته باشد. مشتری‌ها ممکن است مورد سرقت مالی یا هویتی قرار بگیرند، و فروشنده‌ها ممکن است اعتبار و محصولات‌شان را از دست بدهند، هزینه‌ی بیشتری برای پردازش سفارش متحمل شوند و دچار مشکلات حقوقی شوند.

درست شروع کنید

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

اگر درحال ساختن یک وبسایت جدید هستید، تمام سایت را روی HTTPs بالا بیاورید. گوگل همین اواخر HTTPs را عاملی برای رتبه‌بندی در نظر گرفته است.

اگر وبسایت درحال کاری دارید، به یک کانال امن کدگذاری‌شده‌ی HTTPs مهاجرت کنید. به زحمتش می‌ارزد که تمام آدرس‌ها را از روی HTTP به HTTPs هدایت کنید. پیشنهاد می‌کنیم این کار را هرچه زودتر انجام دهید.

محیط را امن کنید

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

محیط سرور

  • مطمئن شوید سیستم عامل نصب‌شده روی سرور امن است. با ارائه‌دهنده‌ی هاست خود صحبت کنید تا مطمئن شوید هیچ نرم‌افزار غیرضروری روی سرور نصب نیست.
  • برای مدیریت فایل‌ها فقط از پروتکل ارتباط امن (SSH/SFTP/HTTPS) استفاده کنید و FTP را غیرفعال کنید.
  • مجنتو برای محافظت از فایل‌ها بر روی وب سرور آپاچی از فایل‌های .htaccess استفاده می‌کند. اگر از وب سرور دیگری مثل Nginx استفاده می‌کنید، مطمئن شوید که فایل‌ها و شاخه‌ها محافظت‌شده باقی می‌مانند. برای دیدن یک نمونه از تنظیمات Nginx به این پیوند بروید: MAGENTO-NGINX.CONF روی گیت‌هاب.
  • از گذرواژه‌های منحصربه‌فرد و قوی استفاده کنید و آنها را به طور مرتب تغییر دهید.
  • سیستم را بروز نگه دارید و وصله‌های امنیتی را بلافاصله نصب کنید.
  • هر گزارشی که نرم‌افزارهای متصل به مجنتو منتشر می‌کنند، مثل سیستم عامل، پایگاه داده MySQL، زبان PHP، نرم‌افزار Redis (اگر از آن استفاده می‌کنید)، Apache یا Nginx و نرم‌افزارهای دیگر مثل Memcached، Solr و غیره را به دقت دنبال کنید.
  • دسترسی به فایل cron.php را به کاربران معتبر محدود کنید. برای مثال، دسترسی را توسط آدرس IP ببندید. حتی اگر ممکن است، دسترسی به آن را به طور کل ببندید و دستورات را با استفاده از برنامه‌ریز cron نصب‌شده روی سیستم عامل اجرا کنید.

تکنیک‌های پیشرفته

  • فرایند توسعه را، اگر مقدور است، به صورت اتوماتیک انجام دهید و برای انتقال اطلاعات از کلیدهای خصوصی (private keys) استفاده کنید.
  • دسترسی به محیط ادمین مجنتو را با قرار دادن آدرس IP تمام کامپیوترهایی که می‌توانند به آن دسترسی پیدا کنند در لیست سفید محدود کنید. برای دیدن یک نمونه به اینجا بروید: امن کردن محیط ادمین مجنتو (متن انگلیسی).
  • افزونه‌ها را به طور مستقیم روی سرور اصلی نصب نکنید.
  • برای غیرفعال کردن Magento Connect downloader روی سرور اصلی، شاخه‌ی /downloader را پاک کنید یا دسترسی به آن را ببندید. می‌توانید از همان روش لیست سفید هم استفاده کنید.
  • از ارزیابی دومرحله‌ای برای ورود به محیط ادمین استفاده کنید. چندین ماژول برای افزایش امنیت در فروشگاه اینترنتی هست که یک کد عبور دوم روی تلفن همراه یا دستگاهی دیگر برای ورود تولید می‌کنند.
  • روی سرور اصلی دنبال «بقایای توسعه» بگردید. مطمئن شوید که هیچ فایل لاگ و شاخه‌ی .git قابل دسترسی وجود ندارد. تونل‌های اجرای SQL را ببندید و فایل پشتیبان‌گیری پایگاه داده، فایل‌های phpinfo یا هر فایل غیرضروری دیگر را که ممکن است مورد حمله قرار بگیرد حذف کنید.
  • هر نوع ارتباط به بیرون را محدود کنید. به جز آنهایی که ضروری هستند، مثل ارتباط با درگاه پرداخت.
  • از فایروال تحت وب برای تحلیل ترافیک و کشف الگوهای مشکوک استفاده کنید.

برنامه‌های سرور

  • مطمئن شوید تمام برنامه‌های نصب شده روی سرور امن هستند.
  • از اجرای برنامه‌های متفرقه روی سرور مجنتو بپرهیزید، به‌خصوص اگر از طریق اینترنت قابل دسترس هستند. حفره‌های موجود روی برنامه‌های وبلاگ مثل وردپرس می‌تواند مجنتو را هم تحت تاثیر قرار دهد. این گونه نرم‌افزارها را روی سروری دیگر یا ماشین مجازی اجرا کنید.
  • تمام نرم‌افزارها را بروز نگه دارید و وصله‌های امنیتی را بلافاصله نصب کنید.

محیط دسکتاپ ادمین

  • مطمئن شوید کامپیوتری که با آن به محیط ادمین دسترسی دارید امن است.
  • نرم‌افزار آنتی‌ویروس خود را بروز نگه دارید و از یک اسکنر بدافزار استفاده کنید. هیچ نرم‌افزار ناشناخته‌ای را نصب نکنید و پیوندهای مشکوک را نادیده بگیرید.
  • از گذرواژه‌ای قوی برای ورود به کامپیوتر استفاده کنید و آن را به طور مرتب تغییر دهید. از نرم‌افزارهای مدیریت گذرواژه مثل LastPass، ۱Password یا Dashlane برای ایجاد و مدیریت گذرواژه‌های منحصر‌به‌فرد و امن استفاده کنید.
  • گذرواژه‌های FTP را روی نرم‌افزارهای FTP ذخیره نکنید. زیرا آنها اغلب توسط بدافزارها شناسایی می‌شوند و برای آسیب رساندن به سرور مورد استفاده قرار می‌گیرند.

امن کردن مجنتو

تلاش برای امن کردن مجنتو از مراحل اولیه‌ی نصب شروع می‌شود و با تنظیم تنظیمات مربوط به امنیت، مدیریت گذرواژه‌ها و نگهداری مستمر ادامه می‌یابد.

مجنتوی نصب‌شده‌ی شما

  • از آخرین نسخه‌ی مجنتو استفاده کنید تا از آخرین تغییرات امنیتی بهره ببرید.
  • اگر به هر دلیلی نتوانستید نسخه‌ی مجنتوی خود را ارتقا دهید، تمام وصله‌های امنیتی ارائه‌شده توسط مجنتو را نصب کنید. گرچه مجنتو به طور مرتب وصله‌های امنیتی جدیدی برای رفع مشکلات عمده‌ی امنیتی معرفی می‌کند، نسخه‌های بالاتر حاوی بهبودهای امنیتی بیشتری هستند.
  • از یک آدرس محیط ادمین منحصربه‌فرد، به‌جای استفاده از آدرس پیش‌فرض «admin» یا آدرس رایج «backend» استفاده کنید. گرچه این کار شما را از حمله‌ی هکرهای خبره محافظت نمی‌کند، شما را از اسکریپت‌هایی که سعی می‌کنند به تمام فروشگاه‌های مجنتو رخنه کنند در امان نگه می‌دارد. (هیچوقت اشیای باارزش خود را در معرض دید قرار ندهید.)
  • پیش از تغییر آدرس ادمین با ارائه‌دهنده‌ی هاست خود صحبت کنید. بعضی از آنها باید قوانین جدیدی در فایروال‌شان اعمال کنند.
  • دسترسی به هر نوع سیستم توسعه، پیش‌تولید یا تست را ببنیدید. از لیست سفید IP و فایل‌های .htaccess استفاده کنید. بعضی از این سیستم‌ها در صورت نفوذ می‌توانند سیستم اصلی را هم تحت تاثیر قرار دهند.
  • از دسترسی‌های درست برای فایل‌ها استفاده کنید. فایل‌های هسته‌ی مجنتو و فایل‌های app/etc/local.xml باید فقط-خواندنی باشند.
  • از گذرواژه‌ی قوی برای محیط ادمین مجنتو استفاده کنید. برای اطلاعات بیشتر به این پیوند بروید: ایجاد گذرواژه‌ای قوی (متن انگلیسی).
  • افزونه‌ها را فقط از طریق منابع معتبر نصب کنید. هرگز از افزونه‌های منتشرشده روی تورنت یا سایت‌های دیگر استفاده کنید. اگر امکانش بود مشکلات امنیتی افزونه را پیش از نصب مطالعه کنید.
  • روی پیوندهای مشکوک کلیک نکنید و ایمیل‌های مشکوک را باز نکنید.
  • گذرواژه‌ی سرور یا محیط ادمین مجنتو را فاش نکنید، مگر این که مجبور شوید.
  • طرحی داشته باشید برای ادامه‌ی کسب و کار و بازیابی در هنگام فاجعه. حتی طرحی ابتدایی هم می‌تواند به شما کمک کند در صورت بروز هرگونه اتفاق دوباره روی پای خود بایستید.
  • مطمئن شوید سرور و پایگاه داده‌ی شما به صورت اتوماتیک در محلی خارجی پشتیبان‌گیری می‌شوند. یک سیستم معمولی به پشتیبان‌گیری روزانه‌ی افزایشی و پشتیبان‌گیری کامل هفتگی نیاز دارد. پشتیبان‌ها را به طور مرتب تست کنید تا قابلیت بازیابی داشته باشند.
  • برای یک وبسایت بزرگ، پشتیبان‌گیری متنی از پایگاه داده زمان بسیار زیادی برای بازیابی صرف می‌کند. با ارائه‌دهنده‌ی هاست خود مذاکره کنید تا روشی پیشرفته‌تر برای پشتیبان‌گیری از پایگاه داده در اختیارتان بگذارند.

دنبال نشانه‌های حمله بگردید

اگر سیستم شما بلافاصله پس از معرفی یک حمله‌ی بزرگ با وصله‌های امنیتی امن نشده، به احتمال زیاد مورد حمله قرار گرفته است. به طور مرتب وبسایت خودتان را برای یافتن نشانه‌های حمله مرور کنید.

بررسی امنیتی

  • به طور مرتب کاربران ادمین را بررسی کنید.
  • (فقط مختص مجنتو نسخه Enterprise) بخش Admin Action Log را برای فعالیت‌های مشکوک بررسی کنید.
  • از ابزارهای بررسی خودکار لاگ مثل Apache Scalp استفاده کنید.
  • با ارائه‌دهنده‌ی هاست خود تماس بگیرید تا لاگ‌ها را برای مشاهده‌ی فعالیت مشکوک زیرنظر بگیرند و روی شبکه‌ی شما یک سامانه‌ی تشخیص نفوذ (IDS) نصب کنند.
  • از ابزار راستی‌آزمایی فایل و داده مثل TripWire استفاده کنید تا اگر هر نوع بدافزار احتمالی در سیستم شما وجود داشت باخبر شوید.
  • تمام ورودها به سیستم (FTP یا SSH) را برای مشاهده‌ی فعالیت‌های مشکوک، آپلودها یا دستورات بگردید.

طرح بازیابی از فاجعه‌ی خود را دنبال کنید

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

  • دسترسی به سایت را ببندید تا هکرها نتوانند شواهد را پاک کنند یا اطلاعات بیشتری سرقت کنند.
  • از وبسایت فعلی پشتیبانی تهیه کنید که حاوی شواهد نفوذ و فایل‌های خراب باشد.
  • سعی کنید ابعاد حمله را ارزیابی کنید. آیا اطلاعات خصوصی مشتریان‌تان به سرقت رفته؟ از زمان حمله چقدر می‌گذرد؟ آیا اطلاعات کدگذاری شده‌اند؟ معمولاً یکی از حالات زیر اتفاق می‌افتد:
    • وبسایت بی‌ریخت (Defacing of Site): دسترسی به سایت مختل می‌شود اما اغلب اطلاعات تراکنش‌ها دست‌نخورده باقی می‌مانند. اطلاعات کاربران ممکن است مورد حمله قرار گیرد.
    • بات‌نت: وبسایت شما به گروهی از بات‌نت‌ها می‌پیوندد که هرزنامه ارسال می‌کنند. گرچه داده‌ی ذخیره شده در سایت به سرقت نمی‌رود، سرور شما توسط فیلترهای هرزنامه در لیست سیاه قرار می‌گیرد که باعث می‌شود نتوانید به مشتریان‌تان ایمیل بفرستید.
    • حمله‌ی مستقیم به سرور: اطلاعات به سرقت می‌روند، درهای پشتی (backdoor) و بدافزارهای مختلفی روی سرور نصب می‌شوند و وبسایت از کار می‌افتد. اطلاعات تراکنش‌ها، اگر روی سرور ذخیره نشده باشند، در امان هستند.
    • Card Capture پنهان: در این نوع حمله، که مخرب‌ترین آنهاست، حمله‌کننده یک بدافزار یا نرم‌افزار Card Capture پنهان روی سرور نصب می‌کند یا فرایند تسویه را طوری تغییر می‌دهد که اطلاعات کارت اعتباری برای او ارسال شوند. چنین حمله‌هایی ممکن است تا مدت‌ها پنهان باقی بمانند و به انتشار وسیع حساب‌های کاربری و اطلاعات مالی منجر می‌شوند.
  • سعی کنید جهت حمله را شناسایی کنید تا متوجه شوید سایت چگونه و چه موقع مورد حمله قرار گرفته است. فایل‌های لاگ سرور و تغییرات فایل را بررسی کنید. این را بدانید که گاهی ممکن است چندین حمله به صورت همزمان به یک سرور انجام شود.
  • اگر امکانش هست، همه چیز را پاک و دوباره نصب کنید. اگر روی ماشین مجازی کار می‌کنید، یکی دیگر بسازید. بدافزار ممکن است جایی نصب شده باشد که فکرش را هم نمی‌کنید و منتظر بماند تا دوباره فعال شود. تمام فایل‌های غیرضروری را حذف کنید. بعد تمام فایل‌های ضروری را از منبعی معتبر و پاک، مثل سیستم کنترل نسخه (VCS) یا سرور مجنتو دوباره نصب کنید.
  • تمام وصله‌های امنیتی اخیر را نصب کنید.
  • تمام دسترسی‌ها، از جمله گذرواژه‌ی پایگاه داده، دسترسی فایل‌ها، سیستم پرداخت و ارسال، وب سرویس‌ها و ورود به محیط ادمین را دوباره تنظیم کنید.
  • مشتریان‌تان را از نوع حمله و نوع اطلاعاتی که درز کرده است آگاه کنید. اگر اطلاعات خصوصی مثل آدرس‌های ایمیل به سرقت رفته ممکن است مورد حمله‌ی فیشینگ یا هرزنامه‌ها قرار بگیرند.

به دنبال مسیر مناسب برای فروشگاه خود هستید؟

همیشه اول با حرفه‌ای‌ها مشورت کنید.

پیام و یا پرسش‌تان را بنویسید.