Время компиляции вредоносных программ возможно?
Возможно ли, скажем, для программ с открытым исходным кодом установить вредоносное ПО во время компиляции? Я имею в виду макросы C или связанные с makefile вещи, которые будут выполнять злой код во время компиляции. Или я в безопасности до тех пор, пока не начну запускать скомпилированную программу?
2 ответа:
Считайте, что makefile-это, по сути, просто список команд для запуска. Возьмем, к примеру, идею о том, что вы можете распространять исходный код вредоносного ПО в проекте makefile. Затем, когда вы создаете проект, файл makefile идет и компилирует вредоносное ПО... а затем, в конце, запускает вновь скомпилированную вредоносную программу - скажем, притворяется, что запускает модульный тест на то, что вы считаете не вредоносной программой.
Это, конечно, возможно.
Можно не только сконфигурировать или создать скрипты дляустановки вредоносного кода во время компиляции, но и модифицировать компилятор или средства сборки, чтобы внедрить бэкдор или другой вредоносный код в скомпилированные двоичные файлы. То есть, даже если код, который вы создаете, кажется чистым, инструменты сборки могут "выйти из-под контроля" и ввести вредоносный код.
Эта концепция вредоносных компиляторов была широко представлена в статье под названием "Размышления о доверии доверию" [1]. Недавно, вредоносное ПО было обнаружено в приложениях iOS, которые были внедрены с помощью этой техники, атакуя компиляторы разработчиков (Xcode) [2].Итог: Если вы не написали или не проверили каждую строку кода из проекта, который вы создаете, инструменты, которые вы используете для его создания, и ОС/прошивки, на которых вы его создаете, вы не можете полностью доверять ему.
[1] https://www.ece.cmu.edu/~двойник/712.fall02/документы/p761-Томпсон.формат PDF