Chat GPT & Appsec & Whatsapp
O Chat GPT é uma tecnologia de inteligência artificial, desenvolvido pela OpenAI especializado em diálogo, que permite que os usuários interajam com um chatbot de forma natural, como se estivessem conversando com um ser humano.
O chatbot é capaz de entender e responder às perguntas dos usuários, usando linguagem natural, e pode ser usado para ajudar os usuários a encontrar informações, resolver problemas e realizar tarefas. Por ele responder de uma maneira tão natural, ele se tornou muito popular nesses últimos meses.
Então, resolvi testá-lo, principalmente para a área de AppSec!
Além, disso, resolvi criar um bot para usá-lo no dia a dia e o jeito mais fácil foi utilizando Python + Whatsapp + Digital Ocean
Nesse artigo, irei descrever como realizar essa integração e que torna muito mais acessível 😊
1 # Resolvi buscar como integrar Python (por ser a linguagem que domino) e Whatsapp
Encontrei esse tutorial do Twilio que me ajudou bastante!
3# Token para autenticação no Chat GPT
2# Desenvolvi esse script, em Python, onde li as configurações do Chat GPT e foi o padrão que melhor respondeu ao critério das perguntas que realizei.
Usei esse código como base para o meu:
Criei 2 scripts, onde o primeiro usei apenas o método Client, onde eu direcionava as respostas apenas para o meu número de celular e o script app_final.py , pode ser usado por qualquer pessoa que tenha o código no Twilio 😊
import os
import openai
from dotenv import load_dotenv
from flask import Flask, request
from twilio.twiml.messaging_response import MessagingResponse
app = Flask(__name__)
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
@app.route('/bot', methods=['POST'])
def bot():
try:
incoming_msg = request.form.get("Body", '').lower()
resp_gpt = openai.Completion.create(
model="text-davinci-003",
prompt=incoming_msg,
temperature=0.3,
max_tokens=150,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0
)
quote = str(resp_gpt["choices"][0]["text"])
resp = MessagingResponse()
msg = resp.message()
msg.body(str(quote))
return str(resp)
except:
quote = str("Erro 🤖")
msg.body(str(quote))
if __name__ == '__main__':
app.run(host="0.0.0.0", port=8070)
3 # Hospedar a aplicação na Internet
Você pode testar utilizando o Ngrok para ver funcionando a comunicação com Whatsapp. No entanto, o ideal é utilizando um servidor.
Nesse caso, utilizei o Droplets do Digital Ocean, pois o preço não é caro e suporta sistemas pequenos, que não tenham escalabilidade.
Assim, coloquei em um container e subi minha API /bot 🤖
Como resultado final:
Após essa configuração, testei alguns dias e também, conversei com algumas pessoas que testaram na área de AppSec.
Abaixo, temos um resultado bem surpreende pro dia a dia
# Exemplo de código vulnerável em diferentes linguagens
# Validação de código
Podemos ver nesse segundo exemplo, que foi possível analisar 2 vulnerabilidades simultâneas!
# Necessidade da análise
Nesse exemplo, podemos observar que a IA não foi capaz de analisar que poderia ocorrer uma vulnerabilidade, caso o usuário não colocasse o input necessário. Como por exemplo, string no lugar de float.
Assim, é importante termos o conhecimento internalizado e não confiar apenas nas ferramentas.
É possível observar que essa IA é bastante promissora. Acredito que ela possa ser de bom uso para as pessoas que estão iniciando na área para retirar dúvidas pontuais de maneira muito rápida e assertiva.
No entanto, principalmente para quem está começando na área, não deve utilizar apenas esse método como fonte de estudo e conhecimento. Deve manter o pensamento crítico, conforme foi visto no exemplo anterior.
Digo isso pois uma das principais características de quem trabalha em TI é saber buscar informação de diferentes meios e linkar diferentes ideias. Então, essa ferramenta, pode retirar essa essência de quem está começando na área. Além de perder a oportunidade de conversar com pessoas mais experientes que possam ajudar com ainda mais detalhes e networking.
Espero que tenham gostado 💜👩💻