Community

Наши решения

Какие бывают недостатки в ПО

Классификация программного обеспечения

  1. По уровню, на котором оно работает:
    • сетевое ПО – обеспечивает работу сети и сетевых устройств (стеки протоколов, операционные системы на маршрутизаторах);
    • системное ПО - предназначено для управления работой вычислительной системы (операционные системы, сервисы уровня операционной системы, СУБД);
    • прикладное ПО -  это комплекс программ для решения специфичных задач, т.е. задач определённого класса конкретной предметной области (web-приложения, десктопные приложения).
  2. По источнику (по производителю):
    • стандартное ПО – характеризуется массовым производством и внедрением, автоматизирует общие для всех потребности в IT-технологиях (операционные системы, web-сервера, прикладные утилиты);
    • заказное ПО – производство под заказ, автоматизация процессов конкретной организации, для которых пока еще нет стандартного ПО (различного рода приложения, т.е. прикладное программное обеспечение);
    • собственное ПО – производится собственными силами, автоматизация собственных процессов для которых пока еще нет стандартного ПО.

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

Совместив две классификации (по уровню и по источнику), можно увидеть тенденцию (см. Рис.1.):

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

Рисунок 1. Тенденция корреляции ПО. 

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

Классификация недостатков программного обеспечения

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

  • на уровне проектирования;
  • на уровне непосредственной разработки и кодирования;
  • на уровне внедрения и конфигурирования;
  • на уровне эксплуатации этого программного обеспечения.

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

На поиск каких недостатков стоит тратить время и деньги

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

При этом необходимо помнить, что:

  • стандартное программным обеспечением чаще всего является системным, сетевым (исключение - стандартное прикладное программное обеспечение, выполняющее типовые прикладные задачи, например, пакет MS Office);
  • заказное и собственное программное обеспечение будет являться практически всегда прикладным.

Поиск недостатков стандартного ПО

Вначале рассмотрим, почему для типовой организации в рамках проекта по анализу защищенности для стандартного ПО не рационально заказывать поиск уязвимостей проектирования и кодирования. Мы не рассматриваем различного рода огромные компании (например, Google или Microsoft), а также службы безопасности государства (например, ФСБ).

Что такое уязвимости кодирования и проектирования стандартного программного обеспечения? Это те самые недостатки, при нахождении которых производитель стандартного программного обеспечения, выпускает патчи.

Представим, что такая уязвимость найдена. Какую пользу с точки зрения защищенности даёт знание уязвимости проектирования или кодирования стандартного программного обеспечения? Самостоятельно нельзя исправить эту уязвимость, можно только сообщить её вендору и ждать выпуска, соответствующего патча. Это так называемые «уязвимости нулевого дня». До момента выхода патчей, для защиты стандартного программного обеспечения от известных уязвимостей, нет никакого надежного способа. Есть только некоторые наложенные способы, которые связаны с конфигурированием средств защиты. Например, системы обнаружения атак. Кроме того, непонятно, почему организация должна платить за поиск уязвимостей в чужих продуктах (речь идет о коммерческих продуктах), если на продаже этих продуктов их производитель зарабатывает деньги. Иначе получается, что организация-заказчик помогает чужому бизнесу.

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

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

  • по выполнению принципа наименьших привилегий при создании учетных записей новых пользователей;
  • о необходимости удаления учетной запись пользователя при увольнении соответствующего сотрудника;
  • о необходимости постоянного отслеживания выхода обновлений и их установки.

Т.е. на этапе эксплуатации отсутствие установленных патчей – это уязвимость уровня эксплуатации.

Поиск недостатков заказного и собственного ПО

Совершенно по-другому обстоят дела с заказным и собственным программным обеспечением. Так как такое ПО разработано «штучно» (для конкретной организации) – вендор не выпустит для него патчей, так как не узнает о наличии ошибки или уязвимости в этом продукте, если сам Заказчик разработки об этом не расскажет о ней вендору или своим собственным программистам, например, заказав услугу по анализу защищенности. Именно поэтому для того, чтобы обеспечить защищенность прикладного программного обеспечения, разработанного на заказ или своими силами, необходимо искать недостатки и уязвимости не только этапа конфигурирования и эксплуатации, но и этапа проектирования, а также разработки и кодирования.

Инструментальный анализ нестандартного ПО

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

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

Для стандартного программного обеспечения такие проверки для сканера можно написать. Например, можно взять web-сервер, Apache, провести анализ его параметров конфигурации и сформулировать правила корректных (т.е. безопасных) параметров конфигурации, а также небезопасных параметров конфигурации. После чего можно создать соответствующую сигнатуру для сканера. Аналогично можно вести базу выхода всех патчей и, устанавливая уровень обновлений в целевом сервисе, делать заключение, установлен последний патч или нет. Таким образом инструментальный анализ уязвимостей конфигурации уязвимостей эксплуатации возможен для стандартного ПО – для ПО, о котором знают производители соответствующих сканеров.

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

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

Логические недостатки

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

Резюме

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

Рисунок 2. Рациональный подход к поиску недостатков.

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

Как искать уязвимости

Поиск уязвимостей в стандартном ПО

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

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

Поиск уязвимостей в прикладном ПО

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

Для поиска уязвимостей этапа кодирования в собственном программном обеспечении, а чаще всего это собственное программное обеспечение представляет из себя web-приложения, придуманы статические анализаторы кода и анализаторы кода, которые работают в режиме черного ящика (по-английски – web application scanner). Тем не менее, в отличие от своих собратьев, которые устанавливают уязвимости конфигурирования и эксплуатации для стандартного программного обеспечения и делают это достаточно хорошо, сканеры собственного кода прикладного программного обеспечения работают не так хорошо. В силу, во-первых, большого многообразия технологий, которые используются при реализации собственного прикладного программного обеспечения, а во-вторых, в силу того, что большинство собственного прикладного программного обеспечения решает конкретные задачи (т.е. business specific), для которых общие проверки заранее предусмотреть очень тяжело.

Таким образом, давайте сформулируем и рассмотрим задачу поиска уязвимостей этапов проектирования, а также разработки и кодирования для прикладного ПО (заказного и собственного).

Для собственного ПО

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

В целом, эта задача неплохо решена уже с методической точки зрения. Компанией Microsoft был придуман особый цикл разработки, который называется Secure Software Development Lifecycle (SDLC), в котором описаны необходимые шаги и мероприятия, позволяющие управляемо контролировать защищенность конечных программных продуктов. Такая разработка становится более дорогой, нежели обычная разработка, которая в основном учитывает только функциональные требования. Тем не менее, на выходе во втором случае получается более качественный продукт и считается, что итоговая стоимость владения программным продуктом в случае применения SDLC меньше за счет снижения средств на поддержку и исправление ошибок в дальнейшем по сравнению со стандартной разработкой, в которой упор делается только на функциональные программные возможности.

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

Для заказного ПО

Намного больше проблем возникает в задаче борьбы с уязвимостями этапов проектирования и кодирования при заказе программного обеспечения. Источник всех проблем – это отсутствие экспертизы у Заказчика. Действительно, если бы у Заказчика была достаточная экспертиза в целом по программированию, по разработке, тестированию и приемке программного обеспечения, можно было бы либо своими силами разработать соответствующий программный продукт, либо же предъявить на этапе разработки достаточно серьезные требования к опасности итогового продукта. В силу того, что такой экспертизы нет, программное обеспечение заказывается так, что в техническом задании присутствуют в основном функциональные требования и принимается программное обеспечение методом проверки этих же самых функциональных требований. То есть если программное обеспечение выполняет все функции, которые от него ожидаются, значит такое программное обеспечение устраивает Заказчика.

Можно представить такой вариант, что Заказчик программного обеспечения при заказе берет классические требования к информационной безопасности и прописывает их в техническом задании. Это может быть сформулировано на достаточно высоком уровне. Например, отсутствие уязвимостей авторизации, отсутствие уязвимостей аутентификации, отсутствие уязвимостей, связанных с некорректной обработкой входных данных и т.д. На первый взгляд, это может решить проблему, но только на первый взгляд. Дело в том, что проверить выполнимость этих требований при отсутствии экспертизы на этапе сдачи программного обеспечения не реально. Именно поэтому задача борьбы с уязвимостями этапов проектирования и кодирования в заказном программном обеспечении по факту обычно возникает намного позже приемки. Другими словами, владелец заказного программного обеспечения, которое не было разработано с применением тактики защитного кодирования чаще всего подвергается какой-то атаке, и уже по факту возникновения инцидента появляется задача проверки.

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

Резюме

Как же методически правильно бороться с различными классами недостатков в программном обеспечении различного рода?

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

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

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

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

Какие услуги когда заказывать?

Все заказчики и потребители сервиса информационной безопасности характеризуются различным уровнем зрелости в вопросах информационной безопасности.

Рассмотрим уровни зрелости ИБ – будем двигаться от менее зрелого уровня к более зрелому. Какие же услуги и на каком этапе имеет смысл и экономически эффективно заказывать? А какие не целесообразно потому что они будут слишком дороги или не дадут положительного эффекта, который они могли бы дать в случае, если бы в самой компании процессы обеспечения ИБ уже были бы выстроены на должном уровне.

Начальный уровень зрелости ИБ

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

За минимальные деньги максимально повысить начальный уровень защищенности.

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

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

Наше решение: Проведение инструментального сканирования

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

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

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

Средний уровень зрелости ИБ

После проведения сканирования и выявления самых серьезных недостатков, а также их плотности нахождения в информационной системе, перед организацией появляется задача выявить очевидные проблемы, собрать "low hanging fruits", которые с наибольшей вероятностью найдёт потенциальный злоумышленник в первые дни своей работы.

Т.е. необходимо выяснить какие основные процессы ИБ не выполнялись или выполнялись недостаточно качественно – так что организация и её ресурсы пришли в текущее состояние.

Наше решение: оценка уровня защищенности

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

На основе найденных недостатков на выборке ресурсов Заказчика дается оценка и прогноз общему уровню защищенности всей IT-инфраструктуры Заказчика. Проводится своего уровня экстраполяция на защищенность в том числе от внутренних угроз, от инсайдеров и делаются замечания и рекомендации по поводу корректировки процессов обеспечения ИБ.

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

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

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

В случае сканирования аналитики нет – это отчет сканера. В случае оценки на основе проведенных проверок делается оценка итогового уровня ИБ.

Высокий уровень зрелости ИБ

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

Таким образом, следующий этап – проверить, что рекомендации были реализованы в полном объеме и получить следующую порцию рекомендаций, которые позволят опять же за минимальные средства еще больше повысить уровень обеспечения ИБ.

Далее имеет смысл обращаться к услуге «анализ защищенности».

Наше решение: анализ защищенности

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

Все процессы построены. Что дальше?

Далее организация реализует полученные рекомендации. Внутренняя служба обеспечения ИБ представляет карту рисков своей организации, регулярно производит мониторинг угроз и реагирует на возможные инциденты. В целом все рекомендованные процессы реализованы. У организации возникает вопрос: а не деградируют ли выстроенные процессы со временем?

Например, через месяц после проведения предыдущих консультационных работ по анализу защищённости все рекомендации были реализованы. Возникает вопрос: что будет через 3 месяца, через 4, через 6? Не вернется ли организация в предыдущее незащищенное состояние? Не деградирует ли состояние защищенности, качество и эффективность процессов обеспечения ИБ?

Для ответа на эти вопросы этого требуется внешняя проверка. Внешняя – чтобы исключить конфликт интересов, потому что внутренняя безопасность не может рапортовать о снижении защищенности, т.к. она за нее же и отвечает.

В таком случае заказчики прибегают к услуге по тестированию на проникновение.

Наше решение: тестирование на проникновение

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

Цель тестирования на проникновение – достижение поставленной Заказчиком задачи. К таким целям относятся: проникновение во внутреннюю сеть, получение доступа к корпоративной переписке, захват сервера, реализующего какой-либо сервис, например, по проведению платежей и т.д. Проект заканчивается как только поставленная задача будет достигнута.

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

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

SolidLab AST. Сервис по обучению основам защищенной разработки

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

Сценарии использования:

  • обучение участников процессов SDLC практикам разработки защищенных приложений;

  • регулярная проверка знаний;

  • скрининг новых сотрудников при приеме на работу;

  • повышение квалификации специалистов и актуализация их знаний;
  • закрепление полученных знаний и навыков;

  • быстрый поиск информации по контексту;

  • обогащение результатов автоматического анализа защищенности дополнительной информацией;

  • вовлечение сотрудников в процесс защищенной разработки;

  • повышение популярности службы ИБ среди ИТ-специалистов.

Ключевые функциональные особенности

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

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

Специализированная СTF платформа
Дает возможность участникам процесса SDLC закрепить полученные знания и навыки в игровой форме, а также укрепить совместное взаимодействие.

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

SolidLab AST

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

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

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

Профессиональная экспертиза
Материалы обучения основаны на экспертизе, которую команда SolidLab приобретает в ходе проектов по анализу защищенности и внедрению процессов защищенной разработки. Кроме того, мы используем практический опыт, который наши преподаватели получают при разработке методик и проведении обучения на факультете ВМК МГУ им. М. В. Ломоносова.

Техническая поддержка и дополнительные сервисы сопровождения

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

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

  • Проведение мероприятий, повышающих заинтересованность и вовлеченность специалистов в процессы защищенной разработки (в форме CTF, Red Team и т.п.)

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

  • Консультационная поддержка процессов обучения и процедур контроля знаний.

 

Описание функциональных характеристик SolidLab SDP

Краткое описание возможностей

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

Платформа предоставляет программный интерфейс (API) для автоматизации задач инструментального анализа защищенности приложений.

Сценарии использования:

  • выявление недостатков защищенности в приложениях в процессе их разработки;

  • встраивание проверок защищенности в процессы разработки приложений;

  • оценка защищенности информационных систем на основе результатов инструментального анализа защищенности;

  • валидация обнаруженных недостатков и реализация процесса устранения выявленных недостатков.

 

Размещение

Платформа размещается на стороне Исполнителя и является комплексом технических и программных средств, основанных на инфраструктуре в качестве сервиса, предоставляемых провайдерами. Платформа предназначена для оказания услуг по моделям программного обеспечение в виде сервиса и управляемых услуг (managed service). 

 

Документация

Для получения руководства по эксплуатации следует нажать на кнопку ниже «Руководство по эксплуатации»:

Руководство по эксплуатации

  

Функциональные характеристики

SolidLab SDP - интеллектуальная платформа защищенной разработки приложений.

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

Платформа размещается на стороне Исполнителя и является комплексом технических и программных средств, основанных на инфраструктуре в качестве сервиса, предоставляемых провайдерами. Платформа предназначена для оказания услуг по моделям программного обеспечение в виде сервиса и управляемых услуг (managed service).

Платформа состоит из набора независимых подсистем, что предоставляет возможность для:

  • использования только специфичных подсистем для решения конкретных задач;

  • изменения состава подсистем в процессе эксплуатации без простоя уже внедренных подсистем;

  • оптимизации выделенных для подсистем вычислительных мощностей.

В зависимости от решаемых задач в состав SolidLab SDP могут входить:

  • подсистема централизованной обработки и хранения обнаруженных недостатков защищенности, а также отображения результатов работы других подсистем;

  • подсистема поиска недостатков защищенности методами статического анализа исходного кода приложений;

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

  • подсистема поиска оставленных секретов в исходном коде приложений;

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

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

  • подсистема анализа компонентов в образах контейнеров на известные уязвимости.

Функциональные характеристики:

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

  • возможность выбора подсистем, с помощью которых выполняется анализ конкретной информационной системы;

  • выполнение нескольких задач инструментального анализа одновременно, формирование очереди задач на анализ;

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

  • возможность объединения результатов анализа нескольких подсистем в одну группу в подсистеме обработки и хранения обнаруженных недостатков;

  • возможность фильтрации выявленных недостатков в подсистеме обработки и хранения обнаруженных недостатков;

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

  • возможность реализации процесса отслеживания исправления выявленных недостатков защищенности;

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

  • отображение статистики по выявленным недостаткам защищенности;

  • создание отчетов по результатам анализа и верификации выявленных недостатков защищенности;

  • поиск недостатков защищенности методами статического анализа без компиляции исходного кода приложений;

  • поиск недостатков защищенности методами статического анализа для различных языков программирования, включая: С, C++, C#, Go, Java, JavaScript, Kotlin, TypeScript, Ruby, Rust, PHP, Python, Scala, Swift;

  • поиск различных недостатков защищенности методами статического анализа, включая: инъекции (в том числе XSS, SQLi, SSTI), недостатки десериализации пользовательских данных, SSRF, XXE, RCE;

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

  • поиск различных недостатков защищенности подсистемой динамического анализа, включая: Reflected XSS, DOM-based XSS, SQL-инъекция, XXE, Path Traversal;

  • поиск оставленных секретов в исходном коде приложений и в истории коммитов;

  • анализ защищенности описаний инфраструктуры в виде исходного кода, включая описания инфраструктуры для следующих систем: Terraform, Kubernetes, Docker, Ansible;

  • поиск известных уязвимостей в программных компонентах, используемых в приложениях, собираемых с помощью систем, включая: npm, maven, gradle, pypi, composer, go;

  • анализ компонентов в образах Docker-контейнеров на известные уязвимости.

В работе подсистем Платформы используются:

  • собственные базы уязвимостей, поставляемые вместе с Платформой;

  • общедоступные базы уязвимостей.

SolidPoint DAST. Сканер защищенности веб-приложений и API

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

Сценарии использования:

  • анализ защищенности браузерных веб-приложений, в том числе путем статико-динамического анализа JavaScript кода;

  • анализ защищенности мобильных приложений и веб-сервисов;

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

  • проверка наличия уязвимостей, связанных с аутентификацией и авторизацией;

  • инвентаризация компонентного состава веб-приложений, управление изменениями API;
  • проверка безопасности приложений, находящихся в продуктивной эксплуатации;

  • динамический анализ приложений в рамках процессов защищенной разработки SDLC;

  • обнаружение уязвимостей ИТ-инфраструктуры в рамках процессов управления уязвимостями и патч-менеджмента;

  • Использование в формате облачного сервиса или в виде решения, размещаемого на площадке заказчика.

Преимущества SolidPoint DAST:

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

  • эффективный анализ компонентного состава веб-приложений и обнаружение точек ввода данных;

  • обнаружение сложных классов недостатков, таких как DOM based XSS или Prototype Pollution;

  • масштабируемые конфигурации и гибкое регулирование нагрузки для сканирования распределенных инфраструктур;
  • управление с помощью Web UI, CLI и API, легкое встраивание в конвейер разработки;

  • интеграция с SolidWall WAF и другими инструментами для повышения эффективности защиты.

Ключевые функциональные особенности

Анализ инфраструктуры доставки приложений
SolidPoint DAST выполняет сканирование инфраструктуры доставки приложений на наличие известных уязвимостей и недостатков конфигурации, а также обнаруживает веб-приложения, доступные для анализа.

Выявление точек ввода данных
Решение поддерживает максимально широкий спектр технологий по обнаружению точек ввода данных, как традиционных (crawling, dirbusting), так и альтернативных (статико-динамический анализ JavaScript, FAST, загрузка описаний Open API).

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

Поддержка авторизации в анализируемых приложениях
Решение поддерживает механизмы для проверки функционала веб-приложений, требующего авторизации (методом «серого ящика»). Поддерживаются способы авторизации с использованием cookie, заголовков и веб-форм.

Техническая поддержка и дополнительные сервисы сопровождения решения

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

Проверка эксплуатируемости выявленных недостатков и написание тестовых сценариев для демонстрации недостатка (Proof of Concept).

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

Интеграция решения в инфраструктуру заказчика самостоятельно или в рамках платформы защищенной разработки.

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

Обучение специалистов заказчика практикам защищенной разработки.

Разработка аналитических отчетов.

 

Краткое описание SolidPoint DAST

Скачать листовку