Mainframe Unbreakable

Niky
Уже с Приветом
Posts: 550
Joined: 31 Mar 2000 10:01
Location: Moscow --> Baltimore, MD

Post by Niky »

Кстати, по поводу вирусов на mainframe: CHRISTMA EXEC.
zVlad
Уже с Приветом
Posts: 15409
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: 15409
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 операционки...”
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Michael, another e-mail:

"Lately there has been an increase in Internet-based viruses, primarily those sent via e-mail with file attachments or links to external Web sites. Some notable viruses are "SoBig" and "W32/Dumaru."

To help reduce the risk of these viruses infecting our systems, please exercise caution when reading e-mail with file attachments or links to Internet Web sites."

Not only attachments, right? Please, comment.
Michael Popov
Уже с Приветом
Posts: 991
Joined: 09 Sep 2001 09:01
Location: The Earth

Post by Michael Popov »

1. Ваши администраторы перестраховываются глупым образом. Фраза "please exercise caution" не несет никакой полезной смысловой нагрузки.

2. Я слышал о вирусах, которые запускали скрипты внутри mail client и что-то там вытворяли. Сам с ними не сталкивался, как впрочем и со всеми остальными (тьфу-тьфу-тьфу). При правильно сконфигурированной системе эти гадости происходить не должны. Кроме того, если network administrators не ленивые и хозяева не жадные, то существуют анти-вирусные системы, которые "выкусывают" вирусы на mail servers. В нашей фирме администраторы жалуются, что в основном вирусы приходят вместе с лаптопами, которые включают в корпоративную сеть, или от подключающихся VPN users.
Best regards,

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

Post by VYLE »

zVlad wrote: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



О да! modeset aka svc 107. Помню, помню..Написал я как-то программульку с этой svc у нутре, составил JCL чтобы в авторизованную библиотечку модуль положить. Запускаю..
Звонок от девочки-оператора - "Ваша задание чего-то спрашивает на консоли- что ответить?" "Yes, говорю, в смысле U". :wink:
Я не настолько богат, чтобы пить дешевую водку.
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

zVlad wrote:недавно пытался сам разобраться, один парень лавал ссылку на добротный документ по архитектуре Интел процессора. Крупный документ, много времени надо чтобы во всем разобраться - а мне это надо?

Вот некрупный документ на 17 страниц. Вполне официально и доходчиво об архитектуре i386 (которой, между прочим, уже 20 лет): Overview of the Protected Mode Operations of the Intel Architechrure.

Кстати, Tengiz, а MIcroSoft использует ИБМ мэйнфрэйм? Я слышал что использует. Так ли это?

Насколько я знаю, лет несколько назад для внутренней бухгалтерии использовался парк AS/400 на которых работала какая-то правильная бухгалтерская система, адекватная по возможностям для компании размера MS (30.000+ сотрудников в 1998 году). Но ситуация с тех пор изменилась (например, MS SQL Server стал одной из основных платформ для SAP, пригодных практически для бизнесов любых размеров), других подробностей не знаю.
Cheers
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Michael, спасибо за разъяснения. Я далек от тех дел, но знаю что хозяева вроде не жадные и системных администраторов по крайне мере много, хоть один то должен быть нормальный. И что еще интересно за последнии 2 недели нас как минимум три раза "моль чикала". Каждый раз я смотрел новости и не находил, что это были "world wide" вирусы.

Я обещал ссылку. Вот одна:

http://www-1.ibm.com/servers/eserver/zseries/

и другая:

http://www-1.ibm.com/servers/eserver/zseries/library/

Особо рекомендую обратить внимание на ReadBooks - это то что пишут опытные пользователи (может я ошибаюсь?)

Честно говоря я думал найти что-нибудь на несколько страниц, но боюсь у меня нет времени. А может такого и нет вовсе. В любом случае - насладитесь, мэйнфрэйм - это весьма значимая веха в компьютерной индустрии. Насколько я знаю, самая древняя из ныне здравствующих и переживающая ренесанс, но незаслуженно преданная забвению в определенных кругах компьютерщиков. С моей стороны любая поддержка гарантирована. Нужно странслировать С программу на мэйнфрэйм - спрашивай. Сделаю, хоть Jav-у.
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

VYLE wrote: "О да! modeset aka svc 107. Помню, помню..Написал я как-то программульку с этой svc у нутре, составил JCL чтобы в авторизованную библиотечку модуль положить. Запускаю..
Звонок от девочки-оператора - "Ваша задание чего-то спрашивает на консоли- что ответить?" "Yes, говорю, в смысле U""

Да, VYLE, давно это было. Я думаю, если спроецировать на ИБМ линию (не на ОС ЕС MVT) так это будет конец 60-х начало 70-х. Тогда это была пакетная система и не о каком злом умысле извне "лапоть не звенел", потому что "извне" не существовало. И это (SVC 107) имеется сейчас, но добраться к этому можно только через security guy. И его первый вопрос будет: " Где парашют закопал, гад?"
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Tengiz, большое спасибо за сылочку. 17 страниц я смогу прочитать не один раз, и тогда перестану подставляться.

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

Post by Dmitry67 »

zVlad wrote: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.


Вот что непонятно. В MS SQL server такие операции тоэе требуют специальной Permiison. У того пользователя кто выполняет эти команды SQL. Но не у процесса !!! При чем тут процесс ???

Попытаемся догадаться. Дело наверняка в том, что REORG INDEX делает не сам сервер, а сама утилита, которая открывает файл и начинает там рыться на уровне блоков. И делает она это мимо сервера базы

Из этого следует что
1. В DB2 нет online index reorg.
2. Эти утилиты нельзя запустить с другой машины по сети.
Я прав ?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67, в то время как с точки зрения программиста все реляционные базы практически одинаковы (благодаря SQL), администрирование же баз может сильно отличаться. Ты это знаешь не хуже меня. И это потому что разные системы, разные машины, наконец разные подходы и внутреняя организация.

Отвечу на вопросы:

Утилиты - это не комманды SQL, это специальные служебные программы, которые могут и напрямую "лазать" в базу данных, это так называемые standalone utility. Они запускаются когда RDBMS не активна. Online utility работают когда RDBMS активна. Те что перечислил - онлайн утилиты. Утилиты всегда выполняются в той же системе где находится БД, но в разных адресных пространствах.
Они могут запускаться и удаленно, т.е. с другой машины по сети. Для этого имеется специальная хранимая процедура, но как я уже писал эта утилита требует наличия Work Load Manager-a.
WLM - недавнее изобретение ИБМ. Эта штука, в отличии от традиционного планирования по приоритетов, может обеспечивать достижения неких целей (goal mode), требуемых разными процессами (например процент CPU, или время ответа, или ... я не знаю что). WLM сам разберется кому и когда и какой приоритет назначить. Т.е. в конечном счете он конечно через приоритеты управляет, но он их постоянно потстраивает, чтобы ь заданым цели были достигнуты.
У нас к сожалению в системе этого парня нет. Руководство просто рассуждает, типа нам ведь и так неплохо живется, а чтобы его внедрить это ж надо столько согласований и тестирования пройти. Короче закостенели. Интересно было бы узнать, а у Windows Unix есть что-нибудь подобное?

Вернемся к утилитам DB2. Утилиты общаются с менеджером базы посредством их внутреннего интерфэйса. Я никогда не встречал описания этого интерфейса, но думаю что при желании его можно добыть, потому что до недавних пор утилиты написанные не ИБМ считались лучше. Но ИБМ посмотрел как third-party гребут деньги (анализ показывает, что цены тех кто пишит для DB2 много выше чем ИБМ-овские) и улучшил свои утилиты так, что нужды в других просто не стало. Может только по привычке кто-то пользуется, скажем Platinum. Не знаю. К слову, ИБМ утилиты идут бесплатно, но недавно ИБМ анонсировало Utility-suite за деньги, но я его не смотрел еще. Просто по тому, что руководство денег тратить не хочет. Маразм.

Да, поскольку утилиты используют некий внутренний интерфейс, поэтому в системе им требуютя спец. права. И система строго следит за программами, которые вызывают утилиты. Ведь эти программы могут воспользоваться полномочиями утилиты. У того кто запускает утилиты тоже должны быть определенные полномочия. Причем эти полномочия могут быть гранулированы и по утилитам и по объектам базы. Например, можно сказать пусть этот парень будет иметь право выполнять утилиту LOAD для таблицы T1. Кстати парень мог иметь право INSERT на туже таблицу, но не иметь право LOAD. Я ответил на твой вопрос Dmitry67?

Другой вопрос: "1. В DB2 нет online index reorg. ". Требуется уточнить что такое онлайн. В принципе все утилиты о которых я намекал - онлайн, в том смысле, что они выполняются одновременно с манагером. Но кроме того, в DB2, утилиты (большинство) имеют три SHARELEVELs:

1. NONE - утилита требует нераздельного доступа к ресурсу. Т.е. она будет ждать пока все кто использует ресурс уйдут (при этом новых пускать перестанут, этот процесс называется drain) и затем наложит замок (специальный, утилитный) на время своей работы. Если в процессе работы утилиты кто-нибудь к ресурсу обратиться, то он не будет становиться в очередь, а будет сразу выпихнут с соответствующим SQLCODE.
2. REFERENCE - кратко этот уровень позволяет доступ к ресурсу по чтению пока утилита делает свое дело.
3. CHANGE - вот этот уровень у нас называется также online. Этот уровень позволяет чтение-запись в процессе, например, REORG INDEX or REORG TABLESPACE. Мы этим штуку пользуемся широко, так как наша система 24Х7 (кроме полночи в пятницу, когда DB2 по графику перезапускается. Т.е. останавливается, делается независимый backup каталога DB2 и DB2 снова запускается. На это уходит 10-15 минут. Это не обязательно, но так повелось с давних пор) REORG c SHARELEVEL CHANGE - моя любовь. Тут недавно Michael Popov прикалывался надо мной ставя в пример Unix DBA-ев, которые пишут скрипты для автоматизации своей работы. Так вот у меня есть один (из многих) скрипт (объемом примерно 4000 строк на REXX), которому мы днем готовим список табличных пространств и/или индексных пространст, которые нам надо бы реорганизовать по каким либо причинам (можно дописать тот скрипт и он сам будет этот список готовить, но что тогда нам то делать?). И этот скрипт, в 2 часа ночи, расчитывает (на основании накапливаемой другим скриптом статистики) новые space параметры для реорганизуемого пространства, меняет эти параметры в каталоге и стартует утилиту REORG. Контролирует как утилита завершилась (вот тут то я и хотел получить более тесную связь с утилитой, но защита MVS меня не пустила, но и так проблема была решена), если утилита завершилась нормально делает пометку в некой таблице, если утилита завершилась аварийно делает некий cleanup. Причем скрипт запускает утилиты в несколько потоков одновременно. Короче можно долго рассказывает о том что этот скрипт делает. Думаю это могло бы быть интересно для тех кто администрит DB2 в MVS. Это скрипт уже несколько лет работает и я в него постоянно что-нибудь новое добавляю. Ну думаю и на этот вопрос я тоже ответил. Если есть еще вопросы по DB2 - c удовольствием отвечу. А вообще есть по DB2 изумительная (на мой взгляд) документация здесь:

http://www-3.ibm.com/software/data/pubs/

, доступная без каких-либо регистраций и бесплатно. Особенно меня впечатляет список так называемых ReadBooks. Вот список Top15 (most popular, а весь список содержит 402 названия):

1. Database Performance Tuning on AIX
2. Who Knew You Could Do That with RPG IV? A Sorcerer's Guide to System Access and More
3. LDAP Implementation Cookbook
4. Up and Running with DB2 for Linux
5. Using LDAP for Directory Integration: A Look at IBM SecureWay Directory, Active Directory, and Domino
6. Cross-Platform DB2 Stored Procedures: Building and Debugging
7. DB2 UDB Evaluation Guide for Linux and Windows
8. Servlet and JSP Programming with IBM WebSphere Studio and VisualAge for Java
9. DB2 UDB Exploitation of the Windows Environment
10. DB2 UDB for z/OS Version 8 Technical Preview
11. DB2 UDB/WebSphere Performance Tuning Guide
12. DB2 Java Stored Procedures Learning by Example
13. Fibre Array Storage Technology A FAStT Introduction
14. VSAM Demystified
15. Getting Started on Integrating Your Informati
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

zVlad wrote:1
Утилиты - это не комманды SQL, это специальные служебные программы, которые могут и напрямую "лазать" в базу данных, это так называемые standalone utility. Они запускаются когда RDBMS не активна. Online utility работают когда RDBMS активна. Те что перечислил - онлайн утилиты.

2
Утилиты всегда выполняются в той же системе где находится БД, но в разных адресных пространствах.
Они могут запускаться и удаленно, т.е. с другой машины по сети. Для этого имеется специальная хранимая процедура, но как я уже писал эта утилита требует наличия Work Load Manager-a.

3.1 Да, поскольку утилиты используют некий внутренний интерфейс, поэтому в системе им требуютя спец. права.
3.2 И система строго следит за программами, которые вызывают утилиты.
3.3 Ведь эти программы могут воспользоваться полномочиями утилиты.
3.4 У того кто запускает утилиты тоже должны быть определенные полномочия. Причем эти полномочия могут быть гранулированы и по утилитам и по объектам базы. Например, можно сказать пусть этот парень будет иметь право выполнять утилиту LOAD для таблицы T1. Кстати парень мог иметь право INSERT на туже таблицу, но не иметь право LOAD. Я ответил на твой вопрос Dmitry67?



1 ok, то есть ниже мы говорим об online utilities
2 не понял почему их нельзя запустить без WLM. Ну допустим WLM классная приблуда, но что мешает им посылать команду серверу DB2 сделать ONLINE REORG такого то индекса ?
3.1 Безусловно
3.2+3.3 Почему ? Как это связано ?
Допустим у меня есть супер пупер полномочия на команду SQL "ALTER INDEX name СДЕЛАТЬ_ФИГНЮ" (пример абстрактный)
Permission на эту команду SQL есть только у пользователя A,B и C
Если я залогинился в систему как A (или установил комменцию с сервером DB как пользователь A) то я могу выполнить эту команду
То есть если я пользователь A, то я могу сделать это набрав этот оператор в некоей графической утилите, в COnsole Apllication на манер sql*plus, или законнектившись по ODBC как user A к серверу из тупой программы на VB
3.2 я совсем не понял. Почему надо следать ЗА ПРОГРАММАМИ ?
Если DB2 видит что команда которая делается выполняется пользователем у которого нет прав - то отсылает его нафиг

Похоже в IBM с DB2 ответственность за проверку полномочий на некоторые довольно стандартные операции базы (которые Вы изволили назвать "опасными" - что есть негативный опыт ? :) ) ложится на операционную систему. Совершенно непонятно почему.

А вот такой вопрос. Как выглядит работа сервера DB2 с точки зрения OS ?
Для справки MS SQL server с точки зрения OS - просто процесс (правда с кучей threads), и tengiz клялся и божился то он не использует ничего, что недоступно другим процессам писанным не Microsoft

То есть с точки зрения NT ms sql - просто процесс sqlserv.exe, который чтото там активно делает с файлами, и много что шлет и принимает по сетке. Вся работа сервера происходит в пользовательском режиме процессора. В время работы sql server процессор часто бывает в привилегированном режиме но только когда sql server просит систему что то сделать. В принципе поэтому никаокй крах sql server не должен привести к краху NT.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014

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