Как определить, что делает приложение и содержит ли оно вредоносное ПО?

Как мы можем узнать в iOS и OS X, что на самом деле делает приложение?

В OS X вы всегда можете сделать следующее: щелкните правой кнопкой мыши на .app и "показать пакет". Contents -> MacOSи дважды щелкните исполняемый файл Unix. Терминал открывается и каким-то образом сообщает вам, что делает приложение.

Я не знаю, слышали ли вы, но кажется, что кто-то модифицировал компилятор Xcode, чтобы добавить вредоносное ПО в приложения. Этот модифицированный компилятор, как говорят СМИ, широко распространен в Китае, поэтому многие приложения затронуты. Также, как сообщают СМИ, компания обнаружила около 400 приложений, которые кажутся зараженными.

Теперь мой вопрос: как узнать, что делает приложение на iOS? Как определить, содержит ли он вредоносное ПО или что-то еще вредоносное.

И есть ли другой способ узнать, что приложения делают в OS X, кроме запуска исполняемого файла Unix, расположенного в пакете приложения?

Если вопрос; можете ли вы обнаружить или заблокировать, если приложение отправляет вашу информацию несоответствующей службе/серверу/хакеру... Вы можете проверить все исходящие соединения вашего Mac с помощью obdev.at/products/littlesnitch/index.html
Что вы имеете в виду «Терминал открывается и каким-то образом сообщает вам, что делает приложение»? Когда я это делаю, я просто получаю случайный вывод из приложения. Не обязательно, что он «делает» или цель.
При переносе программ с вином на OS X он сообщает мне, какие библиотеки .dll отсутствуют или иногда к каким фреймворкам он обращается.
По сути, вы спрашивали, как заменить целую антивирусную индустрию несколькими щелчками мыши. Вы не можете. И нет, запуск исполняемого файла в терминале не говорит вам, что делает приложение.

Ответы (3)

Краткий ответ: вы не можете знать

Немного более длинный ответ: простой запуск и использование приложения не покажет вам, что может происходить за кулисами. Чтобы вникнуть в это, вам нужно запустить приложение в среде отладки, чтобы проанализировать данные и потоки процессов, отслеживать любые созданные подпроцессы, контролировать любое сетевое взаимодействие, инициированное приложением и т. д. и т. д. Поскольку это довольно громоздко и требует много навыков и опыта, обычно все сводится к доверию в конце.

Значит, это то, что вы можете сделать с скомпилированным приложением? Загрузить его в Xcode и отслеживать ввод/вывод? Думаете, отладка предназначена только для не скомпилированного кода?
Он всегда находится в скомпилированном коде, он просто синхронизируется с исходным кодом, чтобы разработчику было легче понять, что происходит.

Вы не можете на самом деле определить, что делает приложение, не пытаясь выяснить, что делает его байт-код. С точки зрения сети вы можете просматривать весь входящий и исходящий трафик вашей машины с помощью чего-то вроде LittleSnitch.

Я не уверен в проверке других приложений на наличие вредоносных программ, но Apple разослала электронное письмо с информацией о том, как проверить, содержит ли ваша версия Xcode вредоносное ПО. Они рекомендуют всегда загружать его из Mac App Store или с веб-сайта разработчика. Если вы должны установить его откуда-то еще (с USB-накопителя), выполните следующие действия.

Чтобы проверить подлинность вашей копии Xcode, выполните следующую команду в терминале в системе с включенным гейткипером:

spctl --assess --verbose /Applications/Xcode.app

где /Applications/ — это каталог, в котором установлен Xcode. Этот инструмент выполняет те же проверки, что и Gatekeeper для проверки подписей кода приложений. Инструмент может занять до нескольких минут, чтобы завершить оценку для Xcode.

Инструмент должен вернуть следующий результат для версии Xcode, загруженной из Mac App Store:

/Applications/Xcode.app: accepted source=Mac App Store

а для версии, загруженной с веб-сайта Apple Developer, результат должен выглядеть так:

/Applications/Xcode.app: accepted source=Apple

или

/Applications/Xcode.app: accepted source=Apple System

Любой результат, отличный от «принято», или любой другой источник, кроме «Mac App Store», «Apple System» или «Apple», указывает на то, что подпись приложения недействительна для Xcode. Вы должны загрузить чистую копию Xcode и перекомпилировать свои приложения, прежде чем отправлять их на проверку.

На iOS

Проблема с Xcode Ghost заключается в связи с другим сервером. Таким образом, можно было бы распознать это соединение, если вы настроите прокси-сервер, как указано в этом вопросе здесь, и используете Wireshark для просмотра соединений. Для HTTP-соединения также должен работать Чарльз . Вы также можете увидеть в Xcode в диспетчере устройств журнал консоли, который очень похож на вывод терминала приложения Mac. Но разработчики могут скрывать информацию, им не нужно печатать каждую процедуру в терминале/консоли.

В ОС Х

Есть еще несколько способов обнаружения трафика TCP/IP, вручную через WireShare или с помощью некоторых приложений, таких как ( LitteSnitch , HandsOff , PrivateEye ). HandsOff — единственное приложение, которое также отслеживает чтение/запись файлов и многое другое.

Заключение

Вы должны доверять разработчикам, а также надеяться, что они используют оригинальный Xcode от Apple. У нас недостаточно (автоматизированных) инструментов для отслеживания каждой функции приложения.

@user3439894 user3439894 Есть ли причина писать «разработчик» с большой буквы?