6

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

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

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

Кто-нибудь знает какой-нибудь аппаратный компьютер \ жесткий диск, который может это сделать?

Благодарю.

14 ответов14

8

Это просто невозможно. Физический доступ к оборудованию буквально удаляет все обещания безопасности.

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

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

Это не технологическая проблема, это юридическая проблема. Вам необходимо защитить свое программное обеспечение и свою интеллектуальную собственность с помощью лицензий и других договорных соглашений. При необходимости попросите клиента подписать соглашение о неразглашении . Лучше всего обратиться к юристу, а не к технологу.

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

7

При загрузке проверьте BIOS своего ноутбука, поищите варианты, такие как шифрование жесткого диска или "Блокировка жесткого диска ATA" (не шифрование, но я не думаю, что большинство дисков имеют какой-либо механизм, позволяющий обойти пароль).

Вы можете стрелять эпоксидной смолой в порт FireWire, чтобы они не могли подключить инструмент отладки устройства чтения памяти PCI.

Обновить

Тот факт, что это Linux, дает вам больше гибкости. :) Вы можете удалить из системы модули usbhid.ko , hid.ko и аналогичные модули ядра. Просмотрите lsmod(8) и удалите все, что выглядит как полезное для трекпада, клавиатуры или мышки-ниппеля. Удалить модули FireWire. Может быть, даже последовательные и параллельные модули. (Если вы их не используете, избавиться от них не помешает.)

Вам также нужно заблокировать grub , чтобы ваш клиент не мог просто отредактировать строку загрузки ядра и добавить init=bash или init=getty /dev/ttyS01 или что-то еще, что раздражает.

Вы также можете использовать такие инструменты, как AppArmor, SElinux, TOMOYO или SMACK. Любой из этих инструментов обязательного контроля доступа может помешать приложению избежать четко определенного набора привилегий. Поскольку я работаю над системой AppArmor уже десять лет, я знаю, что лучше всего ее рекомендую :), но любой из этих инструментов может помочь заблокировать все механизмы, которые ваш клиент может взаимодействовать с компьютером.

(Чтобы рассказать небольшую историю, мы взяли систему AppArmor, ограниченную AppArmor, на конкурс DEFCON Capture The Flag в течение нескольких лет; для того, чтобы пользователи могли войти в систему как root с определенным паролем, требовался один год. AppArmor позволил с легкостью ограничить демон telnetd , оболочку, которую он запустил, а затем программы, необходимые для запуска «Scorebot». Мы никогда не выигрывали конкурсы CTF, но и у нас не было болей. Нам никогда не приходилось беспокоиться о физических атаках, потому что каждый, кто защищался, был нам известен.)

Удачи.

3

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

3

После получения хороших советов и понимания от вас слабых мест, на которые я должен обратить внимание, я хотел бы подвести итог и рассказать вам, что мы решили, наконец, сделать:

Во-первых, пару вещей, которые вы должны знать.

  1. Юридическая защита недоступна при работе с нашим клиентом. Если он решит взломать систему, ему это удастся, в конце концов.

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

  3. Наша система Linux + Java + Postgres

Теперь для решения мы выбрали

  1. Мы будем защищать биос паролем. на уровне BIOS мы ограничим загрузку HD и запретим подключение USB-устройств. Это можно взломать, купив код задней двери в сети за 30 $ или взломав фишку на доске. Тем не менее, это оставит признаки взлома, которые довольно заметны.

  2. Мы заблокируем Grub, чтобы предотвратить загрузку из командной строки.

  3. Клавиатура, коврик для мыши и USB-мышь в XWin заблокированы с помощью параметров в xorg.conf:

    Section "ServerFlags"
    Option "AllowEmptyInput" "false"
    Option "AutoAddDevices" "false"
    Option "AutoEnableDevices" "false"
    EndSection
    
  4. Мы удалим драйверы USB и клавиатуры из ядра. (усложнить жизнь хакерам).

  5. Мы поместим физическую индикацию (возможно, цвет кремния) на HD, чтобы посмотреть, удалено ли HD с компьютера. Если они удалят HD или взломают биос, у них останутся отпечатки пальцев, которые они не смогут стереть.

  6. Мы будем использовать инструменты запутывания в коде Java. Наш продукт довольно сложный, поэтому его запутывание предотвратит реверс-инжиниринг при разумных затратах или временных рамках. Пожалуйста, прочитайте: http://www.javaworld.com/javaworld/javaqa/2003-05/01-qa-0509-jcrypt.html, и мы будем использовать один из следующих инструментов Инструменты с открытым исходным кодом: http://java-source .net/open-source/obfuscators или DashO от http://www.preemptive.com/

  7. Доступ по SSH мне доступен только с файлом ключа. Все пароли будут удалены, где это возможно.

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

2

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

Я бы также предложил подделать заметные наклейки на жесткий диск или диск CD - по крайней мере, он даст вам знать, если жесткий диск был удален.

В этом случае лучше было бы использовать мини-ITX или полную систему с закрывающимся корпусом.

1

Программное обеспечение для полного шифрования диска обычно полагается на пароль, который вводится для его расшифровки. Как вы предлагаете защитить жесткий диск - другими словами, где вы собираетесь поместить «секрет»?

1

Это очень сложная проблема. У меня есть нестандартная идея, которую я просто собираюсь выбросить, поскольку это может быть лучшим решением, чем физическое повреждение компьютера. Вы можете использовать этот программный продукт в качестве экранной заставки Linux. Затем установите тайм-аут на очень маленькое значение таким образом, если пользователь пытается взаимодействовать с компьютером, появится экран входа в систему и он будет SOL, но приложение должно возобновить работу после истечения времени ожидания для заставки. Чтобы обойти проблему шифрования жесткого диска, единственное решение, о котором я действительно могу подумать, это то, что если у вас есть аппаратное шифрование на материнской плате ноутбука, это может быть так, что только тот конкретный ноутбук может получить доступ к жесткому диску. Вам придется проверить BIOS вашей системы, чтобы увидеть, есть ли у вас эта функция. кроме этого я использую truecrypt.org для всех моих (и моих работ) нужд шифрования, но для этого обычно требуется ввод пароля. Думаю, я бы все же предложил это. Если я подумаю о чем-то большем, я дам вам знать, удачи;)

1

Рассматривали ли вы возможность включения идентификатора ЦП в BIOS, а затем, поскольку вы управляете кодом, периодически вставляйте соответствующую проверку в код. Во время запуска программы - проверьте идентификатор процессора, если он неисправен, отмените и перезапишите программу. Во время работы программы - проверьте идентификатор процессора, если он неисправен, отмените и перезапишите программу ...

1

Зачем вообще предоставлять им физический доступ к программному обеспечению?

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

Таким образом, они могут работать с очень ограниченными привилегиями, постоянно контролироваться, и семейные драгоценности не должны покидать ваше хранилище. Даже не зная вашей платформы, я уверен, что существует множество вариантов удаленного доступа, которые подойдут; Teamviewer, LogMeIn или Remmina, чтобы назвать несколько.

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

1

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

У Microsoft есть модуль TPM, который вы можете использовать с оборудованием TPM

Эта страница Infineon содержит ссылки на ряд производителей, таких как Dell, HP, Toshiba и т.д.

TPM позволяет связывать программное обеспечение с оборудованием гораздо более безопасным способом.

1

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

Один из обходных путей - запуск реальной программы на удаленном демонстрационном компьютере. Подключите к нему демонстрационный компьютер вашего клиента. Это сделает ваше приложение менее отзывчивым, что может повредить продажам:/

0

Вы можете открыть ноутбук и отключить клавиатуру и трекпад, отсоединив физические разъемы.
Вы должны будете сделать это, как только все остальное будет настроено. USB-устройства отключены, загрузка с CD/DVD-диска отключена и т.д. Таким образом, как только вы вернете компьютер, вы можете просто открыть его, повторно подключить трекпад и клавиатуру и вернуть все в нормальное состояние, и компьютер снова будет полностью пригоден для использования.
Если вы действительно обеспокоены, вы можете использовать защитные винты / защитную ленту, чтобы он сам не открыл ноутбук.

0

Я видел упоминание об удаленном доступе в некоторых ответах здесь, и ответы, намекающие или ускользающие от VNC. Никто не упомянул Тонкого Клиента.

Поскольку вашему программному обеспечению / устройству необходим доступ к динамическому контенту и подключение к сети, тонкий клиент подойдет.

Приложения запускаются так, как если бы они были установлены на компьютере вашего потенциального клиента; однако очень мало оборудования, и, конечно, НЕ ваше программное обеспечение должно быть установлено на машине, которая собирается оставить ваши руки.

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

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

Удачи.

0

Если это Linux, отключите входы от мыши и клавиатуры и не позволяйте загрузке USB-дисков или CD.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .