Как пройти проверку безопасности на AppExchange | JET BI

Как пройти проверку безопасности на AppExchange

AppExchange - это самая  большая торговая площадка для облачных приложений во всем мире. Она открывает доступ к миллионам Ваших потенциальных клиентов, а  также совершенно новый способ для расширения Вашего бизнеса. Однако, создать безопасное приложение и  опубликовать его на Salesforce AppExchange зачастую бывает затруднительно. Некоторые стадии подготовки, например, проверка безопасности (Security Review) требуют много времени и усилий, чтобы сделать все так, как полагается. Проверка безопасности - это обязательное условие для выхода на торговую площадку Salesforce, которая называется AppExchange. В процессе подготовки Вы должны изучить большое количество информации, поэтому в этом блоге мы собрали  основные положения, которые помогут Вам опубликовать Ваше приложение с минимальными усилиями.

 

ЭТАП ПОДГОТОВКИ

В первую очередь детально  изучите список требований Salesforce. Самые важные вещи, которые мы хотели бы обозначить, можно свести к следующему: воспользуйтесь бесплатными инструментами самообслуживания для анализа исходного кода, разработанного на платформе Force.com. Запустите бесплатное веб-приложение для сканирования  безопасности Chimera  или установите  локальный ZAP, чтобы выполнить сканирование безопасности любого стороннего веб-приложения, которое интегрировано с  Force.com.

Использование этих инструментов значительно сократит время проверки Вашего приложения.

 

FAQ: Как работает сканер кода? Как именно он проверяет безопасность кода?

Chimera - это облачный сервис сканирования безопасности, который сочетает в себе сразу несколько общедоступных инструментов сканирования безопасности. Chimera работает на основе облачной платформы Heroku. При этом кастомно разработанный код  объединяет и анализирует результаты всех использованных инструментов сканирования, создавая единый  отчет о безопасности. Chimera использует множество мощных инструментов сканирования с открытым исходным кодом. Эти инструменты, так же как некоторые из наших собственных, запускаются в соответствии с Вашими точно установленными целями. Затем Chimera сопоставляет, анализирует и структурирует все результаты в единый отчет, который Вы и Ваша команда разработчиков должны проанализировать. В процессе сканирования ни сам исходный код, ни в параметры инструментов никакие изменения не вносятся.

 

FAQ: Lightning приложения также проверяются с помощью сканера кода или Chimera?

Chimera может быть использована для сканирования веб-приложений, которыми вы владеете или разрабатываете. Таким образом, ответ положительный. Chimera может быть использована для сканирования Lightning приложений.

 

FAQ: Необходимо ли  устранять абсолютно все уязвимости?

Это зависит от типа тестирования. В случае, если Вы находитесь на этапе подготовки и выполняется автоматическое тестирование, есть некоторые ошибки,  которые Вы можете игнорировать. Однако, некоторые из них должны быть устранены обязательно. Ниже приводим таблицу, которая поможет Вам лучше разобраться в этом.

 

Сканер Исправлять Игнорировать
Checkmarx Любые ошибки, со статусом Низкий, Средний или Высокий Информационные предупреждения
Chimera Все ошибки, за исключением ошибок с ложно позитивным результатом Предупреждения с низкой степенью угрозы, которые вы определяете ложно позитивные; обязательно объяснить причину игнорирования в документе с материалами проверки безопасности
ZAP Все ошибки за исключением тех, что перечислены в следующей колонке. После исправления ошибок, предоставьте скриншот сканирования с вашими проверочными материалами, чтобы проверить правильность сканирования конечной точки.

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

 

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

 

FAQ: Как я могу просканировать мобильное приложение, если Chimera его не поддерживает?

Вы можете использовать сканер ZAP  или сканер безопасности BurpМногие разработчики считают Burp Scanner даже более точным сканером безопасности для приложений AppExchange.

Чтобы составить отчет с помощью Burp Scanner,  необходимо выполнить следующие действия:

1. Приобрести лицензию Burp  для сканирования Вашего приложения.

2. Создать  новый developer org  и установить управляемый пакет на новом developer org. Вы также можете использовать первоначальный org, но желательнее все-таки создать новый.

3. Как только процесс сканирования будет завершен,  для приложения будет сгенерирован отчет в .html формате.

4. На основании проблем, выявленных при сканировании  Burp, Вы должны создать отчет о ложно позитивных срабатываниях для всех проблем с низким и средним уровнем опасности . Этот отчет должен быть подготовлен в формате .doc, а сами данные необходимо представить в табличной форме.

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

Данная статья (англ.) даст более подробную информацию о процессе обеспечения безопасности Burp.

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

Затем необходимо провести ручное тестирование Вашего приложение, чтобы убедиться в том, что оно отвечает всем требованиям проверки, которые не были найдены инструментами автоматизированного тестирования. Более детальную информацию вы можете найти здесь: руководство по тестированию OWASPВсе проблемы, которые были найдены во время тестирования, необходимо устранить на стадии подготовки.

 

FAQ:  Что означает запись "Убедитесь, что триггеры обеспечивают массовую загрузку данных"? И как это выглядит?

На стадии подготовки вы также должны Bulkify Your Code  или, другими словами, убедиться, что ваш код может правильно обрабатывать более одной записи за раз. Это значит, что действие триггеров должно распространяться на целый список записей объектов. Следующий триггер, как правило, предполагает,  что только одна запись вызывает срабатывание триггера. То есть этот триггер не работает с полным набором записей, когда несколько записей вставляются в одну операцию. Ниже рассмотрим версию этого триггера, который обеспечивают массовую загрузку данных:

trigger MyTriggerNotBulk on Account (before insert) {

Account a = Trigger.New[0];

a.Description = 'New description';

                                                                                                                }

Этот пример - модифицированная версия MyTrigger. Он использует цикл “for” для итерации по всем доступным sObjects. Этот цикл работает, если Trigger.New содержит как один sObject, так и несколько sObjects.

trigger MyTriggerBulk on Account (before insert) {

for (Account a : Trigger.New) {

a.Description = 'New description';

                                                                                                                                  }

                                                                                                                     }

 

ЭТАП ИНИЦИАЦИИ

Чтобы пройти следующий этап,  Вы должны убедиться в том, что Ваше приложение зарегистрировано в программе ISVforce или Force.com Embedded. В случае, если Вы не зарегистрированы, Вам следует обратиться к Вашему  ISV менеджеру или создать соответствующую заявку на партнерском портале. Вы можете инициировать проверку безопасности своего  продукта войдя в AppExchange Publishing Console и нажав «Начать проверку», выбрав Ваш продукт.

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

Вам будет предложено предоставить Тестовое окружение  и Документацию Вашего продукта, а также  внести ежегодную Плату за публикацию приложения. Команда проверки безопасности проведет ручное и автоматическое тестирование Вашего приложения и сетевой безопасности. После этого Вы получите результаты проверки.

Если Вы хотите, чтобы другой пользователь видел данные частных объектов, Вам просто нужно изменить ключевое слово в своем коде с «without sharing» (по умолчанию) на «with sharing». Вы можете воспользоваться этим для обеспечения соблюдения правил совместного доступа, применяемых к текущему пользователю. Вы можете настраивать  таким же образом как внутренние, так и внешние классы. Настройки совместного доступа  относятся ко всему коду находящемуся в классе, включая код инициализации, конструкторы и методы, при этом параметры совместного доступа из класс-контейнера не распространяется на сами внутренние классы. Исключением является только выполнение в Anonymous блоке и Chatter в Apex, которое  всегда выполняется с использованием полных разрешений текущего пользователя.

 

ЭТАП ПУБЛИКАЦИИ

Теперь, когда Вы успешно прошли  предыдущие этапы, Вам нужно только войти в AppExchange и запустить процесс проверки.

Поскольку Salesforce.com оставляет за собой право проводить выборочное тестирование опубликованных приложений, необходимо следить за тем, чтобы приложение соответствовало всем требованиям. В противном случае, Ваша публикация на AppExchange может быть исключена из публичного просмотра.

 

ЗАКЛЮЧЕНИЕ

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

  • исключите приложения с обратным прокси-сервером;

  • используйте мощный SDLC протокол, обеспечивающий высокие стандарты безопасности;

  • проведите соответствующее разделение обязанностей внутри среды тестирования, разработки и внешней среды;

  • исключите сохранение учетных данных на salesforce.com;

  • внедрите шифрование данных при передаче и хранении;

  • профилирование имени пользователя;

  • используйте CAPTCHA или другую систему защиты от автоматизированных  попыток входа в систему;

  • исключите логин CSRF (принудительный вход);

  • избегайте динамического  SQL;

  • внедрите соответствующую проверку ввода и очистки URL-адресов для предотвращения атак внедрения SQL и Cross-Site Scripting (XSS) атак;

  • все скрипты и файлы  стилей должны загружаться через статические ресурсы;

  • внедрите контроль защиты идентификатора сеанса Salesforce (Session ID);

  • используйте регулярные выражения для проверки URL адресов, которые должны начинаться   с ‘https://’;

  • убедитесь, что соблюдены рекомендации по Flash  безопасности.

Хотите опубликовать приложение на AppExchange?

Связаться с экспертом JET BI

Поделиться

Спасибо за то, что отправили форму. Мы свяжемся с Вами в течении 1-2 рабочих дней.
Узнавайте первыми о важных новостях и событиях из мира IT

О нас

Мы разрабатываем и внедряем решения класса Business Intelligence на базе платформ SAP BO/BW. Мы также предоставляем полный спектр консалтинговых услуг для Salesforce: внедрение Salesforce и индивидуальная доработка, поддержка, а также решения для ISV. Департамент Мобильной разработки специализируется на разработке бизнес-приложений на iOS и Android.

Связаться с нами

JET BI

Беларусь, Минск
220002, пр-т Машерова,19, 8 эт.
Телефон: +375 17 334 24 16

Россия, Санкт-Петербург
199178, 6-я линия ВО, 61 офис 71
Tелефон: +7 911 830 05 05

Tелефон в США: +1 628 226 23 73

Проекты: sales@jetbi.com
Карьера: jobs@jetbi.com

Социальные сети