2009-03-17 10 views
10

ईआईसीएआर परीक्षण वायरस का प्रयोग एंटी वायरस प्रोग्राम की कार्यक्षमता का परीक्षण करने के लिए किया जाता है। आदेश में एक वायरस के रूप में यह पता लगाने के लिए,एंटीवायरस प्रोग्राम EICAR टेस्ट वायरस का पता कैसे लगाते हैं?

एंटीवायरस प्रोग्राम परीक्षण वायरस

या

heuristics एक संदिग्ध पैटर्न के रूप में यह पता लगाने और एक वायरस के रूप में यह पता लगाने के लिए वायरस परिभाषा होना चाहिए।

(मैंने एक अवसर देखा है कि एक एवी प्रोग्राम डाउनलोड करते समय फ़ाइल को हटा देता है लेकिन वायरस को ईआईसीएआर परीक्षण वायरस के रूप में पहचानने के बिना। बस एक संदिग्ध वस्तु के रूप में -> यानी यदि इसकी परिभाषा है तो इसे वायरस नाम की पहचान करनी चाहिए, विवरण इत्यादि नहीं है?)

+0

यह थोड़ा प्रोग्रामिंग से संबंधित कैसे है? – user73993

+1

शायद वह एवी सिस्टम लिखने के बारे में सोच रहा है? बेशक, वह इस तरह की एक प्रणाली को कैसे प्राप्त करने के बारे में सोच रहा था .... – RBerteig

+1

मैं सिर्फ वायरस पहचान तंत्र और कार्यक्रमों में उन्हें कार्यान्वित करने के बारे में पढ़ रहा था। चूंकि हेरिस्टिक्स और फोरेंसिक प्रोग्रामिंग से संबंधित हैं, मैंने इसे प्रश्न पूछने के लिए उपयुक्त स्थान के रूप में सोचा था :) –

उत्तर

30

आईएमएचओ, परीक्षण वायरस का बिंदु ऐसा कुछ है जो हानिरहित होने के लिए जाना जाता है, और एक वायरस के रूप में स्वीकार किया जाता है ताकि अंतिम उपयोगकर्ता सत्यापित कर सकें कि AV सॉफ़्टवेयर चालू है , और वायरस पहचान के प्रभाव को देख सकते हैं। एवी सॉफ्टवेयर के लिए, आग ड्रिल सोचो।

मुझे लगता है कि अधिकांश के लिए इसके लिए हस्ताक्षर है, और इसे सीधे इस तरह पहचानते हैं।

मुझे आश्चर्य नहीं होगा अगर वास्तविक ईआईसीएआर परीक्षण के बिट पैटर्न में बिट पैटर्न शामिल हैं जो संदिग्ध गतिविधि के लिए ऑपकोड की तरह गंध करते हैं, लेकिन मुझे नहीं पता कि यह मामला है या नहीं। यदि ऐसा है, तो यह एक सरल हेरिस्टिक वायरस पहचानकर्ता का वैध परीक्षण हो सकता है। हालांकि, चूंकि ईआईसीएआर परीक्षण लंबे समय के लिए आसपास रहा है, इसलिए मैं यह भी कल्पना करूंगा कि किसी भी ह्यूरिस्टिक जो इसे कैश करता है वह अब जंगली में कुछ भी पकड़ने के लिए पर्याप्त नहीं है।

मुझे उम्मीद नहीं है कि ईआईसीएआर पहचानने की अपेक्षा नहीं है कि "एवी स्थापित है और स्कैन करने की अपेक्षा की गई स्कैनिंग" की तुलना में किसी भी दावे का सबूत है, और यदि एवी सिस्टम विकसित करना है, तो मैं कोई मजबूत बनाने की कोशिश नहीं करता इसके बारे में दावा करें।

अद्यतन:

 
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* 

जो ध्यान से (Wikipedia article के अनुसार) से तैयार किया गया था दिलचस्प गुण के एक जोड़े के लिए:

वास्तविक EICAR परीक्षण वायरस निम्न स्ट्रिंग है।

सबसे पहले, इसमें केवल प्रिंट करने योग्य ASCII वर्ण होते हैं। इसमें अक्सर व्हाइटस्पेस और/या अंत में एक नई लाइन शामिल होगी, लेकिन इसका इसकी पहचान या उसके कार्य पर कोई प्रभाव नहीं पड़ता है।

जो दूसरी संपत्ति उठाता है: वास्तव में यह 8086 सीपीयू के लिए एक निष्पादन योग्य प्रोग्राम है। इसे एक्सटेंशन के साथ फ़ाइल में सहेजा जा सकता है (उदाहरण के लिए नोटपैड के माध्यम से) .COM, और इसे एमएसडीओएस, एमएसडीओएस के अधिकांश क्लोन, और यहां तक ​​कि विंडोज कमांड प्रॉम्प्ट के एमएसडीओएस संगतता मोड में भी चलाया जा सकता है (Vista पर, लेकिन किसी भी 64-बिट विंडोज़ पर नहीं, क्योंकि उन्होंने फैसला किया कि 16-बिट वास्तविक मोड के साथ संगतता अब प्राथमिकता नहीं थी।)

रन करते समय, यह "ईआईसीएआर-मानक-एंटीवायरस-टेस्ट-फ़ाइल" स्ट्रिंग आउटपुट के रूप में उत्पादन करता है! " और फिर बाहर निकलता है।

वे इस प्रयास में क्यों गए? स्पष्ट रूप से शोधकर्ता एक ऐसा कार्यक्रम चाहते थे जो भागने के लिए सुरक्षित हो, ताकि वास्तविक स्कैनर को वास्तविक वायरस पर कब्जा करने और वास्तविक संक्रमण का जोखिम उठाने के बिना परीक्षण किया जा सके। वे यह भी चाहते थे कि पारंपरिक और अपरंपरागत दोनों तरीकों से इसे वितरित करना आसान हो।चूंकि यह पता चला है कि x86 रीयल-मोड निर्देश सेट का एक उपयोगी सबसेट है जहां प्रत्येक बाइट प्रतिबंध को पूरा करता है कि यह एक प्रिंट करने योग्य ASCII चरित्र भी है, उन्होंने दोनों लक्ष्यों को हासिल किया है।

विकी आलेख में blow-by-blow explanation का एक लिंक है जो प्रोग्राम वास्तव में काम करता है जो एक दिलचस्प पठन भी है। जटिलता को जोड़ना तथ्य यह है कि कंसोल पर प्रिंट करने या डॉस वास्तविक मोड में किसी प्रोग्राम से बाहर निकलने का एकमात्र तरीका सॉफ़्टवेयर इंटरप्ट निर्देश जारी करना है, जिसका ऑपोड (0xCD) एक प्रिंट करने योग्य 7-बिट ASCII वर्ण नहीं है। इसके अलावा, दो इंटरप्ट्स को प्रत्येक को एक बाइट तत्काल पैरामीटर की आवश्यकता होती है, जिसमें से एक को स्पेस कैरेक्टर होना चाहिए। चूंकि स्वयं लगाए गए नियम रिक्त स्थान की अनुमति नहीं दे रहे थे, इसलिए कार्यक्रम के अंतिम बाइट्स (स्ट्रिंग में "एच + एच *") के सभी चार चारों ओर निर्देशक पॉइंटर उन्हें निष्पादित करने से पहले संशोधित किए जाते हैं।

वियोजन और मेरी XP बॉक्स पर एक कमांड प्रॉम्प्ट पर डीबग कमांड के साथ EICAR.COM डंपिंग, मैं देख रहा हूँ:

 
0C32:0100 58   POP  AX 
0C32:0101 354F21  XOR  AX,214F 
0C32:0104 50   PUSH AX 
0C32:0105 254041  AND  AX,4140 
0C32:0108 50   PUSH AX 
0C32:0109 5B   POP  BX 
0C32:010A 345C   XOR  AL,5C 
0C32:010C 50   PUSH AX 
0C32:010D 5A   POP  DX 
0C32:010E 58   POP  AX 
0C32:010F 353428  XOR  AX,2834 
0C32:0112 50   PUSH AX 
0C32:0113 5E   POP  SI 
0C32:0114 2937   SUB  [BX],SI 
0C32:0116 43   INC  BX 
0C32:0117 43   INC  BX 
0C32:0118 2937   SUB  [BX],SI 
0C32:011A 7D24   JGE  0140 

0C32:0110          45 49 43 41    EICA 
0C32:0120 52 2D 53 54 41 4E 44 41-52 44 2D 41 4E 54 49 56 R-STANDARD-ANTIV 
0C32:0130 49 52 55 53 2D 54 45 53-54 2D 46 49 4C 45 21 24 IRUS-TEST-FILE!$ 

0C32:0140 48   DEC  AX 
0C32:0141 2B482A  SUB  CX,[BX+SI+2A] 

JGE 0140 अप करने के लिए निर्देश को क्रियान्वित करने के बाद, पिछले दो निर्देश होने के लिए संशोधित किया गया है:

 
0C32:0140 CD21   INT  21 
0C32:0142 CD20   INT  20 

अधिकांश डॉस सिस्टम कॉल AH या AX रजिस्टर निष्पादित करने के लिए समारोह को निर्दिष्ट के मूल्य के साथ INT 21 के माध्यम से रवाना किया गया। इस मामले में, AH 0x09 है, जो प्रिंट स्ट्रिंग फ़ंक्शन है, जो 0x011C ऑफसेट पर शुरू होने वाली स्ट्रिंग को प्रिंट करता है, जिसे डॉलर चिह्न से समाप्त किया जाता है। (आपको शुद्ध डॉस में एक अलग चाल के साथ एक डॉलर का चिह्न मुद्रित करना था।) INT 20 कॉल उस बिंदु से पहले किसी भी अतिरिक्त बाइट को निष्पादित करने से पहले प्रक्रिया को समाप्त कर देता है।

स्व-संशोधित कोड प्रारंभिक वायरस चाल था, लेकिन यहां इसका उपयोग बाइट मानों पर प्रतिबंध को संरक्षित करने के लिए किया जाता है जिसे स्ट्रिंग में उपयोग किया जा सकता है। एक आधुनिक प्रणाली में, यह संभव है कि डेटा निष्पादन सुरक्षा सुविधा संशोधित करेगी, अगर इसे COM फ़ाइल चलाने वाले MSDOS संगतता मोड पर लागू किया गया है।

+0

ग्रेट उत्तर। प्रयास की सराहना करें। –

संबंधित मुद्दे