
AI 기반 사이버 보안 챗봇으로, 사이버 보안 관련 질문에 유용하고 정확한 답변을 제공하며 코드 분석 및 스캔 분석도 수행하도록 설계되었습니다.
_ _ _ ____ _
| | | | __ _ ___| | _| __ ) ___ | |_
| |_| |/ _` |/ __| |/ / _ \ / _ \| __| By: Morpheuslord
| _ | (_| | (__| <| |_) | (_) | |_ AI used: Meta-LLama2
|_| |_|\__,_|\___|_|\_\____/ \___/ \__|
HackBot에 오신 것을 환영합니다. HackBot은 사이버 보안 관련 질문에 도움이 되고 정확한 답변을 제공하고, 코드 분석 및 스캔 분석까지 수행하도록 설계된 AI 기반 사이버 보안 챗봇입니다. 보안 연구원, 윤리적 해커, 또는 사이버 보안에 대해 궁금한 모든 분들께, HackBot이 필요한 정보를 찾는 데 도움을 드리기 위해 있습니다.
HackBot은 "LlamaCpp" 라이브러리를 통해 강력한 언어 모델인 Meta-LLama2를 활용합니다. 이를 통해 HackBot은 일관되고 관련성 있는 방식으로 질문에 응답할 수 있습니다. 최상의 결과를 얻으려면 질문을 영어로 유지하고 제공된 지침을 준수해 주세요.
.env 파일의 AI_OPTION 섹션을 변경하여 챗봇에 연결할 수 있습니다. Runpod의 경우 RUNPOD를, Local Llama 배포의 경우 LOCALLLAMA를 사용해야 합니다. RUNPOD 및 LOCALLLAMARUNPOD ID와 RUNPOD API KEY가 설정되어 있어야 합니다.LLama2를 사용하는 것은 현재 사용 가능한 최고의 오프라인 및 무료 옵션 중 하나입니다. 현재 개선 중이며, AI에 사이버 보안 관점을 더 잘 통합할 수 있는 프롬프트를 작업 중입니다. @thisserand님과 그의 llama2_local 저장소, 그리고 그의 YT 동영상 YT_Video에 감사드립니다. 훌륭한 자료였습니다. 솔직히 llama2 코드는 95%가 그의 코드이며, 저는 단지 코드를 가져와 Flask API 기능을 추가했습니다.
오프라인 및 코드 외부 테스트에서 AI의 정확도는 훌륭했으며 OpenAI나 Bard와 동등한 정확도를 보였지만, 코드 내에서는 프롬프트 등의 문제로 몇 가지 문제가 있었습니다. 수정하려고 노력하겠습니다.
속도는 시스템 및 GPU/CPU 구성에 따라 다릅니다. 현재는 TheBloke/Llama-2-7B-Chat-GGML 모델을 사용 중이며, portscanner 및 dnsrecon 파일을 통해 변경할 수 있습니다.
현재로서는 llama 코드와 스캔이 별도로 처리됩니다. 몇 가지 테스트 후에 llama가 의도한 대로 작동하려면 약간의 학습이 필요하다는 것을 발견했습니다. 따라서 시간이 좀 필요합니다. 이에 대한 제안 사항은 이 저장소의 토론 토론 링크에 추가해 주시기 바랍니다. 현재 출력은 모든 데이터를 구분된 목록으로 제공하는 대신 AI가 발견한 취약점 또는 문제에 대한 설명이 될 것입니다.
모델 사용을 위한 프롬프트는 다음과 같습니다:
[INST] <<SYS>> {user_instruction}<</SYS>> 분석할 NMAP 데이터: {user_message} [/INST]
지침은 다음과 같습니다:
제공된 NMAP 스캔 정보에 대한 NMAP 스캔 분석을 수행하십시오. NMAP 출력은 제공된 출력 형식에 따라 요청된 형식으로 반환되어야 합니다. 데이터는 침투 테스트 보고서에 대해 정확해야 합니다.
데이터는 다음 규칙을 따라야 합니다:
1) NMAP 스캔은 침투 테스터의 관점에서 수행되어야 함
2) 최종 출력은 주어진 형식에 따라 최소화되어야 함
3) 최종 출력은 최소한으로 유지되어야 함
4) 스캔에서 값을 찾을 수 없으면 빈 문자열을 언급하십시오.
5) 가장 작은 데이터라도 모두 분석하십시오.
6) 제공된 데이터를 완전히 분석하고 출력 형식을 사용하여 확실한 답변을 제공하십시오.
7) 발견한 모든 데이터를 제공된 출력 형식으로 언급하여 정규식을 사용할 수 있도록 하십시오.
8) 불필요한 설명을 피하십시오.
9) 중요도 점수는 CVE가 있는 경우 이를 기반으로, 또는 열린 서비스의 성격에 따라 계산되어야 함
10) OS 정보는 대상이 사용하는 OS를 포함해야 함
11) 열린 포트는 데이터[tcp]에 나열된 모든 열린 포트를 포함하고 해당 상태 값을 확인하여 검증해야 합니다. 하나의 열린 포트도 무시해서는 안 됩니다.
12) 취약한 서비스는 서비스 성격 추측 또는 발견된 CVE 분석을 통해 결정될 수 있습니다.
출력 형식:
critical score:
- 중요도에 대한 정보 제공
"os information":
- OS 정보 나열
"open ports and services":
- 열린 포트 나열
- 열린 포트 서비스 나열
"vulnerable service":
- CVE 또는 열린 포트의 성격에 따라 취약한 서비스 나열
"found cve":
- 발견된 CVE 및 주요 문제 나열
llama AI는 명령어 세트와 프롬프트를 통해 제공된 데이터를 사용하여 출력을 생성합니다.
가장 많이 사용하려면 runpod 서버리스 엔드포인트에 llama를 배포하는 것을 권장합니다. 이 튜토리얼을 참조하세요: 튜토리얼. 더 나은 사용을 위해 튜토리얼을 따르세요.



설치를 진행하기 전에 다음 사전 요구 사항이 있는지 확인하십시오:
pip3 패키지 관리자Visual Studio Code - 이 링크의 단계를 따르세요: llama-cpp-prereq-install-instructionscmakegit clone https://github.com/morpheuslord/hackbot.git
cd hackbot
pip3 install -r requirements.txt
python3 hackbot.py
HackBot을 처음 실행하면 챗봇에 필요한 AI 모델이 있는지 확인합니다. 모델이 없으면 자동으로 다운로드되어 프로젝트 디렉토리에 "llama-2-7b-chat.ggmlv3.q4_0.bin"으로 저장됩니다.
HackBot과 대화를 시작하려면 다음 명령을 실행하십시오:
.env 파일은 다음과 같아야 합니다:
RUNPOD_ENDPOINT_ID = ""
RUNPOD_API_KEY = ""
AI_OPTION = "LLAMALOCAL"
그런 다음 다음을 실행합니다.
python hackbot.py
.env 파일은 다음과 같아야 합니다:
RUNPOD_ENDPOINT_ID = "<<SERVERLESS ENDPOINT ID>>"
RUNPOD_API_KEY = "<<RUNPOD API KEY>>"
AI_OPTION = "RUNPOD"
그런 다음 다음을 실행합니다.
python3 hackbot.py
HackBot이 배너를 표시하고 입력을 기다립니다. 사이버 보안 관련 질문을 하면 HackBot이 유익한 답변으로 응답합니다. 채팅을 종료하려면 입력 프롬프트에 "quit_bot"을 입력하면 됩니다.
사용할 수 있는 추가 명령어는 다음과 같습니다:
clear_screen: 콘솔 화면을 지워 가독성을 높입니다.quit_bot: 채팅 애플리케이션을 종료하는 데 사용됩니다.bot_banner: 기본 봇 배너를 출력합니다.contact_dev: 연락처 정보를 제공합니다.save_chat: 현재 세션 상호작용을 저장합니다.vuln_analysis: 스캔 데이터 또는 로그 파일을 사용하여 취약점 분석을 수행합니다.static_code_analysis: 스캔 데이터 또는 로그 파일을 사용하여 정적 코드 분석을 수행합니다.참고: 더 많은 애드온과 명령어를 작업 중이며, 더욱 chatGPT와 같은 경험을 제공할 예정입니다.
참고: HackBot의 응답은 Meta-LLama2 AI 모델을 기반으로 하며, 정확도는 제공된 질문과 데이터의 품질에 따라 달라집니다.
또한 AI 학습을 통해 해커들이 보다 전문적인 수준에서 사용할 수 있도록 더 정확하게 조정하는 방법을 연구 중입니다.
HackBot의 기능과 정확성을 개선하기 위한 기여를 환영합니다. 문제가 발생하거나 개선 사항이 있으면 언제든지 이슈를 열거나 풀 리퀘스트를 제출해 주세요. 기여하려면 다음 단계를 따르세요:
main 브랜치로 풀 리퀘스트를 엽니다.깔끔한 커밋 기록을 유지하고 프로젝트의 코딩 지침을 준수해 주십시오.
텍스트 생성 모델 학습에 대한 지식이 있는 분이 코드 개선을 도와주시면 감사하겠습니다. AI 학습 부분을 위해 데이터셋과 학습 코드를 준비했지만 학습 부분에 문제가 있어 협력을 환영합니다. 데이터셋은 다음에서 확인할 수 있습니다:
GitHub 버전의 데이터셋은 OpenAI 학습용이고, 다른 하나는 Meta의 Llama2-7b용입니다. 데이터셋의 목표는 CVE 데이터를 더 잘 처리할 수 있는 AI 모델을 생성하는 것입니다. 데이터셋이 부족하다고 생각되면 자유롭게 수정하고 의견을 공유해 주십시오.
HackBot 관련 질문, 피드백 또는 문의 사항이 있으면 프로젝트 관리자에게 연락하십시오: