저자:
(1) Amit Seal Ami, 컴퓨터 과학부, William & Mary Williamsburg, 버지니아, 미국 및 이 저자는 이 논문에 동등하게 기여했습니다([email protected]).
(2) 방글라데시 다카 다카 대학교 정보 기술 연구소 Syed Yusuf Ahmed 및 본 저자는 본 논문에 동등하게 기여했습니다([email protected]).
(3) Radowan Mahmud Redoy, 방글라데시 다카 대학교 정보 기술 연구소 및 본 저자는 이 논문에 동일하게 기여했습니다([email protected]).
(4) 미국 버지니아주 William & Mary Williamsburg 컴퓨터 과학부 Nathan Cooper([email protected]);
(5) Kaushal Kafle, 미국 버지니아주 William & Mary Williamsburg 컴퓨터 과학부([email protected]);
(6) Kevin Moran, University of Central Florida 컴퓨터 공학과, 미국 플로리다주 올랜도([email protected]);
(7) Denys Poshyvanyk, 미국 버지니아주 William & Mary Williamsburg 컴퓨터 과학부([email protected]);
(8) Adwait Nadkarni, 미국 버지니아주 William & Mary Williamsburg 컴퓨터 과학부([email protected]).
소프트웨어 엔지니어는 소프트웨어 개발 주기에서 암호화 API 오용 감지기(또는 암호화 감지기)를 낙관적으로 채택하고 있지만 이러한 추진력에는 실제로 cryptoAPI 오용을 찾는 데 있어 암호화 감지기의 효율성에 대한 엄격한 이해가 수반되어야 합니다. 이 데모 문서에서는 MASC(Static Crypto-API 오용 감지기)를 평가하기 위한 돌연변이 분석이라는 도구의 기술적 세부 사항과 사용 시나리오를 제시합니다. 우리는 12개의 일반화 가능한 용도 기반 돌연변이 연산자와 3개의 돌연변이 범위(주 범위, 유사성 범위, 완전 범위)를 개발했습니다. 이는 암호화 API 오용 사례의 컴파일 가능한 변형을 명시적으로 인스턴스화하는 데 사용할 수 있습니다. MASC를 사용하여 우리는 9개의 주요 암호화 탐지기를 평가하고 문서화되지 않은 19개의 고유한 결함을 발견했습니다. 우리는 MASC를 구성 가능하고 사용자 친화적으로 설계했습니다. 사용자는 생성된 돌연변이의 특성을 변경하도록 매개변수를 구성할 수 있습니다. 또한 MASC에는 명령줄 인터페이스와 웹 기반 프런트 엔드가 모두 포함되어 있어 다양한 수준의 전문 지식을 가진 사용자에게 실용적입니다.
코드: https://github.com/Secure-Platforms-Lab-WM/MASC
소프트웨어 엔지니어는 자신이 생성, 개발 및 유지 관리하는 소프트웨어 및 서비스에서 암호화 API의 올바른 사용을 보장하기 위해 수십 년 동안 암호화 탐지기에 의존해 왔습니다[6]. 이러한 암호화 감지기는 IDE(예: Eclipse IDE용 CogniCrypt 플러그인 [8]), Oracle Corporation [9, 17]과 같은 조직의 테스트 제품군 및 지속적인 통합/지속적인 배포(CI)에 통합되어 소프트웨어 엔지니어링에서 어디에나 존재합니다. /CD) 파이프라인 [12, 18]. 또한 GitHub와 같은 호스팅 제공업체는 GitHub Code Scan Initiative[10]와 같은 암호화 탐지기를 공식적으로 프로비저닝하고 있습니다. 즉, 소프트웨어 및 서비스의 보안은 암호화 탐지기에 점점 더 의존하고 있습니다. 그러나 우리는 암호 탐지기의 성능을 평가하기 위해 수동으로 선별한 벤치마크에 의존해 왔으며 이러한 벤치마크는 불완전하고 부정확하며 유지 관리가 불가능한 것으로 알려져 있습니다[16]. 따라서 보안 중심 관점에서 암호화폐 탐지기의 효율성을 결정하려면 암호화 API의 규모와 다양성, 다양한 오용 패턴에 따라 확장할 수 있는 안정적이고 발전하는 평가 기술이 필요합니다.
우리는 정적 Crypto-API 오용 감지기(MASC) 프레임워크를 평가하기 위한 돌연변이 분석을 만들기 위해 돌연변이 테스트 기술을 상황에 맞게 분류했습니다. MASC[3]의 원래 프로토타입 구현에서는 12개의 일반화 가능한 사용 기반 돌연변이 연산자를 내부적으로 활용하여 Java에 대한 암호화 API 오용 사례의 돌연변이를 인스턴스화했습니다. 돌연변이 연산자는 JCA(Java Cryptographic Architecture) [11]의 설계 원칙과 다양한 기술과 의도를 가진 사용자로 구성된 위협 모델을 기반으로 설계되었습니다(섹션 4.1). MASC는 유사성 범위(MDroid+ [13, 14]에서 확장), Exhaustive Scope(𝜇SE [4, 5, 7]에서 확장)라는 세 가지 돌연변이 범위(주입 사이트)에서 Java 또는 Android 기반 앱에 이러한 돌연변이된 오용 사례를 주입합니다. , 그리고 독립적으로 개발된 Main Scope를 사용하여 암호화 API 오용을 포함하는 변형된 애플리케이션을 생성합니다. 우리는 업계와 학계의 9개 암호 탐지기를 평가하여 MASC 프로토타입 구현의 실용성을 입증했으며 암호 탐지기의 범위 내 건전성을 손상시키는 이전에 문서화되지 않은 알려지지 않은 결함 19개를 발견했습니다. MASC의 방법론, 설계 고려 사항, 새로운 결함 발견으로 이어지는 암호화 탐지기 평가, 오픈 소스 애플리케이션에서 발견된 결함의 실제 영향(따라서 돌연변이 연산자의 적용 가능성) 및 결과에 대한 논의에 대한 자세한 내용은 다음에서 확인할 수 있습니다. 원본 연구 논문 [3].
이 백서에서는 보안 연구원, 개발자 및 사용자와 같은 암호 탐지기의 이해관계자를 위한 확장성, 사용 용이성 및 유지 관리성에 초점을 맞춘 MASC 프레임워크의 성숙한 구현을 제시합니다. 자세히 설명하자면, 새로 개발된 플러그인 아키텍처 덕분에 MASC 사용자는 이제 기존 코드 베이스(11𝐾+ 코드 소스 라인)에 깊이 들어가지 않고도 MASC에 쉽게 연결할 수 있는 자신만의 변이 연산자를 만들 수 있습니다. 또한 MASC의 원래 프로토타입 구현에는 암호 탐지기의 반자동 평가가 포함되었지만 우리는 암호 탐지기의 사실상 SARIF [15] 형식 출력을 활용하여 MASC의 작업 흐름을 자동화했습니다. 또한, 우리는 사용자가 진입 장벽을 낮추기 위해 MASC 구현의 웹 기반 프런트 엔드를 만들었습니다. 마지막으로 MASC의 오픈 소스 코드베이스를 재구성하고 리팩토링하여 MASC의 유지 관리성과 확장성을 높였습니다. 이를 통해 MASC의 개발자와 오픈 소스 애호가 모두가 향후 기여와 개선을 더 쉽게 만들 수 있습니다. 이러한 추가 및 개선 사항을 통해 MASC의 현재 오픈 소스 구현이 결함을 찾는 데 사용되어 기존 암호화 탐지기를 개선하는 데 도움이 되기를 바랍니다.
기여 : 우리는 기본 기술, 설계 고려 사항 및 개선 사항에 대한 세부 정보와 함께 암호 탐지기를 평가하기 위해 돌연변이 테스트 기술을 활용하는 사용자 친화적인 프레임워크인 MASC를 제시합니다. MASC의 새로운 주요 기능은 다음과 같습니다. 암호화 탐지기의 자동 평가: MASC는 기본 범위 내의 엔드투엔드 자동화 워크플로에서 암호화 탐지기를 평가하는 데 사용할 수 있습니다.
암호화 탐지기의 사용자 정의 가능한 평가: 사용자는 암호화 API 오용 인스턴스를 생성하기 위한 돌연변이 연산자를 지정하여 암호화 탐지기의 평가를 사용자 정의할 수 있습니다.
맞춤형 연산자를 위한 플러그인 아키텍처 : MASC는 보안 연구원, 개발자 및 사용자가 배우고 이해할 필요 없이 기본 범위에 직접 연결할 수 있는 자체 맞춤형 돌연변이 연산자를 만들어 암호화 탐지기 평가에 바로 뛰어들 수 있도록 지원합니다. MASC의 내부 세부 사항에 대해.
최종 사용자를 위한 사용자 친화적인 프런트엔드 : 원래 프로토타입 구현의 명령줄 인터페이스를 향상하는 것 외에도 로컬에서 실행할 수 있는 최종 사용자를 위한 오픈 소스 웹 기반 프런트엔드를 만들고 도입합니다. 프런트 엔드에는 추가 플레이-테스트-학습 인터페이스인 MASC Lab이 포함되어 있습니다. 여기서 이해 관계자는 돌연변이 연산자와 상호 작용하고 암호화 API 오용 변형에 대해 배울 수 있습니다.
도구 및 데이터 가용성: MASC 프레임워크의 프로토타입 구현, 스크립트 및 암호 탐지기 평가 결과,
원본 논문 [3]에 설명된 대로 MASC Artifact [1]에서 사용할 수 있습니다. 또한 적극적으로 유지 관리되고 성숙한 MASC 구현의 코드베이스는 광범위한 문서 및 예제와 함께 별도로 제공됩니다 [2].
이 문서는 CC BY-NC-SA 4.0 DEED 라이센스에 따라 arxiv에서 볼 수 있습니다 .