OSINT: Persistent Threat Monitoring with Google Programmable Search Engines

Ervin Zubic
OSINT Ambition
Published in
5 min readMar 11, 2024

--

Cut through the noise of online threats! Discover how Google’s free search tools can be your secret weapon for targeted threat monitoring.

Cyber Sentinel. Image created using DALL-E.

Sophisticated threat monitoring tools are vital for many intelligence professionals. But what if you’re a smaller operation, need a supplementary solution, or struggle to keep up with the constant flow of online threat chatter? There’s a surprisingly effective and often underutilized tool for persistent threat monitoring: Google Programmable Search Engines (PSEs). These customizable tools can help you pinpoint the specific threats relevant to your organization, transforming overwhelming web data into actionable intelligence. Best of all, they’re free or extremely low-cost. Let’s dive into how you can harness them!

What are Google Programmable Search Engines (PSE)?

Google Programmable Search Engines (PSE) are a powerful tool that allows developers to customize search queries and access results through an API. This enables you to build applications that search for specific information across the vast web or very specific websites.

Screenshot of the ‘Create a new search engine’ page on Google’s Programmable Search Engine platform with fields to name the search engine and specify the sites or pages to search.
Figure 1. Screenshot of the ‘Create a new search engine’ page on Google’s Programmable Search. Source: Captured by the author.

Using PSE for Persistent Threat Monitoring

Persistent threat monitoring (PTM) involves continuous vigilance against potential threats. PSE can be a valuable asset for PTM by allowing you to create custom searches that focus on specific indicators of compromise (IOCs) or threat actor tactics, techniques, and procedures (TTPs). These searches can be automated to run regularly, delivering real-time threat updates.

Example: Monitoring APT Actor Communication Channels

Imagine you’re an intelligence analyst tracking a known Advanced Persistent Threat (APT) group. You suspect they use specific online forums to communicate and plan attacks. Here’s a sample advanced PSE query to monitor these forums:

(site:forum1.com OR site:forum2.net) ( “malware” OR “exploit” OR “zero-day”) ( “APT1” OR “Group X” ) in:title OR in:body

Google search bar displaying a complex query for monitoring cyber threats on specific forums with keywords for malware, exploits, and APT groups. Image Description: The image shows the Google homepage with a search query entered into the search bar. The query includes operators and terms for a targeted search, looking for malware, exploits, or zero-day vulnerabilities mentioned in connection with APT1 or Group X within two specific forums, searching in both titles and body.
Figure 2. Google search bar displaying a complex query for monitoring cyber threats on specific forums with keywords for malware, exploits, and APT groups. Source: Captured by the author.

Let’s Understand This Search Query

  • (site:forum1.com OR site:forum2.net) restricts the search to specific forums frequented by the APT group.
  • ( “malware” OR “exploit” OR “zero-day”) searches for keywords related to their potential attack methods.
  • ( “APT1” OR “Group X” ) targets mentions of the APT group by their known aliases.
  • in:title OR in:body ensures the keywords appear in the title or body of the forum posts.

This advanced query focuses on discussions containing a combination of technical terms and APT group references, potentially revealing their attack plans or discussions of new tools.

Automating the Search Using Python

Google Programmable Search Engines offer an API for programmatic interaction and result retrieval. You’ll need a Google Cloud project and an API key to use the API-based approach. Obtain your API keys from the Google Cloud Console.

Simple Python Script for Programmable Search Engines API

Screenshot of a Python script for searching threat forums using Google Custom Search JSON API, highlighting the import statements, functions, and an example usage with placeholder API keys.
Figure 3. Sample Python Script Using Requests. Source: Authors terminal.

Python Code Review

  • Requests: This popular library is used for sending HTTP requests.
  • URL Encoding: quote_plus from urllib.parse is used to safely encode the query terms for inclusion in a URL.
  • Error Handling: A basic check for a successful response (status code 200) is implemented.
  • Loop: The while True: loop allows for continuous monitoring at a set interval.
  • Time Delay: time.sleep(60) pauses the script for 60 seconds between searches.

Important Note

  • Replace YOUR_PROJECT_ID and YOUR_API_KEY with the credentials you obtained from Google Cloud Platform.
  • Replace the placeholder query with your actual search query.
  • This script retrieves basic information. You’ll need additional code to parse and analyze the search results fully.
  • Adjust the time.sleep value to suit your search frequency needs.
  • You can set up multiple custom search queries within a single account.
  • Be mindful of Google Custom Search API usage limits and quotas.
  • The Custom Search JSON API includes a free tier of 100 daily queries. Enabling billing in the API Console allows you to upgrade for $5 per 1000 additional queries (up to 10,000 per day).

Remember: Ethical considerations are crucial when using OSINT tools. Always comply with website terms of service and avoid scraping data illegally.

Conclusion

This example showcases how to use Google PSE for advanced threat monitoring. Analysts can streamline threat intelligence gathering and stay ahead of adversaries by customizing search queries and automating the monitoring process.

Enhance and automate your blockchain threat monitoring with Python, Web3, Etherscan, and Infura APIs to track Tornado Cash activity and new contracts. Read my article, “Elevate Your Blockchain Security: Python Techniques to Monitor Tornado Cash and New Contracts”.

New to Google PSE and the Google API Console? Learn how to integrate the Google Search API with Python in this clear, 15-minute tutorial. The video’s recent release ensures all steps are current.

Automate Google Search API in Python. Source; NeuralNine on YouTube.

Now, it’s your turn! Start experimenting with Google PSE to create your own targeted threat-monitoring queries. Have you uncovered valuable insights using PSE? Share your experiences and help others in the OSINT community!

Explore Next

Want to explore the dark web without the coding hassle? Check out this article:

Discover how blockchain is transforming industries on the Blockchain Insights Hub. Follow me on Twitter for real-time updates on the intersection of blockchain and cybersecurity. Subscribe now to get my exclusive report on the top blockchain security threats of 2024. Dive deeper into my blockchain insights on Mirror.xyz.

--

--

My name is Ervin Zubic I am the founder of blockquiry, a St. Petersburg-based company developing fraud detection tools and anti-cybercrime applications.