Как стать автором
Обновить

Комментарии 28

Что будет, если «api.apple-cloudkit.com» заблокировать на роутере?
Или DNS по имени «api.apple-cloudkit.com» будет возвращать «0.0.0.0»?
Интересно что отвечает api.apple-cloudkit.com, на запрос с хешем? Потом поднять свой локальный сервер, который быстро будет отвечать — «ОК».

Думаю, что на деле все сильно сложнее. Наверняка "ок" еще подписывается приватным ключем не говоря уже об ssl

Если прям на маке поставить фаервол и заблокировать все сетевые запросы от демона syspolicyd то запросы отправляться не будут. Думаю, если на роутере заблокировать, то примерно то же самое.

Можно ли просто прибить демон?
(не пользуюсь macOS, мимо проходил)

В macOS системные демоны лучше не прибивать. Один раз я прибил kerberos демон, при том что его вообще не использую, компьютеру помог только хард резет — иначе система просто уходила в бесконечную загрузку.

Ну, как следует из названия демона, от отвечает за авторизацию. Не стоит его прибивать :)
kerberos обычно не используется в локальной авторизации
Интересно, а на iPad так же? А то мой свежий air3 периодически перестает реагировать на тач, при том, что видео и звук например продолжаются без лагов. После обновлениея всего проблема несколько нивелируется, потом снова прогрессирует.
А на ipad-то это зачем? Как на него попадёт неподписанный код?
Так что, думаю, у вас другая проблема.
Эппл вроде предупреждала об этом на WWDC 2019
developer.apple.com/videos/play/wwdc2019/703/#
So when a user downloads your stapled software and double-click it to launch it, the gatekeeper will perform a verification. It'll check the local ticket and it will also reach out to the Notary Service via CloudKit to check for a ticket also.

И правда, но пока в документации не отразила видимо.
Да и в принципе решение спорное.

Этот механизм можно обойти, если добавить терминал и IDE в Developer Tools в настройках безопасности. Правда, появляется этот пункт, похоже, только после установки Xcode.


Что интересно, в будущем Apple вообще планирует запретить запуск не прошедших нотаризацию программ.

А почему в будущем? В цитате упоминается 10.15, то есть уже вышедшая Catalina.

Очень странно, попробовал провернуть такое у себя:
tarik02 : ~ echo $'#!/bin/sh\necho Hello' > /tmp/test.sh && chmod a+x /tmp/test.sh
tarik02 : ~ time /tmp/test.sh && time /tmp/test.sh
Hello
/tmp/test.sh 0,00s user 0,01s system 87% cpu 0,009 total
Hello
/tmp/test.sh 0,00s user 0,01s system 81% cpu 0,011 total
tarik02 : ~ echo $'#!/bin/sh\necho Hello2' > /tmp/test.sh && chmod a+x /tmp/test.sh
tarik02 : ~ time /tmp/test.sh && time /tmp/test.sh
Hello2
/tmp/test.sh 0,00s user 0,00s system 75% cpu 0,007 total
Hello2
/tmp/test.sh 0,00s user 0,00s system 78% cpu 0,007 total
tarik02 : ~ echo $'#!/bin/sh\necho Hello3' > /tmp/test2.sh && chmod a+x /tmp/test2.sh
tarik02 : ~ time /tmp/test2.sh && time /tmp/test2.sh
Hello2
/tmp/test2.sh 0,00s user 0,01s system 78% cpu 0,010 total
Hello2
/tmp/test2.sh 0,00s user 0,00s system 80% cpu 0,008 total
tarik02 : ~ echo $'#!/bin/sh\necho Hello3' > /tmp/test3.sh && chmod a+x /tmp/test3.sh
tarik02 : ~ time /tmp/test3.sh && time /tmp/test3.sh
Hello3
/tmp/test3.sh 0,00s user 0,00s system 80% cpu 0,008 total
Hello3
/tmp/test3.sh 0,00s user 0,00s system 76% cpu 0,008 total


При этом, попробовал для разных запусков отключить интернет, или подключить более медленный. macOS Catalina 10.15.4

У некоторых тоже не воспроизводится, тут может быть ряд причин, в том числе описанных в комменте выше от masai. Надо смотреть каждый случай отдельно :)

Да, Xcode установлен и приложение терминала включено тут. Но я тестировал это в iTerm2 (хотя попробовал отключить приложение отсюда и протестить в приложении терминала). Возможно, нужна перезагрузка, или что-то ещё где-то отключить.


Изображение

Расскажите тому, что за MacOS никогда не работал: я верно понимаю, что любое неподписанное приложение можно будет запихнуть в Dev Tools, и обойти запрет? То есть пираты не останутся в накладе?

Да, но нет. Чтобы приложение появилось в том списке, что на скрине, нужно как минимум перейти в настройки, найти нужный пункт, разблокировать настройки, введя пароль, выбрать приложение и дать ему разрешение. Называть это поведение уязвимостью, это словно называть уязвимостью присутствие режима администратора в Windows, или root в Windows/macOS.

Я имею ввиду, что то, что придумали в Apple, это защита от malware, а не от пользователей, которые пользуются пиратским ПО?

Это не помешает пиратить под MacOS?

Судя по моему опыту, пока что не мешает. Теоретически, они смогут блокировать код по хешу, но я очень сомневаюсь в эффективности такого решения. По моему, легко обойти. Начиная от временного отключения интернета, заканчивая маленьким патчингом бинарника.

А разве нельзя сделать такой бинарник малвари, чтобы её хеш совпал с хешем какого-нибудь подписанного приложения?

Нет, нельзя. Хеш — односторонняя функция. Если бы можно было, то вся современная криптография, включая криптовалюты, накрылась бы медным тазом. (Вообще можно, но для этого нужно нереально большое количество времени. Например, в большинстве криптовалют подбирают число, которое нужно добавить к данным, чтобы их хеш содержал хотя бы 30 нулей в бинарной записи, при том, что весь хеш (на примере sha256) содержит 256 бит. Подбор каждого следующего подходящего хеша усложняется примерно с экспоненциальной сложностью.).

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

Тут как повезет. Файлы в оригинале небольшие, используется md5. Если хотя бы одно условие не соблюдается — повторить такое будет сложно.

А никого не смущает, что вообще ОС отсылает эти данные? Что даже простой скрипт нельзя запустить, что бы аппле об этом не узнало!
Те кого смущает уже перешли на linux/bsd. Остальным всё равно.
Хмм, забавно. А я себе всю голову сломал, почему у меня мак мини без видимых причин тормозит так, что аж задержка ввода символов в терминал около 2-х секунд… Хотя вроде и не должно бы это влиять?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации