Доступ к зараженному файлу Excel (с помощью вымогателей) через .NET Engine. Может ли это повлиять на сервер? - PullRequest
0 голосов
/ 18 сентября 2018

У нас есть простое веб-приложение ASP.NET, которое читает файлы Excel через страницу загрузки и вставляет строки в базу данных.Пользователи загружают файл Excel, который заполняет таблицу в базе данных MSSQL.

Мы читаем файл Excel с помощью простого блока кода, подобного этому.

Dim con As New OleDb.OleDbConnection()
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & filePath & ";Extended Properties=Excel 12.0"
'Get data from Exel into a DataFile
Try
    con.Open()
    Dim cmd As New OleDb.OleDbCommand("SELECT * FROM [Sheet1$]", con)
    Dim da As New OleDb.OleDbDataAdapter()
    da.SelectCommand = cmd
    Dim ds As New DataSet()
    da.Fill(ds, "DataSet")
    Return ds.Tables(0)
Catch ex As Exception
    HttpContext.Current.Session("Error") = "err: " & ex.Message
    Throw ex
    Return New DataTable()
Finally
    con.Close()
End Try

Может ли чтениеФайл Excel malitios через наше приложение заражает сервер, на котором работает страница?

Является ли Jet Engine настолько мощным, что может запускать вредоносный код, встроенный в зараженный файл Excel, когда обращается к строкам с помощью кода ?

1 Ответ

0 голосов
/ 18 сентября 2018

Простой ответ - да, это возможно. В мире существует два типа вредоносных стандартных офисных документов:

  • Вредоносная деятельность на основе макросов

В вашем случае зараженные файлы на основе макросов не так опасны, потому что они представляют собой дополнительные объекты, внедренные в документ и запускаемые пользовательским взаимодействием или некоторыми кодами в вашем приложении, которые автоматически выполняют макрос, поэтому, если у вас нет кода для выполняйте макросы внутри офисных документов, не беспокойтесь об офисных документах, зараженных макросами!

  • Использование вредоносной активности

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

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

Например, вот список некоторых эксплойтов драйвера Jet, которые были найдены Googling «Microsoft Jet driver Exploit»:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...