تضادهای Flame

در مطلب قبلی، نوشته‌ای از یکی از مدیران ارشد F-Secure در مورد علت شناخته نشدن Flame‌ ویروس‌های قبلی نوشتم. این مطلب بهانه تراشی برای این بود که چرا Flame‌ و یا بدافزارهای مشابه دیرتر از زمان قابل انتظار شناسایی شدند. مقدار زیادی از این بهانه‌تراشی‌ها به دلیل شایعاتی است که در مورد منبع دولتی این بدافزارها مطرح می‌شود. بروس اشنایدر هم در این مورد اظهار نظر کرد، نوشته The Failure of Anti-Virus Companies to Catch Military Malware را می‌توانید مرور کنید:

I don’t buy this. It isn’t just the military that tests their malware against commercial defense products; criminals do it, too. Virus and worm writers do it. Spam writers do it. This is the never-ending arms race between attacker and defender, and it’s been going on for decades. Probably the people who wrote Flame had a larger budget than a large-scale criminal organization, but their evasive techniques weren’t magically better. Note that F-Secure and others had samples of Flame; they just didn’t do anything about them.

Flame‌ در سال‌های گذشته

Mikko Hypponen یک نوشته نه چندان عمیق در مورد زمان شناخت Flame دارد. برای چندمین بار تاکید شده که بد‌افزار Flame بیشتر از ۱ سال است که شناسایی شده است، اما به صورت دقیق مورد بررسی قرار نگرفته است.

When we went digging through our archive for related samples of malware, we were surprised to find that we already had samples of Flame, dating back to 2010 and 2011, that we were unaware we possessed. They had come through automated reporting mechanisms, but had never been flagged by the system as something we should examine closely. Researchers at other antivirus firms have found evidence that they received samples of the malware even earlier than this, indicating that the malware was older than 2010.

اهمیت این موضوع در کنار سواستفاده Flame از گواهینامه‌های امنیتی مایکروسافت و روش پخش و کنترل این ویروس با استفاده از وب سرورهای آلوده شک بیشتری برای برنامه ریزی بلند مدت و سوخته شدن ویروس در حال حاضر را ایجاد می‌کند.

شفافیت حکومتی در زیرساخت‌ها

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

این گزارش‌ها و بررسی‌ها به صورت روزانه چندین سال است که در اختیار تمام دستگا‌ه‌های اجرایی و هر کس که داوطلب باشد قرار داده می‌شود. این گزارش‌ها به صورت  شفاف (به قطع تا جایی که شفافیت حکومتی وجود دارد.) از بخش‌های زیرساختی ایالات متحده تحت عنوان‌ Daily Open Source Infrastructure Report آماده می‌شود.

هر یک از گزارش‌های روزانه می‌تواند شامل بخش‌های متنوعی مانند وضعیت معادن، آب آشامیدنی، برق و انرژی‌های تجدید ناپذیر، و زیرساخت‌های فناوری اطلاعات باشد. در این گزارش‌های ۱۵ ۲۰ صفحه‌ای می‌توانید علاوه بر آتش سوزی در فلان دهکده، آخرین آسیب‌پذیری در مورد Ruby‌ را هم مشاهده کنید!

آتش پاره آسمان جول – Flame

اولین باری که در مورد ویروس‌ها فارسی نوشتم، ۹ سال پیش بود. MyDoom یکی از پیش تازان بدافزارهای هدایت شده بود. بدافزارهای هدایت شده، به صورت کلی با استفاده از روش‌های رایجی که سامانه‌های فرماندهی و کنترل C&C از آن‌ها پیروی می‌کنند، به تخریب، حمله، خرابکاری و یا دزدی از یک هدف خاص اقدام می‌کنند. در آن زمان، MyDoom مقدمه‌ای بود تا اقتدار SCO شکسته شود و وب‌سایت این شرکت بزرگ برای مدتی از دسترس خارج شود و در نهایت همگی با SCO خداحافظی کنیم. این بار Flame، اقتدار سامانه‌های امنیتی گران قیمت و اداعاهای امنیتی دولت‌ها را هدف قرار گرفته است.

در زمان بسیار نزدیکی، ۳ گروه متفاوت در مورد بدافزار جدیدی با نام Flame هشدار داده‌اند. در ابتدا یک نوشته غیر رسمی از سوی کسپراسکی و سپس یک مقاله تحلیلی کامل از شرکت مجارستانی CrySyS و سپس اعلامیه از سوی مرکز ماهر (مرکز مدیریت امداد و هماهنگی عملیات رخدادهای رایانه ای کشور) حضور این بدافزار را تایید کرده‌اند. اولین باری که فایل‌های مرتبط با این ویروس ثبت شده‌است، مربوط به دسامبر ۲۰۰۷ بوده است. نسخه بعدی در سال ۲۰۰۸ در امارات متحده عربی و نسخه نهایی در مارچ ۲۰۱۰ در ایران ثبت شده است. نمای زیر، نحوه زندگی این آتش پاره آسمان جول را از سال ۲۰۱۰ مرور کرده است:

این بدافزار از تکنولوژی‌های تقریبا کمیابی (در سطح بدافزارها) برای جمع آوری اطلاعات و ارسال داده‌ها استفاده می‌کند. ساختار کاملا ماجولاری دارد که با استفاده از چندین اسکریپت Lua کارهای متفاوتی را انجام می‌دهند.

[blockquote type=”blockquote_line” align=”left”]

CRUISE_CRED.lua
The script gathers credential information from an already infected machine. More precisely, it cruises all the token objects to find the ones belong to the administrator or the Administrators, Domain Admins groups. If it is successful, it updates cruiseAttackLog in the “CLAN” database by means of the user sd and the user name. For more information, please see the Tables creds and cruise_attack_log in Figure 48.
basic_info_app.lua
The script gathers basic information about an infected computer such as the flame version it has been infected with, the computer name, the ip address of the machine. Furthermore, it books various parameters about the nature of information leak (e.g., AVERAGE_LEAK_BANDWIDTH, LAST_LEAK_TO_INTERNET, MEDIA_LEAKS_FROM_THIS_COMPUTER, etc). Note that the FLAME_VERSION parameter must have been used to avoid the reinfection of the same computer and also to update flame if it is necessary.
clan_seclog.lua
The script parses the Security log by searching for certain event Ids and retrieves the corresponding username and ip information from it. It is supposedly used to collect information about the traces of infection, or the credentials and source IPs used to authenticate to the infected machine. The script examines the following event Ids, where the corresponding log entries store the required pieces of information (Account Name, User
Name and IP address)
Event Id: 540 – Refers to successful network logon. Among various parameters the log stores the User Name and Source Network Address as well.
Event Id: 672 – Refers to Authentication Ticket Granted Audit event. In case of Windows, the Kerberos authentication uses the optional pre-authentication phase before issuing an authentication ticket by checking the credentials of the client. If the client successfully authenticated to the workstation, Windows puts a log entry with event id 672 into the Security log in order to demonstrate the successful initial logon event.
Event Id 673: – Refers to Service Ticket Granted Audit event. Once the authentication ticket is granted a service ticket have to be gained. If it is so, the client could successfully logon to the domain, and Windows puts a log entry with the 673 event Id to the Security Log.
Event Id 680: – Refers to Account Used for Logon by: <authentication package> .
json.lua: json related string functions only
casafety.lua: “CLANattack safety” tries to find out processes, registry information and similar related to ESET, KAV, McAfee, TrendMicro, and list from THREATENING

[/blockquote]

همچنین داده‌هایی که این بدافزار جمع آوری می‌کند در یک ساختار مبتنی بر SQL Lite ذخیره می‌شود. چنین ساختاری در یکی از نسخه‌های این بدافزار وجود دارد:

اطلاعات بیشتر و کامل‌تری را  در گزارش CrySyS مشاهده خواهید کرد. با توجه به شایعه‌های تقریبا اشتباهی که در مورد کارکرد این بدافزار و استاکس‌نت وجود دارد، این جدول اطلاعات اولیه‌ای خوبی می‌تواند در خصوص مقایسه این دو خانواده بدافزار نمایش دهد: