PyGeoFetch

v0.1.4 suspicious
6.0
Medium Risk

Universal satellite data download pipeline with unified access to 20+ repositories

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package exhibits moderate risk due to potential obfuscation and credential handling issues, though legitimate network calls and lack of shell execution reduce immediate concerns.

  • High obfuscation risk through base64 decoding
  • Potential insecure handling of credentials
Per-check LLM notes
  • Network: The package makes legitimate network calls to an API endpoint, which is typical for a geospatial data fetching tool like 'PyGeoFetch'.
  • Shell: No shell execution patterns were detected in the provided code snippets.
  • Obfuscation: The use of base64 decoding without clear justification may indicate an attempt to hide code logic.
  • Credentials: Accessing keyring for password retrieval suggests potential interaction with user credentials, requiring careful review to ensure proper handling and security.
  • Metadata: The repository is not found, and the maintainer has only one package, which could indicate a new or less active account, raising some suspicion.

🔬 Heuristic Checks

⚠ Outbound Network Calls score 7.5

Found 5 network call pattern(s)

  • ll(): response = requests.get("https://api.example.com/data") response.raise_
  • :.1f} MB" } httpx.post(url, json=payload, timeout=10) except Exception as exc:
  • try: resp = httpx.get(url, timeout=8) if resp.status_code < 400:
  • try: resp = httpx.get(f"{self.BASE_URL}/search", params=params, headers=headers,
  • try: response = httpx.post( f"{self.BASE_URL}/search",
⚠ Code Obfuscation score 8.0

Found 4 obfuscation pattern(s)

  • decoded[k] = base64.b64decode(v.encode()).decode() except Excepti
  • d"): token = base64.b64decode(token).decode() return token except Ex
  • == "fish": line = f"eval (env _pygeofetch_COMPLETE=fish_source {prog})" cfg =
  • a` object if eval(expression, {"data": item, "__builtins__": {}}): # noqa: S3
✓ Shell / Subprocess Execution

No shell execution patterns detected

⚠ Credential Harvesting score 2.5

Found 1 credential access pattern(s)

  • t keyring data = keyring.get_password(self.SERVICE_NAME, provider) if data:
✓ Typosquatting

No typosquatting candidates detected

✓ Registered Email Domain

No author email provided

✓ Suspicious Page Links

All external links appear legitimate

⚠ Git Repository History score 3.0

Repository not found (deleted or private)

  • Repository not found (deleted or private)
⚠ Maintainer History score 2.0

1 maintainer concern(s) found

  • Author "pygeofetch Contributors" appears to have only 1 package on PyPI (new or inactive account)
✓ Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

💡 AI App Starter Prompt

Use this prompt to build a project with PyGeoFetch
Develop a small but impactful application using the PyGeoFetch Python package, which provides a universal satellite data download pipeline with unified access to over 20 repositories. Your task is to create a 'Satellite Data Explorer', a command-line tool that allows users to query, download, and visualize satellite data easily.

### Features:
1. **Data Querying**: Users should be able to search for specific types of satellite data by specifying parameters such as date range, geographic coordinates, and type of data (e.g., imagery, climate data).
2. **Download Mechanism**: Once the data is queried, the user should have the option to download the selected datasets directly from the satellite repositories through PyGeoFetch.
3. **Visualization**: After downloading, the application should provide basic visualization capabilities to display the downloaded satellite data. This could include plotting maps with overlays for various types of data.
4. **User Interface**: Design a simple yet effective command-line interface (CLI) that guides users through the process of querying, downloading, and visualizing satellite data.
5. **Documentation**: Include comprehensive documentation within the project that explains how to install PyGeoFetch, how to use the CLI tool, and any additional setup instructions required.

### Utilization of PyGeoFetch:
- Use PyGeoFetch's API to interact with multiple satellite data repositories seamlessly.
- Implement functions within your application that utilize PyGeoFetch to fetch metadata about available datasets, allowing users to specify their queries more accurately.
- Integrate PyGeoFetch's download functionality into your application to handle the downloading of selected datasets.
- Ensure that your application leverages PyGeoFetch's capabilities to support a wide variety of satellite data types and formats.

Your goal is to create a versatile and user-friendly tool that makes it easy for anyone interested in satellite data to explore and analyze it without needing extensive technical knowledge.

💬 Discussion Feed

Leave a comment

No discussion yet. Be the first to share your thoughts!