Хлеб
Тип бизнеса | Дочерняя компания |
---|---|
Основан | Декабрь 2006 г. Оксфорде , Англия. | в
Штаб-квартира | Сан-Франциско, Калифорния, США |
Основатель(и) | Глаз мавра |
Ключевые люди | Oege de Moor, Pavel Avgustinov, Julian Tibble |
Промышленность | Анализ программного обеспечения |
Продукты | Программное обеспечение и услуги для анализа кода |
Родитель | GitHub [1] (2019 – настоящее время) |
URL-адрес | рулон |
Semmle Inc — платформа для анализа кода ; Semmle была приобретена GitHub (которая сама принадлежит Microsoft ) 18 сентября 2019 года за нераскрытую сумму. [2] Технология LGTM компании Semmle автоматизирует проверку кода , отслеживает вклад разработчиков и отмечает проблемы безопасности программного обеспечения . [2] Платформа LGTM использует механизм запросов CodeQL (ранее QL). [3] выполнять семантический анализ баз кода программного обеспечения. GitHub стремится интегрировать технологию Semmle для предоставления услуг непрерывного обнаружения уязвимостей. [4] В ноябре 2019 года использование CodeQL стало бесплатным для исследований и открытым исходным кодом. [5] CodeQL либо имеет прямую родословную с .QL (dot-que-ell), который происходит от генеалогического древа Datalog , либо является развитием аналогичной технологии. [ нужны разъяснения ]
SemmleCode — это объектно-ориентированный язык запросов для дедуктивных баз данных , разработанный Semmle. В этом классе он отличается поддержкой рекурсивных запросов.
Корпоративный фон
[ редактировать ]Штаб-квартира компании находилась в Сан-Франциско , а ее девелоперские подразделения располагались в Блю-Боар-Корт, Альфред-стрит , в центре Оксфорда , Англия . Среди клиентов Semmle были Credit Suisse , NASA и Dell . [6]
Фон SemmleCode
[ редактировать ]Академический
[ редактировать ]SemmleCode основан на академических исследованиях по запросу источника программного обеспечения. Первой такой системой была система Линтона «Омега». [7] где запросы были сформулированы в QUEL . QUEL не допускал рекурсии в запросах, что затрудняло проверку иерархических структур программы, таких как граф вызовов . Следующим значительным достижением стало использование логического программирования , которое допускает такие рекурсивные запросы, в браузере XL C++. [8] Однако недостатком использования языка полного логического программирования является то, что очень трудно достичь приемлемой эффективности. Система CodeQuest, [9] разработанный в Оксфордском университете , был первым, кто использовал наблюдение о том, что Datalog , очень ограниченная версия логического программирования, находится в золотой середине между выразительной силой и эффективностью. Язык QL запросов — это объектно-ориентированная версия Datalog.
Промышленный
[ редактировать ]Первые исследовательские работы по запросу источника программного обеспечения привели к появлению ряда промышленных приложений. В частности, он стал краеугольным камнем систем прикладного интеллекта ( извлечение данных об источнике программных систем) и обновления программного обеспечения. В 2007 году базирующаяся в Париже компания CAST [10] является одним из лидеров рынка в этой области, среди других важных игроков — BluePhoenix в Герцлии , Израиль . SemmleCode отличается от этих систем использованием объектно-ориентированного языка запросов, который позволяет программистам легко формулировать новые запросы, специфичные для их собственного проекта.
Полный отчет об академических и промышленных разработках, приведших к созданию SemmleCode, можно найти в статье Гаджиева и др. [11]
Пример запроса в QL
[ редактировать ]Чтобы проиллюстрировать использование QL, рассмотрим хорошо известное правило объектно-ориентированного программирования , согласно которому общедоступные поля должны быть объявлены как окончательные. Чтобы обнаружить нарушения этого правила, нам следует искать поля, которые являются общедоступными, но не окончательными. В QL это требование выражается следующим образом:
from Field f
where f.hasModifier("public")
and
not(f.hasModifier("final"))
select f.getDeclaringType().getPackage(),
f.getDeclaringType(),
f
Здесь не только оскорбительное поле f
выбран, но также пакет и тип, в котором происходит его объявление.
Интеграция SemmleCode со средами разработки
[ редактировать ]SemmleCode предоставляет пользовательский интерфейс через Eclipse IDE для запроса кода Java (как исходного, так и байт-кода), а также файлов XML, а также для редактирования запросов QL. Однако это лишь одно из применений лежащей в его основе технологии: QL можно использовать для запроса любого другого типа сложных данных.
В рамках объединения Microsoft/GitHub исходный рабочий процесс на основе Eclipse был заменен рабочим процессом, основанным на Microsoft Visual Studio Code . [3]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «GitHub приобретает Semmle, чтобы помочь разработчикам обнаруживать уязвимости в коде» . www.venturebeat.com . 18 сентября 2019 г. Проверено 20 сентября 2019 г.
- ^ Jump up to: а б Лардинуа, Фредерик (18 сентября 2019 г.). «GitHub приобретает инструмент анализа кода Semmle» . techcrunch.com . ТехКранч . Проверено 13 марта 2021 г.
- ^ Jump up to: а б «Знакомство с CodeQL» . semmle.com . Семмле. Сентябрь 2019 года . Проверено 13 марта 2021 г.
продукт и инструменты QL были переименованы в CodeQL... то, что раньше называлось «снимком QL», теперь является базой данных CodeQL.
- ^ Де Симоне, Серджио (19 сентября 2019 г.). «GitHub для интеграции анализа кода Semmle для непрерывного обнаружения уязвимостей» . информация . ИнфоQ . Проверено 13 марта 2021 г.
- ^ Криль, Пол (15 ноября 2019 г.). «GitHub делает CodeQL бесплатным для исследований и открытым исходным кодом» . infoworld.com . Инфомир . Проверено 13 марта 2021 г.
- ^ «Выделенная компания Semmle получила 8 миллионов долларов от Accel Partners» (пресс-релиз). Оксфордский университет. 16 сентября 2014 года . Проверено 18 сентября 2015 г.
- ^ «Система Омега Линтона» . США: Калифорнийский университет, Беркли . 1983.
- ^ Шахрам Джави, Кинъити Мицуи, Хироаки Накамура, Цуёси Охира, Кадзу Ясуда, Казуши Кусе, Цутому Камимура и Ричард Хелм. Архитектура браузера XL C++ . В CASCON '92: Материалы конференции Центра перспективных исследований по совместным исследованиям 1992 года , страницы 369–379. IBM Пресс, 1992.
- ^ «Система CodeQuest» . Великобритания: Вычислительная лаборатория Оксфордского университета . Архивировано из оригинала 9 октября 2006 года.
- ^ «КАСТ Программное обеспечение» .
- ^ Эльнар Гаджиев, Матье Вербер и Оге де Мур, CodeQuest: масштабируемые запросы исходного кода с журналом данных. В ECOOP 2006: Материалы Европейской конференции 2006 года по объектно-ориентированному программированию , страницы 2–27. Спрингер , 2006.
Дальнейшее чтение
[ редактировать ]- Марк А. Линтон. Реализация реляционных представлений программ. Питер Б. Хендерсон, редактор журнала Software Development Environments (SDE) , страницы 132–140, 1984 г.