05.11.2014 Views

ЛУЧШИХ ВИРУСОВ - Xakep Online

ЛУЧШИХ ВИРУСОВ - Xakep Online

ЛУЧШИХ ВИРУСОВ - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

pc_zone<br />

info<br />

• Не забывай о<br />

самых простых истинах<br />

традиционной<br />

криптографии:<br />

• Чем более накручен<br />

алгоритм шифрования,<br />

тем больше<br />

ресурсов процессора<br />

он будет кушать;<br />

• Ассиметричная<br />

криптография<br />

обеспечивает более<br />

надежную защиту,<br />

чем симметричная<br />

(даже с ключами<br />

одинаковой длины),<br />

но ее исполнение в<br />

базах может ощутимо<br />

замедлить весь процесс<br />

работы;<br />

Вместо кода процедуры — сплошные знаки вопроса. Взломщик в обломе<br />

• Действия по<br />

шифрованию базы<br />

напрямую связаны<br />

с модификацией<br />

обращений клиента.<br />

Увы, возможность<br />

«прозрачного»<br />

шифрования базы на<br />

сегодняшний день<br />

существует только в<br />

MSSQL 2008 (в версии<br />

Enterprise). Эта<br />

функция именуется<br />

там TDE (Transparant<br />

Database Encryption).<br />

процедур или функций. Получается, что, получив к ним<br />

доступ и грамотно проанализировав их код, любой<br />

опытный хакер сможет преобразовать шифрованную<br />

белиберду в исходный текст. Конечно, добраться до<br />

кода процедур далеко не всегда реально, потому здесь<br />

всплывает вопрос об утечке программной начинки<br />

производства, а именно — логике ПО. Но именно по<br />

этой причине необходимо прибегать к шифрованию<br />

процедур и функций в базе. Одно из самых популярных<br />

и удачных средств для таких действий — это программа<br />

SQL Shield (www.sql-shield.com). После несложной<br />

установки приложения не забудь указывать дополнительный<br />

флаг /*sqlshield*/ с выражением «WITH<br />

ENCRYPTION» всякий раз, когда будешь создавать<br />

защищенную процедуру. Вот пример функции, которая<br />

исполняет простейший запрос к базе:<br />

CREATE PROCEDURE MyTest<br />

WITH /*sqlshield*/ ENCRYPTION<br />

AS<br />

SELECT 2+2<br />

Исполняем процедуру и получаем:<br />

MyTest<br />

> 4<br />

Проверим, в каком виде хранится процедура, с помощью<br />

специального средства для ковыряния в файлах базы.<br />

Подойдет SQL Server Syscomments Decryptor (www.<br />

geocities.com/d0mn4r/dSQLSRVD.html), который при<br />

отображении текста процедуры показывает одни лишь<br />

знаки вопроса. Все работает!<br />

Ïðèìåð èç ëè÷íîãî îïûòà<br />

Ñîòðóäíèêàìè îäíîé êîìïàíèè ïëàòåæíî-êàðòî÷íîãî ñåêòîðà âåëàñü áàçà äàííûõ äëÿ âûäà÷è çàðïëàò. Äëÿ ïðîñòîãî<br />

ïîíèìàíèÿ, — ïóñòü ýòî áóäåò ïðèìåðíî ñëåäóþùàÿ ñòðóêòóðà:<br />

warning<br />

Использование<br />

функций шифрования<br />

SQL Server<br />

совместно<br />

с параметром<br />

ANSI_PADDING<br />

OFF может привести<br />

к потере данных<br />

из-за неявных<br />

преобразований!<br />

034<br />

ID LastName FirstName Emp Sum<br />

354 Somov Oleg IT-Manager M0x8900f56543<br />

643 Antipova Alexandra Director 4343Lax#dsdsss<br />

411 Timurov Valeriy Technical Dep. 0x2322322222<br />

Âûáîðêó èç áàçû ÿ ïðèâåë àáñîëþòíî ïðîèçâîëüíóþ, à òåïåðü ñóòü èäåè. «Áåçîïàñíèêàìè» êîìïàíèè áûëî ïðèíÿòî<br />

âïîëíå áëàãîðîäíîå ðåøåíèå — øèôðîâàòü äàííûå î çàðïëàòàõ, êîòîðûå î÷åíü ÷àñòî áûâàþò «ñåðûìè». Èíñàéäåð<br />

ïîëó÷èë äîñòóï ê áàçå è ñèëüíî îáëîìàëñÿ, çàèìåâ èíôîðìàöèþ â òàêîì âèäå. Îäíàêî, îí íå îò÷àÿëñÿ è ïðîäåëàë<br />

ñëåäóþùèé ôîêóñ. Ðåçîííî ïðåäïîëîæèâ, ÷òî ÷åëîâåê ñ äîëæíîñòüþ äèðåêòîðà äîëæåí ïîëó÷àòü áîëüøå, ÷åì ïðîñòîé<br />

ìåíåäæåð, îí ïîìåíÿë ñîîòâåòñòâóþùèå ïîëÿ ñî çíà÷åíèÿìè çàðïëàò îäíî íà äðóãîå, òåì ñàìûì — ïîäëîæèâ áóõãàëòåðñêîìó<br />

îòäåëó àáñîëþòíî ëåâóþ èíôîðìàöèþ.  áëàãîïîëó÷íûé äåíü òàêàÿ âåùü ïðîêàòèëà, è âñå áåçîïàñíèêè<br />

áûëè óâîëåíû. Äëÿ ñïðàâêè: ýòèì ñîòðóäíèêîì áûë íå ÿ, êàê âïðî÷åì, è íå áåçîïàñíèêîì.<br />

XÀÊÅÐ 04 /124/ 09

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!