تعلیم شبکه هوش مصنوعی برای ایجاد نامهای رمزی بدافزارهای سازمان CIA
آژانس اطلاعات مرکزی آمریکا (Central Intelligence Agency)، یا سازمان CIA یک سازمان اطلاعات برون مرزی غیرنظامی دولت آمریکاست، که وظیفهاش جمعآوری، تجزیه تحلیل و پردازش اطلاعات امنیت ملی، عمدتاً با استفاده از اطلاعات گردآوری شده توسط افراد از سرتاسر جهان است. به عنوان یکی از اعضای اصلی جامعه اطلاعات آمریکا، سیا به اداره اطلاعات ملی پاسخگوست و در درجهٔ اول بر روی تأمین اطلاعات برای رئیسجمهور و کابینهاش متمرکز است. عملیات و اطلاعات این سازمان هنوز محرمانه است و در هالهای از ابهام قرار دارد. به لطف سایت Wikileaks ما در مورد کارهای داخلی این سازمان اطلاعات زیادی را بدست آوردیم به ویژه زمانی که جاسوسی سایبری انجام شود و اطلاعات نیمه محرمانه را جمعآوری کند. یکی از چیزهای تحسین برانگیزه سازمان CIA، چگونگی نامگذاری پروژههای داخلی این سازمان است.
آژانس اطلاعات مرکزی آمریکا (Central Intelligence Agency)، یا سازمان CIA یک سازمان اطلاعات برون مرزی غیرنظامی دولت آمریکاست، که وظیفهاش جمعآوری، تجزیه تحلیل و پردازش اطلاعات امنیت ملی، عمدتاً با استفاده از اطلاعات گردآوری شده توسط افراد از سرتاسر جهان است. به عنوان یکی از اعضای اصلی جامعه اطلاعات آمریکا، سیا به اداره اطلاعات ملی پاسخگوست و در درجهٔ اول بر روی تأمین اطلاعات برای رئیسجمهور و کابینهاش متمرکز است. عملیات و اطلاعات این سازمان هنوز محرمانه است و در هالهای از ابهام قرار دارد. به لطف سایت Wikileaks ما در مورد کارهای داخلی این سازمان اطلاعات زیادی را بدست آوردیم به ویژه زمانی که جاسوسی سایبری انجام شود و اطلاعات نیمه محرمانه را جمعآوری کند. یکی از چیزهای تحسین برانگیزه سازمان CIA، چگونگی نامگذاری پروژههای داخلی این سازمان است.
ابزارهای متفاوت هکی توسط سازمان CIA ایجاد و راهاندازی شده است که بازهم به لطف سایت WikiLeaks برخی از مهمترین ابزارهای هک سازمان CIA آشکار شده است. در میان این ابزارها، Gaping hole of DOOM یکی از معروفترین ابزارهای هک سازمان CIA محسوب میشود. در مورد سایر ابزارهای هک سازمان CIA که توسط سایت Wikileaks آشکار شده است میتوان به Munge Payload، McNugget، RoidRage و Philosoraptor اشاره کرد. اگر شما در این زمینه کنجکاو هستید میتوانید به فهرست جامعی که سایت TechCrunch تهیه و گردآوری کرده است، مراجعه کنید.
در این میان شبکههای عصبی و هوش مصنوعی و نامگذاری این شبکهها بسیار جالب و تاملبرانگیز است. از معروفترین شبکههای عصبی و هوش مصنوعی میتوان به guinea pigs (خوکچه هندی)، paint colors (رنگهای نقاشی)، Metal Bands (گروههای موسیقی متال) و Pokemon (پوکمن) اشاره کرد. آیا این امکان وجود دارد که یکی از این شبکههای هوش مصنوعی تعلیم داده شود تا در زمینه ایجاد کدهای مخرب برای سازمان CIA عمل کند؟ خوب اجازه بدهید بیشتر توضیح بدهیم.
عملیات موفق همگامسازی شروع شد
شبکههای عصبی و هوش مصنوعی خارقالعاده هستند. آنها اساسا برنامههایی هستند که تقلید میکنند چگونه مغز انسان کار میکند. این بدان معنا است که آنها قادر به یادگیری و عمل از یک ورودی هستند و نیازی نیست که برنامهنویس به صورت دستی رفتار آنها را تعریف کند.
پس از کمی تحقیق و جستجو، ما با یک کتابخانه جالب به نام char-rnn آشنا شدیم که توسط Andrej Karpathy (کارگردان هوش مصنوعی کمپانی Tesla) نوشته شده است. این کتابخانه شبکه عصبی و هوش مصنوعی با زبان Lua نوشته شده و از کتابخانه ماشین یادگیری Torch استفاده میکند. این کتابخانه به شما اجازه میدهد تا سیستم را با استفاده از یک فایل ورودی آماده کنید سپس سیستم بلافاصله متنی را ایجاد میکند که به نظر میرسد شبیه دادههای آموزشی اصلی است. مجددا اگر شما در این زمینه کنجکاو هستید که بیشتر بدانید میتوانید با مراجعه به صفحه Karpathy's blog post مطالب بیشتری در این زمینه مطالعه کنید.
با این حال میخواهیم یکی از آزمایشهای خود را در زمینه تعلیم شبکه عصبی و هوش مصنوعی انجام دهیم. برای شروع از یک لپتاپ Dell به مدل Dell Precision 5520 که سیستم عامل Ubuntu در آن اجرا میشود، استفاده کردهایم. تمام ابزاری که برای استفاده نیاز است با اینکه بسیار ساده هستند اما در مورد عمق بیشتر این موضوع در انتهای مقاله بحث خواهیم کرد.
در ابتدا، ما نیاز به ساختن مجموعهای از دادههای آموزشی داریم. به عنوان یک قاعده کلی، اگر شما دادههای آموزشی بیشتری داشته باشید، شبکه عصبی و هوش مصنوعی عملکرد بهتری در زمینه تولید محتوای مشابه خواهد داشت. بنابراین، ساعتها در اینترنت به جستجو پرداختیم تا نامهای تروجان CIA و NSA را پیدا کنیم. این کار به لطف فهرستی که سایت TechCruch گردآوری کرده بود بسیار آسان انجام شد. البته ما موارد دیگری را نیز از سایت Wikipedia پیدا کردیم.
اولین آزمایش ما کمی ضعیف و فاقد کیفیت لازم بود. ما میتوانستیم کیفیت متن خروجی را با کاهش اندازه دسته (که تعین میکند چند جریان داده را در یک زمان موازی پردازش شود) به پنچ و در نهایت یک کاهش دهیم. همچنین میتوانیم طول دنباله را تا سی الی پنجاه افزایش دهیم( طول، هر جریان را مشخص میکند،ضمن اینکه محدودیتهایی است که میتواند بارهای بارگذاری را در زمان به عقب برساند.)
این مراحل به طور قابل توجهی کیفیت متن خروجی را بهبود بخشید اما هنوز هم به اندازه کافی خوب نبود. در این لحظه مدیر ارشد و سردبیر TheNextWeb پیشنهاد کرد که متن ورودی را با واژههای سرد پر کنم. حتما از خودتان میپرسید واژههای سرد چی هست؟ سایتهایی هستند که بر اساس حروف الفبا واژههای سرد را فهرست کردهاند. ما در زمینه تعیین فاکتورهای سرد بودن یک واژه خیلی مطمئن نیستیم اما بعضی از این واژهها به نظر میرسد مانند رمزهای مخرب سازمان CIA هستند. (Aeon. Amethyst. Equinox. Glabella ) این رویکرد درواقع نتایج بسیار مناسبی را ارائه داد، بعضی از آنها مانند پروژههای سیاه سازمان CIA بودند.
نکات فنی
به جرات میتوان گفت یکی از شایستهترین استفادهها از شبکه عصبی و هوش مصنوعی انجام شد که در نوع خود بسیار جالب بود. اگر میخواهید با کتابخانه شبکه عصبی char-rnn کار کنید، باید بگویم که این کتابخانه واقعا عالیست. char-rnn با اینکه نسبتا ساده است اما حاوی اسناد واقعا جامع که در نوع خود نادر و کمیاب هستند، میباشد.
چند چیز وجود دارد که میخواهیم به آنها اشاره کنیم. اولا پیشنیازهایی وجود دارد که شما از قبل نیاز دارید آنها را فرا بگیرید. عبارتند از: کدهای برنامه نویسی ibreadline-dev، cmake, curl, و git.
هنگامی که Torch (کامپوننت اصلی char-rnn) را نصب کردید مطمئن باشید که آن را به روزرسانی کردهاید. عدم انجام این کار نصب سایر کامپوننتهای char-rnn را متوقف میکند. برای بروز رسانی Torch به پوشه نصب Torch بروید و فایل update.sh را اجرا کنید.
اگر شما کارت گرافیک NVIDIA داشته باشید و قصد دارید که با اجرای شبکههای عصبی و هوش مصنوعی در GPU سرعت آنها را افزایش دهید، شما نیاز دارید که CUDA Toolkit را دانلود و نصب کنید. حجم این فایل نزدیک به ۲ گیگابایت است.
برخی از کامپوننتهای مورد نیاز استفاده از char-rnn با NVIDIA CUDA GPU برای سیستم شما کامپایل میشوند بنابراین تعجب نکنید اگر طی یک زمان طولانی این فرایند انجام شود. ما این فایل و کامپوننتهای آن را بر روی لپتاپ Dell به مدل Dell Precision نصب کردیم. از مشخصات فنی این لپتاپ میتوان به پردازنده هشت هستهای Xeon و ۳۲ گیگابایت RAM اشاره کرد. با این وجود باز هم این فرایند زمان بسیار جالبی را از ما گرفت. این نشان میدهد که فایل CUDA و کامپوننتهای آن چقدر بزرگ هستند. اگر شما آن را بر روی یک کامپیوتر نسبتا قویای نصب کنید ممکن است فرایند نصب چندین ساعت طول بکشد. اینها همه جزییات کار هستند بنابراین نباید از کار با شبکههای عصبی و هوش مصنوعی اجتناب کنید چرا که جذابیت استفاده از یک شبکه عصبی مصنوعی ماورای این سختیهای اولیه شروع کار است.