آیا سایتها بدشکل نشان داده میشوند؟ بانکهای اطلاعاتی، غیرهوشمند شدهاند؟ فایلهای مرموزی پیدا کردهاید؟ همه این علائم به شما هشدار میدهند برنامه تحت وب شما هک شده است؛ اما چگونه میتوانیم برنامههای کاربردی را ایمن کنیم؟
زمانیکه مشتریان با کسب و کار شما تعامل میکنند، به احتمال زیاد اولین برخورد آنها از طریق برنامه کاربردی تحت وب است. برنامه کاربردی تحت وب، معرف چهره عمومی شرکت شما است. در صورتیکه سایت شرکت یک آسیبپذیری آشکار و شناخته شده را در خود جای داده باشد، بدون شک چهره عمومی شرکت شما را مخدوش خواهد کرد.
بیشتر حملاتی که برنامههای تحت وب را نشانه رفتهاند، سعی میکنند که در اختفای کامل به حساسترین دادههای هارددیسک دسترسی داشته باشند. گزارش منتشر شده از سوی مؤسسه Verizon Data Breach Investigations یک حقیقت نسبتا ترسناک را به ما نشان میدهد.زمانی که هکرها به یک شبکه وارد میشوند، در اختفای کامل و بدون آنکه در شبکه قابل شناسایی باشند، نزدیک به ۲۰۵ روز از سال را در یک شبکه حضور خواهند داشت.
بیشتر سازمانها زمانی از وجود فرد ناشناس در شبکه خود آگاه میشوند که تماسی از سوی مبادی قانونی یا یک مشتری ناراضی دریافت کنند؛ اما چگونه میتوانیم از هک شدن برنامه کاربردی خود اطلاع پیدا کنیم؟ استیو داربین، مدیرعامل Information Security Forum در اینباره میگوید: «زمانی که یک برنامه کاربردی در معرض تهدید قرار میگیرد یا به عبارت سادهتر هک میشود، رفتارهای غیرعادی از خود نشان میدهد»؛ اما اگر بتوانید درک درستی از رفتار طبیعی برنامه کاربردی خود داشته باشید؛ هر وقت برنامه از مسیر اصلی خود منحرف شود، به خوبی این موضوع را تشخیص خواهید داد». در این مقاله قصد داریم، پنج علامتی که نشان میدهند برنامه تحت وب شما به خطر افتادهاند را به شما معرفی کنیم؛ همچنین راههای بررسی این مشکلات را به شما نشان دهیم؛ البته این مقاله با رویکرد یک راهنمای کلی، توصیف شده است. به بیان دیگر، مهم نیست برنامه شما ۱۰۰ درصد در معرض تهدید قرار گرفته باشد؛ در واقع این مقاله یکسری نشانهها و راهکارهای درمانی را به شما نشان میدهد.
برنامه کاری، وظیفهای که برایش طراحی شده است را انجام نمیدهد
زیر نظر گرفتن برنامههای کاربردی، بهترین روش شناسایی فعالیت غیرمعمول آنهاست. در این حالت به محض مشاهده رفتار مشکوکی، به سادگی میتوانید آنرا شناسایی کنید. علائم بارزی که در این گروه قرار میگیرند عبارتند از:
۱- برنامهای که در شرایط عادی صفحه، نتایج استخراج شده از بانکاطلاعاتی را در مدت زمان کوتاهی نشان میداد، اکنون نیازمند زمان بیشتری است.
۲- برنامه به جای آنکه صفحات را در اسرع وقت نشان دهد، برای این منظور زمان غیرعادی را سپری کرده یا کاربر را به صفحات دیگری هدایت میکند.
۳- ترافیک شبکه افزایش پیدا کرده است؛ در حالی که به لحاظ بازاریابی هیچگونه توجیهی در این زمینه وجود ندارد.
۴- یک فروشگاه تحت وب کوچک که بهطور معمول در یک روز ۵۰ سفارش را مدیریت میکرد، اکنون باید در یک روز به ۵۰۰۰ هزار درخواست رسیدگی کند؛ در حالی که هیچگونه توجیهی در این زمینه وجود ندارد.
هرچند دلایل بالا لزوما نشاندهنده یک تهدید برای برنامه کاربردی به شمار نمیرود و طولانی شدن زمان بارگذاری صفحات ممکن است موقتی بوده و به دلیل مشکلات ارتباطی باشد؛ اما اگر بر این باورید که به دلایلی سایت شما مورد توجه هکرها است؛ پس این حالات میتواند نشانهای از یک حمله DDoS باشد.
همیشه بهتر است به جای آنکه منتظر یک اختلال عمده باشید، رفتارهای مشکوک را بررسی کنید؛ اگر برنامه تحت وب، کاربران را به صفحات مختلفی هدایت میکند، علت این موضوع را شناسایی کنید. آیا یک تبلیغ بدافزاری است که به صورت تابعی در یک صفحه وب قرار گرفته است؟ آیا کدهای درون صفحه به تازگی مورد ویرایش قرار گرفتهاند؟ آیا اطلاعات بانکاطلاعاتی دستکاری شدهاند؟ همیشه سعیکنید با برنامه کاربردی در محیط بهرهوری، در تعامل باشید تا بتوانید رفتار عادی را از رفتار غیرعادی تجزیه کنید و در صورت بروز تغییری فوراً آنرا شناسایی کنید.
پیامهای ثبت شده غیرمنتظره را پیدا کنید
اگر فایلهای گزارش به درستی تنظیم شده باشند، در خصوص یک حمله، اطلاعات ارزشمندی را در اختیارتان قرار میدهند. این فایلها گزارشی از محاورههای غیرمنتظره، به ویژه زمانی که دسترسی به اطلاعات به درستی امکانپذیر نباشد فراهم میکنند؛ اگر فایلهای گزارش بانکاطلاعاتی در یک بازه زمانی کوچک خطاهای متعددی را به ثبت رسانده باشند، میتوانند علامتی از فردی باشند که پیرامون یک برنامه پرسه میزند یا نشان دهنده یک تزریق کد SQL است. این ردیابی از مکانی آغاز میشود که محاورههای اولیه بانکاطلاعاتی انجام شده و اطمینان از اینکه ورودیها به درستی اداره شدهاند.
نرمافزار وب سرور میتواند ارتباطات ورودی و خروجی شبکه را که از طریق پروتکلهای FTP و HTTP انجام شدهاند، ثبت کند؛ همچنین این گزارشها میتوانند علائم هشداردهنده از فعالیتهای مخرب یا غیرمجاز را جمعآوری کنند. معمولاً وب سرور باید تنها ارتباطاتی را که از بانکاطلاعاتی داخلی میآیند، مقداردهی اولیه کند؛ اگر وب سرور شما یک ارتباط خروجی با آدرسهای IP عمومی برقرار کرده است؛ بنابراین زمان آن رسیده که بپرسید به چه دلیل این ارتباط مقداردهی شده است؟ انتقال غیرقابل توضیح فایلها، نشان میدهد فایلهایی از وب سرور خارج شدهاند.
چنین موردی نشان میدهد که هکرها از یک برنامه کاربردی، دادههایی را سرقت کردهاند و در حال انتقال این محتوا به سرورهای راه دور هستند؛ اما نباید بیش از اندازه تمرکز خود را روی فعالیتهای خارج از شبکه معطوف سازید؛ زیرا ممکن است مسائل جانبی را نادیده بگیرید؛ اگر وب سرور با منابع داخلی شبکه در حال برقراری ارتباط است؛ بهطور مثال کاربری قصد به اشتراکگذاری فایل را داشته باشد، میتواند نشانه ورود هکرها به درون شبکه باشد؛ اگر برنامه کاربری به کاربر اجازه آپلود فایلها را میدهد، اطمینان حاصل کنید که اینکار از طریق یک سرور اختصاصی (نه از یک سرور عمومی که توسط سازمان مورد استفاده قرار میگیرد) انجام میشود.
بهطور منظم بهروزرسانیهای عرضه شده برای سیستمعاملها و نرمافزارهای جانبی را دانلود کنید. این توصیه در ارتباط با وبسرورها و برنامههای کاربردی نیز صدق میکند. بهطور مرتب برنامههای جانبی را بهروزرسانی کرده تا مطمئن شوید که آسیبپذیریها، وصله شدهاند.
همانند فایلهای گزارش تولید شده توسط سرور، فایلهای گزارش تولید شده توسط برنامههای کاربردی نیز به شما مشکلات و علائم مشکوک را نشان میدهند. اطمینان حاصل کنید که فایلهای گزارش برنامه کاربردی، وظایف سطح مدیریتی از قبیل ساخت حسابهای کاربری یا مدیریت حسابها را به درستی ثبت میکنند؛ همچنین به این نکته توجه داشته باشید که این گزارشها به درستی، نحوه ساخت حسابهای کاربری را ثبت کنند؛
به عنوان مثال، حسابها توسط مدیر شبکه ایجاد شدهاند یا هکرها اقدام به ساخت آنها کردهاند؛ همچنین برنامههای کاربردی، باید زمان ورود مدیران را نیز ثبت کنند. اینکار باعث میشود تا همواره اطلاعاتی درباره زمان و مکانی را که مدیران به شبکه وارد شدهاند، در اختیار داشته باشید. اطمینان حاصل کنید که حسابهای مدیریتی توانایی انجام چه کارهایی را دارند. معمولاً موارد غیر قابل توصیف از دسترسی حسابهای مدیریتی به برنامههای کاربردی، نشانه بارزی از یک نقص بزرگ است؛ اگر تعداد خطاهای وابسته به فرم (Form Submissions) افزایش پیدا کرده یا در زمان بارگذاری صفحات تعداد خطاها زیاد شده است، این احتمال وجود دارد که برنامه کاربردی سعی در انجام کاری دارد که برای آن طراحی نشده است؛ اگر متوجه افزایش خطاها شدید، به ردیابی صفحهای که این خطاها را تولید کرده، بپردازید و تغییر به وجود آمده را کشف کنید.
فرآیندها، کاربران یا وظایف جدیدی پیدا میکنید
برای تشخیص زمانیکه سرور پردازههای ناشناسی را ایجاد کرده یا پردازههای آشنایی را در زمان غیر معمول اجرا کرده است، نظارت بر پردازههای در حال اجرا روی وبسرور مفید هستند؛ در واقع، یک پردازه ناشناس یک سرنخ بزرگ است که نشان میدهد برنامه کاربردیتان تحت کنترل شما نیست. زمانیکه یک هکر حسابی را روی یک سرور ایجاد میکند، احتمال بسیار کمی وجود دارد که هکر، فعالیت خاصی انجام ندهد. نظارت مداوم روی سرور و حسابهای کاربری، به ویژه حسابهایی که با مجوزهای سطح بالا ساخته میشوند، یک وظیفه حیاتی به شمار میرود.
به یاد داشته باشید که هیچ حساب کاربری روی هوا ساخته نمیشود؛ در نتیجه زمانی که یک حساب کاربری ساخته میشود، ارزش دارد که آنرا بررسی کنید و ببینید این حساب چه زمانی ساخته شده است؛ اگر کاربران خاصی در سیستم هستند که بهطور معمول به مجوزهای سطح بالا یا دسترسی به ریشه، نیازی ندارند و ناگهان چنین درخواستی از سوی آنها ارائه میشود، پس شک کنید که ممکن است اعتبار این کاربران به سرقت رفته است. سعی کنید خود را عادت دهید که از Crontab در سرورهای لینوکسی و Scheduled Task در سرورهای ویندوزی استفاده کرده و بدانید چه موجودیتهایی رفتار طبیعی دارند؛ اگر کارهای جدیدی اضافه شدهاند، ممکن است نشانهای از یک برنامه باشد که میخواهد یک کار غیرمنتظره انجام دهد.
هر چند ممکن است که کار اضافه شده یکی از وظایف عادی سیستمعامل بوده که قرار است اجرا شود؛ اما ممکن است تلاشی از سوی یک هکر برای دسترسی به یک برنامه خاص باشد تا از راه دور و از طریق سرور C&C (سرنام Command-and-Control )، دستورات خود را ارسال کند. یک هکر همچنین این توانایی را دارد تا دادههای استخراج شده را در قالب دستههای (Batch) کوچک خودکار برای سرور راه دور ارسال کند.
فایلها تغییر پیدا کردهاند
تاریخ و زمان فایلها اطلاعات بسیار مهمی را در اختیار ما قرار میدهند. شاید برای کلاینتها تغییر تاریخ و زمان فایلهای سیستمی مهم نباشد؛ اما این موضوع در مورد برنامههای وب، از اهمیت خاصی برخوردار است. آیا مهرزمان (Timestamp) روی فایلهای برنامه کاربردی وب به شما میگویند فایلهایی که سالها پیش آنها را تغییر دادهاید به تازگی ویرایش شدهاند؟ اگر وب سرور به درستی پیکربندی نشده باشد یا برنامه کاربردی آسیبپذیر باشد، هکرها این توانایی را دارند که برنامه کاربردی را به گونهای ویرایش کنند تا کدهای مخرب آنها را اجرا کند. این اتفاق میتواند از طریق تزریق جاوااسکرپیت یا بازنویسی ماژولها انجام شود. برای اطمینان از این موضوع که فایلها بدون اجازه ویرایش نشدهاند، در هر زمانی فایلهای خود را مورد بررسی قرار دهید. اگر فایلی ویرایش شده است، این فایل را با نسخههایی که هنوز تغییر پیدا نکردهاند مورد بررسی قرار دهید. چندین ابزار برای اسکن یک برنامه کاربردی یا بررسی کد مخرب در دسترس کاربران قرار دارند. سعی کنید از این ابزارها به تناوب استفاده کنید تا مطمئن شوید که به صورت پنهان، تغییراتی رخ نداده باشند. (Sucuri از جمله این ابزارهاست). آیا تعداد قابل توجهی فایل جدید روی وبسرور اضافه شدهاند؛ اما نمیتوانید توضیحی برای کارکرد آنها ارائه کنید؟
اگر مشکلاتی شناسایی شدهاند، از برنامه کاربردی و سرور یک نسخه پشتیبان تهیه کنید تا بتوانید بعدا آنرا مورد بررسی قرار دهید؛ اگر در حال بازگرداندن دادهها از نسخه پشتیبان هستید، اطمینان حاصل کنید، اینکار از طریق یک کپی تمیز انجام میشود
فایلهای جدید روی وب روت نشاندهنده یک مشکل هستند؛ بهویژه اگر این فایلها، اسکرپیتها یا انواع دیگری از فایلهای اجرایی باشند. اضافه کردن فایلها به وبروت باید همراه با یک فرآیند مستندسازی باشد تا هیچگاه غافلگیر نشوید؛ اگر فایلهای جدیدی را در وبروت یا جای دیگری در سرور شناسایی کردهاید، نشان میدهد که سرور شما دارای یک نقص است. یک هکر ممکن است از برنامه کاربردی شما به عنوان یک سرویسدهنده بدافزار به بازدیدکنندگان سایت استفاده کند یا با اجرای یک اسکرپیت، کاربران را به مکانهای دیگری هدایت کند.
هکر حتی این توانایی را دارد که از یک فایل متنی که شامل دادههای مورد نظرش است نیز استفاده کند. در بعضی موارد هکرها به جای آنکه یک برنامه وب واقعی را مورد تهاجم قرار دهند، این توانایی را دارند تا یک پوشه کامل ایجاد کنند و برنامه خود را درون آن نصب کنند؛ اگر یک برنامه کاربردی از پلاگینهای ثالثی استفاده میکند، اطمینان حاصل کنید، پلاگینها توانایی بهروزشدن یا نصب خودکار را بدون نشان دادن هشدار، نداشته باشند. بهراحتی افزونهها را نصب نکنید؛ زیرا ممکن است ظاهر سایت شما را خوب نشان دهند؛ اما در مقابل ممکن است قابلیتهای تخریبکارانهای را به سایت شما اضافه کنند. همواره با استفاده از ابزارهای پویشگری از قبیل White Hat Security، سعی کنید کدهای مخربی را که پتانسیل یک حمله را افزایش میدهند، شناسایی کنید.
هشدارهایی را دریافت میکنید
اگر برنامه شما مورد تهدید قرار گرفته است و بهطور فعالانه اقدام به گسترش و انتشار بدافزارها میکند، شانس خود را با ابزارهای امنیتی برای از میان برداشتن این تهدیدات امتحان کنید. گوگل صفحاتی که به بدنامی مشهور باشند و کاربران از طریق مرورگر کروم آنها را مورد بازدید قرار دهند را به سرعت مسدود میکند.
مرورگرهای دیگر در یک بهروزرسانی منظم این صفحات را در فهرست سیاه قرار میدهند. بهطور منظم برنامه خود را با مرورگرهای دیگر بررسی کنید تا اگر پیغامی نشان داده شد، آن را مشاهده کنید؛ همچنین میتوانید سایت خود را با استفاده از ابزارهایی همچون Google’s Safe Browsing مورد بررسی قرار دهید. در بسیاری از موارد، نظارت بر رسانههای اجتماعی و ارائه ایمیلی به کاربران برای بیان شکایتهایشان راهگشا است؛ اگر کاربران اعلام میکنند که در ارتباط با تنظیم مجدد گذرواژه خود، هیچ ایمیلی دریافت نمیکنند؛ به این دلیل است که پیامها به عنوان هرزنامه در نظر گرفته شدهاند؛ در نتیجه باید این موضوع را بررسی کنید که آیا برنامه کاربردی شما به عنوان پرچمدار ارسال هرزنامهها شناخته شده است یا خیر؟
به یاد داشته باشید، بهداشت امنیتی را در مورد برنامههای تحت وب خود لحاظ کنید
اگر مشکلاتی شناسایی شدهاند، از برنامه کاربردی و سرور یک نسخه پشتیبان تهیه کنید تا بتوانید بعدا آنرا مورد بررسی قرار دهید؛ اگر در حال بازگرداندن دادهها از نسخه پشتیبان هستید، اطمینان حاصل کنید، اینکار از طریق یک کپی تمیز انجام میشود؛ زیرا بهطور ناخواسته نرمافزارهای مخرب را نصب نکنید. فایلهای آلوده را شناسایی کرده و آنها را با فایلهای تمیز جایگزین کنید؛ البته لازمه اینکار، داشتن نسخههای بهروز شده در فواصل زمانی معین است.
یکمرتبه که یک برنامه کاربردی بازسازی شده و فایلهای غیرضروری حذف شدهاند، همه گذرواژههای مرتبط با CMS، حسابهای مدیریتی و سرویسهای مجزا را تغییر دهید. در صورت امکان احراز هویت دو عاملی را فعال کنید؛ اینکار باعث میشود تا برنامه کاربردی ایمن و مانع از بازگشت مجدد هکرها شود. مجوزهای نوشتن را در مکانهایی که ضرورتی ندارد، حذف کنید و هرگز از گذرواژههای پیشفرض استفاده نکنید.
همچنین از مسیرهایی برای پوشهها استفاده کنید که حدس زدن آنها مشکل باشد. ابزارهای پویشگر این توانایی را دارند تا آسیبپذیریهای امنیتی در برنامه کاربردی شما را شناسایی کنند. در لپتاپ کاری یا خانگی از یک نرمافزار آنتیویروس استفاده کنید و مراقب باشید چه برنامههایی را دانلود میکنید. بهطور منظم بهروزرسانیهای عرضه شده برای سیستمعاملها و نرمافزارهای جانبی را دانلود کنید. این توصیه در ارتباط با وبسرورها و برنامههای کاربردی نیز صدق میکند. بهطور مرتب برنامههای جانبی را بهروزرسانی کرده تا مطمئن شوید که آسیبپذیریها، وصله شدهاند.
ابزارهای آنتیویروسهای مدرن به راحتی توانایی شناسایی بدافزارهای نصب شده روی سرورها را دارند؛ در حالی که بازسازی مجدد سرور از ابتدا و راهاندازی برنامه کاربردی امکانپذیر است؛ اما معمولا به عنوان آخرین راه نجات در نظر گرفته میشود.
منبع: ماهنامه شبکه