펜리젠트 헤더

휴먼 인더 루프 에이전트 AI 펜테스트 도구 펜리전트 - 응집력 있는 엔지니어 우선 가이드

증거가 있는 결혼 저울

에이전트 자동화는 공격 표면을 탐색하는 방식을 변화시켰습니다. 에이전트 자동화는 신속한 정찰, 가설 생성, 확장 가능한 열거 등 광범위한 작업에는 탁월하지만 증거 등급의 익스플로잇 체인 블루팀 검토나 경영진의 조사를 견딜 수 있는 테스트가 필요합니다. 기존의 수동 테스트는 해석, 적대적 판단, 내러티브의 명확성에는 탁월하지만 끊임없이 변화하는 최신 앱과 클라우드 환경의 광범위한 경계를 커버하는 데는 어려움을 겪습니다. 앞으로 나아갈 실질적인 길은 '인간 대 AI'가 아니라 다음과 같습니다. 휴먼 인 더 루프(HITL) 에이전트: 에이전트가 명시적인 가드레일 아래에서 속도와 표면적 커버리지를 제공하고 전문가가 검증, 컨텍스트 및 책임을 담당하도록 합니다. 실제로는 신뢰할 수 있는 휴먼 인더 루프 에이전트 AI 펜테스트 도구 펜리전트 배포하는 것처럼 보입니다: 정책 우선 오케스트레이션, 인텐트 레벨 툴링증거 우선 보고 감사 및 사고 회고에 도움이 됩니다.

루프 속의 인간

HITL의 진정한 의미(예/아니요 팝업 그 이상)

HITL 펜테스팅 시스템은 자율적인 워크플로우에 마지막에 "확실하십니까?"라는 대화창을 띄우는 것이 아닙니다. 그것은 설계된 오케스트레이션 민감한 의도(액티브 프로빙, 익스플로잇 실행, 파일 쓰기, 데이터 유출 시뮬레이션, 아웃바운드 이그레스)가 있는 경우 기본적으로 거부모든 승인에는 제약 조건 (속도 제한, 허용 목록 경로, 중지 조건, 시간 창 및 데이터 처리 규칙). 모든 명령, 매개변수, 환경 세부 정보, 원시 출력, 스크린샷/캡, 검토자 ID, 검토 노트는 다음과 같이 유지됩니다. 포렌식 증거 체인. 보고서는 다음과 같습니다. 첫 번째 원칙에서 재생 가능글을 삭제하고 증거를 바탕으로 다시 작성하면 동일한 결론을 얻을 수 있습니다. 결과는 다음에 매핑됩니다. MITRE ATT&CK TTP; 확인 단계는 다음과 일치합니다. OWASP ASVS 제어; 프로세스 아티팩트(승인, 변경 로그, 업무 분리)가 다음을 충족합니다. NIST SSDF. 이렇게 하면 "AI 지원 스캔"에서 다음과 같이 이동할 수 있습니다. 방어 가능한 엔지니어링 사례.

아키텍처: 정책 우선, 도구는 추상화, 증거는 항상 확보

유지 관리가 쉬운 디자인은 세 가지 레이어로 깔끔하게 나뉩니다:

  1. 가드레일 계층(정책 우선): 구조화된 승인을 통해 고위험 의도에 대한 체크포인트를 기본적으로 거부로 인코딩하세요. 승인은 단순히 "예/아니오"가 아니라 계약 에이전트가 수행할 수 있는 작업과 제약 조건을 지정합니다. 승인은 버전이 지정되고 검토자에게 귀속되며 타임스탬프, 범위 식별자 및 취소 후크와 함께 기록되어야 합니다.
  2. 툴링 레이어(인텐트 수준 동사): 다음과 같은 동사 뒤에 스캐너 및 어시스턴트-Nmap, ffuf, sqlmap, nuclei, Burp Suite API, 브라우저 자동화, OSINT 헬퍼-를 래핑합니다. dir_bruteforce, param_fuzz, sqli_detect, xss_probe, 크롤러_로그인. 출력을 잘 입력된 형식으로 구문 분석합니다, 구조화된 기록 (JSON)으로 변환하여 상담원이 안정적으로 추론하고 보고서가 정규식 룰렛 없이도 증거를 재사용할 수 있도록 합니다. '성공/실패/불확실' 상태를 정규화하여 취약한 체인 로직을 방지하세요.
  3. 증거 레이어(포렌식 등급): 명령, 버전, 환경, 출력, 스크린샷, PC캡, 검토자 신원을 서로 연관시킵니다. 고려 사항 해시 체인 또는 서명 를 사용하여 무결성을 보호하고 보고서 출처를 입증할 수 있습니다. 증거는 쿼리가 가능해야 합니다: "다음에 대한 모든 POC를 보여주세요. T1190 지난 30일 동안 이 범위에서"는 고고학적 발굴이 아닌 단일 쿼리여야 합니다.

요컨대: 속도는 에이전트에서, 확실성은 인간에서, 방어 가능성은 증거에서 비롯됩니다..

신호에서 증명까지: 확장 가능한 작업 케이던스

강력한 HITL 워크플로는 다음과 같이 진행됩니다. 광범위한 검색제한된 실행방어 가능한 보고:

  • 발견: 에이전트는 읽기 전용 또는 영향이 적은 작업으로 표면을 스윕합니다. 에이전트는 후보(흥미로운 경로, 의심스러운 매개변수, 비정상적인 응답)를 생성하고 신호를 클러스터링하여 연구원의 피로를 줄여줍니다.
  • 차단: 승인 게이트는 민감한 의도를 차단합니다. 인간 검토자가 제약 조건(속도 ≤ 5rps, 403/429에서 중단, 경로 제한)을 추가합니다. /api/*로그에서 토큰을 삭제하고, 임시 디렉토리 외부에 쓰기를 허용하지 않으며, 비즈니스 컨텍스트를 첨부합니다("이 앱은 규제 대상 PII 앱입니다. 대량 데이터 작업을 피하십시오").
  • 제한된 실행: 상담원 진행 부여된 계약 내에서를 사용하여 입력 벡터, 환경 전제 조건, 타임스탬프, 출력 아티팩트 등 결과를 재현하는 데 필요한 모든 것을 캡처합니다.
  • 보고서 재생성: 최종 보고서는 다음과 같습니다. 설명 가능 (비즈니스 영향과의 관계), 재현 가능 (증거 → 보고서) 및 표준 정렬 (att&ck/asvs/ssdf). 블루팀은 이를 통해 탐지를 구축하고, 개발자는 이를 통해 테스트를 구축하며, 경영진은 이를 통해 위험에 대한 의사 결정을 내릴 수 있습니다.

최소 HITL 승인 루프

아래는 최소한의 패턴입니다.정책 중단 → 인적 승인 → 제한적 실행 → 증거 지속성-커스텀 오케스트레이터나 LangGraph/LangChain에 임베드할 수 있습니다. 의도적으로 컴팩트하지만 실행 및 확장하기에 충분히 완벽합니다.

import json, subprocess, time, uuid, hashlib, os
에서 날짜 시간 가져오기 날짜 시간

APPROVALS = {
    "RUN_EXPLOIT": {"require": True, "reason": "영향력 있는 액션"},
    "SCAN_ACTIVE": {"require": True, "reason": "WAF/IPS를 트리거할 수 있음"},
    "WRITE_FILE":  {"require": True, "reason": "파일 시스템 변이"},
    "EGRESS_CALL": {"require": True, "reason": "외부 네트워크 이그레스"},
    "READ_ONLY":   {"require": False, "reason": "안전 의도"},
}

EVIDENCE_DIR = "./evidence" # 프로덕션에서 오브젝트 스토리지로 대체
os.makedirs(EVIDENCE_DIR, exist_ok=True)

def needs_approval(intent: str) -> bool:
    meta = APPROVALS.get(intent, {"require": True})
    반환 bool(meta["require"])

def open_review_ticket(intent, cmd, context):
    ticket = {
        "id": str(uuid.uuid4()),
        "intent": intent,
        "cmd": cmd,
        "context": context,
        "status": "PENDING",
        "created_at": datetime.utcnow().isoformat() + "Z",
    }
    # 할 일: Slack/디스크/웹 UI로 푸시하기
    티켓 반환

def await_decision(ticket, timeout=1800):
    # 프로덕션: 결정 저장소 투표; 여기서는 제약 조건으로 승인을 시뮬레이션합니다.
    start = time.time()
    while time.time() - start  dict:
    proc = subprocess.run(cmd, capture_output=True, text=True)
    반환 {"rc": proc.returncode, "stdout": proc.stdout, "stderr": proc.stderr}

def persist_evidence(payload: dict) -> str:
    raw = json.dumps(payload, sort_keys=True).encode()
    digest = hashlib.sha256(raw).hexdigest()
    path = os.path.join(EVIDENCE_DIR, f"{digest}.json")
    열다(경로, "wb")를 f로 사용합니다:
        f.write(raw)
    반환 경로

def hitl_execute(intent: str, cmd: list[str], context: dict) -> dict:
    계약 = 없음
    if needs_approval(intent):
        ticket = open_review_ticket(intent, cmd, context)
        decision = await_decision(ticket)
        if decision["status"] != "APPROVED":
            반환 {"status": "BLOCKED", "ticket": ticket}를 반환합니다.
        계약 = decision["제약 조건"]

    # 선택 사항: 로컬에서 제약 조건 적용(예: 도구에 요금 플래그 주입)
    계약과 "rate"가 계약에 있고 "-rate"가 cmd에 없는 경우:
        cmd += ["-rate", str(contract["rate"])]]

    결과 = run_tool(cmd)
    evidence = {
        "intent": 의도,
        "cmd": cmd,
        "context": context,
        "result": 결과
        "attck": "T1190", # 익스플로잇 퍼블릭 대면 애플리케이션
        "asvs":  "V2", # 인증/세션 관리(예시)
        "ts": datetime.utcnow().isoformat() + "Z",
        "reviewer": 컨트랙트 및 "[email protected]",
    }
    경로 = persist_evidence(evidence)
    반환 {"상태": "DONE", "evidence_path": path, "sha256": os.path.basename(path).split(".")[0]}

# 예: ffuf를 사용한 신중한 활성 검색(승인에 의해 제한됨)
if __name__ == "__main__":
    response = hitl_execute(
        "SCAN_ACTIVE",
        ["ffuf", "-w", "wordlists/common.txt", "-u", "https://target.example/FUZZ"],
        {"scope": "https://target.example", "note": "403/429에서 중지"}
    )
    print(json.dumps(response, indent=2))

이것이 중요한 이유: 승인은 다음과 같습니다. 계약제약 조건은 다음과 같습니다. 기계 집행 가능그리고 그 증거는 변조 방지. 이제 증거를 결정론적으로 내러티브로 변환하는 보고서 생성을 구축할 수 있습니다. 내러티브가 증거에서 벗어나면 빌드가 깨집니다.원하는 것을 정확하게.

작동 모드: 올바른 균형 선택

차원사람 전용AI 전용HITL 에이전트(권장)
표면 커버리지중간-낮음높음높음
검증 깊이 및 비즈니스 컨텍스트높음낮음-중간높음
오탐/과잉 도달낮음중간-높음낮음-중간(관리됨)
감사 가능성 및 표준 매핑Medium낮음높음
이상적인 시나리오깊은 회색 상자, 고위험 증명대량 검색지속적인 테스트 + 검증 가능한 POC

HITL은 다음을 위해 최적화됩니다. 거버넌스 하에서의 결정론. 에이전트는 빠르게 실행되지만 레일 내부에서 실행되고, 사람은 어떤 것을 증거로 간주하고 어떻게 영향을 전달할지 결정합니다. 이 조합은 손실 없이 처리량을 제공합니다. 신뢰성.

마찰을 줄이는 표준 정렬

표준을 척추 부록이 아닌 결과물의 일부입니다:

이 정렬을 사용하면 보고서가 양방향 인터페이스엔지니어링은 수정에, 방어자는 탐지에, 감사자는 검증에 사용합니다.

어디 펜리전트 루프에 속함

배포할 때 휴먼 인더 루프 에이전트 AI 펜테스트 도구 펜리전트두 가지 역할은 일관되게 복합적인 가치를 창출합니다:

  1. 플랫폼 기능으로서의 가드레일. 펜리전트의 조율된 에이전트는 다음과 같이 운영됩니다. 내부 명시적 승인, 허용/거부 목록, 범위/요율 규칙이 있습니다. 다음과 같은 민감한 의도 RUN_EXPLOIT, WRITE_FILE또는 EGRESS_CALL 는 인터럽트 기반이며 검토자 계약이 필요합니다. 모든 명령줄, 도구 버전 및 출력은 증거 저장소로 정규화되어 재생성 및 감사를 위해 준비됩니다.
  2. 발견부터 방어 가능한 스토리까지. 에이전트는 광범위하게 조사하고 초안을 작성하고, 연구자는 POC를 검증하고, 익스플로잇을 비즈니스 영향에 깔끔하게 매핑되는 보고서를 제공하고 ATT&CK/ASV/SSDF. 이러한 분업화를 통해 애드혹 스캔을 반복 가능한 기능. 엄격한 데이터 보존 또는 오프라인 테스트가 필요한 환경이라면, 펜리전트의 로컬 우선 모드를 사용하면 안전하게 기능을 준비하고 자신감이 커짐에 따라 확장할 수 있습니다.
휴먼 인 더 루프 사이버 보안

실용적인 패턴과 안티 패턴

Do:

  • 모든 버전프롬프트, 도구 이미지, 단어 목록 및 요금. 버전 핀이 없으면 재현성이 떨어집니다.
  • 브라우저 자동화 강화최신 앱은 클라이언트를 많이 사용하므로 에이전트는 클라이언트 측 사각지대를 피하기 위해 DOM 인트로스펙션, 이벤트 합성, 스토리지/쿠키 규율, 네트워크 차단이 필요합니다.
  • 적절한 증거 크기 조정영향을 재현하고 입증할 수 있을 만큼 충분히 캡처하고, 미사용 시 암호화하고, 정책에 따라 보존을 조정하고, 기본적으로 비밀을 삭제합니다.

피하십시오:

  • 자동화 에코 챔버다중 에이전트 루프는 초기 오 분류를 증폭시킬 수 있습니다. 전략적 HITL 체크포인트는 이러한 사슬을 끊고 기준 진실에 다시 고정시킵니다.
  • 정규식 전용 구문 분석스키마 유효성 검사 기능이 있는 구조화된 어댑터를 선호하고, 원시 로그가 아닌 정규화된 증거를 피드 에이전트에 제공합니다.
  • "아마도 취약한" 주장재현 가능한 POC와 매핑된 영향이 없다면 보안이 아니라 노이즈를 만드는 것입니다.

구현 체크리스트(런북에 복사/붙여넣기)

  • 다음에 대해 기본적으로 거부 RUN_EXPLOIT, WRITE_FILE, EGRESS_CALL, SCAN_ACTIVE승인에는 다음이 포함되어야 합니다. 범위, rate중지 조건.
  • 도구 인터페이스 반환 구조화된 레코드; 구문 분석기는 실제 로그와 고정된 도구 버전에 대해 테스트됩니다.
  • 증거는 다음과 같습니다. 서명 또는 해시 체인; 보고서는 재생성 보안 아티팩트에 대한 CI의 일부로 증거를 수집합니다.
  • 검색 결과는 다음과 같이 매핑됩니다. ATT&CK TTP; 검증 인용 ASVS 항목; 프로세스 아티팩트가 SSDF.
  • 브라우저 자동화는 인증 흐름, SPA 라우팅, CSP/CORS 동작을 다루며, 모든 상태 변경에 대해 HITL 검토가 필수입니다.
  • 프롬프트, 도구 버전, 단어 목록 및 요금은 다음과 같습니다. 고정 및 버전 관리변경 사항은 코드와 동일한 엄격한 승인 절차를 거칩니다.

속도, 확실성, 거버넌스

내구성이 뛰어난 패턴은 심플하면서도 강력합니다: 속도 = 에이전트, 확실성 = 사람, 거버넌스 = 표준 + 증거. 이 세 가지가 감사 가능한 오케스트레이터 내부에서 루프를 닫을 때, 휴먼 인더 루프 에이전트 AI 펜테스트 도구 펜리전트 는 더 이상 유행어가 아닙니다. 이제 반복 가능하고 방어 가능한 기능-개발자가 수정할 수 있고, 방어자가 감지할 수 있고, 감사자가 검증할 수 있고, 경영진이 신뢰할 수 있는 것입니다.

https://youtu.be/H-b9ShIwKK0

게시물을 공유하세요:
관련 게시물
ko_KRKorean