کاربران و همراهان عزیز بیگ تم در این مطلب از سری آموزش های وردپرس قصد داریم تا مجدد در مورد یکسری نکات امنیتی در وردپرس صحبت کنیم.در بخش امنیت وردپرس بیگ تم خیلی در این مورد صحبت شده اما بنظره من این موضوعی است که هرچه درموردش صحبت کنیم باز هم کم است.پس در ادامهء این مطلب با ما همراه باشید تا صحبت هایی در مورد ویروس های مبتنی بر PHP و خطرات آن در وردپرس داشته باشیم .
ویروس های مبتنی بر PHP و خطرات آن در وردپرس
ویروس هایی که بر پایه زبان برنامه نویسی php هستند در همه جا شما و سایتتان را تهدید میکنند.با توجه به اینکه توسعه دهندگان و مدیران سایت های وردپرسی برای توسعه وبسایت خود بغضا از هک و کدها استفاده میکند,این مطلب را آماده کردیم تابگوییم که یک مدیر وردپرس تحت هیچ شرایطی نباید کدهایی که نیاز دارد رااز وب سایتهای ناشناخته و غیر معتبر تامین کند.
بودند سایتهایی که مدیران آنها کدهایی را از سایتها و یا افراد غیر مطمعن گرفته اند و بعد وب سایت آنها با ارور 500 و انواع و اقسام ارورهای دیگر مواجه شدند.با توجه به مقدمه ای که گفته شد در ادامه میخواهیم ببینیم که چگونه از php استفاده کرد و کمی شیطنت کنیم!:))
یکی از زبان های برنامه نویسی که امروزه حرف اول را در میان رقیبانش میزند زبان php است و مطمعن باشید خیلی طول نمیکشد که تمام وبسایتهایی که در اینترنت میبینیم از وردپرس تا فروشگاه و انواع و اقسم دیگر همه و همه php باشند.این زبان برنامه نویسی در وردپرس بسیار قدرتمند عمل میکند و در اصل اسکلت بندی و چهارچوب وردپرس را تشکیل میدهد.
نکته
نکته که در این آموزش میخواهیم به آن بپردازیم که البته احتمال میدهم کمتر کسی باشد که به این موضوع توجه کرده باشد این است که با php میتوان ویروس نویسی کرد.اولین ویروسی که بر پایهء PHP نوشته شد ویروسی بود موسوم به PHP.PIRUS.
این ویروس ساختهء دست فردی بود به نام Maskbits/VXI در سال2000.در واقع PHP.PIRUS را نمیتوان یک ویروس واقعی دانست.در واقع با این ویروس PHP به همه نشان داد که میتواند تبدیل به یک ویروس شود.این ویروس تنها فایلهای موجود در دایرکتوری را مورد هدف قرار میدهد.در ادامهء این مطلب با نحوهء کار این ویروس ها و ویروس نویسی مبتنی بر PHP آشنا میشویم.با ما همراه باشید.
شاید اولین فکری که بعد از شنیدن کلمهء ویروس به ذهن شما خطور میکند این باشد که ویروس میتواند فایل ها را آلوده کند.تفکر شما کاملا درست است و درواقع اصلی ترین ویژگی ویروس هم همین است.در واقع ویروسهایی که با زبان PHP نوشته میشوندباید این ویژگی را داشته باشند تا بتوانیم به آنها پسوند اجرایی بدهیم.
در زبان PHP توابع متععد و متفاوتی وجود داردن که با استفاده از میتوان با فایلها کار کرد.فوذگران با کارکردن با آنها تلاش میکنند که فایل های دایرکتوری شما آلوده کنند.در واقع نفوذگر میتواند به فایل های اجرایی هم دسترسی پیدا کند و آن ها را هم آلوده کند که این یعنی تمام فایلهای باقی مانده نیز آلوده خواهند شد.
کدهای پیش پردازش شونده
قبل ا اینکه موضوع را باز کنیم ببینیم که کدهای پیش پردازش شونده به چه مفهوم هستند؟ این نوع از کدها , کدهایی هستند که معمولا توسط نفوذگران به ابتدای کدهای سالم سایت قربانی کپی میشوند . این کدها , زمانی که مدیر وبسایت , دستوری را اجرا میکند یا پوشه ای را باز میکند , قبل از کدهای سالم اجرا میشوند که یکی از اصلی ترین قسمت ها در کار نفوذگران برای شروع آلودگی است .
در واقع اصل ویروسها همین کدها هستند.در ادامه برای اینکه این مفهوم بهتر درک شود یک مثال را باهم بررسی خواهیم کرد.در این مثال برای این که این کدها را پیدا کنی از 391 بایت اول شروع میکنیم بعد از اینکه آنها را خواندیم در یک متغیر ذخیره میکنیم.
نکته :
قبل از اینکه مدیر سایت بخواهد کدهای دایرکتوری سایتش را چک کند باید این ویروسها و کدهای PHP را شناسایی کند. برای همین منظور در زیر مثالی را آماده کردیم تا مفهوم بهتر درک شود.در واقع در مثال زیر ویروسی نوشتیم وقصد داریم تابا استفاده از آن دایرکتوری را آلوده کنیم.
البته دوستان این مثالقط جنبهء آموزش دارد و کدها عملا غیر قابل استفده هستند.
نمونه ای از ویروس مبتنی بر PHP را در تصویر زیر میتوان مشاهده کرد :
در مثال بالا ویروسمان وظیفه دارد تا 13 بایت ابدایی را بخواند و دنبال مقادیر زیر بگردد:
در این نمونه , ویروس ما وظیفه دارد که ۱۳ بایت ابتدایی را خوانده و به دنبال مقادیر زیر بگردد :
حالا عملکرد ویروسمان را بررسی کنیم:
این کد , ۳۱۹ بایت را که معرف سایز ویروس است میخواند.
در دایرکتوری جاری , به دنبال تمامی فایلها با پسوند PHP میگردد
اگر فایل سالم بود , آن را خوانده و مقادیر مورد نظر را به ابتدای آن اضافه میکند.
این امکان وجود دارد که ویروس را به طرق دیگری هم نوشت.مثلا به صورتی خودش به عنوان یک فایل جداگانه و مستق اجرا شود و به عمل نیک آلوده سازی بپردازد!
اما اینبار بدنه اصلی بعد از مقادیر موجود در فایل اضافه میشوند . به طور مثال به صورت زیر :
این بار هم به بررسی عملکرد این ویروس میپردازیم:
در قدم اول فایلی که آلوده است را باز میکند و محتویات فایل را در یک متغیر ذخیره میکند.سپس به دنبال تمامی فایل هایی که در دایکتوری جاری دارای پسوند php هستند میگردد.در قدم بعدی میزان آلودگی فایل را بررسی میکند ( در صورتی که فایلی حاوی پسوند SPTH نباشد آن را آلوده نمیداند ).
و بالاخره ویرس را تمام فایلها کپی میکند!به همین راحتی!
آلوده سازی چندگانه
با توجه به صحبت های که شد در ادامه ببینیم که آلوده سازی چندگانه به چه معناست
آلوده سازی چندگانه به این معناست که ویروس , بیش از ۱ نوع فرمت از فایلها را مورد هجوم قرار دهد ( برای نمونه , ویروس بالا علاوه بر اینکه به دنبال فایلهای با پسوند PHP باشد , پسوندهای دیگر نظیر XML را نیز آلوده کند ) این نوع از ویروس های مبتنی بر PHP بسیار خراب کننده و خطرناک هستند . با استفاده از این روش , نفوذگر , یا بهتر است بگوییم خرابکار , سرعت پخش ویروسش را به چندین برابر میرساند . در ادامه با چند روش آلودگی چند گانه آشنا میشویم . یکی از مشکلاتی که برای خرابکاران در نوشتن ویروس های چندگانه وجود دارد , اجرا نشدن مستقیم فایلهای PHP به صورت مستقیم است . این فایلها تنها به وسیله مرورگرهای حرفه ای قابل اجرا هستند . اما خرابکاران برای رفع این مشکل , از توابع ماکروسافت برای اجرای IE کمک گرفته و هدف خود را پیش میبرند .
آلوده سازی با VBS
ساده ترین نوع آلوده سازی شاید آلوده سازی با اسکریپت های VB باشد.اما در عین این سادگی نکاتی هم وجود دارد.
اکثر افرادی که در زمینهء توسعهء وب فعالیت دارند معتقدند که نشانه این نوع آلودگی , وجود علامت ( + ) در کدهاست .
در حالی که دقیقا برعکس است و در این نوع آلودگی ها , ویروس نویس از این علامت استفاده نمیکند زیرا این کارش باعث میشود که اسکریپ , تمامی فایلهایی را که با این علامت مشخص میشوند , به عنوان یک رشته واحد به حساب بیاورد . ویروس نویس برای رفع این مشکل , از تابع CHR در PHP کمک میگیرد و نتیجه نیز چیزی شبیه تصویر زیر میشود :
با زهم به بررسی عملکرد ویروس میپردازیمک
جداسازی کدهای PHP ( در واقع کدهای ویروس ) از میان خطوط CHR 10 , CHR13
ساخت کدهای VBS که یک فایل HTML حاوی کدهای ویروس را میسازند
اضافه کردن تمامی خطوط به VBS
جستجو برای پیدا کردن دیگر فایلها با پسوند VBS و بازنویسی آنها توسط کدهای از پیش ساخته شده توسط ویروس
آلوده سازی به کمک JS
آلوده سازی با جاوا اسکریپت و آلوده سازی با ویژوال بیسیک بسیار مشابه هم هستند.
در نوشتن این نوع ویروس , از Wscript برای نوشتن استفاده میشود . در اینجا تنها کاری که ویروس نویس برای آلوده کردن فایلهای JS انجام میدهد , تغییر اعلان متغیرها از SET به VAR و نوع فایلها به JS است .
آلوده سازی به کمک CMD
شاید سخت ترین راه برای ممکن برای آلوده کردن فایلهای Batch آلوده سازی به کمک CMD باشد.به این دلیل که بعضی از علامتها در این فرمت قابل استفاده نیستند و یا استفاده از آنها سخت است!به عنوان مثال یک ویروس نویس اجازه ندارد در یک فایل علاماتی مانند < & ^ استفاده نماید.
ویروس نویس های حرفه ای و کار کشته به جای استفاده از این علامتها,از کارکترها استفاده میکنند.اما بازهم یک مشکل وجود دارد و آن هم این که دو علامت<> در ابتدای یک فایل PHP صد در صد مورد نیاز است.
اما بالاخره کار نشد نداره!برای این هم یک راه حلی وجود دارد و آن هم اینکه از جاوا اسکریپت برای نوشتن این مقادیر در یک فایل HTML استفاده کنید و آن را فراخوانی کنید.
سخن آخر
هدف ما در این مطلب این بود که تا نکاته مختصری را در مودر امنیت php برای شما برای شما تشریح کنیم تا بتوانیم این مفهوم را برای مدیران وردپرس قابل فهم ,و برای توسعه دهندگان وب کاربردی باشد.
بدون شک این موارد تنها محدود به گفته های بالا نیست.اگرشما هم نکاتی را سراغ دارید تا گفته های ما را تکمیل کند حتما با ما و دیگر کاربران بیگ تم در میان بگذارید!
همیشه پیروز و موفق باشید!
امیدورام سایتهاتون همیشه امنتر از دیروز باشه:)