셈레

Semmle
셈레
Semmle logo.png
업태자회사
설립.2006년 12월 (2006-12) 영국 옥스퍼드
본사샌프란시스코, 캘리포니아,
설립자오에주 드 무어
주요 인물오에주 드 무어, 파벨 아구스티노프, 줄리안 티블
산업소프트웨어 분석
상품들코드 분석 소프트웨어 및 서비스
부모GitHub[1] (2019년 ~ 현재)
URLsemmle.com[데드링크]

Semmle Inc는 샌프란시스코, 시애틀, 뉴욕, 옥스퍼드, 발렌시아코펜하겐사무실[2]코드 분석 플랫폼입니다.Semmle은 2019년 9월 18일 GitHub(마이크로소프트 소유)에 의해 미공개 금액에 [3]인수되었다.Semmle의 LGTM 테크놀로지는 코드 리뷰를 자동화하고 개발자의 기여도를 추적하며 소프트웨어 보안 [3]문제에 플래그를 표시합니다.LGTM 플랫폼은 CodeQL 쿼리 엔진(이전의 [4]QL)을 활용하여 소프트웨어 코드 기반에서 의미 분석을 수행합니다.GitHub은 Semmle 기술을 통합하여 지속적인 취약성 탐지 [5]서비스를 제공하는 것을 목표로 하고 있습니다.2019년 11월에는 CodeQL을 연구 및 오픈 [6]소스에 무료로 사용할 수 있게 되었습니다.CodeQL은 와 직접 혈통을 공유합니다.QL(dot-que-ell)은 Datalog 패밀리에서 파생되거나 유사한 [clarification needed]기술의 발전입니다.

SemmleCode는 Semmle이 개발한 연역 데이터베이스용 객체 지향 쿼리 언어입니다.이 클래스는 재귀 쿼리를 지원하므로 구분됩니다.

기업 배경

이 회사는 샌프란시스코에 본사를 두고 있으며, 개발 업무는 영국 옥스퍼드 중심가 알프레드 스트리트의 블루 멧돼지 코트에 근거지를 두고 있습니다.Semmle의 고객에는 Credit Suisse, NASA [7]델이 포함됩니다.

SemmleCode 배경

학업의

SemmleCode는 소프트웨어 프로그램의 소스 쿼리에 대한 학술적 연구를 기반으로 합니다.첫 번째 시스템은 Linton의 Omega 시스템입니다.[8]QUEL은 쿼리의 재귀가 허용되지 않아 그래프와 같은 계층적 프로그램 구조를 검사하는 것이 어려웠습니다.따라서 다음 중요한 발전은 XL C++[9] 브라우저에서 이러한 재귀 쿼리를 허용하는 논리 프로그래밍을 사용한 것입니다.그러나 완전한 로직 프로그래밍 언어를 사용하는 것의 단점은 허용 가능한 효율성을 달성하는 것이 매우 어렵다는 것입니다.옥스퍼드 대학에서 개발된 [10]CodeQuest 시스템은 논리 프로그래밍의 매우 제한적인 버전인 Datalog가 표현력과 효율성 사이에서 최적의 위치에 있다는 관찰을 최초로 이용했다.QL 쿼리 언어는 Datalog의 객체 지향 버전입니다.

산업의

초기 연구는 많은 산업용 응용 프로그램에서 파생된 소프트웨어 프로그램의 출처를 문의하는 작업을 합니다.특히 애플리케이션 인텔리전스(소프트웨어 시스템의 소스에 대한 데이터 마이닝) 및 소프트웨어 리노베이션의 토대가 되었습니다.2007년에 파리에 거점을[11] 둔 CAST는 이 분야의 시장 리더 중 하나이며, 그 밖에 이스라엘 헤르즐리야에 있는 BluePhoenix도 주요 기업입니다.SemmleCode는 객체 지향 쿼리 언어를 사용하는 점에서 이들 시스템과 다릅니다.이러한 언어를 사용하면 프로그래머는 자신의 프로젝트에 특화된 새로운 쿼리를 쉽게 작성할 수 있습니다.

Semmle Code의 작성에 이르는 학문적, 산업적 발전에 대한 자세한 설명은 하지예프 [12]등의 논문에서 확인할 수 있다.

QL에서의 샘플쿼리

QL의 사용을 설명하기 위해 퍼블릭필드를 최종으로 선언해야 한다는 객체 지향 프로그래밍의 잘 알려진 규칙을 검토합니다.이 규칙 위반을 찾으려면 최종 필드가 아닌 공개 필드를 검색해야 합니다.QL에서는 이 요건은 다음과 같이 표현됩니다.

 부터 들판 f  어디에 f.has Modifier("공개")        그리고.        것은 아니다.(f.has Modifier("최종"))  선택한다. f.getDeclaringType(getDeclaringType)().get package(),         f.getDeclaringType(getDeclaringType)(),         f 

여기서만 문제가 되는 분야가 아닙니다.f선택한 패키지와 선언이 발생하는 유형도 지정합니다.

개발 환경과의 SemmleCode 통합

SemmleCode는 Eclipse IDE를 통해 Java 코드(소스 코드와 바이트 코드 모두)와 XML 파일을 쿼리하고 QL 쿼리를 편집할 수 있는 사용자 인터페이스를 제공합니다.그러나 이는 기반이 되는 테크놀로지의 응용 프로그램 중 하나에 불과합니다.QL을 사용하여 다른 유형의 복잡한 데이터를 조회할 수 있습니다.

Microsoft/GitHub 사옥으로의 전환의 일환으로서 원래의 Eclipse 베이스의 워크플로우는 Microsoft 의 Visual Studio Code [4]에 근거하는 워크플로우로 대체되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "GitHub acquires Semmle to help developers spot code exploits". venturebeat.com. Retrieved 20 September 2019.
  2. ^ "Contact Us". Semmle.
  3. ^ a b Lardinois, Frederic (18 September 2019). "GitHub acquires code analysis tool Semmle". techcrunch.com. TechCrunch. Retrieved 13 March 2021.
  4. ^ a b "Introducing CodeQL". semmle.com. Semmle. September 2019. Retrieved 13 March 2021. the 'QL' product and tooling has been renamed to CodeQL ... what was previously called a 'QL snapshot' is now a CodeQL database.
  5. ^ De Simone, Sergio (19 September 2019). "GitHub to Integrate Semmle Code Analysis for Continuous Vulnerability Detection". infoq. InfoQ. Retrieved 13 March 2021.
  6. ^ Krill, Paul (15 November 2019). "GitHub makes CodeQL free for research and open source". infoworld.com. InfoWorld. Retrieved 13 March 2021.
  7. ^ "Spin-out company Semmle secures $8M from Accel Partners" (Press release). University of Oxford. 16 September 2014. Retrieved 18 September 2015.
  8. ^ "Linton's Omega system". USA: University of California, Berkeley. 1983.
  9. ^ 샤람 자베이, 미츠이 킨이치, 나카무라 히로아키, 오히라 츠요시, 야스다 카즈시, 카미무라 츠토무, 리처드 헬름.XL C++ 브라우저의 아키텍처.CASCON '92: 공동연구에 관한 고등연구센터의 1992년 회의의 진행, 369~379페이지.IBM Press, 1992.
  10. ^ "CodeQuest system". UK: Oxford University Computing Laboratory. Archived from the original on 9 October 2006.
  11. ^ "CAST Software".
  12. ^ Elnar Hajiyev, Mathieu Verbaere 및 Oege de Moor, CodeQuest: 데이터로그를 통한 확장 가능한 소스 코드 쿼리.ECOP 2006: 객체 지향 프로그래밍에 관한 2006 유럽 회의의 속행(2~27페이지).Springer, 2006.

추가 정보

  • 마크 A. 린튼프로그램의 관계 보기 구현.피터 B에서.Henderson, 소프트웨어 개발 환경(SDE), 132~140쪽, 1984년

외부 링크