Mainframe Unbreakable

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

Post by Dmitry67 »

1. Разумеется нормальная защита памяти появилась не в Win 3.1, а в NT
2. В любой системе есть проблема. Когда непривилегированный процесс должен сделать что то привилегированное, то обычно это делается так: обычный процесс просит некий привилегированный сделать чтото для него. Вот тут и могу быть дыры
3. Я работал на VAX/VMS. Тоже все работало как часы. Все одного производителя - железо софт. Все иделаьно совместимо

А теперь представьте - у вас на mainframe утсановлено 100 ращных программ 100 фирм, драйвера 10 разных фирм, все это новое и немного сырое... Все старые системы были надежны в том числе и изза крайней простоты. Ну как почта могла быть проблемой на VAX, когда это был просто пассивный текст ?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
Eugene Solovey
Уже с Приветом
Posts: 208
Joined: 23 Nov 2002 21:07

Post by Eugene Solovey »

А что мы уже забыли как начиналось современное вирусописательство?
Напоминаю: http://www.wbglinks.net/pages/reads/mis ... sworm.html

Это не совсем про mainframe, но "огнеупорный" SUN да 100% надежный VAX там присутствуют. Были и прото-вирусы для mainfraim-a, сетей только небыло тогда....
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

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

Кстати, Tengiz, а MIcroSoft использует ИБМ мэйнфрэйм? Я слышал что использует. Так ли это?
Last edited by zVlad on 29 Aug 2003 12:08, edited 1 time in total.
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67, ну добавь несколько фраз к "2. В любой системе есть проблема. Когда непривилегированный процесс должен сделать что то привилегированное, то обычно это делается так: обычный процесс просит некий привилегированный сделать чтото для него. Вот тут и могу быть дыры "
Происходит это чисто программно, или аппаратно? А что если процесс решает сам выполнить привилигированную операцию? Пример дыры?
VYLE
Уже с Приветом
Posts: 1772
Joined: 06 Sep 2001 09:01
Location: Boston, MA -> Charlotte,NC ->Danbury,CT

Post by VYLE »

zVlad wrote:Michael wrote:

"VYLE писал(а):
А вот тут засада - на mainframe стека нет!


А это как ?!"

Аппартного стека на мэйнфрэйм (ИБМ) нет, но программные стеки есть. Если например С имеет стек как элемент его архитектуры, то стек в понимании С конечно есть.



Во времена ЕС программный стек представлял из себя двусвязный список. Т.е. каждый фрейм мог лежать отдельно по произвольному адресу. Плюс в стеке хранились только регистры. Все локальные переменные распределялись из кучи. Техника stack overflow в таких условиях не применима. Возможно сейчас что-то и изменили в архитектуре, но не думаю, что радикально.
Я не настолько богат, чтобы пить дешевую водку.
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: 8249
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: 15312
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: 15312
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: 15312
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: 8249
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: 8249
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 делаю.
Niky
Уже с Приветом
Posts: 550
Joined: 31 Mar 2000 10:01
Location: Moscow --> Baltimore, MD

Post by Niky »

Кстати, по поводу вирусов на mainframe: CHRISTMA EXEC.
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

Thank you, Niky, for really excited article. I start to remember those times. 1987. Sixteen years ago. I was 32, and I installed VM/CMS for many companies in USSR. I can clearly imagine how that virus could be written. I am able to write those sort of viruses too. Nowadays, I am using REXX every day.

But, you know what. That virus had no ways to spread itself, without carrying e-mail system, and humans (homo sapience) who started it. You know, guys, on mainframe there are many people working at the same time under the same system, right?, besides it would be a good idea to implant virus into OS and then send itself using all NAMES, and NETLOG files from all VMs. Although, I wouldn’t surprise if those configurations had shared across whole system NAMES, and NETLOG files.

So, this example isn’t an example when virus breaks network from outside. This is an example when virus was launched within network.

Now, I realize why IBM say nothing about mailing systems while they exist on mainframe. By the way, our company was attacked by virus before lunch. All our connections to web were disabled. It was not mail virus powered by human, it was something different. Just got e-mail:

Computer Virus Alert
At 11:45 AM this morning, support staff identified that internet access was not available to all …. staff with the exception of …… users. Support staff determined that a recurrence of the earlier virus outbreak was the cause of the problem.
At 1:17 PM this afternoon, internet access was restored to ….. users. The machines causing the problem have been isolated from the core network and support staff are currently disinfecting the virus.
If you have questions please call the shift service manager at …….


2003 outside
User avatar
Amirko
Уже с Приветом
Posts: 5199
Joined: 08 Jul 2002 09:36
Location: В глухой провинции, у моря...

Post by Amirko »

zVlad wrote:Amirko wrote: "Unbreakable, говорите? Да я лично разобрал 2 мейнфрейма. "
Раскажите подробнее, пожалуйста.


А что подробнее? Ну ECки, 1045 и 1033, в Казани дело было, в 2-х шагах от того места где их собирали. Разобрали и продали. И купили 486-ю, одну:)
Cheers,
Amirko
Michael Popov
Уже с Приветом
Posts: 991
Joined: 09 Sep 2001 09:01
Location: The Earth

Post by Michael Popov »

zVlad wrote:At 1:17 PM this afternoon, internet access was restored to ….. users. The machines causing the problem have been isolated from the core network and support staff are currently disinfecting the virus.


zVlad wrote:So, this example isn’t an example when virus breaks network from outside. This is an example when virus was launched within network.

;)
Best regards,

Michael Popov
zVlad
Уже с Приветом
Posts: 15312
Joined: 30 Apr 2003 16:43

Post by zVlad »

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

Dmitry67 wrote: “Почему утилиты DB2 привилегированные
1. Чтобы абы кто не запустил ? А пароль ? ....
"

Michael, I tried one of many possible ways to do it. Correct way (in waht I wanted) would be using standard stored procedure to run utilities. But this way requests Work Load Manager (WLM) relatively new component of OS/390. Our system programmers and management “bzdyat” to use it. As a result I tried alternatives.
“DBAs работающие на Unix/NT рыдают и продолжают писать свои скрипты.” I have a lot of scripts. They are REXX procedures.Those scripts submit utilities via batch jobs, and do many other automated actions.

Dmitry67, DB2 utilities are special programs (supplied together with DB2) to perform special actions: CATMAINT (catalog maintenance), CHECK DATA, CHECK INDEX, CHECK LOB, COPY, DIAGNOSE (very nice utility), LOAD, MERGECOPY, MODIFY RECOVERY, QUIESCE, REBUILD INDEX, RECOVER, REORG INDEX, REORG TABLESPACE, REPAIR, REPORT (recovery), RUNSTATS, STOSPACE.
Everybody can start those utilities using authorized ways (see below) but you have to have authority in order to perfom utility function, for example:
----------------------------------------------------------------
Authorization required: To execute this utility (REORG) on a user index, the privilege set of the process must include one of the following:

REORG privilege for the database
DBADM or DBCTRL authority for the database
SYSCTRL authority
SYSADM authority.
------------------------------------------
But, because those utilities are using special system functions (you called them API), utilities are system protected in order to prevent taking over those system functions. Shortly saying, only authorized programs can call programs using system-dangerous functions (in this case DB2 utilities). This is another example of how MVS protected.

I cannot comment "etot bred":

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

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

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