در این مطلب قصد داریم تا برخی از نکات فنی در خصوص حملات هکرها با استفاده از توابع ناشناخته و دلایل بسته بودن توابع حساس در سرور را بررسی کنیم.
هکرها همیشه در کمین هستند. اگر یک کسب و کار اینترنتی دارید، باید حواس خود را جمع کنید. ممکن است همین حالا هکرها در حال نفوذ به کسب و کار شما باشند. تقابل با آنها یک کار ضروری است که شما باید همیشه در نظر داشته باشید. بسته بودن توابع حساس در سرور
استفاده از توابع ناشناخته
هکرها زمانی که در حال نوشتن کدهای مخرب خود هستند، تمام سعیشان را میکنند تا از نوشتن توابع خاص و شناخته شده که ممکن است توسط اسکنرهای امنیتی و آنتی شلها شناسایی شود، خودداری کنند. برای مثال، توابعی مانند system و file_put_contents در اکثر اسکنرها به عنوان یک کد مشکوک و مخرب شناسایی میشود، پس با این توابع نفوذ سخت است!
حالا هکرها برای دور زدن این مشکل چکار میکنند؟
هکرها به جای استفاده از توابع شناخته شده، از توابعی استفاده میکنند تا توسط اسکنرها شناسایی نشوند. یعنی معمولا نام تابع اصلی توسط هکرها عوض میشود تا به این طریق بتوانند به سرور یا هدف مورد نظر نفوذ کنند.
منظورمان از توابع حساس چیست؟
باتوجه به آنچه گفته شد، ممکن است هنوز سرورهای شما با استفاده از توابع حساس در خطر باشند.
در زبان PHP چند تابع خاص وجود دارد که اگر سمت سرور باز شود از نظر امنیتی خطرناک است. توابعی مانند fopen ،fwrite ،fclose و البته چند تابع دیگر. ما به این توابع، توابع حساس میگوییم.
هکرها با استفاده از توابع ناشناخته و بهکاربردن توابع حساسی که گفتیم، سعی در نفوذ به سرور شما را دارند و اگر به هدف خود دست پیدا کنند، میتواند برای سرور شما خطرناک باشد.
قطعه کد زیر را نگاه کنید. این قطعه کد یک فایل مخرب کشف شده از یک وبسایت هک شده است. هکر برای دستیابی به هدف خود، به جای استفاده از تابع file_put_contents، تابع getFile را ایجاد و استفاده کرده است.
اگر فقط توابع شناخته شده را در نظر بگیریم، باز هم سایت ما از حملات مصون نخواهد بود. چون نحوه حمله هکرها با استفاده از توابع ناشناخته را در مثالی که زدیم دیدید.
میبینید که هدف نهایی هکر این است که بدون جلب توجه و شناسایی شدن، از یک منبع third party اطلاعات باینری موردنظر خود را دانلود و ذخیره کند.
نحوه عملکرد قطعه کد تصویر قبل
هکر برای نفوذ به سیستم هدف از توابع fopen ،fwrite و fclose استفاده میکند. ابتدا یک Connection با استفاده از تابع fopen برای ارتباط از آدرس منبع third party به فایل فعلی ایجاد میکند.
بعد از اینکه ارتباط برقرار شد اطلاعات را با استفاده از فراخوانی تابع fwrite بر روی یک فایل به صورت جداگانه write میکند.
در نهایت بعد از اینکه کار خود را به پایان رساند با استفاده از تابع fclose ارتباطی که برقرار کرده را میبندد.
حالا با دیدن این سناریو، اهمیت این توابع و دلیل عدم استفاده از آنها کاملا مشخص است.
فایلهای مخرب در اکثر مواقع به سختی شناسایی میشوند و هکرها نیز پیوسته در تلاش هستند تا کارهای خود را از دید انسانها، فایروالها و سایر سرویسهای امنیتی مانند اسکنرها و آنتی شلها مخفی کنند.
نکته جالب اینجاست این توابع و سایر توابعی که ممکن است در سرور خطرساز باشند، در تمامی سرورهای ماهان سرور بسته هستند و اقدامات لازم جهت برقراری امنیت هرچه بیشتر مشتریان انجام شده است.
شما هم اگر روزی با چنین مشکلی برخورد کردید، واحد امنیت ماهان سرور را در جریان بگذارید. این نکته را به یاد داشته باشید که این واحد آماده کمک رسانی به شما عزیزان است.
امیدوارم این مطلب به آگاهی هرچه بیشتر شما کمک کرده باشد. اگر نظر، پیشنهاد یا تجربهای در این زمینه دارید میتوانید آن را در قسمت کامنتها با ما در میان بگذارید.