Skip to content

GPThreatIntel-Summarizer is a Python tool that uses OpenAI models and CTI to automate report summarization. Extract key insights from CTI reports, generate concise summaries.

Notifications You must be signed in to change notification settings

nitroz3us/GPThreatIntel-Summarizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPThreatIntel-Summarizer

GPThreatIntel-Summarizer is a Python-based repository that leverages the power of OpenAI's GPT (Generative Pre-trained Transformer) models to provide an automated summarization solution for Cyber Threat Intelligence (CTI) reports. This tool simplifies the process of extracting key insights from CTI reports, enabling cyber threat analysts to generate concise and informative summaries for upper management.

Key Features

  • Utilizes OpenAI GPT models for natural language processing and summarization tasks.
  • Extracts relevant text from CTI reports using BeautifulSoup & pdfplumber.
  • Generates summarized reports based on user-defined length or word count.
  • Extracts Indicators of Compromise (IOCs) and Tactics, Techniques, and Procedures (TTPs) from reports.
  • Provides an intuitive web interface powered by FastAPI for easy interaction and display of results.

Getting Started (Locally)

To get started with GPThreatIntel-Summarizer, follow these steps:

  1. Clone the repository:

    git clone https://github.com/yourusername/GPThreatIntel-Summarizer.git
  2. Install the required dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python app.py
  4. Access the web interface in your browser at http://localhost:5001.

Getting Started (Online)

  1. Access the web interface in your browser at https://gp-threat-intel-summarizer.vercel.app/

Usage

  • Enter your OpenAI API Key, which can be found here
  • Enter the URL or paste the text content of the CTI report in the provided text field.
    • Alternatively, you can upload a PDF file.
  • Choose your GPT Model.
  • Specify the desired length or word count for the summary.
  • Click the "Summarize" button to generate a summary of the report.
  • The extracted IOCs and TTPs will be displayed below the summarized report.

Screenshot

screenshot

Future Developments

  • Parse IOC's from an image
  • Use LangChain to help with the text-embedding & vectors

Why am I doing this?

  • Wanted to try out OpenAI API & FastAPI

Technologies Used

  • OpenAI
  • FastAPI
  • TailwindCSS

Limitations

  • OpenAI Model has its limitations, such as the number of tokens (words) it can process. The base model is GPT 3.5 Turbo and it has a token limit (words) of 4097 tokens.
    • Therefore, if the text content that users want to send to the model is larger than 4097 tokens (words), the model would not be able to process it.

Workarounds/Solutions to the limitations

  1. Implement text embedding (on my developer end, which is me)
  2. Use a different OpenAI model, e.g. GPT3.5 Turbo (16k), GPT4

Contributing

Contributions are welcome! If you have any suggestions, bug reports, or feature requests, please open an issue or submit a pull request.

License

This project is licensed under the MIT License.

GPThreatIntel-Summarizer empowers cybersecurity professionals to efficiently analyze and communicate critical CTI findings, enhancing decision-making processes and improving organizational security.

About

GPThreatIntel-Summarizer is a Python tool that uses OpenAI models and CTI to automate report summarization. Extract key insights from CTI reports, generate concise summaries.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published