← 최신 논문
💻 computer science

PickleFuzzer: A Case Study in Fuzzing for Discrepancies Between Python Pickle Implementations

본 논문은 Hugging Face 와 같은 플랫폼에서 보안 스캔 도구를 우회할 수 있는 취약점을 포함하여 파이썬의 pickle 구현체 간 14 가지 중요한 불일치를 식별하는 문법 기반 차등 퍼저인 PickleFuzzer 를 소개한다.

원저자: Justin Applegate, Andreas Kellas

게시일 2026-05-15
📖 3 분 읽기☕ 가벼운 읽기

원저자: Justin Applegate, Andreas Kellas

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신의 집 안의 어떤 물건—장난감, 책, 또는 샌드위치든—을 긴 지시 문자열 (레시피와 같은) 로 변환할 수 있는 마법 기계가 있다고 상상해 보세요. 이것이 파이썬의 Pickle이 하는 일입니다: 복잡한 컴퓨터 데이터를 저장하거나 인터넷을 통해 전송할 수 있도록 지시 문자열로 변환합니다. 나중에 다른 기계가 그 지시들을 읽어 원래의 물건을 정확히 다시 재구성합니다.

하지만 함정이 있습니다. 누군가 스스로 만들어낸 "레시피"를 당신에게 보내고, 당신이 그것을 맹목적으로 따를 경우, 그 레시피는 당신의 기계에게 파일을 삭제하거나 비밀번호를 훔치는 것과 같은 위험한 행동을 지시할 수 있습니다. 이 때문에 보안 전문가들은 당신의 기계가 레시피를 읽기 전에 이를 검사하는 스캐너 (공항의 금속 탐지기 같은) 를 만들었습니다. 스캐너가 위험한 지시를 발견하면 프로세스를 중단시킵니다.

문제: 세 명의 다른 셰프, 세 가지 다른 규칙

여기 반전이 있습니다: "레시피 리더" (Pickle 을 읽는 기계) 를 만든 사람들은 단일한 규칙서를 작성하지 않았습니다. 대신 그들은 리더의 세 가지 다른 버전을 만들었습니다:

  1. 셰프 A (Python): 표준 언어인 파이썬으로 작성됨.
  2. 셰프 B (C): 더 빠르고 저수준 언어인 C 로 작성됨.
  3. 셰프 C (검사관): 보안 스캐너가 다른 셰프들이 레시피를 조리하기 전에 레시피를 읽는 데 사용하는 도구.

문제는 이 세 명의 셰프가 무엇이 유효한 레시피인지에 대해 항상 동의하지 않는다는 것입니다. 때로는 특정 지시가 셰프 A 와 셰프 B 에게 "오, 괜찮아, 내가 조리할게"라고 말하게 하는 반면, 셰프 C (검사관) 는 "잠깐, 그게 고장 났어! 나는 이걸 읽을 수 없어"라고 말합니다.

해커가 이를 안다면, 검사관에게는 고장 난 것처럼 보이게 (그래서 보안 스캐너를 통과하게) 하지만 셰프 A 나 셰프 B 에게는 완벽하게 정상처럼 보이게 (그들이 기꺼이 위험한 명령을 실행하게) 만드는 "독이 든 레시피"를 만들 수 있습니다. 이는 경비원에게는 의심스러운 가짜 신분증을 보여 통과하게 만든 뒤, 안쪽의 바운서에게는 진짜 신분증을 보여 들어오게 하는 것과 같습니다.

해결책: PICKLEFUZZER

이 논문에서 연구자들은 PICKLEFUZZER라는 도구를 만들었습니다. 이를 초고속 자동 시식자로 생각하세요.

규칙서를 읽고 셰프들이 어디서 의견이 다를지 추측하는 인간을 고용하는 대신, PICKLEFUZZER 는 다음과 같이 작동합니다:

  1. 무작위 레시피 생성: 셰프들을 연구하여 알아낸 특수한 문법 (규칙 집합) 을 사용하여 수백만 개의 무작위이며 유효해 보이는 지시 문자열 (레시피) 을 생성합니다.
  2. 모든 셰프에게 제공: 정확히 동일한 레시피를 셰프 A, 셰프 B, 셰프 C 에게 동시에 건넙니다.
  3. 반응 확인: 한 셰프가 충돌하거나, 화를 내거나 (오류를 발생시키거나), 다른 셰프들과 다른 결과로 끝나는지 주의 깊게 관찰합니다.

셰프 C 가 "오류!"라고 말하지만 셰프 A 가 "맛있어!"라고 말하면, PICKLEFUZZER 는 그 레시피를 불일치로 표시합니다. 이는 "정답"을 알 필요가 없습니다. 셰프들이 의견이 다르면 보안 구멍이 있다는 것만 알면 됩니다.

그들이 발견한 것

연구자들은 이 도구를 일주일 동안 실행하여 셰프들이 의견이 다른 14 가지 다른 방법을 발견했습니다.

  • 주요 성과: 이 불일치 중 네 가지는 치명적이었습니다. 해커가 이를 사용하여 AI 모델을 공유하는 인기 웹사이트 (Hugging Face 등) 의 보안 스캐너를 속여 위험한 코드를 통과시킬 수 있음을 증명했습니다.
  • 보상: 연구자들은 파이썬 팀에게 이러한 구멍을 알렸습니다. 또한 보안 결함 발견에 대한 보상 시스템인 버그 바운티 프로그램에도 보고하여 750 달러를 받았습니다.
  • 속도 vs 인간: 그들의 도구가 얼마나 우수한지 보여주기 위해, 그들은 인간 보안 전문가와 비교했습니다. 인간은 코드를 수동으로 읽는 데 60 시간을 소비하여 14 개의 불일치를 발견했습니다. PICKLEFUZZER 는 동일한 수의 불일치를 단 10 분 만에 발견했습니다.

결론

이 논문은 단일한 공식 규칙서 없이 보안 도구의 여러 버전을 사용할 때, 필연적으로 의견 불일치가 발생함을 보여줍니다. 이러한 불일치는 해커가 악용할 수 있는 댐의 균열과 같습니다. PICKLEFUZZER는 소프트웨어의 서로 다른 버전들이 언제 서로 동의하지 않는지 확인함으로써 이러한 균열을 자동으로 찾는 새로운 빠른 방법이며, 나쁜 행위자들이 이를 악용하기 전에 패치하는 데 도움을 줍니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →