toplogo
登入

비밀번호로 보호되는 자산을 탐지하는 정적 분석 도구: AssetHarvester


核心概念
AssetHarvester는 소프트웨어 아티팩트에서 비밀번호로 보호되는 자산 정보를 제공하여 개발자들이 중요한 자산을 우선적으로 제거할 수 있도록 돕는다.
摘要
본 연구에서는 소프트웨어 아티팩트에서 비밀번호로 보호되는 자산을 탐지하기 위한 정적 분석 도구 AssetHarvester를 제안한다. 먼저, 비밀번호와 자산이 소스 코드 내에서 어떤 패턴으로 공존하는지 4가지 유형을 확인하였다. 이를 바탕으로 AssetHarvester는 패턴 매칭, 데이터 흐름 분석, 빠른 근사 휴리스틱 등 3가지 접근법을 활용하여 비밀번호-자산 쌍을 탐지한다. AssetHarvester는 1,791개의 비밀번호-자산 쌍 벤치마크 데이터셋(AssetBench)에 대해 97%의 정확도, 90%의 재현율, 94%의 F1-score를 달성했다. 데이터 흐름 분석은 false positive 없이 비밀번호-자산 쌍을 탐지할 수 있었으며, 빠른 근사 휴리스틱은 다른 접근법으로 탐지할 수 없는 자산을 찾아내는 데 도움이 되었다. 본 연구 결과는 비밀번호로 보호되는 자산 정보를 제공함으로써 개발자들이 중요한 자산을 우선적으로 제거할 수 있도록 돕는다. 또한 데이터 흐름 분석을 통해 비밀번호와 자산의 모든 구성 요소를 하나의 그룹으로 탐지할 수 있으며, 이를 통해 비밀번호 탐지 도구의 재현율을 향상시킬 수 있다.
統計資料
비밀번호로 보호되는 자산 중 공개 IP 주소는 실제 자산이며, localhost는 비민감 자산이다. 데이터베이스 자산 식별자는 호스트, 포트, 데이터베이스 이름 등 여러 부분으로 구성될 수 있으며, 이들이 동일한 줄, 별도의 줄, 또는 하나의 문자열에 정의될 수 있다.
引述
"GitGuardian은 2023년 개발자들이 공개 GitHub 저장소에서 1,200만 개 이상의 비밀번호를 유출했다고 보고했으며, 이는 2021년 대비 113% 증가한 수치이다." "기존 비밀번호 탐지 도구들은 25%-99%의 높은 false positive 비율로 인해 개발자들이 경고를 무시하게 되는 문제가 있다."

從以下內容提煉的關鍵洞見

by Setu Kumar B... arxiv.org 03-29-2024

https://arxiv.org/pdf/2403.19072.pdf
AssetHarvester

深入探究

질문 1

비밀번호로 보호되는 자산 이외에 다른 유형의 자산(API 서비스, 비데이터베이스 서버 등)을 탐지하기 위해 AssetHarvester를 어떻게 확장할 수 있을까?

답변 1

AssetHarvester를 다른 유형의 자산을 탐지할 수 있도록 확장하는 방법은 다양합니다. 먼저, API 서비스와 관련된 자산을 탐지하기 위해 API URL의 특정 형식에 대한 정규식을 추가할 수 있습니다. 각 API에 대한 정규식을 작성하고 기존의 정규식 목록에 추가하여 해당 API의 URL을 식별할 수 있습니다. 또한, 비밀번호가 API URL에 직접적으로 포함되지 않을 경우, 해당 비밀번호와 해당 API URL이 HTTP 요청 클라이언트에 전달되므로 데이터 흐름 분석을 통해 이러한 값들이 전달되는 것을 식별할 수 있습니다. 또한, 비데이터베이스 서버와 같은 자산을 탐지하기 위해서는 해당 서버의 연결 문자열 형식을 파악하고 해당 형식에 맞는 정규식을 작성하여 추가할 수 있습니다. 이를 통해 비데이터베이스 서버의 자산을 식별할 수 있습니다.

질문 2

비밀번호-자산 쌍이 Git 커밋 히스토리에 걸쳐 존재할 경우, 데이터 흐름 분석을 어떻게 수행할 수 있을까?

답변 2

비밀번호-자산 쌍이 Git 커밋 히스토리에 걸쳐 존재할 때 데이터 흐름 분석을 수행하기 위해선 GitPython과 같은 Python 라이브러리를 사용하여 커밋 히스토리를 탐색할 수 있습니다. 데이터 흐름 분석을 위해 CodeQL과 같은 도구를 사용하여 Python 소스 코드의 데이터 흐름을 모델링하고 데이터 흐름 그래프를 생성할 수 있습니다. 이를 통해 데이터 흐름 그래프를 통해 비밀번호와 자산이 특정 함수로 전달되는 것을 식별할 수 있습니다. 또한, 데이터 흐름 분석을 통해 비밀번호와 자산이 어떻게 전달되는지를 시각적으로 확인하고 이를 통해 Git 커밋 히스토리에 걸쳐 존재하는 비밀번호-자산 쌍을 식별할 수 있습니다.

질문 3

비밀번호-자산 쌍 탐지 외에 개발자들이 비밀번호 관리 시 직면하는 다른 어려움은 무엇이 있을까?

답변 3

비밀번호 관리 시 개발자들이 직면하는 다른 어려움은 주로 다음과 같습니다. 첫째, 비밀번호를 안전하게 저장하고 관리하는 것이 어려울 수 있습니다. 안전한 비밀번호 저장소를 구축하고 비밀번호를 안전하게 전달하는 방법을 결정하는 것은 중요한 문제입니다. 둘째, 비밀번호를 회전하고 업데이트하는 프로세스를 효과적으로 관리하는 것도 어려울 수 있습니다. 비밀번호를 주기적으로 변경하고 업데이트하는 것은 보안을 유지하는 데 중요하지만, 이를 자동화하고 추적하는 것은 복잡할 수 있습니다. 셋째, 다양한 시스템 및 서비스에 대한 비밀번호를 일관되게 관리하는 것도 어려울 수 있습니다. 여러 시스템 및 서비스에 대한 비밀번호를 일관되게 관리하고 업데이트하는 것은 도전적인 작업일 수 있습니다. 이러한 어려움을 극복하기 위해 비밀번호 관리 도구 및 정책을 효과적으로 구현하는 것이 중요합니다.
0
visual_icon
generate_icon
translate_icon
scholar_search_icon
star