30.09.2015 08:52
FinSoft
 
Предположим, что есть без программа и вся база данных для локального использования. Пароль суперпользователя известен или, для простоты, не задан. А при входе программа говорит "облом" (данные испорчены).

Вот табличка с тремя приходными ордерами:
https://storage.olegon.ru/supermag/F...ocKassa.tps.7z

Через неделю назовете сумму второго ордера, с меня ящик водки.
30.09.2015 11:07
baggio
 
1. пароль к файлам храниться в бинарнике... и используется при открытии БД т.е. самого файла БД не достаточно.
2. К сожалению ящика водки не достаточно лично для меня для решения подобной задачи... но я вас уверяю она решаема...
30.09.2015 11:11
OlegON
 
Учитывая, что непосредственно заинтересованный во взломе будет куда более мотивирован и подготовлен, предлагаю поподробнее обозначить, что это за база и как ее шифровали (только общедоступные сведения). Тогда да, можно будет произвести тест на взлом. Я буду рефери, в случае обнаружения уязвимости тему скроем, ну, а уж ящик победителю придется отдать.
30.09.2015 12:13
FinSoft
 
Да, пароль (ключ шифрования) к таблице хранится в отдельном бинарном файле (ключевой файл, тоже зашифрованный, но стандартным ключем). Пароль не один, на разные наборы таблиц могут быть разные. Соответственно, несколько ключевых файлов. Ключевые файлы могут располагаться в любом месте сети и нужны только при входе в программу, потом могут быть физически изъяты. Где лежат ключевые файлы, указано в неком стандартном файле, тоже шифрованном стандартным ключем.
Прямой доступ к списку файлов базы данных при необходимости закрываем средствами ОС. Внутри стандартного каталога может быть создан секретный подкаталог, чтобы исключить прямой доступ к файлу из левой программы. Программа обычно крутится на терминальном сервере (кроме однопользовательского варианта, разумеется).

База данных топспидовская. Организация древовидная, записи переменной длины. Индексы хранятся в том-же файле, что и данные.
В файле имеется описание структуры. Поэтому, зная ключ шифрования, можно воспользоваться стандартной утилитой topscan для просмотра и изменения данных. (Небольшое отступление. В базах первасива, с которыми тоже может работать КупецЪ, структура таблицы в физическом файле не хранится, поэтому там нет стандартных утилит для прямой работы с файлами. Первасив сейчас клиентам не ставим по причине его платности, но технически без проблем...)

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

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

В боевых условиях ломануть защиту базы данных, думаю, реально только через трассировку работы программы дебагером, но кто-же на сервак с левым софтом пустит...
30.09.2015 12:17
OlegON
 
На сервак с левым софтом не пустят? Еще как! :) Меня тут уговаривают уже не первый год, что если очень все дорого вокруг, то можно и нужно забивать сервер дерьмом, пока не захлебнется.
30.09.2015 12:29
FinSoft
 
На сервак, где оракловская база супермага стоит? Случаи слабоумия пользователей предлагаю не рассматривать
30.09.2015 12:39
baggio
 
50% уязвимости любого софта - человеческий фактор...
30.09.2015 12:47
FinSoft
 
Цитата:
baggio 1. пароль к файлам храниться в бинарнике... и используется при открытии БД т.е. самого файла БД не достаточно.
2. К сожалению ящика водки не достаточно лично для меня для решения подобной задачи... но я вас уверяю она решаема...
В теории, все, что сделано одними людьми, может быть взломано другими. Критерий хорошей защищенности - это когда затраты на взлом превосходят ценность того, что взламывают.
Честно говоря, даже я не знаю, как можно со стороны получить доступ к данным из топспидовской таблицы, не зная ее структуру и ключ шифрации.
Если бы на меня, как на разработчика, наехал бы какой-нибудь отдел К, то пришлось бы написать небольшую программу для подбора ключей, так как я знаю структуру таблиц, но не знаю значений ключей, которые пользователь может изменять индивидуально. И запустить процесс на долгое время. Потребность в результате практически со 100% долей вероятности отпадет гораздо раньше, чем этот самый результат будет получен...
30.09.2015 12:58
FinSoft
 
Цитата:
baggio 50% уязвимости любого софта - человеческий фактор...
Скорее больше. Но в рассматриваемом случае это не просто подсмотреть пароль суперпользователя. Кроме этого надо утащить ключевые файлы или под дебагером подсмотреть момент их получения в программе. Для обычного пользователя это нереально сделать. Должна быть весьма приличная квалификация и недостаточное внимание к защите со стороны руководства.
30.09.2015 14:07
student
 
Цитата:
FinSoft База данных топспидовская. Организация древовидная, записи переменной длины. Индексы хранятся в том-же файле, что и данные.
для клариона и не шифрованные данные достать без самого клариона всегда было проблематично
зачем еще и шифровать то - внешних драйверов практически не найти или они стоят как чугунный мост

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

пы сы
кому интересно поковыряться - в аттаче файлик с "О С Н О В Н О Й T P S - Ф А Й Л - ФИЗИЧЕСКАЯ ОРГАНИЗАЦИЯ"

там расписано что и по каким смещениям находится - в свое время (очень давно) была задача по конвертации, правда шифрования там не было - решил в лоб - установкой клариона и перегонкой в дбф с последующей обработкой
Вложения
Тип файла: rar файл tps.rar (8.6 Кб, 137 просмотров)
Часовой пояс GMT +3, время: 22:22.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.