Після новини про те, що Flashback заразив понад півмільйона комп’ютерів Mac по всьому світу, у наших читачів виникло питання, як виявити зараження даної троянською програмою і як від неї позбутися. Я вирішив перекласти інструкцію F-Secure і забезпечив її деякими коментарями.

Додаткову інформацію про трояне Flashback ви можете знайти за цим посиланням.

Перевіряємо наявність шкідливого ПЗ

Встановити присутність Flashback в системі досить просто. Для цього нам потрібно виконати дві прості команди в Терміналі (його можна знайти в папці /Програми/Утиліти):

defaults read ~/.MacOSX/environment DYLD_INSERT_LIBRARIES

defaults read /Applications/Safari.app/Contents/Info LSEnvironment

Якщо в результаті виконання цих команд ви отримаєте повідомлення наступного вигляду, то турбуватися поки що не варто:

The domain/default pair of (/Users/Deavy/.MacOSX/environment, DYLD_INSERT_LIBRARIES) does not exist

The domain/default pair of (/Applications/Safari.app/Contents/Info, LSEnvironment) does not exist

Навіть якщо ви отримали аналогічний результат, я настійно рекомендую запустити Software Update і встановити всі доступні на даний момент оновлення Java для OS X. В якості ще однієї заходів безпеки можна відключити запуск Java-аплетів (я нещодавно писав, як це можна зробити в Lion і Snow Leopard).

Як позбутися від Flashback

Інші результати свідчать про зараження троянською програмою. На щастя, не варто впадати у відчай, адже ви можете видалити Flashback ручну, нехай зробити це немнго складніше.

1. Для початку запустити в Терміналі команду:

defaults read /Applications/Safari.app/Contents/Info LSEnvironment

2. Запам’ятайте або запишіть значення змінної DYLD_INSERT_LIBRARIES.

3. Якщо ви одержали повідомлення «The domain/default pair of (/Applications/Safari.app/Contents/Info, LSEnvironment) does not exist», перейдіть до кроку 8.

4. В іншому випадку виконайте нову команду. Обов’язково в якості параметра використовуйте шлях, отриманий на кроці 2:

grep -a -o ‘__ldpath__[ -~]*’ путь_полученный_в_шаге_2

5. Запам’ятайте або запишіть значення змінної __ldpath__

6. Запустити в Терміналі наступні команди (але спочатку переконайтеся, що у кроці 2 ви отримали лише одне значення):

sudo defaults delete /Applications/Safari.app/Contents/InfoLSEnvironment

sudo chmod 644 /Applications/Safari.app/Contents/Info.plist

7. Тепер видаліть файли, отримані в пунктах 2 і 5.

8. Знову повертаємося в Термінал і виконуємо команду:

defaults read ~/.MacOSX/environment DYLD_INSERT_LIBRARIES

9. Запам’ятайте або запишіть результат. Якщо ви отримали схоже повідомлення «The domain/default pair of (/Users/Deavy/.MacOSX/environment, DYLD_INSERT_LIBRARIES) does not exist», значить система чиста.

10. В іншому випадку запустіть команду, використовуючи в якості параметра шлях з кроку 9:

grep -a -o ‘__ldpath__[ -~]*’ путь_полученный_в_шаге_9

11. Запишіть його або запам’ятайте значення змінної __ldpath__

12. Виконуємо у Терміналі ще пару команд:

defaults delete ~/.MacOSX/environment DYLD_INSERT_LIBRARIES

launchctl unsetenv DYLD_INSERT_LIBRARIES

13. Видаляємо файли, отримані в пунктах 9 і 11.

14. І ось тепер найскладніше. Потрібно повернутися в Термінал і запустити команду

ls -lA ~/Library/LaunchAgents/

Вона поверне список ПО, яке запускається при старті системи. Якщо ви користуєтеся OS X давно, то в отриманому списку, швидше за все, буде не один результат. У такому випадку F-Secure рекомендує звернутися до них в службу підтримки, але ми спробуємо поворушити мізками. Вам доведеться вибрати найбільш підозрілі plist-файли з іменами на зразок «com.java.update.plist» і виконати наступну команду:

defaults read ~/Library/LaunchAgents/имя_подозрительного_файла ProgramArguments

Теоретично, ви можете використовувати всі файли зі списку [1]. В яких випадках ви отримаєте певний результат [2], в якихось- ні [3]. Але вам слід звертати увагу ім’я об’єкта запуску [4]. Якщо воно починається з точки, а шлях до файлу підозрілий і не відноситься до програм, які ви використовуєте, то цей об’єкт разом з plist-файлом потрібно буде видалити.

Але сподіваюся, що у вас все в порядку і до використання другій частині інструкції справа не дійде.