Пять лет назад злоумышленник закопал фрагмент кода, а сегодня он активировался.
В Git обнаружена методика сокрытия истории изменений, способная запутать даже опытных специалистов по цифровой криминалистике. Речь идёт не о новой уязвимости, а о функциональности, которая при неправильном использовании может стать настоящим инструментом манипуляции — технике, получившей название Для просмотра ссылки Войдиили Зарегистрируйся . Она позволяет изменить временные метки коммитов в репозитории, чтобы скрыть или исказить реальную последовательность событий, вводя в заблуждение при Для просмотра ссылки Войди или Зарегистрируйся , расследовании инцидентов или анализе кода.
Сам Git по своей природе децентрализован и доверяет пользователю. В каждый коммит закладываются две временные метки: <code>GIT_AUTHOR_DATE</code> — когда была написана логика, и <code>GIT_COMMITTER_DATE</code> — когда коммит был зафиксирован в истории. Эти значения можно легко переопределить вручную через переменные окружения, что открывает возможности для хронологических манипуляций.
Злоумышленник может, например, внести вредоносный код и задним числом «вписать» его в старый релиз, указав дату, которая органично вписывается в прошлую разработку. Таким образом, вредоносный фрагмент будет выглядеть как легитимная часть старой версии, затрудняя поиск причины уязвимости и мешая точно определить момент внедрения.
Изменение временных меток коммита Для просмотра ссылки Войдиили Зарегистрируйся
Механизмы Git вроде <code>rebase</code> и <code>commit --amend</code> также переписывают историю, автоматически изменяя <code>GIT_COMMITTER_DATE</code>. Но особую опасность представляет ручное указание временных меток или массовое изменение истории с помощью таких инструментов, как <code>git filter-branch</code> или <code>git filter-repo</code>. В рамках этих процедур можно не только изменить дату конкретного коммита, но и замаскировать целую серию действий под другую временную рамку.
Признаки того, что в репозитории может быть использован Commit Stomping, включают одинаковые метки времени на разных коммитах, существенные расхождения между датами автора и коммиттера, появление новых коммитов с задним числом или несовпадение метаданных с логами CI/CD. При этом, если злоумышленник проявил осторожность и использовал умеренные временные смещения, обнаружить вмешательство становится крайне сложно без дополнительных источников информации.
Особую тревогу метод вызывает в контексте цепочек поставок программного обеспечения, когда репозитории открыты и используются множеством сторон. Малозаметная подмена коммита может пройти незамеченной и попасть в финальную сборку, а попытки расследовать подобное вмешательство будут затруднены ложной хронологией.
Чтобы защититься от таких манипуляций, рекомендуется:
На фоне роста атак на цепочки поставок и случаев саботажа в open-source-проектах, возможность скрыть или подделать историю коммитов должна рассматриваться как реальный риск. Особенно в сценариях, где идёт имитация действий внутри команды, сокрытие инсайдерской активности или моделирование продвинутых злоумышленников. Git рассказывает историю разработки. Commit Stomping позволяет переписать эту историю, изменяя ключевые факты — и тем самым мешая добраться до истины.
В Git обнаружена методика сокрытия истории изменений, способная запутать даже опытных специалистов по цифровой криминалистике. Речь идёт не о новой уязвимости, а о функциональности, которая при неправильном использовании может стать настоящим инструментом манипуляции — технике, получившей название Для просмотра ссылки Войди
Сам Git по своей природе децентрализован и доверяет пользователю. В каждый коммит закладываются две временные метки: <code>GIT_AUTHOR_DATE</code> — когда была написана логика, и <code>GIT_COMMITTER_DATE</code> — когда коммит был зафиксирован в истории. Эти значения можно легко переопределить вручную через переменные окружения, что открывает возможности для хронологических манипуляций.
Злоумышленник может, например, внести вредоносный код и задним числом «вписать» его в старый релиз, указав дату, которая органично вписывается в прошлую разработку. Таким образом, вредоносный фрагмент будет выглядеть как легитимная часть старой версии, затрудняя поиск причины уязвимости и мешая точно определить момент внедрения.
Изменение временных меток коммита Для просмотра ссылки Войди
Механизмы Git вроде <code>rebase</code> и <code>commit --amend</code> также переписывают историю, автоматически изменяя <code>GIT_COMMITTER_DATE</code>. Но особую опасность представляет ручное указание временных меток или массовое изменение истории с помощью таких инструментов, как <code>git filter-branch</code> или <code>git filter-repo</code>. В рамках этих процедур можно не только изменить дату конкретного коммита, но и замаскировать целую серию действий под другую временную рамку.
Признаки того, что в репозитории может быть использован Commit Stomping, включают одинаковые метки времени на разных коммитах, существенные расхождения между датами автора и коммиттера, появление новых коммитов с задним числом или несовпадение метаданных с логами CI/CD. При этом, если злоумышленник проявил осторожность и использовал умеренные временные смещения, обнаружить вмешательство становится крайне сложно без дополнительных источников информации.
Особую тревогу метод вызывает в контексте цепочек поставок программного обеспечения, когда репозитории открыты и используются множеством сторон. Малозаметная подмена коммита может пройти незамеченной и попасть в финальную сборку, а попытки расследовать подобное вмешательство будут затруднены ложной хронологией.
Чтобы защититься от таких манипуляций, рекомендуется:
- Внедрить проверку подписанных коммитов через GPG или SSH;
- Вести внешние логирования поступающих коммитов в CI/CD или на стороне Git-сервера;
- Использовать зеркала репозиториев на неизменяемом хранилище;
- Запретить <code>force-push</code> на защищённые ветки;
- Следить за аномалиями в хронологии коммитов, особенно при аудите кода или выпуске релизов.
На фоне роста атак на цепочки поставок и случаев саботажа в open-source-проектах, возможность скрыть или подделать историю коммитов должна рассматриваться как реальный риск. Особенно в сценариях, где идёт имитация действий внутри команды, сокрытие инсайдерской активности или моделирование продвинутых злоумышленников. Git рассказывает историю разработки. Commit Stomping позволяет переписать эту историю, изменяя ключевые факты — и тем самым мешая добраться до истины.
- Источник новости
- www.securitylab.ru