امنیت

شناسایی درهای پشتی در کدهای PHP

چند وقته که در کنار کتاب و مقاله هایی که می خونم و کارهایی که می کنم، علاقه زیادی به آنالیز کدهای مخرب پیدا کردم. یکی از این علاقه ها، شناسایی درهای پشتی در کدهای PHP است. در ادامه اشاره کوتاهی خواهم کرد به نشونه هایی که می تونه منجر به شناسایی کدهای مخرب بشه و البته روش های بدافزارنویس ها برای دور موندن از چشم کارشناس های امنیتی.

phpbackdoor

backdoor یا درپشتی در واقع یک تکه کده که به هکر امکان دسترسی مجدد به سایت هک شده رو می ده حتی اگه ادمین تموم پسوردها رو تغییر بده. این تکه کد می تونه ۱۰۰خط باشه یا یکی دو خط.  یکی از ابتدایی ترین شیوه ها گذاشتن یک درپشتی واضح و سر راسته:

این یک خط کد می تونه در یک فایل PHP جدید گذاشته بشه و یا به راحتی در یکی از چندین فایل قالب سایت اضافه بشه و از چشم ادمین دور بمونه. البته افزونه ها و یا نرم افزارهای امنیتی با چک کردن کل فایل های سایت و استفاده از پترن های شناخته شده این درهای پشتی رو خیلی زود پیدا می کنند. افزونه ها معمولا دنبال این توابع می گردن:

به دلیل پیشرفته تر شدن کارشناسان امنیتی و نرم افزارهاشون، هکرها هم به سمت آموزش و استفاده از روش های جدیدتر رفتن. روش هایی که بعضی مواقع زمان زیادی رو از کارشناسان امنیتی می گیره تا بتونن کشفش کنن. مثلا با استفاده از یک سری توابع PHP کدشون رو ناخوانا می کنند. کد زیر در واقع همون درپشنی در مثال قبله با این تفاوت که کل کد با متد base64 رمز شده.

در این روش هسته PHP ابتدا با دستور base64_decode این کاراکترهای به هم ریخته رو به کد اصلی برمی گردونه و سپس اجراش می کنه. این روش نیز به راحتی قابل پیدا کردنه. کافیه توی تموم کدهای سایتمون دنبال یک استرینگ رمز شده بگردیم و بعد ببینیم چکار می کنه.

روش دیگه ناخوانا کردن یک در پشتی می تونه مثال زیر باشه. این روش هم هرچند قابل پیدا شدنه اما با کمی خلاقیت می شه اون رو از چشم افزونه های امنیتی دور کرد و یا حداقل کاری که می کنه رو مخفی کرد:

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

نمونه های زیادی وجود داره که می شه مثال زد و بررسی که چکار می کنه اما در پایان می خوام اشاره ای بکنم به نمونه ای که یکی از سایت های فعال در بحث امنیت اون رو پیدا کرده و خب قاعدتا به زودی پترن های استفاده و کشفش در افزونه های امنیتی اضافه می شه.

در این نمونه نویسنده درپشتی، از فراخوانی توابع در تابع های عادی PHP استفاده کرده:

کاری که array_diff_ukey می کنه اینه که دوتا آرایه رو بر اساس کلید ها مقایسه می کنه و تفاوت ها رو بر می گردونه. یه گزینه دیگه هم داره که می تونه یک تابع دیگه رو فرابخونه و  این تفاوت های پیدا شده رو به اون بده و اون تابع رو اجرا کنه. مثلا تصویر زیر می تونه جمله All your data belong to me! رو در خروجی نشون بده

array_diff_ukey

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

می بینید که هیچ نکته غیر عادی در کد وجود نداره. ضمن اینکه این شیوه محدود به تابع array_diff_ukey نیست و با همین شیوه می شه از همه توابعی که تابع دیگه ای رو فراخوانی می کنن، استفاده کرد. باید پترنی رو پیدا کرد که تشخیص خودکار این روش رو ممکن کنه.

در پایان باید بگم:
اگر تجربه هک شدن سایتتون رو دارید حتما کار پاک سازی رو به یک کاردان بسپرید و به تغییر پسوردها بسنده نکنید هرچند که تغییر پسورد قدم اوله.
اگر از CMS هایی مثل وردپرس و جوملا استفاده می کنید حتما افزونه های امنیتی رو به کار ببرید.
هرگز از قالب و افزونه هایی که منتشر کننده ناشناس یا غیرمعتبر داره استفاده نکنید و یا اونها رو از سایت های متفرقه دانلود نکنید. همونطور که دیدید فقط یک خط در یکی از فایل هایی که روی سرور میذارید می تونه منجر به هک بشه.

 

Standard
امنیت

حمله بدافزار جاوایی به سرورهای آپاچی تامکت

کارشناسان سیمانتک موفق شدند یک Back Door جدید که از نوع کرم اینترنتی است کشف بکنند. هدف این بدافزار سرورهایی است که از آپاچی تامکت استفاده می کنند.

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

بک دورهایی که معمولا توسط هکرها استفاده می شه از PHP استفاده می کنند مثل PHP.Backdoor.Trojan ولی در این روش جدید، هکرها با استفاده از زبان برنامه نویسی JAVA یک تروجان Java.Tomdep اسم گذاری شده رو نوشتن.

روش گسترش Java.Tomdep

روش گسترش Java.Tomdep

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

این بدافزار جاوایی پس از پیدا کردن سرور هدف، سعی می کنه با ترکیبی از نام کاربری و پسوردهای ضعیف، به اون وارد بشه.

یوزرنیم و پسوردهایی که برای نفوذ استفاده می شن

یوزرنیم و پسوردهایی که برای نفوذ استفاده می شن

بعد خودش رو به سرور هدف می فرسته.

Tomdep 3 edit

طبق تحقیقات سیمانتک، سرورهای کنترل کننده و دستور دهنده (C&C) در تایوان و لوکزامبورگ هستند. قربانی های این حمله نیز در کشورهای معدودی قرار دارند.

سرورهای آلوده شده

سرورهای آلوده شده

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

منبع

Standard