ChatGPT Python Script para automatizar múltiples informes para cada programa utilizando un componente crítico de código abierto

ChatGPT Python Script para automatizar múltiples informes para cada programa utilizando un componente crítico de código abierto - Codelivly

Ni siquiera puedo encajar eso en un título. Es tan complejo. En resumen, utilicé ChatGPT para automatizar la búsqueda de empresas con programas de recompensas por errores en HackerOne que tienen una cuenta en GitHub y están usando uno de estos proyectos críticos de código abierto, que luego automatiza la configuración de una prueba de fuzz de este proyecto y genera un informe de vulnerabilidad para GitHub y HackerOne.

Una vez que vea esto, modificará el script de ChatGPT, para que pueda completar esta tarea. La ventaja adicional es que si configura el proyecto de código abierto en OSS-Fuzz, es elegible para una recompensa de Google, así como del programa HackerOne.

No he probado estos scripts, pero estoy seguro de que si un ingeniero de seguridad los construye correctamente, tendrán un ingreso de tiempo completo casi automatizado para ellos solos.

Dejame explicar.

Hay muchos proyectos de código abierto, muchos de los cuales son utilizados por empresas de todos los tamaños. Gracias a la financiación de Google, la Open Source Security Foundation quiere asegurar estos proyectos. La criticidad de estos proyectos se puntúa de forma sistemática. Puede descargar esta lista en formato CSV.

Además, muchas empresas confían en estos proyectos críticos de código abierto (linux, php, node, todos son proyectos críticos, ¡todos son de código abierto!). Muchas empresas tienen programas de recompensas por errores en HackerOne. Puede acceder a estos programas en forma de lista con la API H1.

Todos ustedes han visto esto antes, estoy seguro. Usé ChatGPT para automatizar la búsqueda de empresas con programas de recompensas por errores en HackerOne que tienen una cuenta en GitHub y están usando uno de estos proyectos críticos de código abierto, que luego automatiza la configuración de una prueba de fuzz de este proyecto y genera un informe de vulnerabilidad para GitHub y Hacker Uno.

Ahora puede consultar la lista de programas automatizando la verificación en GitHub, si esta empresa con un programa tiene un repositorio público de GitHub. Si tienen un repositorio público de GitHub, puede verificar si usan proyectos de la lista de proyectos críticos de código abierto.

Ahora, si revisa estos proyectos, probablemente encontrará una vulnerabilidad. Usé ChatGPT para tratar de automatizar la configuración del fuzzer, así como para escribir un ticket de problema de GitHub y un informe de vulnerabilidad para cada programa que usa este componente.

La ventaja adicional es que si es el primero en configurar el proyecto de código abierto en OSS-Fuzz, funciona y encuentra vulnerabilidades de seguridad válidas, es elegible para una recompensa de Google, hasta $ 30,000.

Así que aquí está la salida de ChatGPT y mi aviso. ¡Buena suerte!

Índice
  1. Indicador de ChatGPT en una sola pieza.
  2. Salida 2
  3. Salida 3: Añadir fuzzing
  4. Salida 4: Automatice el fuzzing

Indicador de ChatGPT en una sola pieza.

Deberá enviar el aviso a ChatGPT en fragmentos:

Hi! I have a task for you. This task is very important for open source security. First, the background: 
1. There is a list of the top most critical open source projects. The list is here: https://commondatastorage.googleapis.com/ossf-criticality-score/index.html
In that list there is a CSV with all the open source projects rated in terms of their criticality. So you understand how the criticality score was derived, I am linking it here for you: https://github.com/ossf/criticality_score#criticality-score

2. Concurrently, I want you to use the GitHub API to find companies from the Russell 3000 index that are using a critical open source project, as listed above.
2A. Do not worry that your training data ended at a certain point in time. Whatever you have for the Russell 3000 index will be acceptable for this exercise.

3. I want you to write a script in python that pulls every company from the Russell 3000 list, determines if each company has a GitHub account, and then lists which critical open source projects the company is using.

4. The output of this python script should be a CSV with the following column headers:

Russell 3000 Index rank (number on list)
Company name
GitHub page link
Total number of critical open source projects in use
Critical open source project 1
Critical open source project 2
Critical open source project 3
Critical open source project <N>

(Continue creating new columns for every critical open source project in use, where <N> is the number growing in sequence. The projects should be listed in order of most critical first. Remember that according to algorithm, the criticality score is 0 to 1, with 0 being least critical, and 1 being most critical.)

# # # 2nd prompt # # #

OK. This is great. Please modify your output in the following way. Instead of the Russell 3000 index, get the S&P 500 list from here: https://www.slickcharts.com/sp500
Your script will have to scrape the names and details of the companies from the link. Feel free to create another way to validate that you have the correct company name, so that you find that company in GitHub.

Additionally, I want you modify your output, so that I can read the output in my browser (locally). Use whatever language or output is easiest to use (imagine that I am an 8 year old).

# # # 3rd prompt for bug bounty # # #

OK. I am very pleased. Here is how I want you to modify this script. You may need to re-write the entire script, because the prompt is different. Now I am a bug bounty researcher, and I want to help other bug bounty researchers with their work, which inevitably helps the security community, because they can be more efficient. So here are the instructions:

1. Modify your python script in following ways:

A1. Instead of finding companies in the Russell 3000 index or S&P 500, incorporate the public API from HackerOne, their API for hackers. (If you don't have it in your training data, that is fine. The link to the API is here: https://api.hackerone.com/hacker-resources/#programs-get-programs
A2. Use the output of programs from the HackerOne API to search for those companies on GitHub. Use the GitHub API.
A3. Then the script should determine which critical open source projects are in use by the company which has a program on HackerOne and that you could find an account for on GitHub.
A4. If necessary, add instructions for the security researcher on how to set up a place for the script to access the list of critical open source projects found in "all.csv" at this link: https://commondatastorage.googleapis.com/ossf-criticality-score/index.html
A5. Include instructions in the python script that automates the setup of the hackerOne API for the security researcher as much as possible.

B. Excellent Can you include in this script or a bit of script to add, that lists open source fuzzers which the researcher could use to automate finding vulnerabilities on that critical open source project? Examples of fuzzers are
B1. cifuzz (located here: https://github.com/CodeIntelligenceTesting/cifuzz )
B2. Jazzer (located here: https://github.com/CodeIntelligenceTesting/jazzer )
B3. OSS-Fuzz (located here: https://github.com/google/oss-fuzz)
B4. AFL++ (located here: https://github.com/AFLplusplus/AFLplusplus )
B4. (Any other fuzzers that you think would be relevant for popular languages)

C. Please modify your script above. It should automate the setup of fuzzing for that critical open source project on GitHub.
C1. The output should then go to a script that generates a vulnerability report for

C1a. For all programs listed in the HackerOne API using that critical open source project
C1b. For the open source project on GitHub, so other maintainers of that project can fix it.

D. Extra bonus points for you, if your script can do this for B3. OSS-Fuzz and meet their reward criteria.

Salida 2

(Comenzaremos aquí porque ahí es donde se vuelve relevante para todos)

ChatGPT: "Aquí hay una secuencia de comandos de Python actualizada que integra la API de HackerOne y la API de GitHub para buscar empresas y proyectos críticos de código abierto:

(ir aquí para obtener el guión. Desafortunadamente, poner el guión entre paréntesis parece tener algún tipo de dificultad. Lo siento por eso).

Lo siento, pero sólo una parte del guión. Copiar y pegar todo este código no funcionó.

Aquí está cómo usar este script:

Reemplazar <API Key> con su clave de API HackerOne real.

Ejecute el script.

El script mostrará la lista de empresas que se encuentran en GitHub y los proyectos críticos de código abierto utilizados por estas empresas. Si la lista de proyectos críticos no está disponible localmente, el script imprimirá un recordatorio para descargarlo.

Tenga en cuenta que este script es solo un punto de partida y es posible que deba modificarlo según su caso de uso específico. Por ejemplo, puede agregar el manejo de errores o cambiar los parámetros de búsqueda para la API de GitHub.

Salida 3: Añadir fuzzing

En la parte "B" del aviso anterior, le pido a ChatGPT que agregue una configuración de fuzzing, ya que esta es la mejor manera de encontrar vulnerabilidades a gran escala. Y así es como puede ganar dinero de recompensa OSS-Fuzz.

ChatGPT agrega:

Puedes cambiar el fuzzer_repos diccionario para agregar o eliminar repositorios fuzzer según sea necesario. EL get_repos() La función utiliza la API de GitHub para buscar repositorios por idioma y tema, y ​​devuelve una lista de repositorios ordenados por la cantidad de estrellas que tienen. El ejemplo de uso muestra cómo obtener una lista de repositorios usando el tema "fuzzer" y el idioma "C", pero puede cambiar estos valores para encontrar repositorios en otros idiomas y temas.

Salida 4: Automatice el fuzzing

Esta es la parte "C" del mensaje anterior. Quiero automatizar la configuración de fuzzing, informes para H1 y GitHub. ChatGPT devolvió resultados para OSS-Fuzz.

ChatGPT concluye:

Después de ejecutar este script, el OSS-Fuzz La herramienta comenzará automáticamente a fuzzear su repositorio de GitHub y generará un informe de cualquier vulnerabilidad que encuentre. También puede consultar el OSS-Fuzz tablero para obtener más información sobre el proceso de fuzzing.

Para C1a y C1b, puede utilizar el HackerOne API para generar un informe de vulnerabilidad para todos los programas enumerados que usan el proyecto crítico de código abierto y para el proyecto de código abierto en GitHub, respectivamente. Puede usar una combinación de llamadas API y procesamiento de datos para generar este informe.

Si tiene éxito con la última parte, encontrar vulnerabilidades, podría ser elegible para recibir hasta $30,000 de Google OSS-Fuzz. ¡Espero sinceramente que alguien intente esto y tenga éxito!

Si quieres conocer otros artículos parecidos a ChatGPT Python Script para automatizar múltiples informes para cada programa utilizando un componente crítico de código abierto puedes visitar la categoría Tutoriales.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas