2011-01-25 4 views
0

Я пишу скрипт мастер-контроля для управления нашей инфраструктурой. Безопасность является серьезной проблемой, поэтому я хотел бы остановиться на двух проблемах:Аутентификация в скрипте python

Я хочу, чтобы пользователь мог выполнить это приложение, а затем попросить «войти» в программу, используя корневые учетные данные в системе (Linux - Ubuntu). Невозможность аутентификации вызовет событие электронной почты и заблокирует программу. Могу ли я аутентифицироваться против/etc/passwd? И как я могу заблокировать приложение?

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

+2

Возможно, вы должны сделать скрипт исполняемым только суперпользователем? Затем попросите пользователя использовать sudo/su для выполнения скрипта. – GWW

+1

Что касается вашего второго запроса, python на самом деле не является подходящим кандидатом для обфускации. Вы можете отправить только скомпилированные файлы '.pyc', которые немного сложнее изменить. – miku

+0

Я должен был упомянуть. Этот скрипт будет находиться на одном из трех серверов C & C (Command and Control). – Publiccert

ответ

2

Хотя это нетривиальное решение, наиболее безопасный способ сделать это - это подход клиент/сервер, который делает ваш мастер-скрипт системной службой, доступной только для чтения и запуска с помощью root. Вы можете запустить службу через инфраструктуру запуска init.d.

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

Для аутентификации с помощью /etc/passwd вы можете использовать модули P1200 crypt и pwd.

+0

Это очень крутое предложение. Я собираюсь изучить это. Это предотвратит обнаружение каких-либо жестко закодированных логинов? – Publiccert

+0

@Jeffrey Я предлагаю вам избегать жестко закодированных логинов, так как они могут быть грубо вынуждены. Кроме того, если ваш исходный код просочится, злоумышленник легко получит доступ к учетным данным. Внутренний механизм/etc/passwd auth имеет кольцо токена аутентификации, которое помогает смягчить атаку грубой силы. – vz0

+0

Абсолютно. Я только упомянул об этом в качестве примера, потому что на самом деле хочу записать другую информацию в скрипт (не-регистрационную информацию), не беспокоясь о том, что ее читают все, кто имеет доступ к скрипту и текстовому редактору. – Publiccert

Смежные вопросы