blis<=========|Gue_ni|=========>blis
| <====(( JATIMCREW )) Waktu Dimana Anak-anak Bangsa Menunjukkan Kreativitasnya-----------|
Darah_2Darah_1

Kamis, 11 Februari 2010

Fighting EPO Viruses

Artikel pendek ini menjelaskan apa yang disebut Entry Point Obscuring (EPO)teknik pengkodean virus, terutama melalui analisis langsung Win32.CTX.Phage virus. Kita harus mengetahui dasar-dasar IA-32 perakitan dan unsur-unsur utama dari Portable Executable (PE) struktur file untuk memahami artikel ini. Kita harus meninjau deskripsi Win32.CTX.Phage ditulis oleh Peter Szor dan Wason Han, karena artikel ini tidak mencakup semua fitur dari virus.

Mengapa EPO dan Win32.CTX.Phage

Entry-point menghalangi virus sangat menarik karena sangat sulit sifat deteksi, desinfeksi dan penghapusan. Saat ini teknik EPO digunakan dalam berbagai cara, dalam artikel ini kita pilih Win32.CTX.Phage  yang sama lain seperti virus terkenal sebagai Win9x.Margburg (salah satu polimorfik Windows9x virus, yang pertama kali muncul di wildlist) dan Win9x.HPS.  Virus ini dikenal karena sulit untuk mendeteksi dan sulit untuk bersihkan. Khususnya CTX.Phage melibatkan banyak teknik yang membuat proses desinfeksi sangat sulit, bahkan setelah virus sepenuhnya dipaham.

Teknik Memahami Entry Point Obscuring (EPO)

Ketika virus menginfeksi file, ia harus mencari cara untuk mencapai DNS dan dihukum mati. Sebagian besar file PE infectors menggunakan cara yang paling umum untuk melakukan hal ini - mereka hanya mengubah catatan-titik aplikasi yang terinfeksi dan membuatnya menunjuk pada tubuh virus. Contoh ditunjukkan di bawah ini.

Original EXE                                                     Infected EXE 

Entry-point: 0x1000 (.code section)                 Entry-point: 0x6000 (.reloc section)

Aktivitas virus seperti itu sangat mudah untuk mendeteksi, sebagaimana biasanya menghasilkan file yang entry-point kode tinggal di luar bagian, dan karena itu ditandai sebagai mencurigakan oleh virus scanner. Berikut adalah beberapa contoh kode, yang mendeteksi jenis infeksi:

(checks if the 'entry-point section' is the last section):

// --- snip of scanner code ------------------------------------------------

...(snip)...

sections = pPE->FileHeader.NumberOfSections;

pSH = (PIMAGE_SECTION_HEADER)((DWORD)mymap+pMZ->e_lfanew + sizeof(IMAGE_NT_HEADERS));

   

   

    while (sections != 0) {

        if (IsBadReadPtr(&pSH,sizeof(PIMAGE_SECTION_HEADER)) == TRUE)

              {

            printf("[-] Error: Bad PE file\n");

            goto error_mode4;

        }

 

        char *secname=(char *) pSH->Name;

        if (secname == NULL) strcpy(secname,"NONAME");

 

        startrange=(DWORD) pSH->VirtualAddress + pPE->OptionalHeader.ImageBase;

        endrange=(DWORD) startrange + pSH->Misc.VirtualSize;

 

        ...(snip)...

 

        if (pSH->VirtualAddress <= pPE->OptionalHeader.AddressOfEntryPoint && \

                   pPE->OptionalHeader.AddressOfEntryPoint <>VirtualAddress +

                                      pSH->Misc.VirtualSize)

                  {

           

                      printf("[+] Checking call/jump requests from %s section (EP)\n",

                                            secname);

            pSHC = pSH;

        }

 

   

        pSH++;

        sections--;

    }

 

    pSH--;

    

    if (pSHC == NULL)

       {

        printf("[-] Error: invalid entrypoint\n");

        goto error_mode4;

    }

 

 

    printf("[+] Starting heuristics scan on %s section...\n\n",pSHC->Name);

 

    if (pSHC == pSH)

       {

        printf("[!] Alert: Entrypoint points to last section (%s) -> 0x%.08x\n",

                       pSH->Name,pPE->OptionalHeader.AddressOfEntryPoint +

                           pPE->OptionalHeader.ImageBase);

 

        printf("[!] Alert: The file may be infected!\n");

        printf("[+] No deep-scan action was performed\n");

        goto error_mode4;

    }

 

 

...(snip)...

// --- snip of scanner code ------------------------------------------------

 

Sebenarnya alasan mengapa teknik EPO dikembangkan adalah untuk menghindari pendeteksian virus scanner. An entry-point menutupi virus adalah virus yang tidak mendapatkan kontrol dari program host secara langsung. Biasanya, virus patch program host dengan melompat / panggil rutin, dan menerima kontrol seperti itu. Meskipun ada banyak variasi dari teknik EPO, dalam artikel ini kita akan melihat salah satu dari mereka secara rinci.

Sumber : Securityfocus

 


Tidak ada komentar:

Posting Komentar