فرد كوهن : پدر ويروس كامپيوتري
روز سوم نوامبر سال 1983 در اتاق كوچك سمينار دانشگاه كاليفرنياي جنوبي فكري در مغز فرد كوهن (Fred Cohen) جرقه زد؛ موضوع يكي از دروس ايمني كامپيوتر مربوط به دوره فوق ليسانس، توجه كوهن را به خود جلب كرده بود. در آن روزها كوهن با مشكلات فراواني روبرو بود. سال قبل از آن تز پيشنهادي وي رد شده بود، و فقط يك هفته به پايان مهلت شش ماهه ارائه تزي ديگر وقت باقي مانده بود. تا آن هنگام سعي كرده بود تا همان تز رد شده خود با موضوع پردازش موازي را تكميل كند. اگر استادش اين بار هم تز را رد ميكرد ديگر از دكترا در علوم كامپيوتر و يافتن كار دلخواه خبري نبود. به همين دليل، مغز او در آن روزها به شدت و بيوقفه كار ميكرد.
كوهن، دانشجوي خانهبهدوش در رشته مهندسي برق و ايمني كامپيوتر، فرزند دو فيزيكدان و بزرگشده شهر پيترزبورگ بود. او مدرك ليسانس خود را در همان شهر از دانشگاه كارنگيملون و درجه فوق ليسانس دانش اطلاعات را از دانشگاه پيترزبورگ گرفت و براي اين كه ادامه تحصيل بدهد و به يك دانشجوي كامل تبديل شود به دانشگاه كاليفرنياي جنوبي رفت تا در رشته نظريه كامپيوتر و دانش روباتيك تحصيل كند. نيرومند، خوشرو و گاهي بيادب بود.
كوهن در مطالعات خود بر روي پردازش موازي (استفاده از چندين پردازنده كه ب صورت موازي با هم كار ميكنند) به الگوريتمهاي توزيعي (Distributed Algorithms) علاقهمند شد. الگوريتمهاي توزيعي الگوريتمهايي هستند كه يك مسئله را به چندين بخش تقسيم ميكنند تا هر بخش را يكي از پردازندههاي كامپيوتر موازي و يا پردازنده يك كامپيوتر ديگر حل كند. او به اين فكر افتاد كه بعضي از بخشها به صورت برنامههاي (خود – تكثير كننده) باشند و اين پرسش به ذهنش رسيد كه اگر قطعات ساده يك برنامه بتوانند خود را به برنامههاي ديگر اضافه كنند و فرضاً كنترل آنها را به دست بگيرند _ مانند روشي كه انگلها خود را با ميزبان وفق ميدهند _ موارد استفاده چگونه خواهد بود.
كوهن بعدها درباره احساسات آن روز خود چنين گفت: (گويي پردهاي بين من و واقعيت قرار گرفته بود، خداوند آن پرده را كنار زد و به من نشان داد كه آنجاست. بلافاصله روش كار را فهميدم. به هر حال، مدتها بر روي ايمني كامپيوتر كار كرده بودم و ميدانستم سيستمها چگونه كار ميكنند و حملههاي مختلف چگونه روي ميدهند… اما در آن لحظه جرقهاي در ذهنم پديد آمد: اگر يكي از اين برنامهها نوشته شود، آن برنامه ميتاوند در هر جايي تكثير گردد).
وقتي سمينار به پايان رسيد، كوهن نظر خود را با استادش، آدلمن (Leonard Adleman) در ميان گذاشت. آدلمن بلافاصله موضوع را دريافت و به شباهت نظر كوهن با پديدههاي زيستي اشاره كرد: ويروسها
بي آنكه آدلمن يا كوهن بدانند، سالها پيشتر از آن، در سال 1972، دويد جرالد (David Gerrold) يكي از نويسندگان داستانهاي علمي – تخيلي نيز در كتاب خود به نام (وقتي هارلي يكي بود) از كلمه ويروس براي اشره به نوعي ساختار كامپيوتري بدذات سود جسته بود. اما هنوز اين واژه به عنوان يك اصطلاح كامپيوتري بر سر زبانها نيفتاده بود.
كوهن ويروس كامپيوتري را چنين تعريف كرد: (برنامهاي كه نسخهاي از خود را به برنامههاي ديگر وصل ميكند و نوعي اصلاح و تغيير در آنها به وجود ميآورد). آدلمن دانشجوي خود را ترغيب كرد كه نظرات خود را آزمايش كند. كوهن به دفتر كوچك خود كه با چهار دانشجوي ديگر مشترك بود رفت، پشت پايانه كامپيوتر نشست و در عرض پنج دقيقه برنامهاي نوشت كه ميتوانست خودش را به ساير برنامه ها متصل كند. به اين ترتيب ساده ترين بخش يك ويروس كامپيوتري _ بخش مخرب _ تكميل شد. كوهن تا غروب كار كرد تا بخش دشوارتر آن را بنويسد، يعني بخشي كه ميتوانست زاد و ولد كند، و البته تحت كنترل باشد. او در ساعت هشت شب كار خود را به اتمام رساند: دويست سطر برنامه به زبان C كه به عنوان نخستين ويروس مستند شده در تاريخ كامپيوتر شهرت يافته است.
كوهن دانشجويي نبود كه بياجازه آن ويروس را منشر كند. وي ميگويد: (نميخواستم برنامهاي داشته باشم كه فقط پخش شود، بلكه ميخواستم برنامهام تحت كنترل باشد. به هنگام انتشار ويروس بايد بسيار دقت ميكردم. نه تنها ميبايست اجازه اين كار را ميسگرفتن، بلكه نميبايست اجازه ميدادم كه چيزي به صورت تصادفي به اطلاعات كامپيوتري صدمه بزند. از اين روي، به تجزيه و تحليل عادات مختلف كاربران پرداختم (اين كار براي كوهن ساده بود زيرا با سيستم عامل يونيكس كار ميكرد كه معمولاً فهرست پروندههاي هر كاربر را نشان ميدهد)، و پيدا كردم كه آنها از كدام برنامهها بيشتر استفاده ميكنند. ويروس ميبايست به برنامههايي سرايت كند كه بشترين احتمال استفاده توسط كاربران را داشت. زيرا اين پديده فرقي با بيماريهاي حيات طبيعي ندارد . اگر بخواهيد نوعي بيماري ويروسي شايع شود بايد با شخصي شروع كنيد كه با عده زيادي از مردم ارتباط دارد).
آدلمن به کوهن اجازه داد تا برنامه اش را در محیط یونیکس VAX 11-750 دانشگاه اجرا کند. کوهن هنوز تردید دارد که استادش ماهیت آن آزمایش را به طور کامل به مدیران مرکز کامپیوتر دانشگاه توضیح داده باشد. آنها چگونه می توانستند از نحوه اجرای پدیده ای جدید سر در بیاورند؟ با این همه، کوهن مطمئن بود که می تواند کنترل مخلوق خود را در دست بگیرد. او نخستین کامپیوترشناسی است که ویروسی را تحت کنترل علمی به (دنیای وحش اطلاعات) هدایت کرد.
آزمایش کوهن در عصر یکی از روزهایی که بیشترین استفاده از کامپیوتر دانشگاه می شد انجام گرفت. در آن هنگام حدود 50 کاربر به طور تسهیمی با کامپیوتر وکس (VAX) کار می کردند.
ویروس کوهن در برنامه ای به نام (VD) قرار داشت. ظاهر ویروس کوهن آن بود که پیغامی را به شکل گرافیکی در پرونده های کاربران قرار می داد و آنها می توانستند روی صفحه نمایش خود آن را ببینند. اگر وقتی که مهمترین کاربر کامپیوتر یونیکس _که کاربر سیستم، و مشهور به ریشه بود و به همه ی پرونده های سیستم دسترسی داشت_ به ویروس او آلوده می شد، کوهن می توانست به همه پرونده های سیستم دسترسی بیابد، مثلاً می توانست همه پرونده ها را بخواند یا بر روی آنها بنویسد. و این قدرت حتی شامل دسترسی به پرونده های خود سیستم عامل هم می شد. درست مانند به اسارت درآوردن ملکه زنبور عسل ها. کوهن صاحب و مالک کندو می شد. کوهن اجرای برنامه خود را به همه کاربران اطلاع داد و منتظر نشست.
وقتی اولین کاربر طعمه واقع شد، ویروس ضربه خود را زد. ویروس او برنامه هایی را هدف قرار می داد که بیشترین استفاده را داشتند. ویروس مزبور فقط به نیم ثانیه وقت نیاز داشت تا خود را به چنان برنامه هایی متصل کند. این زمان کمتر از آنی است که کاربر بتواند حدس بزند که اتفاق نا میمونی رخ داده است.
ویروس کوهن برنامه ای را انتخاب کرده بود که وقت روز را نشان می داد. بسیاری از کاربران دوست داشتند همزمان با کار روی ویرایشگری به نام EMACS، ساعت را نیز روی صفحه نمایش داشته باشند. به طور مهمول تقریباً نیم از کاربران از این ساعت بهره می گرفتند. هر وقت ویروس از کوهن اجازه سرایت می خواست او موافقت می کرد. در پی آن ویروس به سایر کسانی که از برنامه ساعت بهره می جستند سرایت می کرد و خیلی زود به کاربری می رسید که مالکیت EMACS را داشت. از آن پس، هر کس که از این برنامه استفاده می کرد آلوده به ویروس می شد، البته با اجازه کوهن.در عرض چند دقیقه، (ریشه) نیز با دستیابی یکی از برنامه های آلوده، مبتلا به ویروس می شد و کار ویروس به اتمام می رسید و ویروس کوهن به طور کامل آن سیستم را آلوده می کرد.
حالا کوهن می توانست به برنامه ها و پرونده های همه کاربران دسترسی داشته باشد. او می توانست فرمانهایی تحریر کند که گویی هر یک از آن کاربران فرمان می دهند. او از این قدرت خود برای پاک کردن ویروس از پرونده های کاربران بهره گرفت. سپس دوباره آزمایش خود را تکرار کرد. او در مجموع پنج با ویروس خود را در سیستم رها کرد. هر بار به 100 % نفوذ کامل رسید. در این پنج بار، کمترین مدت آلودگی کامل سیستم به ویروس پنج دقیقه، بعدی 14 دقیقه و بیشترین مدت یک ساعت بود.
دقیقاً یک هفته پس از آن که مسئله ویروس کامپیوتری ذهن کوهن را به خود جلب کرد، او مخلوق خود را در سمیناری که آدلمن ترتیب داده بود به نمایش گذاشت. دانشجویان همدوره اش آنچه را می دیدند باور نمی کردند. کوهن نفر به نفر آنها را پای کامپیوتر می برد و برنامه مبتلا به ویروس را نشان می داد. آنها به محض دیدن برنامه مات و مبهوت می شدند. کوهن نظریات خود را به سادگی برایشان شرح می داد، اما از این نکته نیز غافل نبود که در مورد آزمایش خودسرانه به آنها هشدار دهد. او بعدها واکنش آنها را با کسی مقایسه می کرد که صبح به سراغ اتومبیل خود می رود و می بیند اتومبیلی در کار نیست. اولین واکنش انسان معمولاً آن است که فکر می کند شاید اتومبیل را در جایی دیگر پارک کرده باشد. سپس ممکن است به سراغ همسر خود برود و از او بپرسد که آیا اتومبیل را در جایی دیگر پارک کرده است یا نه. به تدیج این فکر در ذهنش قوت می گیرد که شاید اتومبیل را دزدیده باشند، اما باز هم، پیش از تلفن به پلیس، احتمالاً یک بار دیگر به دقت محوطه پارکینگ را جستجو می کند. گاهی شواهد و مدارک به تنهایی برای متقاعد ساختن افراد کافی نیست. نوعی تمایل و اشتیاق وافر نیز برای فهمیدن شواهد لازم است. به هر حال، دانشجویان با آن که زاد و ولد ویروسها را می دیدند باز هم به سختی آن را باور می کردند.
کوهن که از رد شدن تز قبلی خود ضربه خورده بود، این بار در مستند کردن نتایج کارش احتیاط زیادی به خرج داد. او پس از گرفتن اجازه لازم برای برگزیدن ویروسهای کامپیوتری به عنوان موضوع جدید تز خود (البته فرصت بسیار کمی داشت و طرح جدید را باید به سرعت تکمیل می کرد)، مطالعات زیادی روی همه گیرشناسی (Epidemiology) انجام داد، داده های خود را با فرمولهای ریاضی تجزیه و تحلیل کرد و برنامه ای را برای آزمایش ویروسها بر روی سیستمهای دیگر طراحی کرد که به هیچ وجه کار ساده ای نبود. به محض آن که مدیران مراکز کامپیوتر از نتایج اولین آزمایش کوهن آگاهی یافتند اصلاً حاضر نمی شدند با او همکاری کنند. او در تز خود نوشت است: (ترس واکنش طبیعی است. آنها به جای آن که سعی کنند مسائل فنی را به طور فنی حل کنند، راه حلهای سیاسی را برمی گزیدند).
پس از ماهها گفتگو، کوهن سرانجام موفق شد چند آزمایش دیگر خود را روی سیستمهای دیگر انجام دهد. هنگامی که کوهن تصمیم گرفت نتیجه تحقیقات خود را برای عموم منتشر کند، هشدارهای فراوانی به وی داده شد. او مدعی است پس از یک سخنرانی در کنفرانس ایمنی کامپیوتر کانادا، یک مقام مسئول آمریکایی به وی گفت که اگر دولت آمریکا از موضوع صحبت او آگاه می شد، هرگز اجازه صحبت به او نمی داد. کوهن بعدها ادعا کرد که برای ورود دوباره به کشور آمریکا نیز با مشکلاتی مواجه بوده است. وقتی تز خود را در سال 1985 به پایان رساند، برای انتشار چکیده رساله خود در یکی از مجلات معتبر نیز با مشکل مواجه شد. بالاخره در سال 1987 نشریه (Computers And Security) مقاله او را پذیرفت. چون کوهن نمی خواست نام کسانی که به او کمک کردند فاش شود، فقط از نامهای کوچک آنها بهره گرفت.
کوهن از اینکه نمی تونست آزمایشهای خود را انجام دهد سالها دل آزرده بود. کوهن معتقد است که مردم وقتی ویروسها را درک کردند که از آن صدمه خوردند. به عنوان نمونه، در یکی از سخنرانیهای آن دوره خود، وقتی دنیای قشنگ نوی ویروسهای کامپیوتری را به ناظرین نشان می داد، چشمانش به چشمان زنی جوان دوخته شد که در بهت و حیرت فرو رفته بود. کوهن می گوید: (گویی به او گفته شده بود مادر تو مادر تو نیست. این واکنشی بود که از اکثر مردم می دیدم. در مجموعه باورهای آنها قرار نمی گرفت. تا بالاخره این نظریه و نمونه های علمی آن را فهمیدند. اما فقط وقتی آن را فهمیدند که از آن صدمه دیدهند.)
کوهن به تدریج به عنوان پدر ویروس کامپیوتری شناخته شد. خود کوهن پس از تحقیقات بیشتر، ردپای کسان دیگری را نیز در ساخت ویروسها یافت. اما هیچ کس قبل از کوهن، ویروس _به معنای ویروس کامپیوتری که هم اینک می شناسیم_ نساخته بود.
منبع: سری مقالات ریزپردازنده
Artificial life, Steven Levy, Pantheon Books, 1992
Posted on مارس 19, 2009, in امنیت, عمومی and tagged David Gerrold, Distributed Algorithms, EMACS, Epidemiology, Fred Cohen, Leonard Adleman, فرد كوهن, همه گیرشناسی, ويروس, پردازش موازي, آدلمن, الگوريتمهاي توزيعي, خود – تكثير كننده, دنیای وحش اطلاعات, دويد جرالد. Bookmark the permalink. 2 دیدگاه.
سلام خسته نباشی
شما چطور دانشجوی نرم افزار هستید که یه برنامه نویسی اچتمل رو درست بلد نیتسید و و.بلاگ تون با این اوضاع افتاده ؟؟؟؟؟
محمد . ا .
تخصص : برنامه نویسی تحت وب
دوست عزیز از این که به ولاگ ما اومدید ممنون ….. اما باید خاطر نشان کنم بستر کاری wordpress اجازه ویرایش HTML و CSS رو به صورت مجانی به ما نمی ده ….