PyPI 저장소에 잠재적으로 안전하지 않은 코드가 포함되어 있습니다.

투르쿠 대학의 연구원들 (핀란드) 알려졌다 최근에 분석 결과 그들은 저장소의 패키지에 대해 수행했습니다. PyPI에 의해 취약성을 생성할 수 있는 잠재적으로 위험한 구조의 사용을 위해. 라는 분석에서 약 197.000개의 패키지가 수행되었으며 749.000개의 잠재적 보안 문제가 식별되었습니다.

즉, 패키지의 46%는 이러한 문제 중 하나 이상을 가지고 있으며 그 중 가장 일반적인 문제는 예외 처리 및 코드 대체 기능 사용과 관련된 문제입니다.

확인된 749개의 문제 중 442개 (41%) 미성년자로 표시, 227(30%) 보통 위험 그리고 80(11%)은 위험합니다.

데이터 세트는 Python 패키지 색인(PyPI)에 저장된 모든 패키지의 스냅샷을 기반으로 합니다.

예외 처리 및 다른 코드 삽입과 같은 문제 유형의 관점에서 가장 일반적인 문제였습니다. 그런 의미에서 쓰레드 모듈이 눈에 띈다. 일반적으로 작은 패킷 크기를 반영하여 소프트웨어 크기 메트릭은 분석을 통해 밝혀진 문제의 수를 잘 예측하지 못합니다. 

일부 패키지는 비정상적이며 수천 가지 문제가 포함되어 있습니다.: 예를 들어, 주로 "try-except-pass" 구문의 사용과 관련된 PyGGI 패키지에서 2589개의 문제가 발견되었고, appengine-sdk 패키지에서 2356개의 문제가 발견되었습니다. genie.libs.ops, pbcore, genie.libs.parser 패키지에도 많은 문제가 있습니다.

결과는 특정 구조의 적용 컨텍스트를 고려하지 않은 자동화된 정적 분석을 기반으로 얻어졌다는 점에 유의해야 합니다.

코드를 스캔하는 데 사용되었던 Bandit 개발자가 제안한 많은 수의 오탐으로 인해 l스캔 결과는 취약점으로 간주될 수 없습니다. 각 문제에 대한 추가 수동 검토 없이 직접.

예를 들어, 파서는 신뢰할 수 없는 난수 생성기 및 MD5와 같은 해싱 알고리즘의 사용을 보안 문제로 간주하는 반면, 코드에서는 이러한 알고리즘이 보안에 영향을 미치지 않는 목적으로 사용될 수 있습니다.

분석기는 또한 모든 외부 데이터 처리가 pickle, yaml.load, subprocess 및 eval과 같은 안전하지 않은 기능에서 문제 야, 하지만 이 사용이 반드시 취약점과 연관되는 것은 아니며, 실제로 이러한 기능의 사용은 보안 위협 없이 구현되는 문제가 될 수 있습니다.

연구에 사용된 대조군:

  • 잠재적으로 안전하지 않은 함수 exec, mktemp, eval, mark_safe 등의 사용
  • 파일 액세스 권한의 안전하지 않은 구성.
  • 네트워크 플러그를 모든 네트워크 인터페이스에 연결합니다.
  • 암호 및 암호화된 키 사용.
  • 사전 정의된 임시 디렉토리 사용.
  • catch-all 스타일 예외 처리기에서 전달 및 계속 사용.
  • 디버깅 모드가 활성화된 Flask 웹 프레임워크를 기반으로 웹 애플리케이션을 시작합니다.
  • 안전하지 않은 방법을 사용하여 데이터를 역직렬화합니다.
  • MD2, MD4, MD5 및 SHA1 해시 함수 사용.
  • 안전하지 않은 DES 암호 및 암호화 모드 사용.
  • 일부 Python 버전에서 안전하지 않은 HTTPSConnection 구현 사용.
  • 파일 지정: // urlopen의 스키마.
  • 암호화 작업을 수행할 때 의사 난수 생성기를 사용합니다.
  • 텔넷 프로토콜 사용.
  • 안전하지 않은 XML 파서를 사용합니다.

또한 PyPI 디렉터리에서 8개의 악성 패키지 탐지에 대해 언급했습니다. 문제 패키지는 제거되기 전에 30번 이상 다운로드되었습니다. 악의적인 활동을 숨기고 패키지에 대한 간단한 정적 파서 경고를 피하기 위해 Base64 형식을 사용하는 코드로 블록 인코딩을 사용하고 eval을 호출하여 디코딩 후 실행을 준비했습니다.

Noblesse, Genesisbot에서 발견된 코드는 Chrome 및 Edge 브라우저에 저장된 신용 카드 번호와 비밀번호를 가로채고 Discord 애플리케이션에서 계정 토큰을 전송하고 스크린샷을 포함하여 시스템에서 데이터를 전송하는 suff, noblesse2 및 noblessev2 패키지입니다. 화면 콘텐츠의. ... pytagora 및 pytagora2 패키지에는 타사 실행 코드를 다운로드하고 실행할 수 있는 기능이 포함되어 있습니다.

최종적으로 그것에 대해 더 많이 알고 싶다면, 당신은 세부 사항을 확인할 수 있습니다 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.