SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Сканирование кода для проверки полномочий



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
dwm
Участник
Участник



Joined: 11 Nov 2012
Posts: 4

PostPosted: Mon Nov 12, 2012 12:52 pm    Post subject: Сканирование кода для проверки полномочий Reply with quote

Добрый день!
Пишу здесь впервые и надеюсь на небольшой совет от профессионалов. Сам я только начинаю свой профессональный путь в САПе как АБАП-разработчик, так что большими знаниями в этой области похвастаться не могу.

Суть вопроса следующая:
Написать программу, которая бы выполняла следующие задачи:

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

2) Проверка найденных программ на соответствие полномочиям, т.е. насколько та или иная программа соответствует требованиям по проверке полномочий. Т.к. у клиента много разработанных им самим Z- и Y- программ, нужно перед заменой релиза проверить, насколько они выполняют требования безопасности.

Первый пункт я с горем пополам осилил сам, необходимую статистику об активных за указанный срок программах я получаю.

Со вторым немного сложнее, т.к. знаний мало, а опыта еще меньше. Я не прошу писать за меня код, надеюсь осилить это сам. Был бы Вам очень благодарен за небольший течнический концепт, каким именно образом решить эту задачу.

Мои мысли до сегодняшнего дня:
1) Сканирование кода программы и поиск "критических" переменных, таких как VKORG, BUKRS, EKORG и т.д.
2) В случае нахождения таких переменных сканирование кода на наличие AUTHORITY-CHECK с соответствующими объектами полномочий.
3) Запомнить программу как невыполняющая требования , в случае если проверка полномочий отсутствует.


Я пока не совсем разобрался с концепцией полномочий в САПе. Насколько я понял, для таких критических переменных как VKORG существуют определенные объекты полномочий, которые можно использовать в AUTHORITY-CHECK OBJECT. Возможно, в этом месте все сложнее чем я думаю Smile

Выше написанные мысли пока ничего общего с течническим концептом не имеют, являются лишь моими представлениями как решить задачу. Если бы кто-то навел на конкретные решения, т.е. на способ технически эти мои мысли воплотить в АБАПе, был бы вам за это очень благодарен.

Заранее спасибо!
Back to top
View user's profile Send private message
XXX_:)
Аналитик
Аналитик


Age: 40
Joined: 01 Feb 2008
Posts: 387
Location: Воронеж

PostPosted: Mon Nov 12, 2012 3:05 pm    Post subject: Reply with quote

Могу проконсультировать только по HR программам, если такие имеются.
_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Back to top
View user's profile Send private message Blog
dwm
Участник
Участник



Joined: 11 Nov 2012
Posts: 4

PostPosted: Mon Nov 12, 2012 3:51 pm    Post subject: Reply with quote

Спасибо за ответ! А есть принципиальная разница, HR-программа или нет? Суть ведь в анализе кода, синтакс везде одинаковый. Или я неправ изначально в подходе?
Back to top
View user's profile Send private message
XXX_:)
Аналитик
Аналитик


Age: 40
Joined: 01 Feb 2008
Posts: 387
Location: Воронеж

PostPosted: Mon Nov 12, 2012 4:09 pm    Post subject: Reply with quote

В HR будет совсем другой подход, поэтому так и выделил. Боюсь там в 2 словах вообще не объяснить. Но если надо будет, то сделаю в личку и скажу что делать дальше.

А вообще задача нетривиальная достаточно. Я думаю, что вы ее качественно вообще не сможете сделать, но наверное от вас не этого хотят, а скорее, надо чем то занять, и чтобы не совсем бесполезным.

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем
Back to top
View user's profile Send private message Blog
dwm
Участник
Участник



Joined: 11 Nov 2012
Posts: 4

PostPosted: Mon Nov 12, 2012 4:21 pm    Post subject: Reply with quote

XXX_:) wrote:
В HR будет совсем другой подход, поэтому так и выделил. Боюсь там в 2 словах вообще не объяснить. Но если надо будет, то сделаю в личку и скажу что делать дальше.

А вообще задача нетривиальная достаточно. Я думаю, что вы ее качественно вообще не сможете сделать, но наверное от вас не этого хотят, а скорее, надо чем то занять, и чтобы не совсем бесполезным.


Ну, пока задача - сформулировать течническую концепцию решения. При программировании я смогу рассчитывать на поддержку. Хотя думаю, что справлюсь сам, параллельно разобравшись во многих темах Smile. Если у Вас будет время написать в личку несколько идей, буду Вам благодарен. Спс.
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Mon Nov 12, 2012 6:00 pm    Post subject: Reply with quote

2)Зачем изобретать велосипед - для проверки использования полномочий есть замечательная программа RSABAPSC.
_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
dwm
Участник
Участник



Joined: 11 Nov 2012
Posts: 4

PostPosted: Mon Nov 12, 2012 6:58 pm    Post subject: Reply with quote

Удав wrote:
2)Зачем изобретать велосипед - для проверки использования полномочий есть замечательная программа RSABAPSC.


Согласен, к этому еще добавить RPR_ABAP_SOURCE_SCAN. RSABAPSC ищет только АБАП-команды и, к тому же, не учитывает классы: если проверка полномочий вызывается в каком-то методе, то RSABAPSC это не найдет. RPR_ABAP_SOURCE_SCAN осуществляет поиск по символам, при этом заглядывает в includes, но не читает ФМ. С точки зрения программирования можно использовать что-то из этих обеих программ, чтобы велосипед не изобретать. Но зов помощи Smile касался именно методологической стороны задачи. А пока да, сижу как раз весь день над RSABAPSC, пытаюсь логику программы изучить. Пока знаний не хватает, откровенно говоря Smile
Back to top
View user's profile Send private message
Удав
Гуру
Гуру


Age: 48
Joined: 25 Jan 2008
Posts: 580
Location: Москва

PostPosted: Tue Nov 13, 2012 10:41 am    Post subject: Re: Сканирование кода для проверки полномочий Reply with quote

dwm wrote:
2) Проверка найденных программ на соответствие полномочиям, т.е. насколько та или иная программа соответствует требованиям по проверке полномочий. Т.к. у клиента много разработанных им самим Z- и Y- программ, нужно перед заменой релиза проверить, насколько они выполняют требования безопасности.
Мои мысли до сегодняшнего дня:
1) Сканирование кода программы и поиск "критических" переменных, таких как VKORG, BUKRS, EKORG и т.д.
2) В случае нахождения таких переменных сканирование кода на наличие AUTHORITY-CHECK с соответствующими объектами полномочий.
3) Запомнить программу как невыполняющая требования , в случае если проверка полномочий отсутствует.

Я пока не совсем разобрался с концепцией полномочий в САПе. Насколько я понял, для таких критических переменных как VKORG существуют определенные объекты полномочий, которые можно использовать в AUTHORITY-CHECK OBJECT. Возможно, в этом месте все сложнее чем я думаю Smile

Выше написанные мысли пока ничего общего с течническим концептом не имеют, являются лишь моими представлениями как решить задачу. Если бы кто-то навел на конкретные решения, т.е. на способ технически эти мои мысли воплотить в АБАПе, был бы вам за это очень благодарен.

Заранее спасибо!

На самом деле проблема намного сложнее и автоматизировать ее полностью практически нельзя.
Для осмысления ситуации необходимо знать следующие факты:
1. На проекте при изменении любого кода должно призводиться тестирование.
2. Автоматизировать тестирование не получится ввиду того, что логика обработки данных должна учитывать разные случаи, которые моделируются только вручную.

3. Поиск полномочий непосредственно в коде нужен, но он не будет:
-учитывать условия вызова проверки полномочий.
-учитывать отключение проверки полномочий в транзакции SU24
-учитывать проверку полномочий низкого уровня (реализуемую с помощью вызова низкоуровневых функций, например AUTHORITY_CHECK_TCODE)

Более эффективный анализ проверки полномочий - это запуск трассировки полномочий с момента начала выполнения программы.
Трассировка полномочий осуществляется с помощью транзакции ST01.

4."критичных" переменных не существует - все проверки полномочий должны быть заранее описаны в постановках задач.
Иначе формирование ролей для пользователей превратится в пытку как для бизнес-консультантов, так и для администраторов полномочий.

_________________
С уважением,
Удав.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.