Mainframe Unbreakable

VYLE
Уже с Приветом
Posts: 1772
Joined: 06 Sep 2001 09:01
Location: Boston, MA -> Charlotte,NC ->Danbury,CT

Post by VYLE »

zVlad wrote:Dmitry67, ну добавь несколько фраз к "2. В любой системе есть проблема. Когда непривилегированный процесс должен сделать что то привилегированное, то обычно это делается так: обычный процесс просит некий привилегированный сделать чтото для него. Вот тут и могу быть дыры "
Происходит это чисто программно, или аппаратно? А что если процесс решает сам выполнить привилигированную операцию? Пример дыры?


Дыра может быть в реализации обработки запросов привелигированным процессом. В OS 370 времен 80-х такие дырки были - это я знаю точно.
Я не настолько богат, чтобы пить дешевую водку.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

zVlad wrote:Dmitry67, ну добавь несколько фраз к "2. В любой системе есть проблема. Когда непривилегированный процесс должен сделать что то привилегированное, то обычно это делается так: обычный процесс просит некий привилегированный сделать чтото для него. Вот тут и могу быть дыры "
Происходит это чисто программно, или аппаратно? А что если процесс решает сам выполнить привилигированную операцию? Пример дыры?


Я ответил в соседнем топике
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
SVK
Уже с Приветом
Posts: 8255
Joined: 23 Jul 2003 03:53
Location: SPb - KW - NY - CT - MD

про стек

Post by SVK »

VYLE wrote:А вот тут засада - на mainframe стека нет!

Во времена ЕС программный стек представлял из себя двусвязный список. Т.е. каждый фрейм мог лежать отдельно по произвольному адресу. Плюс в стеке хранились только регистры. Все локальные переменные распределялись из кучи. Техника stack overflow в таких условиях не применима. Возможно сейчас что-то и изменили в архитектуре, но не думаю, что радикально.

Сколько я помню, почти при любой реализации стек находится в общей памяти (не могу вспомнить единственный обратный пример). Вся реализация заключается в том, что используются специальные аппаратные регистры и/или процессорные команды для автоматической коррекции этих регистров при входе/выходе в процедуры.

Как "во времена ЕС", так и "во времена IBM" программный стек (в общем смысле) мог представлять собой как двунаправленный список (по рекомендации и стандарту самой IBM), так и что угодно еще, в том числе и движение вверх-вниз в последовательной памяти (по классической реализации стека) - как и было сделано в некоторых реализациях C/C++ для IBM. И хранились в стеке любого вида совсем не только регистры (примеры с сохранением только регистров - это больше из книг категории "IBM for Dummies", правда в то время явной такой классификации и не было...). Хотя специальных "стековых" регистров в архитектуре IBM нет, но регистры общего назначения (GPR и EGPR) достаточно универсально могут реализовывать любой из подходов без потери эффективности.

А с точки зрения защиты от нападения вирусов и прочего - двунаправленный список для стека даже более надежен, поскольку фрагмент стека для отдельной процедуры выделяется независимым блоком виртуальной памяти, с аппаратной защитой примыкающих участков памяти от случайного или умышленного искажения.
Last edited by SVK on 29 Aug 2003 16:02, edited 1 time in total.
LG - Life's good.
But good life is much better.
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67 wrote: "Когда непривилегированный процесс должен сделать что то привилегированное, то обычно это делается так: обычный процесс просит некий привилегированный сделать чтото для него. Вот тут и могу быть дыры"

I told about CPU! (hardware) privilege command, not about OS privilage functions like "get something from external device"

"А теперь представьте - у вас на mainframe утсановлено 100 ращных программ 100 фирм, драйвера 10 разных фирм, все это новое и немного сырое... Все старые системы были надежны в том числе и изза крайней простоты. Ну как почта могла быть проблемой на VAX, когда это был просто пассивный текст ?"

If some vendor supplies "сырое software" then this software will be unstable with no any impact on others and OS as well. MVS can run 100 different program from 100 different vendors and still be stable. Wrong program will die from time to time, good program will work stable. This is because of hardware and software architecture.

There are no drivers in MVS but Access Method Programs for each type of devices, and they are always part of MVS. There is no vendors of device drivers for mainframe other than IBM.
Michael Popov
Уже с Приветом
Posts: 991
Joined: 09 Sep 2001 09:01
Location: The Earth

Post by Michael Popov »

zVlad, может Вы просто ссылки на ликбез сайты по mainframe дадите ? Мы почитаем, удивимся, вдохновимся.

А то разговор получается как в том анекдоте:
- Вы знаете, этот Паваротти фальшивит и картавит.
- Вы слушали Паваротти ?
- Да нет, мне его Рабинович напел.
Best regards,

Michael Popov
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

zVlad wrote:1
I told about CPU! (hardware) privilege command, not about OS privilage functions like "get something from external device"

2
If some vendor supplies "сырое software" then this software will be unstable with no any impact on others and OS as well. MVS can run 100 different program from 100 different vendors and still be stable. Wrong program will die from time to time, good program will work stable. This is because of hardware and software architecture.

There are no drivers in MVS but Access Method Programs for each type of devices, and they are always part of MVS.

3
There is no vendors of device drivers for mainframe other than IBM.


1 Я это понял
На защита на таком уровне есть давно и везде, начиная с 386. Некоторые ОС (Win - не NT) использовали это не до конца. Так что это как бы давно очевидно

2 Похоже на рекомендацию писать без ошибок :)
Впрочем, для mainframe давно ничего не пишут, вот и было время все отладить :)

3 В этом тоже большая часть ответа
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Michael, it is a good idea. I'll try to find links, and let you know latter. Now, I've preparate some test case. Two years ago, I tried to write some program to automate DB2 utilities. I wanted to call DB2 utilities from my program. First I found out that DB2 utilities is protected program, and in order to call them I need to have PSW key-mask = 7. OK, there is CPU command "SET PSW KEY FROM ADDRESS". Once again this is not system function this ia a direct CPU command.

Here is a part of my code (Assembler/390):
MODESET CSECT
USING *,R15
* SAVE (14,12),,ICH.WTO.
* LR R12,R15
* LR R2,R13
* LA R13,ICHSAVE
* ST R13,8(R2)
* ST R2,4(R13)
SPKA 112(0)
.........

And this is a result:
>>> "MODESET EXECParmField DDListCHGReport"
IRX0250E System abend code 0C2, reason code 00000002.
IRX0255E Abend in host command MODESET or address environment routine LINKMVS.

Open a book and read:

0C2 Privileged-operation exception. The reason code is 2.

OK, next there is a system function MODESET. This function can be used to change PSW key-mask, and long time ago people used to use this function when they wrote "clever" program and used undocumented system functions. Let try it:

20 MODESET KEY=ZERO,MODE=SUP
21+* MACDATE Y-3 81030
22+ CNOP 0,4
23+ BAL 1,*+8
24+ DC B'00000000000000000000000000111100'
25+ L 1,0(0,1)
26+ SVC 107 ----> this is a CPU command "Call Supervisor" 107 - function to change PSW key-mask

And this is a result:

>>> "MODESET EXECParmField DDListCHGReport"
IRX0250E System abend code 047, reason code 00000000.
IRX0255E Abend in host command MODESET or address environment routine LINKMVS.

Go to the book and read:

047
Explanation: An unauthorized program issued a restricted Supervisor Call (SVC) instruction: An authorized program:
runs in supervisor state
Holds PSW key 0-7
Resides in an APF-authorized library
System Action: The system writes a logrec data set error record.

In next few minutes our security guy will come in my desk and ask me: "What a hall are doing here, Vlad?". I'll tell him "I'm a DB2 DBA! Give me authorization to run my program as an authorized one." He will respond: "Fuck off, Vlad! You know you would be able to prove that your program is safe enough. And we never give your program APF authorization"
Michael Popov
Уже с Приветом
Posts: 991
Joined: 09 Sep 2001 09:01
Location: The Earth

Post by Michael Popov »

"Кошмарная, душераздирающая картина" Ослик Иа

Итак, бедный zVlad, который всего навсего хотел немножечко автоматизировать свои задачки, был послан на ... и остался у разбитого корыта. DBAs работающие на Unix/NT рыдают и продолжают писать свои скрипты.

СВОБОДУ ЮРИЮ ДЕТОЧКИНУ !!! :mrgreen:
Best regards,

Michael Popov
Michael Popov
Уже с Приветом
Posts: 991
Joined: 09 Sep 2001 09:01
Location: The Earth

Post by Michael Popov »

Да кстати, купил недавно дочке в подарок Nintendo GameBoy. Очень мощная платформа (кроме шуток) и никаких проблем с администрированием, безопасностью, вирусами и т.д.
Best regards,

Michael Popov
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

zVlad wrote:First I found out that DB2 utilities is protected program, and in order to call them I need to have PSW key-mask = 7.


Кстати а почему ?
В MS SQL Enterprise manager представляет собой ОБЫЧНУЮ программу. Если знаешь правильный пароль, то он позволит сделать очень многое (путем посылки команд). Однако чтобы сделать все это ему не недо быть привилегированным - ведь с точки зрения ОС sql server просто программа, которая делает чтото с файлами и общается по сети

Почему утилиты DB2 привилегированные
1. Чтобы абы кто не запустил ? А пароль ?
2. Интерфейс DB2 не открытый, поэтому чтобы чтото сделать с конфигурацией, неужно не просто команду SQL послать а лезть обходными недокументированными путями

При этом видно, что то, что эта утилита хочет сделать настолько левое и низкоуровневое, что ей не хватает даже API операционки...

Я бы задумался о дизайне
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67 worte:"Впрочем, для mainframe давно ничего не пишут, вот и было время все отладить"

Dmitry67, you wana kill me. Read here, please:

http://www-1.ibm.com/servers/eserver/zs ... ns/s390da/

In our shop we run ERP class application from ISV. Last year we moved to ver. 8 of that application. Now we are going to jump to ver. 9 and vendor is working on v. 10.
User avatar
SVK
Уже с Приветом
Posts: 8255
Joined: 23 Jul 2003 03:53
Location: SPb - KW - NY - CT - MD

Post by SVK »

Этот спор про платформы становится настолько же бесперспективным и бессмысленным, как регулярно ведущаяся в параллельных топиках борьба америкофилов с америкофобами. Там каждый заранее знает свое окончательное мнение, и поколебать его невозможно. К тому же упорство сторон в отстаивании своего мнения выглядит обратно пропорциональным знанию этой стороны о противоположном предмете спора. Да и цитаты Иа-Иа есть слабое доказательство, хотя это и развлекает...
LG - Life's good.
But good life is much better.
Michael Popov
Уже с Приветом
Posts: 991
Joined: 09 Sep 2001 09:01
Location: The Earth

Post by Michael Popov »

SVK wrote:Да и цитаты Иа-Иа есть слабое доказательство, хотя это и развлекает...

Так для этого цитата и писалась :)
SVK, неужели Вы приходите на форум для другой цели, чем развлечение ? Все это лишь entertainment с определенной спецификой. Мы просто развлекаем друг друга в меру наших возможностей.

Ой, или это я один такой ? :oops:

Изредка мы еще помогаем друг другу в решении конкретных проблемах. Выбор платформы таковой не является :)
Best regards,

Michael Popov
User avatar
SVK
Уже с Приветом
Posts: 8255
Joined: 23 Jul 2003 03:53
Location: SPb - KW - NY - CT - MD

Post by SVK »

Michael Popov wrote:Изредка мы еще помогаем друг другу в решении конкретных проблемах. Выбор платформы таковой не является :)


Да, уж.....

"Заходите к нам, на IBM..." :mrgreen: :mrgreen: :mrgreen:
LG - Life's good.
But good life is much better.
yocto
Уже с Приветом
Posts: 3640
Joined: 13 Sep 1999 09:01
Location: Canada

Post by yocto »

Да и какой ваще смысл в таких обсуждениях?
Я вот никогда в религиозных войнах тут не участвовал. Ну разве что, пофлудить за компанию ради взаимного развлечения.
По-моему, никакая вещь (включая программы и OS) не может быть 'абстрактно плохой' или 'абстрактно хорошей', если рассматривать её в отрыве от контекста, как то: сфера приложения, соответствие того, что написано в руководстве по эксплуатации личным впечатлениям пользователя (пусть и субъективным) и пр....
Полный список элементов контекста, как мне кажется, достаточно велик и не поместится в Интернете.

Но когда вы, Vlad, делает заявления типа "не может быть никогда", то, по моему разумению, вы что-то упускаете из виду или недоговариваете.
Надеюсь, Berkeley sockets то у вас там есть, а то щас придет АФигли и будет вас злобно покусать. :)

Да и вообще, разве OS является осознанным выбором программиста во всех случаях жизни?
Я вот, к примеру, до сих пор всякую фигню для Win 3.11 делаю.

Return to “Вопросы и новости IT”