ChatGPT(Chat Generative Pre-trained Transformer)는 오늘날 가장 기대되는 지능형 AI 챗봇 중 하나입니다. 기본적인 언어 의사소통을 가능하게 할 뿐만 아니라 기사 작성, 코드 스크립팅, 번역 등과 같은 많은 강력한 기능도 갖추고 있습니다. 그렇다면 ChatGpt를 사용하여 일부 작업을 완료하는 데 도움을 줄 수 있습니까? 예를 들어, 제품에 보안 위험이 있고 취약점 감지가 필요한 경우 이를 구현하기 위해 해당 POC를 작성해야 합니다. 여러 검증을 통해 우리는 처음에 이 실험의 타당성을 확인했습니다. ChatGPT는 간단한 PoC를 작성하도록 훈련할 수 있지만 출력 내용과 일치하는 정규식을 작성하는 등 세부 사항 제어가 완벽하지 않으며 일부 오류가 있습니다. 복잡한 로직을 처리해야 하며, 수동 개입 및 수정이 필요합니다. 또한 ChatGPT의 일부 보안 추측 및 교육 모델의 정확성을 확인하기 위해 비교 방법을 사용했습니다. 악용 탐지를 위한 Goby의 실용적인 네트워크 공격 및 방어 도구와 결합하여 구현한 효과는 다음과 같습니다.
ChatGPT와 Goby를 사용하여 반자동 쓰기와 완전 자동 쓰기의 두 가지 방법으로 PoC와 EXP를 작성합니다(이 과정에서 ChatGPT-Plus 계정이 사용됩니다).
반자동 작성은 언어 형식 변환을 위해 ChatGPT를 사용합니다. 변환 후 생성된 코드에는 세부적인 문제가 있을 수 있으며 추가 문제 해결 및 개선이 필요합니다. 마지막으로 해당 문 및 함수 내용을 수정하여 PoC 및 EXP 작성을 완료합니다.
완전 자동 작성은 ChatGPT에 사용된 코드 템플릿과 취약점 세부정보를 제공하므로 템플릿에 해당하는 PoC를 자동으로 생성할 수 있습니다. 세부 정보를 제공할 때는 정보의 완전성과 정확성에 주의해야 합니다. 현재로서는 간단한 PoC를 자동으로 작성하는 것이 가능하므로 ChatGPT의 Goby 내장 기능 사용에 대한 추가 교육이 필요합니다.
Adobe ColdFusion은 효율적인 웹 응용 프로그램 서버 개발 환경입니다. Adobe ColdFusion 9.0.1 및 이전 버전의 관리 콘솔에 여러 디렉터리 탐색 취약점이 존재합니다. 원격 공격자는 /CFIDE/administrator/enter.cfm, /CFIDE/administrator/archives/index.cfm 등에 전송된 로케일 매개변수를 통해 임의의 파일을 읽을 수 있습니다.
먼저 ChatGPT가 CVE-2010-2861 디렉터리 탐색 취약점의 Python 형식 EXP를 Go 언어 형식 코드로 변환하도록 시도합니다. 이러한 방식으로 ChatGPT를 사용하여 수동 코드 프로세스를 대체할 수 있습니다. 해석 및 코드 변환.
취약점 공개 플랫폼에서 취약점의 EXP 코드를 선택합니다:
ChatGPT를 사용하여 해당 취약점의 EXP 코드를 변환하기 전에 먼저 다음과 같이 원본 Python 코드의 실행 효과를 보여줍니다.
형식 변환 시작:
또한 프로그램 사용 방법도 제공합니다. 그러나 ChatGPT의 답변은 매번 정확히 동일하지 않을 수 있습니다. 이전 답변에서는 해당 기능의 구체적인 사용법이 자세히 설명되지 않았으나 다른 답변에서는 다음과 같은 설명이 있었습니다. (필요한 경우 질문에 "및 해당 기능의 구체적인 사용법을 소개합니다"를 추가해도 됩니다)
마지막으로 진행 코드를 디버깅한 후 즉시 사용할 수 없고 필요한 파일 내용을 성공적으로 읽을 수 없는 것으로 나타났습니다.
그런 다음 문제 해결 프로세스를 시작해야 합니다.
정규 매칭 후 문자열이 비어 있는지 확인:
반환된 패킷의 내용이 정상인지, 필요한 내용이 있는지 확인하세요. 다음 반환된 데이터 패킷이 정상으로 표시됩니다.
판단. 정규식에 문제가 있어 해당 내용을 일치시킬 수 없다는 내용:
문제 해결을 통해 정규식에 올바른 일치 항목이 없어 파일 내용을 올바르게 검색할 수 없는 것으로 나타났습니다.
수정된 내용은 다음과 같습니다.수정 전:
최종 실행 결과, Python-Go 변환 완료:
Python 형식의 EXP를 Go 언어 형식으로 성공적으로 변환했으니 이제 Goby PoC로 변환을 시도하고 EXP 형식입니다.
Goby는 Go 언어 기반으로 자체 개발한 취약점 프레임워크를 사용하기 때문에 사용자의 편의를 위해 사용자가 사용할 수 있는 기능이 많이 내장되어 있으므로 위의 코드 부분만 사용하면 PoC가 완료됩니다. EXP 일반 설명 및 수정 내용은 다음과 같습니다.
가져오기 내용 수정:
생성된 EXP에는 명령줄을 사용할 때 매개변수를 수동으로 입력해야 하기 때문입니다.
그런 다음 PoC를 변환할 때 상수를 재정의하고 Goby에서 httpclient.FixUrl.IP 및 httpclient.FixUrl.Port를 사용하여 테스트 IP 및 포트 번호를 얻고 테스트 파일 경로 경로를 결정해야 합니다.
그런 다음 PoC에 조건부 판단문을 추가하고, 취약점의 특성을 판단하고 true를 반환합니다(취약성이 있음).
마지막으로 중복 출력 및 인쇄 코드를 삭제하여 PoC 변환을 완료합니다. as:
EXP 변환 중에 변수를 재정의하고 Goby를 사용해야 합니다. expResult.HostInfo.IP 및 expResult.HostInfo.Port를 사용하여 테스트 IP 및 포트 번호를 얻고 ss.Params["filePath"를 사용합니다. ].(문자열) 사용자가 입력한 EXP 매개변수를 가져옵니다. - 테스트 파일 경로 filePath:
다음 EXP 코드에 조건부 판단문을 추가하여 EXP 실행 성공 여부를 확인하고 EXP 실행 결과를 출력합니다. EXP 변환을 완료하려면:
ChatGPT를 수동 작성과 결합한 후 이를 사용하여 Goby 형식의 PoC를 작성하려는 추가 시도가 있었습니다.
먼저 Goby 형식으로 템플릿을 제공합니다.
그런 다음 취약점 번호, 제품, 유형, Url, 취약점 파일, 매개 변수 및 판단 성공 조건을 제공하고 관련 필드 형식을 설명합니다. 마침내 다음 코드를 얻었습니다. Goby 프런트엔드에서 컴파일할 수 있으며 간단한 PoC를 성공적으로 생성할 수 있습니다.
모델 교육이 처음에 완료되었습니다. 모델 완벽함을 확인하기 위해 두 번째 사례를 계속 사용합니다.
이름 필드 검색 여전히 형식 오류가 있으므로 다시 훈련하고 수정합니다(확인의 이름 필드와 기타 출력이 올바른 경우 이 오류 수정 단계를 건너뛸 수 있습니다).
마지막으로 세 번째 사례를 사용하여 최종 훈련 결과 및 훈련 성공:
코드를 Goby에 넣고 누락된 취약점 설명 정보를 입력합니다(나중에 계속해서 심층적으로 학습할 수 있습니다). 실행 효과는 다음과 같습니다.
새로운 제로데이 취약점이나 기타 기밀 취약점을 탐지하기 위한 PoC 작성을 돕기 위해 ChatGPT를 사용하고 있습니다. 이 프로세스가 프로그램 주입이나 정보 유출과 같은 문제로 이어질까요? 즉, 모델 훈련이 완료되고 다른 사용자가 관련 질문을 하면 ChatGPT가 훈련된 모델이나 데이터를 직접 출력합니까?
ChatGPT 자가 학습에 대한 추측이 존재하는지 확인하기 위해 '다른 세션'과 '다른 계정'을 통해 훈련을 진행했습니다. 다음 연습 후에는 ChatGPT가 세션 간 및 계정 간 자체 학습을 수행하지 않는다는 결론이 나왔습니다. 훈련된 모델과 데이터는 OpenAI의 손에 있으며 다른 사용자는 관련 모델을 얻을 수 없으므로 해당 모델을 얻을 수 없습니다. 아직은 관련 정보의 데이터 유출과 관련된 보안 위험이 존재하지만, 향후 상황은 여전히 OpenAI의 결정에 따라 판단되어야 합니다.
사용된 템플릿(여기서는 도식 생략)과 취약점 정보가 제공됩니다. 이전 세션의 교육 모드에 따라 PoC의 이름 및 설명 필드가 채워지지 않은 것을 볼 수 있습니다. 따라서 ChatGPT는 서로 다른 세션에서 자체적으로 학습하지 않으며 각 세션 간의 교육 모델은 독립적입니다.
또한 템플릿(여기서는 회로도가 생략됨)과 취약점 정보를 제공하거나 PoC의 관련 필드가 이전 교육 모델에 따라 채워지지 않은 것을 보면 ChatGPT가 계정 전체에서 자체 학습되지 않는다는 것을 알 수 있습니다.
ChatGPT4가 업데이트되었습니다. 그렇다면 ChatGPT4를 사용하여 동일한 완전 자동 작문 훈련을 수행하는 것과 ChatGPT3로 훈련한 모델의 차이점은 무엇입니까? 대답은 ChatGPT4가 ChatGPT 3보다 "스마트하고 유연"하며 모델 생성이 더 정확하다는 것입니다.
우리는 필요한 다양한 정보를 제공했고, 한 번의 훈련 후에(여기서는 개략도의 일부가 생략됨) 아래 그림에서 올바른 효과를 얻었습니다.
또한 ChatGPT3과 4의 PoC 작성 정확도를 확인하기 위해 ChatGPT3과 4의 이름 필드를 비교하면 두 경우 모두 확률적 오류가 발생하는 것으로 나타났습니다. 그 중 3의 모델 출력 정확도는 4보다 낮습니다. 다음 표에 표시된 것처럼 특정 상황에서는 여전히 수정이 필요합니다.
일반적으로 ChatGPT는 다음과 같은 일상 작업의 일부를 완료하는 데 실제로 도움이 될 수 있습니다. 취약점 PoC를 작성하면 코드 변환 기능을 사용하여 쓰기를 가속화할 수 있으며, 취약점에 대한 자세한 정보를 제공하고, ChatGPT를 사용하여 적절한 모델을 교육하고, 보다 편리하고 빠른 간단한 취약점 검증 PoC 코드를 직접 출력할 수 있습니다. 다만, 제공되는 답변 내용을 반드시 직접 복사하여 사용할 수는 없으며 개선을 위해 일부 수동 수정이 필요할 수 있습니다. 또한 현재는 상대적으로 안심하고 ChatGPT를 사용할 수 있습니다. 단일 사용자의 훈련 모델 데이터를 다른 사용자에게 출력하여 사용할 수는 없습니다(사용자 데이터의 상호 오염에 대한 우려로 인해 세션이 혼동되지 않을 수 있음). 미래에는 OpenAI 본부의 의사결정을 바탕으로 추가 판단을 내려야 합니다. 따라서 ChatGPT를 합리적으로 사용하면 표준화되고 더 복잡한 PoC 또는 정보 설명이 포함된 EXP를 작성하는 데 사용할 수 있는지 여부와 같이 향후에도 추가 교육 및 개발이 계속될 수 있다면 어느 정도 작업 효율성을 향상시키는 데 도움이 될 수 있습니다. 사양을 충족하거나 일괄적으로 콘텐츠를 완성하도록 설계할 수 있습니다.
Reference
[1] https://gobysec.net/exp
[2] https://www.exploit-db.com/exploits/14641
[3] https://zhuanlan.zhihu. com/p/608738482?utm_source=wechat_session&utm_medium=social&utm_oi=1024775085344735232
[4] ChatGPT를 사용하여 인코더를 생성하고 Webshell을 지원하세요
이 기사의 저자: GobySec, 재인쇄 출처가 FreeBuf.COM
임을 명시해 주세요.위 내용은 ChatGPT는 PoC를 작성하고 취약점을 얻습니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!