Можно ли действительно получить троянца в файле изображения и раз так как он будет выполняться?

Я только что оцифровал несколько линий в секунду и нуждался в некотором искусстве покрытия. Мой сканер не является достаточно большим для сканирования альбома, таким образом, я искал и загрузил изображения от сети.

Когда я сделал так Стой сообщил, что один из них содержал троянца "Win32:Hupigon-ONX" и сразу изолировал его. Не желая рискнуть я загрузил другую копию, которая сообщила как чистая.

Теперь это было просто ложью, положительной от Стой или в jpg, возможно, действительно был троянец?

Если бы было то, как это выполнить?

Я должен признать, что этот аспект троянцев и вирусов всегда экранировал меня. Как разработчик программного обеспечения я всегда проверял длину массивов и т.д., таким образом, я не вижу, почему вещи как переполнение буфера должны произойти. Я понимаю, что люди действительно сокращают углы и делают ошибки и если программное обеспечение достаточно сложно, эти ошибки могут проскользнуть через.

11
задан 07.07.2010, 13:24

4 ответа

Использование в файлах изображений использует в своих интересах дефекты переполнения буфера в коде обработки изображений ОС. Были несколько значительные такие дефекты, найденные в уровне GDI Windows несколько лет назад - патчи были выпущены давно, но изображения использования все еще там или просто потому что они остались или в надежде, что они поражают машину, которая еще не была исправлена.

Обычная причина такой дыры в системе безопасности передает данные изображения между функциями на стеке вызовов и не правильно проверяет максимальную длину данных. Это может быть использовано умно созданными данными, которые увеличенного размера и расположение таким способом, которым это заканчивает тем, что перезаписало код затем в стековом фрейме (перезаписывающий его с другим кодом) или указатели перезаписи для кодирования, который будет использоваться для вызывания других функций или когда вызванная функция возвращается к, вызывающая сторона (перезаписывающий такой указатель, чтобы заставить его указать на эксплоитный код), или данные перезаписи таким способом, который заставляет другую дыру быть выставленной. Точный метод варьируется в зависимости от рассматриваемой дыры в системе безопасности.

Современные центральные процессоры имеют защиту, которая останавливает большую часть этого использования, если код поддерживает ее. Это работает программой/библиотекой, явно отмечающей, какая из ее страниц является данными и которые являются кодом - ЦП затем повысит исключение, если что-нибудь в том, что должно быть данными (такими как данные изображения) попытается быть выполненным как код. IIRC Vista и выше и последние версии .NET имела все их библиотеки, перестроенные для поддержки этой защиты, и это поддерживается другим OSs также, но это не останавливает все такое использование и только работает, если бы явно включено (иначе, много старого кода повредилось бы).

11
ответ дан 07.12.2019, 12:13

Было использование, которое сделало переполнение буфера на поврежденной библиотеке JPEG, которая могла выполнить произвольный код в 2006. Microsoft выпустила патч для фиксации его быстрее, чем я когда-либо видел их. Ваша машина почти наверняка не уязвима, и Hupigon сейчас генерирует слишком много ложных положительных сторон.

http://www.microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?name=Win32/Hupigon

3
ответ дан 07.12.2019, 12:13

Я должен признать, что этот аспект троянцев и вирусов всегда экранировал меня. Как разработчик программного обеспечения я всегда проверял длину массивов и т.д., таким образом, я не вижу, почему вещи как переполнение буфера должны произойти.

Ну, добро пожаловать в реальный мир ;-). Переполнение буфера &c. может произойти на многих языках (особенно в тех, которые имеют ручное управление памятью как C), и поскольку разработчики делают ошибки, они действительно происходят.

В то время как обычно переполнение буфера просто разрушит программу (нарушение сегментации или подобный), это может позволить взломщику выполнять код-> активированный троянец.

Например:

http://www.microsoft.com/technet/security/bulletin/MS04-028.mspx

http://secunia.com/advisories/35216/

И для объяснения, как это позволяет выполнение кода:

https://stackoverflow.com/questions/460519/how-are-buffer-overflows-used-to-exploit-computers

9
ответ дан 07.12.2019, 12:13

Я должен признать, что этот аспект троянцев и вирусов всегда экранировал меня. Как разработчик программного обеспечения я всегда проверял длину массивов и т.д., таким образом, я не вижу, почему вещи как переполнение буфера должны произойти. Я понимаю, что люди действительно сокращают углы и делают ошибки и если программное обеспечение достаточно сложно, эти ошибки могут проскользнуть через.

Возможно, Вы проверяете всех Вас указатели, массивы, и т.д. Но действительно ли Вы уверены, что все программисты какой-либо 3-й patry библиотеки, которой Вы (могли) бы пользоваться (когда-нибудь), сделали так, также?

Простое решение для этого загрузило бы файл как "image.jpg.exe" или что-то подобное вместо реального изображения.

Более усовершенствованные способы заразить Ваш ПК были уже описаны здесь (например, Переполнение буфера...)

2
ответ дан 07.12.2019, 12:13

Теги

Похожие вопросы