MİO GRAF  Milli İntellektual Oyun
       

   ƏSAS     XƏBƏRLƏR     SİZİN DƏRSLƏR     FOTO QALEREYA     VİDEO DƏRSLƏR     DƏRS GÖNDƏR     SUAL-CAVAB
DƏRSLİKLƏR
        AutoCad0003
        3D Studio Max0057
        Adobe After Effect0002
        Adobe Premier0002
        Adobe Photoshop0094
        Visual Studio0002
        Flash / Action Script0013
        Asp / Asp.net / C#0006
        PHP0002
        HTML / CSS0002
        JavaScript0001
        Visual Basic0004
        Delphi0002
        C / C++0006
        Microsoft Office0005
        Microsoft Windows0018
        Digər dərslər...0016

GİRİŞ
   İstifadəçi adı
   

   Şifrə
    
 
                                             
    Qeydiyyat ol
    Şifrəni unutdun?
 

YENİ LİNKLƏR
   tehsilimizinfo.blogspot.c...0231 
   www.azresce.com2990 
   www.evalin.az4208 
   www.novruzov.net4502 
   www.azgraf.net/mocuzeler5167 
   videoders.azersayt.com5154 
   www.mado.az5947 
   www.artdeco.az4477 
   www.cv-az.com7058 
   www.fakto.info5246 
 Ardı    


ELANLAR
Yaşıl: işçi axtarıram - Mavi: iş axtarıramBeynəlxalq holding koperasiyası. »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramMünasib iş axtarıram... »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramQrafik dizayner »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramNeft şirkətində işləmək istiyirəm. »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramAsp.Net, Delphi, HTML, Web Dizayner »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramİşci teleb olunur »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramİngilis dili hazırlığı. »»
Yaşıl: işçi axtarıram - Mavi: iş axtarıramİşçi tələb olunur. »»
 Ardı     



İstifadəçi: 0000732
Video dərs: 0000042
Şəkilli dərs: 0000193
Sual: 0000070
Şəkil: 0000305
Xəbər: 0000470
 Digər dərslər...     
Veb proqramçıların son günlərdə ki, dərtli problemi olan script virusunun zərərsizləşdirilməsi yolları.

Tarix:        13.05.2010
Oxunub:   5916        
Müəllif:     
Emin Novruzov   



Paylaş

Çap et        Şərh yaz

 Script virusunun zərərsizləşdirilməsi.

Salam əziz dostlar!
Mənim zənnimcə bu dərs bir çox veb proqramçının çox işinə yarayacaqdır. Dərsin məzmununda ümumi olaraq əsasən Asp.net C# dilinə müvafiq olaraq nümunələr veriləcəkdir. Lakin orta səviyyəli proqramistlər kodlara qısa nəzər yetirərək PHP, Klassik ASP dilinə də çevirə biləcəklər.

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> -->


Əgər yuxarıda qeyd etdiyiniz heç bir üsul Sizi qani etmirsə son olaraq aşağıdakı sistemdən istifadə edə bilərsiniz. Əgər saytınızdakı fayl sayı az olarsa bu üsul olduqca müvəffəqiyyətli şəkildə işləyəc. Əks təqdirsə yuxarıdakı üsullar ən məsləhətlisidir.

Deməli mən sistemi yəni kodlamaları asp.net C# dili ilə yazıram. Lakn yuxarıda da qeyd etdiyim kimi kodlara qısa nəzər yetirən php və ya asp dilinə də çevirə biləcəkdir.

Bu texnikanı saytıma bu virus düşdükdə ilk dəfə etmişdim. Lakin bəzi təhlükəsizlik problemlərini göz önünə almağınız vacibdir. Çünki əgər bu texnikadan istifadə ediriksə gərək saytın bütün papka və ROOT bölümünün yazma icazələrini açıq tutaq.

Qısa şərh edim. Deməli saytın ilk açıldığı səhifə default.aspx səhifəsidir. İlk olaraq bu səhifənin adını default2.aspx olaraq dəyişək. Daha sonra default.aspx səhifəsini açaraq HTML bölümünə sadəcə <!-- tag əlavə edək. Tag bağlanmır açıq tutulur. Bu zaman virus bu səhifəyə nə qədər düşsə belə heç bir ziyan vermədən default.aspx səhifəsi işlək olacaq. Default.aspx səhifəsinə isə səhifə açıldıqda digər bütün .aspx fayllarını içini açaraq yoxlayacaq. Hansında <script tag tapılarsa həmin səhifələr təmizlənərək yenilənəcək. Bütün proses bittikdən sonra da səhifə default2.aspx yönlənəcək.

Düşünə bilərsiniz ki, bu saytın yüklənməsini gecikdirə bilər. Amma məncə elə deyil. Çünki mənim 1 həftəlik araşdırmama görə virus sayta gündə sadəcə 1 dəfə düşür. Təmizlədikdən sorna əksər hallarda növbəti günə keçəndə düşür. Virus düşdükdən sonra sayta ilk girişdə bu proses gedəcək və təmizlənəcək. Artıq ondan sonrakı girişlərdə təmizlik olmayacaq. Sayt normal açılacaq. Default.aspx.cs faylını isə aşağıdakı kodlardan ibarət olmalıdır ki, bütün səhifələr təmizlənsin:


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Net;

public partial class Default : System.Web.UI.Page
{
protected void Page_PreInit()
{
string[] arPags = {
"default2.aspx",
"haqqinda/default.aspx",
"elaqe.aspx"
};

string searchVirus = "";
string searchVirusOld = "";
StreamReader sr;

for (int i = 0; i < arPags.Length; i++)
{
try
{
sr = new System.IO.StreamReader(new FileInfo(Server.MapPath(arPags[i])).OpenRead());
searchVirus = Convert.ToString(sr.ReadToEnd()).Trim();
searchVirusOld = searchVirus;
sr.Close(); sr.Dispose();
}
catch { }
if (searchVirus.ToLower().IndexOf("<script") > -1)
{
try
{

System.IO.StreamWriter sw = new System.IO.StreamWriter(Server.MapPath(arPags[i]), false, System.Text.Encoding.UTF8);
searchVirus = searchVirus.Substring(0, searchVirus.IndexOf("<script"));
if (searchVirus.Length < 5) searchVirus = searchVirusOld;
sw.WriteLine(searchVirus);
sw.Close(); sw.Dispose();

}
catch { }

try
{
//LOG saxlanılır. bool Append True etmişik artıq hər əlavə ettikdə bazanın alt sətrinə özü əlavə edir.
//Hansi sehifeleri duzeldir loglasdiraq.
System.IO.StreamWriter sw2 = new System.IO.StreamWriter(Server.MapPath("LogVirus.htm"), true, System.Text.Encoding.UTF8);
sw2.WriteLine("-->"+Config.Date("") + " - " + arPags[i] + " - "+ Convert.ToString(Request.UserHostAddress) + "<hr /><!--");
sw2.Close();
sw2.Dispose();

}
catch { }
}
}

Response.Redirect("~/Default2.aspx");
Response.End();
}


Dərsə məxsus məlumatlar qorunur.
İstifadəsi zamanı müəllif hüquqlarını nəzərə almağın tələb olunur!
E m i n    N o v r u z o v



  Paylaş      



AzGraf
25.05.2010 14:21
Hə anar birdə .js fayllarına gəldikdə düz deyirsən .js lərində içinə virus düşür. Onu necə həll etmək olar ?? .js faylını dəyişdirib hər hansı fayl tipi .jspx olaraq edin. Fisyo.... Saytda götürdüyünüz scriptin SRC dəyişdirin .jspx edin. Problemsiz scriptləriniz işləyəcək. Vius .jspx tanımadığı üçün əl vurmayacaq...
AzGraf
25.05.2010 14:20
Uşaqlar deməli orda sonradan bəzi düzəlişlər ettim. Hansı ki, tələ script - ni dəyişdirmişəm. Gördüyünüz kimi HTML BODY HEAD tag - larının hər tərəfinə script - lər əlavə etmişəm. Artıq bu şəkildə saytınıza yapışdırdaqda sayta ümumiyyətcə virus düşə bilmir. Çünki virus sayta yalnız 1 dəfə düşür. Əgər saytı gəzir script varsa artıq düşmür. Biz hər yerə bu yalançı scriptləri düzdükdə virus saytı gəzərək virus olduğunu hesab edir və sayta heç cürə virus düşmür.
Nesimi
14.05.2010 10:22
Təşəkkürlər Emin
Anar SAMADOV
14.05.2010 02:04
Emin super teşekkürler. Amma bir problem var.. jQuery istifade etmişem ve onun *.js sehifelerde var virus :S

   Ad, soyad:
    *
   Əlaqə:
    *
   (e-poçt, şəxsi sayt ya da telefon ola bilər)

   Şərh:
  

           
   • şərh yazmaq üçün saytımıza üzv olmalı və istifadəçi girişi etməlisiniz;
   • şərh yazarkən təhqir edici sözlərdən istifadə etməməli və mövzudan kənarlaşmamalısınız;
   • latın hərflərindən istifadə etməlisiniz.
ELAN GÖNDƏRDƏRS GÖNDƏRSAYT SİFARİŞİREKLAM SİFARİŞİBİZİM SƏHİFƏƏLAQƏ  
   Dizayn & proqramist: Emin Novruzov
   Şəxsi Portal  © 2010 Bütün hüquqları qorunur

   Standart 1024x768 px ekran ölçüsü, minimum 64 K/Bit internet sürəti ilə saytdan rahat istifadə edə bilərsiniz!