مروری بر روش‏های شناسایی Botnetها

Images
Images
Images
Images

مروری بر روش‏های شناسایی Botnetها

  • مقالات
  • 2,330 بازدید

امروزه برای بخش قابل توجهی از حملاتی که در مقیاس اینترنت صورت می‏گیرد، از بات‏نت‏ها استفاده می‏شود. از این رو این نسل مدرن از بدافزارها از یک سو بسیار مورد توجه متخصصان امنیتی و مراکز تحقیقاتی می‏باشند و از سوی دیگر نیز به عنوان ابزاری مناسب مورد توجه خرابکاران اینترنتی قرار دارند. در این گزارش سعی شده است که ضمن معرفی اجمالی بات‏نت و انواع آن، چند روش شناسایی بات‏نت‏ها بررسی شود و در پایان نیز ضمن ارایه یک دسته‏بندی از روش‏های شناسایی بات‏نت به نقاط قوت وضعف هرکدام پرداخته شود.


1- مقدمه

بات نت از جمله جدیدترین نوع بدافزارها در مقیاس اینترنت می‏باشند که در سال‏های اخیر بیشترین تهدیدات را متوجه سامانه‏های اینترنتی نموده‏اند. بات، کامپیوتری آلوده‏شده به یک بدافزار است که بدون آگاهی و اراده‏ کاربر و از راه دور توسط یک یا چند عامل انسانی کنترل می‏شود. به این عامل کنترل‏کننده، سرکرده گویند و گاهی سیستم آلوده را افسون‏شده نیز می‏نامند.
اولین بات به نام EggDrop در سال  1993 به وجود آمد که بر خلاف تصور عمومی از ماهیت بدافزاری بات‏ها، برای مقاصدی چون بازی‏های رایانه‏ای تحت اینترنت تولید شد [1] اما متاسفانه امروزه بیشترین کاربرد بات‏ها در مقاصد نادرست است. بات‏ها در سه حوزه کاربرد دارند که عبارتند از:

  • انتشار اطلاعات: در این‏جا، هدف اصلی ارسال اطلاعاتی به سوی اهداف از پیش‏ تعیین شده است. مانند ارسال ایمیل‏های ناخواسته و یا حمله‏ DOS به یک یا چند کارساز و ...
  • برداشت اطلاعات: در این‏جا هدف اصلی دستیابی به اطلاعات قربانی است . این اطلاعات می‏تواند شامل یافتن رمزهای عبور، اسامی و نشانی دوستان، اطلاعات شخصی و .. باشد
  • پردازش اطلاعات: در این کاربرد، فقط از توان پردازشی قربانی برای مقاصد خاص مثلا شکستن یک رمز عبور استفاده می‏شود .

به شبکه‏ای از بات‏ها که تحت کنترل یک سرکرده باشند و به صورت هماهنگ فرمان‏های صادره از سوی وی را اجرا نمایند، بات‏نت گویند. گستره‏ بات‏نت‏ها می‏تواند تمام اینترنت را در بر بگیرد و تعداد اعضای آن هم از چند بات تا چندین هزار بات متفاوت است. یک گروه امداد رایانه‏ای(CERT ) شبکه‏ای از بات‏ها را با حدود 100000 عضو شناسایی نموده است  .
هسته‏ ارتباطی بات‏ها، کارسازی به نام "فرمان-کنترل" است که بات‏ها فرمان‌های اجرایی خود را از آن دریافت می‏نمایند. البته هم‏چنان که در بخش‏های بعدی به آن پرداخته خواهد شد، این معماری مبتنی بر مدل کارخواه- کارساز تنها معماری مرسوم در بات‏نت‏ها نیست ولی عمومی‏ترین معماری است.

1-1-مقایسه‏ بات‏نت با دیگر بدافزارها 

هرچند ممکن است ویروس‏ها، کرم‏ها، اسب‏های تروا و بمب‏های منطقی شباهت‏هایی با هم داشته باشند که نتوان به درستی آن‏ها را از هم تفکیک کرد، ولی هرکدام از این دسته بدافزارها صفت بارز خاص خود را دارند. مثلا نام ویروس آمیخته با آلوده‏شدن فایل‏ها است. هنگامی که نام کرم‏ را می‏شنویم اولین چیزی که به ذهن متبادر می‏شود، ماهیت تکثیر شونده‏ این بدافزار است. نام اسب تروا هم با "در پشتی" عجین است. مشخصه‏ بارز بات‏نت‏ها فارغ از نحوه‏ عملکردشان، ماهیت توزیع‏شده و عملکرد گروهی آن‏هاست. همانند موارد فوق الذکر، نام بات‏نت همواره ارتشی از بدافزارها را در ذهن متبادر می‏کند که منتظر اجرای دستور از فرمانده‏ خود می‏باشند. بات‏نت‏ها بر خلاف دیگر بدافزارها، از یک دیگر استقلال کاری ندارند بلکه در کنار همکاری با هم به اهداف خود می‏رسند. 

2-1- نحوه‏ انتشار و آلوده ‏کردن قربانی ‏ها 

روش‏های انتشار بدافزارها بسیار متنوع می‏باشند. بارگیری از طریق اینترنت، ضمیمه‏های آلوده‏ پست الکترونیکی، وجود اشکال و ضعف امنیتی در سیستم‏عامل و ... پتانسیل‏هایی برای امکان انتشار بدافزارها فراهم می‏آورد. حتی بعضی از بدافزارها از چندین روش برای نفوذ در سیستم قربانی استفاده می‏کنند. بات‏نت‏ها هم از این قاعده مستثنی نیستند. معمولا برای آلوده کردن یک سیستم یک نصب‏کننده را به یکی از روش‏های فوق الذکر وارد سیستم قربانی می‏کنند و آن را اجرا می‏نمایند. این نصب‏کننده بعد از اجرا نسخه‏ اصلی بات را بارگیری می‏کند و سپس آن را اجرا می‏نماید. بات بلافاصله به جستجوی کارساز فرمان- کنترل خود می‏پردازد و با اتصال به آن اعلام می‏دارد که آماده به خدمت است. به این ترتیب سیستم آلوده تبدیل به یک سیستم افسون‏شده می‏گردد. برای یافتن قربانیان دیگر رویکردهای متفاوتی وجود دارد که روش‏های انتخاب تصادفی یکی از آن‏ها است. انتخاب تصادفی قربانی گرچه باعث ایجاد توزیع مناسبی از قربانی‏ها در شبکه می‏گردد (از دید منفی) ولی در برابر رویکردهای هدفمند کارایی کمتری دارد. بدافزارهای امروزی به جای انتشار تصادفی خود، از روش‏های آگاهانه‏ای استفاده می‏کنند. مثلا از لیست نشانی‏های ایمیل دوستان قربانی استفاده می‏کنند، از لیست شبکه‏های اجتماعی که فرد در آن عضویت دارد استفاده می‏کنند و .... همچنین این نرم‏افزارها به جای پیدا کردن خدمات یا نرم‏افزارهای کاربردی آسیب‌پذیر، به دنبال کاربران آسیب‌پذیر می‌باشند  و از همین روست که سیستم‏های تشخیص و به دام‏اندازی این بدافزارها به سمتی می‏روند که به جای تقلید رفتار یک خدمت آسیب‏پذیر، به تقلید رفتار یک کاربر آسیب‏پذیر بپردازند.

2- انواع معماری بات‏نت‏ها

بات‏نت‏ها با توجه به سازوکاری که برای فرمان- کنترل خود استفاده می‏کنند از دو معماری کلی استفاده می‏کنند. معماری متمرکز و نامتمرکز.

1-2- معماری متمرکز

در معماری متمرکز که عمومی‏ترین معماری نیز می‏باشد، یک کارگزار فرمان- کنترل وجود دارد و تمام بات‏ها دستورات خود را از این کارگزار دریافت می‏کنند. حسن این معماری پیاده‏سازی آسان و امکان آرایش‏دهی سریع بات‏ها است به این معنی که با ارسال دستورات در مدت زمان کوتاهی می‏توان بات‏ها را برای هدف خاصی آرایش داد. عیب اساسی این روش این است که اگر به دلیلی کارساز فرمان- کنترل از دسترس خارج شود، عملا بات‏نت از کار می‏افتد. دوم این که این روش به راحتی قابل شناسایی است. زیرا دستورات مشابه دادن به یک سری گره در شبکه و یا اتصال چندین گره از یک شبکه به یک سیستم خاص، شک  سیستم‏های تشخیص نفوذ (IDS ) را برخواهد انگیخت.
دو نوع بات‏نت در دسته‏ معماری متمرکز قرار می‏گیرند که عبارتند از:

  • بات‏نت‏های مبتنی بر قرارداد‏ IRC : قرارداد‏ IRC نخستین بار برای برقراری ارتباطات برخط انتقال اطلاعات در مقیاس وسیع به کار گرفته شد. بات‏نت‏هایی که از این قرارداد‏ استفاده می‏کنند، قابلیت مقیاس‏پذیری بالایی دارند.
  • بات‏نت‏های مبتنی بر قرارداد‏ HTTP : این بات‏نت‏ها از قرارداد‏ معروف HTTP برای ارتباطات خود استفاده می‏نمایند. نکته حایز اهمیت در استفاده از این قرارداد‏ این است که عموما ترافیک HTTP توسط باروها مسدود نمی‏شود و این بات‏نت‏ها مشکل ارتباطی پیدا نخواهند کرد. مورد دوم این که عمومیت قرارداد‏ HTTP باعث می‏شود که ترافیک ناشی از فعالیت بات‏نت‏های مبتنی بر HTTP زیاد توجه سیستم‏های حفاظتی شبکه را جلب نکند.

2-2- معماری غیرمتمرکز

در معماری نامتمرکز خلاف روش قبلی کنترل مرکزی وجود ندارد بلکه بات‏ها به صورت یک شبکه نظیر به نظیر با هم در تعامل می‏باشند. سرکرده دستورات خود را به یک یا چند بات ارسال می‏کند و با استفاده از قرارداد‏های نظیر به نظیر این دستورات در تمام بات‏نت منتشر می‏شود. حسن این روش است که تمام بات‏ها به کارساز فرمان- کنترل وابسته نیستند. توزیع ترافیک در این بات‏نت‏ها شناسایی آن‏ها را دشوار کرده است. این بات‎نت‏ها مقیاس‏پذیری بالایی دارند اما پیاده‏سازی آن‏ها پیچیده و دشوار است. بات‏ها به خاطر تاخیر در انتشار دستورات نمی‏توانند به سرعت آرایش بگیرند. حالت خاصی هم از بات‏نت‏های نظیر به نظیر موجود است که در آن هر بات فقط با یک بات دیگر در ارتباط است. در نتیجه گراف اتصال حاصل از این شبکه به صورت زنجیر است. این پیاده‏سازی گرچه از مدل کامل نظیر به نظیر ساده‏تر است ولی تاخیر انتشار در آن زیاد است و تضمینی نیز برای رسیدن پیام به همه‏ بات‏ها وجود ندارد زیرا این روش از این ضعف رنج می‏برد که در صورت قطع شدن زنجیر بخشی از بات‏نت از دسترس خارج می‏گردد در نتیجه چنین ساختاری از استحکام مطلوبی برخوردار نیست.


3- روش‏ های شناسایی بات‏نت

به طور کلی روش‏های شناسایی ترافیک‏های مختلف شبکه از زمره چالش‏های باز در حوزه‏ کنترل ترافیک است. فراهم‏کنندگان سرویس‏های اینترنت (ISP ) از منظر استفاده بهینه از پهنای باند، بسیار مشتاقند که ابزاری در اختیار داشته باشند که بتوانند انواع ترافیک موجود در شبکه خود را شناسایی کنند و اجازه عبور ترافیک‏های ناخواسته را ندهند. متخصصان امنیت شبکه نیز به دنبال شناسایی ترافیک‏های خطرناک مثلا ترافیک ناشی فعالیت یک نفوذگر یا انتشار یک کرم‏ می‏باشند. اما همان گونه که گفته شد، این حوزه هنوز به بلوغ کافی نرسیده است. ترافیک ناشی از فعالیت یک بات‏نت هم به عنوان بخشی از ترافیک شبکه است. علاوه بر آن، ترافیک ناشی از یک بات‏نت بسیار شبیه ترافیک نرمال است و همین امر شناسایی آن را دشوارتر کرده است. روش‏های گوناگونی برای شناسایی بات‏نت‏ها ارایه شده‏اند ولی هنوز جامعیت لازم را ندارند و میزان خطایشان بالاست. در ادامه به بررسی اجمالی چند روش شناسایی بات‏نت‏ها می‏پردازیم و درپایان هم یک دسته‏بندی از روش‏های شناسایی بات‏نت ارایه خواهد شد.

  1-3-  شناسایی بات‏نت از روی مشخصه‏ های فعالیت گروهی

هیونسنگ چوی وهمکاران این ایده را دنبال کرده‏‏اند که مفهوم بات‏نت در قبال فعالیت جمعی تعدادی بات معنی پیدا می‏کند و بات‏ها به صورت میزبان‏هایی مستقل عمل نمی‏کنند. به این ترتیب مشخصه‏ای به نام فعالیت گروهی در بین بات‏ها وجود دارد که به اعمالی گفته می‏شود که اجرای آن‏ها در بات‏های یک شبکه عمومیت دارد. کشف این مشخصه امکان تشخیص بات را فراهم می‏آورد.
برای یافتن مشخصه فعالیت گروهی در یک بات‏نت نخست باید چرخه حیات یک بات را بررسی نمود. همان گونه که قبلا هم به آن اشاره شد، چرخه‏ حیات یک بات از سه مرحله تشکیل شده است.

  • مرحله انتشار: در این مرحله با استفاده از یک حفره امنیتی، سیستم قربانی آلوده می‏شود و سپس نرم‎افزار بات بر روی آن نصب می‏گردد.
  • مرحله ارتباطات: در این مرحله بات نصب شده به دنبال کارساز فرمان- کنترل می‏گردد و با برقراری ارتباط با سرکرده اعلام می‏دارد که آماده انجام وظیفه است.
  • مرحله حمله: در این مرحله با توجه به فرمان سرکرده حمله خاصی توسط  بات‏نت صورت می‏گیرد.

در سه مرحله بالا نقش فعالیت گروهی بارز است اما بهترین مرحله برای شناسایی و جلوگیری از خراب‏کاری بات‏نت، مرحله دوم می‏باشد. زیرا هم از نظر زمانی طولانی‏تر است و هم فعالیت گروهی در آن برجسته‏تر می‏باشد. از جمله فعالیت‏های گروهی پرس و جوهای DNS است. هر بات پس از نصب بر روی سیستم قربانی، تلاش خود را برای برقراری ارتباط با کارساز فرمان- کنترل آغاز می‏کند. اولین گام این ارتباط ارسال یک پرس و جوی DNS برای یافتن نشانی کارساز مربوطه است. از آن‏جا که برای جلوگیری از شناسایی این کارساز مرتباً نشانی آن تغییر می‏کند، بات‏ها برای حفظ ارتباط خود ناچارند مرتبا نشانی کارساز خود را از DNS درخواست نمایند. در نتیجه کشف چنین وضعیتی در شبکه، باعث شناسایی بات‏نت خواهد شد. مشابه همین حالت در ارتباط بات‏ها با کارساز فرمان- کنترل هم وجود دارد. بات‏ها مرتباً در ارتباط با این کارساز می‏باشند و این ارتباط دایمی پتانسیلی جهت شناسایی بات‏نت به وجود می‏آورد. در حمله به یک قربانی مانند حمله‏ از کاراندازی سرویس (DOS) هم نقش فعالیت گروهی کاملا آشکار است. شکل شماره‏ 1 این موارد از فعالیت‏های گروهی را نمایش می‏دهد


شکل شماره‏ 1: فعالیت گروهی در یک شبکه‏ بات [5]

نکته‏ قابل توجه این است که فعالیت گروهی مختص بات‏نت‏ها نیست و در ترافیک‏های طبیعی نیز این فعالیت‏های به چشم می‏خورد. مثلا هنگامی که یک خبر بر روی یک وبگاه قرار می‏گیرد، مشتریان زیادی جهت مشاهده آن به کارساز مربوط متصل می‏شوند. این عمل دسته‏جمعی خود یک فعالیت گروهی است اما طبیعی است. پس مهمتر از تشخیص فعالیت گروهی در بات‏نت‏ها، تفکیک آن از فعالیت‏های گروهی طبیعی است.


3-2- یک روش شناسایی بات‏نت مبتنی بر ناهنجاری

روشی مبتنی بر تشخیص ناهنجاری ارایه نموده‏اند که اساس آن بر شمارش بسته‏های کنترلی TCP مانند SYN ،FINS  و ... است. با شنود مستمر از شبکه، در بازه‏های زمانی مشخص، چندتایی‏هایی متشکل از شماره IP ، تعداد بسته‏های SYN ارسالی و دریافتی ، تعداد بسته‏های Reset و .... تشکیل می‏شود و با تحلیل و بررسی آن‏ها وجود بات‏نت تشخیص داده می‏شود. برای این منظور معیاری به صورت زیر تعریف می‌شود.
W=(S+F+R)/T 
که در آنS  تعداد بسته‏های SYN ,ACKSYN است،F  تعداد بسته‏های FIN ، R تعداد بسته‏های RESET و T هم تعداد کل بسته‏های ارسالی و دریافتی یک میزبان در یک بازه زمانی مشخص است. به این معیار "وزن‌کاری TCP " گویند. بالا بودن درصد این معیار برای یک میزبان نشانه وجود رفتارهای نامتعارف در آن است. اعضای یک بات‏نت چه در هنگام هماهنگی و چه در هنگام حمله‏ DOS ، وزن‌کاری بالایی دارند. در این روش نخست w برای هر میزبان محاسبه می‏شود و با توجه به مقصد و مبدأ بسته‏های ارسالی، میزبان‏ها دسته‏بندی می‏شوند. وجود چندین میزبان باw بالا، نشانه وجود یک شبکه بات است. این نتایج این روش بر روی بات‏نت‏های مبتنی بر IRC امیدوار کننده‏تر بوده است.


3-3 -  رفتارهای تناوبی در ارتباط با کارساز فرمان-کنترل

اسدهان و همکاران رفتارهای تناوبی موجود در بات‏نت‏ها را به عنوان نشانه‏ای برای شناسایی این شبکه‏ها در نظر گرفته‏اند. اساس این مقاله بر این است که هر بات برای آگاهی از دستور جدید و با اعلام زنده بودن به صورت متناوب پیام‏هایی را در شبکه منتشر می‏کند. در نتیجه الگوی منظمی در ترافیک شبکه به وجود می آورد. کشف این الگوی منظم در ترافیک شبکه به شناسایی بات‏نت منتهی خواهد شد. در این مقاله با استفاده از تحلیل فوریه روی سیگنالی که حاوی فراوانی بسته‏ها در واحد زمان است و بررسی این سیگنال در حوزه فرکانس (که شناسایی سیگنال‏های دوره‌ای را آسان‏تر می‌کند) فعالیت بات‌نت در شبکه شناسایی می شود. البته نویسندگان این مقاله این فرض کرده‏اند که دوره تناوب ارسال بسته‏های هماهنگی یکسان است و اگر این دوره تناوب متغیر باشد کار بسیار مشکل می‌شود که به عنوان کار آینده در این مقاله از آن نام برده شده است.


3-4- دسته‏ بندی روش‏های تشخیص بات‏نت

دو رویکرد کلی برای تشخیص botnet وجود دارد:

      •  استفاده از Honeynet : Honeynet شبکه‏ای از کوزه‏های عسل است که به عنوان طعمه در داخل شبکه قرار می‏گیرد و اگر به یک بات آلوده شد، تمام جزییات تعاملی و رفتاری آن را ثبت می‏نماید و می‏تواند این آلودگی را گزارش کند که منجر به شناسایی بات‏نت خواهد شد. این رویکرد گرچه مورد توجه بسیاری است ولی بیشتر جهت تحلیل رفتاری بات‌ها کاربرد دارد و از طرفی نسل‏های جدید بات‏نت که از روش‏های آگاهانه برای انتشار خود استفاده می‏کنند، کمتر Honeynet را مورد توجه قرار خواهند داد، مگر این که Honeynet های جدید بتوانند رفتار کاربران را هم تقلید کنند!
      • استفاده از شنود غیرفعال: این رویکرد با شنود و تحلیل ترافیک شبکه وجود شبکه‏های بات را تشخیص می‏دهد. این رویکرد خود به 4 دسته تقسیم می‏شود:
    • مبتنی بر امضا: در این روش سعی می‏شود که با آنالیز بسته‏های ورودی/خروجی و یافتن الگوهای خاصی در آن‏ها به نام امضا و مقایسه این الگوها با بانک الگوی از قبل آماده شده، وجود بات‏نت بررسی شود. این روش در سیستم‏های تشخیص نفوذ مانند snort به کار برده می‏شود.
    • مبتنی بر ناهنجاری: در این روش از ناهنجاری‏هایی که فعالیت بات‏نت بر روی ترافیک طبیعی شبکه ایجاد می‏کند، سعی در شناسایی آن دارند. مقاله‏ بینکلی و همکاران که توضیح داده شد نمونه‏ای از این روش‏ها است.
    • مبتنی بر DNS : این روش در حقیقت یک روش مبتنی بر ناهنجاری است ولی از آن‏جا که در بسیاری موارد، پرس و جوهایDNS پاشنه آشیلی برای تشخیص بات‏نت است به عنوان روشی مستقل نیز از آن یاد می‏شود. بات‏ها برای یافتن کارساز فرمان- کنترل خود، درخواست‌هایی به DNS  می‏دهند. از آن جا که اغلب کارساز فرمان- کنترل از فناوری DNS پویا برای مخفی نگه داشتن خود استفاده می‏کند، درخواست‌های مکرر بات‏ها یک نوع ناهنجاری در ترافیک DNS  ایجاد می‏کند که تشخیص این ناهنجاری به شناسایی بات‏نت منتهی خواهد شد.
    • مبتنی بر داده کاوی: این روش‏ها گستره‏ای را در بر می‏گیرند و معمولاً بر تحلیل‌های آماری و داده‏کاوی و هوش مصنوعی استوار می‏باشند. به عنوان نمونه هسنا و همکاران  در حملات هرزنامه‌ای ناشی از بات‏نت‏ها ویژگی‏هایی را مدنظر قرار داده‏اند و توانسته‏اند با تحلیل مولفه‏های اصلی(PCA ) ویژگی‏های با واریانس بیشتر را یافته و حملات را تشخیص دهند. توجه به این نکته حایز اهمیت است که حملات هرزنامه معمولاً از طریق بات‏نت‏ها انجام می‏شود.

روش‏های نامبرده هرکدام نقاط قوت وضعف خود را دارند. روش‏های مبتنی بر امضا الگوریتم‏های ساده‏ای دارند ولی از سوی دیگر قادر به شناسایی بات‏نت‏های جدید نمی‏باشند. روش‏های مبتنی بر ناهنجاری گرچه عمومیت دارند، قادر به شناسایی بات‏نت‏های جدید می‏باشند و در مقابله با ترافیک‏های رمزشده مشکلی ندارند ولی سربار محاسباتی بیشتری نسبت به روش‏های مبتنی بر امضا دارند و اعلان خطای بالای آن‏ها هم نقطه ‏ضعف اساسی آن‏ها محسوب می‏شود. روش‏های مبتنی بر DNS به عنوان حالت خاصی از روش‏های مبتنی بر ناهنجاری، تمام ویژگی‏های روش‏های فوق الذکر را دارند به علاوه این که چون تمرکز آن‏ها فقط بر ناهنجاری‏های  DNSاست، پیاده‏سازی ساده‏تری دارند. روش‏های مبتنی بر داده‏کاوی هم عموما قادر به شناسایی ترافیک‏های جدید می‏باشند و در برابر ترافیک‏های رمز شده نیز مقاومند. این روش‏ها معمولا الگوریتم‏های پیچیده‏ای دارند و سرعت عمل مناسبی از خود نشان نمی‏دهند.

4- نتیجه‏ گیری

بات‏نت‏ها به عنوان تهدید امنیتی مهم دنیای شبکه‏های کامپیوتری، بخش بزرگی از حملات در این شبکه‏ها را به عهده دارند. گسترده بودن حوزه عملکرد، امکان پنهان بودن عامل انسانی موجد تخریب، بات‏نت‏ها را به موضوع مورد علاقه خرابکاران حوزه فناوری اطلاعات تبدیل کرده است. از طرف دیگر تنوع زیاد در ساختارها و قرارداد‏های استفاده شده در بات‏نت‏ها شناسایی آن‏ها را بسیار دشوار نموده است به طوری که هنوز روش‏های شناسایی بات‏نت‏ها در صورت داشتن دقت مناسب قطعا عمومیت لازم را ندارند و در صورت عمومی بودن دقت کم و خطای بالایی دارند.  

پست های تصادفی

طوفان فکری با تیم مشاوران آکو

درخواست مشاوره
مشاوره با آکو