Как искать коды ошибок и сообщения SAP?

Как искать коды ошибок и сообщения SAP?


Компании, внедрившие продукты компании SAP потратили большое количество ресурсов на клиентскую доработку решений. Однако не привносят ли эти разработки дополнительные риски в ваши бизнес-процессы? Компания SAP гарантирует качество кода в своих приложениях благодаря ручному аудиту поставляемого кода и использованию самых современных механизмов статистического и динамического анализа своих продуктов на различные уязвимости.

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

Программный код компании SAP проходит ручной и автоматизированный анализ, тысячи специальных тест-кейсов. Клиентский программный код зачастую не может быть так полно проанализирован, особенно в условиях сжатых сроков проектов, в которых приходится работать. Стоит задуматься о качестве клиентского кода в ваших системах.

Система SAP упрощает ведение бизнеса на системном уровне, а также проводит анализ и аналитику деятельности. Но если в программном коде Компании есть * ошибки SAP *, то они должны быть исправлены немедленно для правильной работы программы и, соответственно, бизнеса.

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

Рассмотрим ошибки, которые могут присутствовать в клиентском коде.

Инъекция кода

Оставленная возможность инъекции кода — одна из самых распространённых и самых опасных уязвимостей по классификации OWASP. Большинство широко известных уязвимостей, включая OpenSSL Heartbleed и взлом площадки Ebay связаны с непреднамеренно оставленной возможностью инъекции пользовательского ввода внутрь программы.

Опасность такого рода ошибок заключается в практически непредсказуемых результатах исполнения уязвимых программ. Результатом инъекции SQL кода может быть, как утечка паролей, так и полное удаление всех данных системы.

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

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

Обход каталога

Другой опасной ошибкой программного кода является непреднамеренно оставленная возможность подмены данных ввода, которая позволяет обход каталога.

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

Возможны достаточно специфические варианты использования этой ошибки. Например, вызов оператора OPEN DATASET dset FILTER iv_filter, открывающего файл на чтение, в системе Unix поставляет данные из считываемого файла в предопределённый процесс, который может осуществлять непредусмотренные действия на уровне операционной системы.

Таким образом, некорректная конфигурация ОС и уязвимый код, не имеющие ошибок по отдельности, могут приводить к критическим последствиям работая совместно.

Ошибки авторизации

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

К сожалению, на многих проектах, разграничение доступа происходит на уровне транзакций, что делает возможным комбинирование различных существующих полномочий с целью доступа к запрещённой информации. Например, использование оператора CALL TRANSACTION (который массово используется разработчиками) на проектах с разграничением доступа на уровне транзакций является небезопасным. Без указания WITH AUTHORITY-CHECK оператор CALL TRANSACTION позволяет переходить по любой другой транзакции.

Возможен также случай, когда проверка авторизации есть, но сделана она неправильно. Такие случаи также надо находить и исправлять.

Бэкдоры

До этого мы рассмотрели некоторые случаи уязвимостей, когда программисты совершили непреднамеренные ошибки, в результате чего код стал уязвимым. Однако, возможны также и случаи, когда программист намеренно изменяет ход исполнения программы для определённых пользователей («недокументированные возможности»), либо вообще не оставляет так называемый бэкдор, который позволяет обходить все проверки, выставленные системой.

Разработчик может делать бэкдор и без злонамеренных целей, как например получение полномочий SAP_ALL для более «эффективной» работы на проекте внедрения. Очевидно, что это не умаляет тех рисков, которые привносит наличие бэкдоров.

В сети существует большое количество примеров таких бэкдоров, которые могут быть просто скопированы и перенесены в продуктивную систему. Отловить наличие недокументированных возможностей и бэкдоров очень сложно, во-первых, из-за огромного количества клиентского кода, во-вторых из-за особенностей языка программирования SAP. ABAP позволяет исполнять код на лету и хранится в СУБД, то есть может быть запрятан очень и очень глубоко.

Как искать ошибки?

Существует несколько различных способов поиска уязвимостей в коде, наиболее совершенным из которых является статический анализ потока данных.

В SAP Netweaver AS присутствует модуль, реализующий анализ потока данных на наличие или отсутствие уязвимостей (Code Vulnerability Analysis). Есть сертифицированные партнёрские решения, позволяющие сканировать код приложений на наличие уязвимостей.

SAP Code Vulnerability Analysis (CVA) основан на инструменте Code Inspector, который уже много лет позволяет проверять клиентский код на наличие потенциально опасных конструкций, но в отличие от Code Inspector, использует в своей работе анализ потока данных. Наиболее целесообразным является использование CVA с первой же стадии проекта — сто стадии разработки (до переноса разработок далее по ландшафту), так как внесение исправлений позже (например, при продуктивной эксплуатации) является более сложным и затратным.

Внедрение CVA подразумевает не только поиск и исправление ошибок, но изменение самого подхода к стандартам разработки на предприятии.

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

Одним из способов для поиска ошибок есть такой инструмент. Не всем известно о том, что SAP содержит более одного миллиона сообщений об ошибках. Можно использовать этот простой, а главное бесплатный инструмент, чтобы быстро найти любой код ошибки и сообщение SAP.

В специальное окно необходимо ввести код сообщения об ошибке SAP, например АА729, или ключевое слово, например, актив, чтобы найти все связанные сообщения об ошибках SAP.

Часто Задаваемые Вопросы

Что означает «обход каталогов»?
Это ошибка программирования SAP о том, что непреднамеренно оставляют входные подделки, чтобы разрешить прохождение каталога. Это может считывать настройки критических систем или перезаписать файлы конфигурации, которые могут снизить систему в течение довольно длительного периода времени.
Каковы эффективные методы для устранения неполадок SAP Коды ошибок и сообщения?
Устранение неполадок SAP Коды ошибок и сообщения Эффективно включают использование SAP поддержки порталов, консалтинг * документацию SAP * и взаимодействие с SAP сообществами пользователей для понимания и решений.




Комментарии (0)

Оставить комментарий