Разработка больших сложных проектов невозможна без использования методологий программирования и инструментальных средств, помогающих контролировать качество кода. В первую очередь, это грамотный стандарт кодирования, обзоры кода, юнит-тесты, статические и динамические анализаторы кода. Всё это помогает выявлять дефекты в коде на самых ранних этапах разработки. В этой статье демонстрируются возможности статического анализатора PVS-Studio по выявлению ошибок и потенциальных уязвимостей в коде операционной системы Android. Надеемся, что статья привлечёт внимание читателей к методологии статического анализа кода и они захотят внедрить её в процесс разработки собственных проектов.
Читать полностью »
Рубрика «SAST» - 4
Проверили с помощью PVS-Studio исходные коды Android, или никто не идеален
2018-08-01 в 9:36, admin, рубрики: android, android development, C, c/c++, c++, Common Weakness Enumeration, cwe, devops, DevSecOps, open source, pvs-studio, SAST, static code analysis, Блог компании PVS-Studio, информационная безопасность, операционные системы, ошибки в коде, Разработка под android, Си, статический анализ кода, статический анализатор кодаPVS-Studio как SAST решение
2018-07-25 в 7:48, admin, рубрики: C, c/c++, C#, c++, CVE, cwe, devops, java, pvs-studio, SAST, Блог компании PVS-Studio, информационная безопасность, надежность программ, ошибки в коде, ошибки в программе, Программирование, Си, статический анализ кода, управление разработкой, уязвимости
До недавнего времени в своих статьях мы позиционировали PVS-Studio как инструмент для выявления ошибок в коде. При этом мы почти не рассматривали PVS-Studio в контексте безопасности. Попробуем немного исправить эту ситуацию и взглянем на инструмент с точки зрения тестирования защищённости приложений и DevSecOps практик.
Читать полностью »
Мечтают ли WAF’ы о статанализаторах
2017-09-17 в 14:29, admin, рубрики: Application Firewall, Application Inspector, SAST, waf, Блог компании Positive Technologies, защита веб-приложений, информационная безопасность, статический анализ кодаОдна из самых популярных тенденций в области защиты приложений нынешнего десятилетия — технология виртуального патчинга (virtual patching, VP), позволяющая защитить веб-приложение от эксплуатации имеющихся в нем известных уязвимостей на уровне межсетевого экрана уровня веб-приложений (web application firewall; здесь и далее под WAF подразумевается выделенное решение, функционирующее на отдельном узле, между шлюзом во внешнюю сеть и веб-сервером). Технология VP основана на построении правил фильтрации HTTP-запросов на стороне WAF по результатам работы средств статического анализа защищенности приложения (static application security testing, SAST). Однако из-за того, что средства SAST и WAF опираются на различные модели представления приложения и различные методы принятия решений, на рынке до сих пор нет по-настоящему эффективных решений их интеграции. В рамках SAST работа с приложением осуществляется по модели белого ящика и, как правило, используются формальные подходы к поиску уязвимостей в коде. Для WAF же приложение представляет собой черный ящик, а для детектирования атак применяются эвристики. Это не позволяет эффективно использовать VP для защиты от атак в тех случаях, когда условия эксплуатации уязвимости выходят за рамки тривиальной схемы `http_parameter=plain_text_attack_vector`.
Но что, если «подружить» SAST и WAF таким образом, чтобы информация о внутреннем устройстве приложения, полученная с помощью SAST, стала доступной на стороне WAF и дала ему возможность детектировать атаки на обнаруженные уязвимости — не угадывая, но доказывая факт атаки?
Читать полностью »
Почему анализ защищенности Java Script нельзя по настоящему автоматизировать?
2017-09-05 в 16:13, admin, рубрики: appsec, javascript, jsfuck, SAST, xss, информационная безопасность, обфускацияПочему в случае JavaScript приходится обходиться простыми подходами статического анализа, когда есть более интересные подходы к автоматическому анализу кода?
В ответ на этот вопрос, мой коллега Алексей Гончаров kukumumu ответил лаконично: «Java Script это панковский язык» и кинул ссылку на статью Jasper Cashmore «A Javascript journey with only six characters», которая действительно погружает нас в путешествие в эзотерический мир JSFuck и сразу все ставит на свои места.
Мне настолько понравилось, что я решил перевести статью на русский язык.
Читать полностью »
Пишем настоящий Pointer Analysis для LLVM. Часть 1: Введение или первое свидание с миром анализа программ
2016-12-13 в 9:59, admin, рубрики: dataflow analysis, incode, pointer analysis, SAST, Блог компании Solar Security, информационная безопасность, Компиляторы, оптимизация, статический анализ кода, уязвимости, метки: dataflow analysis, incode, pointer analysisПривет!
Эта статья станет вступительной в моем небольшом цикле заметок, посвященном такой технике анализа программ, как pointer analysis. Алгоритмы pointer analysis позволяют с заданной точностью определить на какие участки памяти переменная или некоторое выражение может указывать. Без знания информации об указателях анализ программ, активно использующих указатели (то есть программ на любом современном языке программирования — C, C++, C#, Java, Python и других), практически невозможен. Поэтому в любом мало-мальски оптимизируещем компиляторе или серьезном статическом анализаторе кода применяются техники pointer analysis для достижения точных результатов.
В данном цикле статей мы сосредоточимся на написании эффективного межпроцедурного алгоритма pointer analysis, рассмотрим основные современные подходы к задаче, ну и, конечно же, напишем свой очень серьезный алгоритм pointer analysis для замечательного языка внутреннего представления программ LLVM. Всех интересующихся прошу под кат, будем анализировать программы и многое другое!
Читать полностью »
QIWI Security Development Lifecycle
2016-10-25 в 9:54, admin, рубрики: DAST, Qiwi, SAST, sdlc, security, Блог компании QIWI, информационная безопасность, Тестирование IT-системВ определенный момент в жизни почти каждой финтех-компании настает время, когда количество приложений внутренней разработки начинает превышать число разработчиков, бизнес хочет больше новых фич, а на Bug Bounty продолжают сдавать все новые и новые уязвимости…
Но при этом есть потребность быстро выпускать качественное и безопасное ПО, а не тушить пожары от выявленных ошибок безопасности откатами версий и ночными хотфиксами.
Когда команда ИБ состоит из пары человек, кажется, что так будет всегда, но мы решили выжать из ситуации максимум позитива и раз и навсегда "засекьюрить" свои приложения.
С чего начать? Наш план был прост:
- Упорядочить процессы постановки, исполнения и выпуска задач, не став палкой в колесах разработки.
- Прикрутить модные сканеры безопасности.
- Отревьюить пару десятков приложений.
- Откинуться в кресле, наблюдая за тем, как это все само работает.
Ищем уязвимости в коде: теория, практика и перспективы SAST
2016-07-08 в 11:02, admin, рубрики: DAST, IAST, SAST, static code analysis, анализатор кода, Блог компании Positive Technologies, информационная безопасность, Программирование, статический анализ кода, метки: DAST, IAST, SASTНе будет большим преувеличением сказать, что рынок средств статического тестирования защищенности приложений (Static Application Security Testing, SAST) в наше время переживает самый настоящий бум. Не проходит и пары месяцев между публикациями очередных научных работ на эту тему, ежегодно на рынок выводятся все новые и новые инструменты статического анализа защищенности, а месту SAST в процессе разработки ПО отводятся целые секции на международных ИБ-конференциях. В условиях непрерывного информационного прессинга со стороны поставщиков инструментария SAST, нелегко разобраться в том, что есть правда, а что − не более, чем маркетинговые уловки, слабо коррелирующие с действительностью. Давайте попробуем понять, что же действительно под силу инструментам SAST и как быть с тем, что им «не по зубам». Для этого нам придется немного погрузиться в теорию, лежащую в основе современных средств статического анализа защищенности кода.