|
|
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Есть программа для работы с базой, написана на C#. В наличии только exe-файл, без конфига, строка подключения хранится прямо в исходнике. Как достать логин/пароль, которые использует программа для работы с базой? Задач на самом деле две: 1) Как достать логин/пароль? Если это может помочь, доп. информация - у злоумышленника есть обновляемый excel файл со строкой подключения в чистом виде, но с учеткой попроще, т.е. он изначально знает все параметры подключения, кроме админской учетки. 2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 16:02 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoКак достать логин/пароль, которые использует программа для работы с базой? Поймать момент авторизации на сервере БД. Сниффингом, например... Извлечь из тела исполняемого файла пару логин-пароль в общем случае невозможно. ConejoМожно ли как-то этому противостоять? Внутри файла - формировать логин и пароль кодом, а не задавать как литерал. Плюс обычные мероприятия против трассировки кода. Снаружи файла противостоять "отлову" логина и пароля практически нереально - разве только что средствами приложения устанавливать шифрованное соединение с сервером БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 16:23 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Akina, Спасибо большое за ответ. Внутри кода - да, реально прогнать через шифратор, в другой программе так и делаем. Но при соединении с базой - неужели пароль передается в чистом, не зашифрованном виде? Вот это да! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 16:30 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Conejoпри соединении с базой - неужели пароль передается в чистом, не зашифрованном виде? Вот это да! Если канал обмена не шифрован - конечно, в открытом. Вот не входит в функции сервера БД шифрование обмена с клиентом. Даже если сервер искаропки такое умеет - всё равно этим занимается отдельно встраиваемая подсистема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 17:01 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoВнутри кода - да, реально прогнать через шифратор, в другой программе так и делаем. Я имел в виду не шифрование, а программное формирование и сборку - это проще и нестандартнее. Особенно если строки кода формирования логина и пароля раскиданы между строками кода инициализации приложения - в такой каше сложнее понять, что, как и где формируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 17:04 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Akina, идею программной сборки я поняла правильно, про шифрование - это уже моя следующая мысль, сделать как в параллельном проекте. В общем, резюмируя вышесказанное, вывод - бороться очень тяжело, легче предупредить народ, что при обнаружении несанкционированных манипуляций с базой - расстрел без суда и следствия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 17:25 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Conejo , а Вы, простите, в этой каше кто? разработчик? распространитель? интегратор? сетевой админ? админ задачи? пользователь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 17:37 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoЕсть программа для работы с базой, написана на C#. В наличии только exe-файл, без конфига, строка подключения хранится прямо в исходнике. Как достать логин/пароль, которые использует программа для работы с базой? Задач на самом деле две: 1) Как достать логин/пароль? Если это может помочь, доп. информация - у злоумышленника есть обновляемый excel файл со строкой подключения в чистом виде, но с учеткой попроще, т.е. он изначально знает все параметры подключения, кроме админской учетки. 2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник) Насчет противостояния сниффингу. 1. Сервер с клиентом, используя протокол Диффи - Хелмана, формируют ключи шифрования для зашифрования пароля (и всего трафика). 2. Либо, например, используя один из известных алгоритмов ассимметричного шифрования с открытым ключом, сервер посылает клиенту открытый ключ. Клиент шифрует пароль открытым ключом и отправляет результат серверу. Для расшифрования используется другой, секретный ключ, который остался на сервере. ... Однако, все это можно взломать, зная и имитируя протокол обмена данных: вместо сервера подставляется сервер-имитатор, который в итоге получит пароль в открытом виде. ... Противостояние имитации сервера: электронная подпись. Например: клиент генерирует случайный блок данных и отправляет на сервер. Сервер формирует электронную подпись, которую возвращает клиенту. Клиент, проверив электронную подпись, убеждается, что общается с подлинным сервером. ... Однако это можно взломать, дизассемблировав приложение клиента. Противостояние дизассемблированию: вынести участок кода, выполняющий проверку ЭЦП, а также хранящий и шифрующий пароль, в защищенный объект: например, в электронный ключ защиты типа USB Guardant Sign/USB Guardant Code (и т.п.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 17:55 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Akina, из предложенных ответов ближе всего "админ задачи". Но изначально я администратор базы данных, в которой это безобразие творится. Наши умные операторы решили ускорить ввод, заливая данные напрямую в базу, в обход специальной программы. Это повлекло большие проблемы, не хотелось бы повторения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 18:00 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ZeroMQ, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 18:07 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Кстати просмотрела exe через F4 - логина/пароля в чистом виде там нет, видимо С# его прячет. А вот Delphi константы хранит в чистом виде, поэтому и пришлось шифровать в другом проекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 18:36 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoНаши умные операторы решили ускорить ввод, заливая данные напрямую в базу, в обход специальной программы. Это проблема, которая должна решаться в административном порядке. Когда один идиот оплатит работы по восстановлению БД, все сразу зарекутся работать в обход штатного софта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 19:28 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoКстати просмотрела exe через F4 - логина/пароля в чистом виде там нет, видимо С# его прячет. А вот Delphi константы хранит в чистом виде, поэтому и пришлось шифровать в другом проекте. попробуй каким-нибудь ресурс эксплорером посмотреть что в ресурсах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 19:46 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Conejo2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник) Так если база-то у вас, поменяйте пароль, и всё... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 20:01 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
MasterZivConejo2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник) Так если база-то у вас, поменяйте пароль, и всё... Так они его в прогу зашили. Прога тоже встанет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 20:28 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Если прога раздается всем подряд, то как минимум надо вести контроль по IP кто-откуда-что делает. Как максимум: генерить ID по железу компа где запушена прога и использовать этот ID для доступа к данным. Тогда можно будет выборочно карать нарушителей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 20:33 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Conejo, сервер то какой ? MSSQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 20:40 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли прога раздается всем подряд, то как минимум надо вести контроль по IP кто-откуда-что делает. Как максимум: генерить ID по железу компа где запушена прога и использовать этот ID для доступа к данным. Тогда можно будет выборочно карать нарушителей. Ну и как это поможет? Прога-то ни при чем, она как раз работает правильно. Проблемные записи были отредактированы в обход софта, они даже ID оператора не потрудились проставить, не то что IP компа)) Изопропил сервер то какой ? MSSQL? он самый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2015, 21:18 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoИзопропилсервер то какой ? MSSQL? он самый в login триггере можно посмотеть что творится app_name() и т д Conejo2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник) уволить архитектора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 00:02 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoКстати просмотрела exe через F4 - логина/пароля в чистом виде там нет, видимо С# его прячет. А вот Delphi константы хранит в чистом виде, поэтому и пришлось шифровать в другом проекте. Есть простые, многократно описанные способы, как обойти. Разу уж вам приспичило хранить ключ в приложении, возьмите случайную последовательность, равную длине ключа. При разработке приложения выполните("ручками") операцию побитного XOR ключа с этой случайной последовательностью, её и храните в виде константы А в приложении. Кроме того, отдельно в приложении храните и саму упомянутую случайную последовательность в виде константы Б. А при выполнении приложения выполните повторный А XOR Б, и получите свой секретный ключ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 02:43 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoDima TЕсли прога раздается всем подряд, то как минимум надо вести контроль по IP кто-откуда-что делает. Как максимум: генерить ID по железу компа где запушена прога и использовать этот ID для доступа к данным. Тогда можно будет выборочно карать нарушителей. Ну и как это поможет? Прога-то ни при чем, она как раз работает правильно. Проблемные записи были отредактированы в обход софта, они даже ID оператора не потрудились проставить, не то что IP компа)) Изопропил сервер то какой ? MSSQL? он самый MS SQL Server всегда шифрует сетевые пакеты, связанные с входом в систему. То есть, в данном случае, по сети пароль в открытом виде не передается. Если объяснять примитивно, то установлении соединения сервер передает клиенту открытый ключ шифрования, клиент "внимательно изучает этот ключ", и если он его устраивает, шифрует пароль полученным ключом. Ну а затем зашифрованный пароль передается серверу. Так как шифрование асимметричное, то для расшифровать пароль может только сам сервер, ибо ключ для расшифровывания есть только у него. Сниффер ничего не перехватит, то есть. https://msdn.microsoft.com/ru-ru/library/ms131691.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 03:01 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoDima TЕсли прога раздается всем подряд, то как минимум надо вести контроль по IP кто-откуда-что делает. Как максимум: генерить ID по железу компа где запушена прога и использовать этот ID для доступа к данным. Тогда можно будет выборочно карать нарушителей. Ну и как это поможет? Прога-то ни при чем, она как раз работает правильно. Проблемные записи были отредактированы в обход софта, они даже ID оператора не потрудились проставить, не то что IP компа)) Тут уже проблема с архитектурой базы. Поле ID оператора как минимум должно быть внешним ключом и not null. Тогда при всем желании его не оставить незаполненным. Другой вопрос можно ли писать туда первое попавшееся значение ID. Это можно на уровне триггеров проверять. База должна в себе содержать всю бизнес логику. Нет гарантии что кто-то случайно или специально пришлет "delete from Table". Например прога сглючит и не допишет "where ..." Я советую нанять грамотного DBA чтобы навести в базе порядок с безопасностью. Пока посерьезнее проблем не приключилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 07:06 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoНаши умные операторы решили ускорить ввод, заливая данные напрямую в базу, в обход специальной программы. Это повлекло большие проблемы, не хотелось бы повторения.А как они зашли на сервер? Они действительно рылись в exe-файле, или есть какой-то известный всем логин с паролем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 11:51 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Если база MSSQL и авторизация там BASIC, то проще не пытаться найти пароль в программе, а снифером снять дамп, найти пароль в куче и расшифровать его, там шифрование XOR 0xA0 для всех символов и усё, тупое как топор, на калькуляторе можно расшифровать :) как то была необходимость подобная автору, решилась часа за 1,5 таким способом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 11:54 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Dima TMasterZivпропущено... Так если база-то у вас, поменяйте пароль, и всё... Так они его в прогу зашили. Прога тоже встанет. я думал, это и была цель ТС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 12:18 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
[quot Conejo] Ну и как это поможет? Прога-то ни при чем, она как раз работает правильно. Проблемные записи были отредактированы в обход софта, они даже ID оператора не потрудились проставить, не то что IP компа)) Надо валидацию данных на уровне базы делать, чтобы не могли неправильные данные туда попасть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2015, 13:58 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Conejo2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник) Есть куча методов этому противостоять, среди которых один правильный: грамотно выдавать права. Так, чтобы злоумышленник, после бессонных ночей вытащивший логин-пароль, не смог бы сделать ничего, чего он не может сделать в интерфейсе программы без ковыряний со снифферами и дизассемблерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2015, 13:11 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ZeroMQСниффер ничего не перехватит, то есть. Отличная новость, спасибо! Тут уже проблема с архитектурой базы. Поле ID оператора как минимум должно быть внешним ключом и not null. Тогда при всем желании его не оставить незаполненным. Другой вопрос можно ли писать туда первое попавшееся значение ID. Это можно на уровне триггеров проверять. База должна в себе содержать всю бизнес логику. Нет гарантии что кто-то случайно или специально пришлет "delete from Table". Например прога сглючит и не допишет "where ..." Это не поможет в нашем случае. Запись может редактироваться больше 1-го раза, и ID оператора в этом случае уже не пусто, оно и останется тем же, а запись будет поправлена... я думал, это и была цель ТС. неа. Мы очень хотим продолжать сотрудничество с операторами, и с этими в том числе, но мы совсем не хотим, чтобы какие-то изменения в базе происходили в обход логики, которая зашита в программу. От этого много чего зависит... А как они зашли на сервер? Они действительно рылись в exe-файле, или есть какой-то известный всем логин с паролем? Рассказываю. Мы вчера это выяснили. Любая или почти любая программа написанная на с# (и наша не исключение) легко и непринужденно декомпилируется бесплатно распространяемой JetBrains dotPeek. Нажимаем кнопку и видим исходник с паролем в чистом виде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 22:11 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoМы вчера это выяснили. Любая или почти любая программа написанная на с# (и наша не исключение) легко и непринужденно декомпилируется бесплатно распространяемой JetBrains dotPeek Если не секрет, сколько лет вы работаете с .NET? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2015, 23:35 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoМы очень хотим продолжать сотрудничество с операторами, и с этими в том числе, но мы совсем не хотим, чтобы какие-то изменения в базе происходили в обход логики, которая зашита в программу. От этого много чего зависит... Тогда надо дать операторам удобный инструмент. Не от хорошей жизни они вашу прогу поломали. Как понимаю оператор сделал какую-то автоматизацию своей работы и т.к. прога не дала ни каких возможностей эту автоматизацию применить - пришлось избавится от проги. ИМХУ тут надо не пароль глубже прятать, а выяснить реальные потребности оператора и доработать прогу под эти потребности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 07:42 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
bazileЕсли не секрет, сколько лет вы работаете с .NET? Да не секрет - лично я вообще не работаю. Программы на C# писал начинающий программист-студент, который работал у нас полгода, сейчас их поддерживает системный администратор. bazileТогда надо дать операторам удобный инструмент. Не от хорошей жизни они вашу прогу поломали. Как понимаю оператор сделал какую-то автоматизацию своей работы и т.к. прога не дала ни каких возможностей эту автоматизацию применить - пришлось избавится от проги. ИМХУ тут надо не пароль глубже прятать, а выяснить реальные потребности оператора и доработать прогу под эти потребности. Удобство работы с операторами обсуждается. Имея пароль, можно не только свою работу делать, а много чего другого. В частности, если догадаться как, можно повлиять на расчет своей зарплаты (она сдельная). Конечно, мы это выясним достаточно быстро, но вот зачем нам лишняя работа и лишние проблемы? Наверно все-таки лучше повысить безопасность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 11:24 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
ConejoИмея пароль, можно не только свою работу делать, а много чего другого. Значит, пару лет назад надо было уволить архитектора (если он был) либо нанять архитектора (если его не было). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 12:20 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
softwarerConejoИмея пароль, можно не только свою работу делать, а много чего другого. Значит, пару лет назад надо было уволить архитектора (если он был) либо нанять архитектора (если его не было).о чём вы вообще... ConejoПрограммы на C# писал начинающий программист-студент, который работал у нас полгода, сейчас их поддерживает системный администратор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 13:22 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
tanglirо чём вы вообще... ConejoПрограммы на C# писал начинающий программист-студент, Этому студенту кто-то ставил задачу, ревьюил код и принимал работу. Вот ему и надо.... привести служебное положение в соответствие квалификации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 13:46 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
Conejo1) Как достать логин/пароль? Если это может помочь, доп. информация - у злоумышленника есть обновляемый excel файл со строкой подключения в чистом виде, но с учеткой попроще, т.е. он изначально знает все параметры подключения, кроме админской учетки. Анализ кода и отладка в том или ином виде. Конкретный приемы можно поискать в поисковиках. ("Взлом <технология>") 2) Можно ли как-то этому противостоять? (с точки зрения разработчика. У него конечно есть исходник) [/quot] 1) Сделать взлом более сложным с помощью различных приемов (обфускация, динамическая генерация кода, приёмы защиты от отладки) 2) Сделать взлом принципиально невозможным - просто перенести на свой сервер бизнес логику и предоставлять услугу по предоставлению софта 3) Сделать взлом нерентабельным - дать людям то, что они хотят дешевле (в долгосрочной перспективе) чем взлом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 14:37 |
|
||
|
Достать из .exe логин/пароль к базе
|
|||
|---|---|---|---|
|
#18+
softwarertanglirо чём вы вообще... пропущено... Этому студенту кто-то ставил задачу, ревьюил код и принимал работу. Вот ему и надо.... привести служебное положение в соответствие квалификации. Злые вы))) На данный момент - закрыли программу обфускатором, нарушителю выделили отдельную учетку с усиленным контролем. Надеюсь, пока хватит... Всем спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2015, 15:42 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1340864]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 483ms |

| 0 / 0 |
