الگوریتمهای تولید دامنه(Domain generation algorithm ) ، قطعه کدهایی هستند که امروزه باهدف تولید تعداد زیادی از دامنه های اینترنتی بهصورت دورهای در بدافزارهای متعددی مورداستفاده قرار میگیرند. هدف اصلی استفاده از این الگوریتم ها این بوده است که بدافزارها در برابر روشهای شناسایی لیست ایستای آدرسهای دامنه که بهراحتی توسط مکانیزمهای امنیتی لیست سفید و سیاه شناسایی میشوند از درجه محافظت بالاتری برخوردار شوند. ازآنجاییکه دامن ههای تولیدی توسط این الگوریتمهای عموماً شبه تصادفی هستند و فرکانس تولید دامنه توسط این الگوریتم ها بسیار بالا است این الگوریتم ها توسط مکانیزمهای امنیتی لیست سیاه وسفید کنونی به راحتی شناسایی نمیشوند و همین امر سبب شده است بسیاری از بدافزارها به ویژه باجگیرافزارها و بات نت ها به طرق مختلف از این دامنه های استفاده نمایند. در کد ذیل نمونهای از الگوریتم های تولید خودکار دامنه در بدافزارها آورده شده است.
کد 2‑1: یک نمونه شبه کد الگوریتم DGA
suffix = ["anj", "ebf", "arm", "pra", "aym", "unj","ulj", "uag", "esp", "kot", "onv", "edc"]
def generate_daily_domain(): t = GetLocalTime() p = 8 return generate_domain(t, p) def scramble_date(t, p): return (((t.month ^ t.day) + t.day)*p) +t.day + t.year
def generate_domain(t, p): if t.year < 2014: t.year = 2014 s = scramble_date(t, p) c1 = (((t.year >> 2) & 0x3fc0) + s) % 25 + ’a’ c2 = (t.month + s) % 10 + ’a’ c3 = ((t.year & 0xff) + s) % 25 + ’a’ if t.day*2 < ’0’ || t.day*2 > ’9’: c4 = (t.day*2) % 25 + ’a’ else: c4 = t.day% 10 + ’1’ return c1 +’h’+c2+c3+’x’+c4+suffix[t.month - 1]
|
ازآنجاییکه طراح یا کنترلکننده باجگیرافزار از الگوریتم جاسازیشده در باجگیرافزارها ی خود اطلاع دارد برخی از دامنه هایی را که بهصورت قطعی الگوریتم تولید میکند را به کمک روشهای ثبت دامنه در لحظه[1] و آماده خدماتدهی به باجگیرافزارهای مورد هدف میکند. ازآنجاییکه عموماً تعداد دامنه های تولیدی بسیار بالا میباشد اتخاذ تصمیمات و اعمال مکانیزمهای امنیتی و پلیسی برای شناسایی و انهدام سرورهای فرمان و کنترل کاری بسیار دشوار بهحساب می آید. از این دامنهها طراحان بدافزار استفادههای متعددی ازجمله ارسال فرمان و دریافت اطلاعات و بهروزرسانی بدافزارهای خود مینمایند. در بدافزارهای پیشرفتهتر حتی شنود و رهگیری بستر ارتباطی با این دامنه ها نیز در بسیاری از موارد ناکارآمد است چراکه در این موارد بدافزارهای از مکانیزم های حفظ محرمانگی و حتی صحت دادهها نظیر سیستمهای رمزنگاری کلید عمومی بهره میبرند.
*** با عضویت در کانال تلگرام از مطالب بیشتر، فیلم ها و به روزرسانی های محتوای وب نوشت مطلع شوید.***
منبع: احمدیان، محمد مهدی، چارچوبی مبتنی بر تحلیل رفتار برنامه بهمنظور تشخیص باجگیرافزارها,پایاننامه کارشناسی ارشد دانشکده مهندسی کامپیوتر و فناوری اطلاعات، دانشگاه صنعتی امیرکبیر تهران، ایران،1394
[1] just in time registration