[해킹보안] 창과 방패 끝없는 전쟁

반응형

제 블로그의 모든 글들은 해킹과 보안에 대한 학습용 글입니다.

해당 글을 보고 실제 홈페이지에 공격하는 것은 명백한 범죄행위임을 알려드리며,

절대로 실제 홈페이지에 공격하지 마시기 당부드립니다. 실제 공격한 부분에 대한 책임은

본인이 지셔야 하며, 블로그를 통해 공유한 블로거와는 무관함을 알려드립니다.

 

 

안녕하세요. 이번 포스팅에서는 지난 ARTEX AI 설치 및 MCP 연동 실습에 이어, 실제 웹사이트를 대상으로 AI 기반 보안 진단을 수행한 과정을 공유하겠습니다.

지난번에는 ARTEX AI를 Windows 환경에 설치하고 Playwright Browser MCP와 OWASP ZAP MCP를 연결하는 데 성공했습니다.

하지만 도구가 연결되었다고 해서 AI가 곧바로 웹 취약점을 찾아주는 것은 아니었습니다.

브라우저로 웹사이트를 탐색해도 ZAP에 HTTP 요청이 기록되지 않았고, ZAP에 기록이 있어도 MCP가 일부 상세 데이터를 읽지 못하는 문제가 발생했습니다.

이번에는 이러한 문제를 해결하면서 웹 취약점 진단과 보고서 작성까지 진행했습니다.

이번 실습은 2026년 10월 말부터 11월 4일까지 진행한 내용을 정리한 것입니다.


1. 이번 실습의 목표

이번 실습에서는 다음과 같은 목표를 세웠습니다.

  1. Python으로 로컬 웹 보안 실습 서버 구축
  2. OWASP ZAP을 이용한 HTTP 응답 헤더 점검
  3. 보안 헤더 설정 전후 비교
  4. ARTEX AI와 Playwright MCP를 통한 외부 테스트 사이트 구조 분석
  5. Playwright 브라우저의 HTTP 요청을 ZAP 프록시로 전달
  6. ZAP 패시브 스캔 결과 분석
  7. AI가 탐지한 취약점의 오탐 가능성 검토
  8. AI를 활용한 웹 취약점 진단 보고서 작성

실습 과정에서 Spider, Active Scan, SQL Injection 및 XSS 공격 페이로드는 실행하지 않았습니다.

외부 테스트 사이트에서는 정상적인 페이지 요청과 이미 수집된 HTTP 응답에 대한 패시브 분석을 수행했습니다.

2. 실습 환경 구성

이번 실습에 사용한 환경은 다음과 같습니다.

구분실습 환경

운영체제 Windows
AI 플랫폼 ARTEX AI
ARTEX 접속 주소 http://127.0.0.1:8787
브라우저 자동화 Playwright Browser MCP
웹 취약점 분석 OWASP ZAP 2.17.0
ZAP MCP MCP Integration 0.4.0
ZAP 프록시 127.0.0.1:8080
Python 3.14.7
로컬 실습 서버 127.0.0.1:8000
외부 테스트 사이트 http://testaspnet.vulnweb.com/

ARTEX에는 Playwright Browser MCP 도구 25개와 OWASP ZAP MCP 도구 17개가 연결되어 있었습니다.

이 환경에서 ARTEX는 AI 분석과 도구 실행을 담당하고, Playwright는 브라우저 탐색을, ZAP은 HTTP 통신 수집 및 보안 경고 탐지를 담당하도록 구성했습니다.

3. Python으로 로컬 웹 보안 실습 서버 구축

먼저 Windows에서 로컬 웹 서버를 실행했습니다.

실습 폴더는 다음과 같이 구성했습니다.

C:\AI-Security-Lab
 ├─ index.html
 └─ secure_server.py

초기 서버는 Python의 기본 HTTP 서버를 이용했습니다.

python -m http.server 8000 --bind 127.0.0.1

이후 웹 브라우저에서 다음 주소에 접속했습니다.

http://127.0.0.1:8000/

실습 페이지에는 검색 기능과 로그인 테스트용 입력 폼을 구성했습니다.

초기 HTML에는 다음과 같은 로그인 폼이 있었습니다.

<form action="/" method="GET">
    <input name="username" placeholder="아이디">
    <input name="password" type="password">
    <button type="submit">로그인 테스트</button>
</form>

여기서 보안상 문제가 발견되었습니다.

로그인 폼이 GET 방식으로 구성되어 있기 때문에 비밀번호를 입력하고 제출하면 해당 값이 URL의 쿼리 문자열에 포함될 수 있습니다.

이는 브라우저 방문 기록이나 프록시 로그 등에 민감정보가 남을 위험을 증가시킵니다.

실습에서는 실제 비밀번호를 제출하지 않고 HTML 구조만 확인했습니다.

실제 서비스에서는 POST 방식과 HTTPS를 사용하고, 서버 측에서 인증정보를 안전하게 처리해야 합니다.

4. OWASP ZAP으로 로컬 서버 보안 점검

다음으로 ZAP 프록시를 경유하여 로컬 웹 서버에 요청을 전송했습니다.

Windows CMD에서 다음 명령어를 실행했습니다.

curl.exe --noproxy "" --proxy http://127.0.0.1:8080 http://127.0.0.1:8000/

ZAP History에서 HTTP 200 OK 응답을 확인했습니다.

초기 서버의 응답 헤더에는 다음 정보가 포함되어 있었습니다.

HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.14.7
Content-type: text/html

이 응답에는 Python 버전이 노출되어 있었고, 주요 브라우저 보안 헤더도 설정되지 않았습니다.

ZAP 패시브 스캔에서 다음 네 가지 경고가 확인되었습니다.

점검 항목위험도

Missing Anti-clickjacking Header Medium
Content Security Policy Header Not Set Medium
Server Leaks Version Information Low
X-Content-Type-Options Header Missing Low

이 단계에서는 실제 공격 가능성을 검증한 것이 아니라, 응답 헤더의 보안 설정 미흡 사항을 확인한 것입니다.

5. Python 웹 서버 보안 헤더 개선

이제 직접 서버 설정을 변경했습니다.

Python의 SimpleHTTPRequestHandler를 상속하여 보안 헤더를 추가하는 방식입니다.

from http.server import HTTPServer, SimpleHTTPRequestHandler
from functools import partial

class SecureHandler(SimpleHTTPRequestHandler):
    server_version = "SecurityLab"
    sys_version = ""

    def end_headers(self):
        self.send_header("X-Frame-Options", "DENY")
        self.send_header("X-Content-Type-Options", "nosniff")
        self.send_header(
            "Content-Security-Policy",
            "default-src 'self'; frame-ancestors 'none'; "
            "form-action 'self'; base-uri 'self'"
        )
        super().end_headers()

handler = partial(
    SecureHandler,
    directory=r"C:\AI-Security-Lab"
)

server = HTTPServer(("127.0.0.1", 8000), handler)
print("Secure Web Server: http://127.0.0.1:8000")
server.serve_forever()

파일명은 secure_server.py로 저장했습니다.

실행 명령어는 다음과 같습니다.

python C:\AI-Security-Lab\secure_server.py

서버 실행 후 ZAP 프록시를 경유하여 다시 요청했습니다.

curl.exe --noproxy "" --proxy http://127.0.0.1:8080 -i http://127.0.0.1:8000/

실제 응답에서 다음 보안 헤더가 확인되었습니다.

HTTP/1.0 200 OK
Server: SecurityLab
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Content-Security-Policy: default-src 'self'; frame-ancestors 'none'; form-action 'self'; base-uri 'self'

개선 전후 결과는 다음과 같습니다.

점검 항목 개선 전, 개선 후

서버 버전 노출 Python/3.14.7 상세 버전 숨김
클릭재킹 방지 미설정 DENY
CSP 미설정 정책 설정
MIME Sniffing 방지 미설정 nosniff

실제 HTTP 응답에서 설정이 적용된 사실을 확인했습니다.

다만 Python의 기본 HTTP 서버는 운영환경용 웹 서버가 아니므로, 이 코드는 로컬 학습 목적으로만 사용하는 것이 적절합니다.

또한 로그인 폼의 GET 방식 문제는 이 단계에서 수정하지 않았습니다.

6. ARTEX AI의 ZAP MCP 조회 오류 경험

보안 헤더 개선 후 ARTEX AI에게 ZAP History를 분석하도록 지시했습니다.

그런데 예상과 다른 결과가 나왔습니다.

ZAP 프로그램에서는 HTTP 200 응답이 확인되었지만, ARTEX의 MCP 조회에서는 일부 History 상세 기록을 읽지 못했습니다.

실제 오류는 다음과 같았습니다.

Error: mcp: decode json response: unexpected EOF

ARTEX는 상세 기록을 읽지 못한 상태에서 보안 헤더가 미적용된 것처럼 보고하기도 했습니다.

하지만 CMD에서는 이미 보안 헤더 적용을 확인한 상태였습니다.

여기서 중요한 교훈을 얻었습니다.

AI 도구가 데이터를 읽지 못했다는 사실과 실제 보안 설정이 존재하지 않는다는 사실은 전혀 다릅니다.

따라서 보안 컨설턴트는 AI 분석 결과를 그대로 받아들이기보다 원본 HTTP 응답과 진단 증적을 직접 확인해야 합니다.

7. 외부 ASP.NET 테스트 사이트 분석

다음으로 ASP.NET 웹 보안 실습용 사이트를 분석했습니다.

대상 사이트는 다음과 같습니다.

http://testaspnet.vulnweb.com/

ARTEX의 Playwright Browser MCP를 이용하여 메인 페이지에 접속하고 HTML 구조를 수집했습니다.

분석 결과는 다음과 같았습니다.

분석 항목결과

페이지 제목 acublog news
링크 58개
HTML 폼 1개
폼 전송 방식 POST
주요 기술 ASP.NET Web Forms
주요 Hidden 필드 __VIEWSTATE, __EVENTVALIDATION 등

링크 목록에서는 뉴스, 댓글, 로그인, 회원가입 등의 페이지가 확인되었습니다.

또한 일부 링크에는 id 파라미터가 포함되어 있었습니다.

이러한 파라미터는 SQL Injection 등의 점검 대상이 될 수 있지만, 단순히 파라미터가 존재한다고 해서 취약점이 있는 것은 아닙니다.

이번 실습에서는 SQL Injection 및 XSS 공격을 수행하지 않았으므로 해당 항목은 취약점 후보로만 분류했습니다.

8. Playwright와 OWASP ZAP 프록시 연동 문제 해결

외부 사이트의 구조 분석은 성공했지만, 처음에는 ZAP History에 HTTP 요청이 기록되지 않았습니다.

원인은 Playwright Browser MCP에 ZAP 프록시가 설정되지 않았을 가능성이 높았습니다.

ARTEX의 MCP 설정에서 기존 실행 인자는 다음과 같았습니다.

-y @playwright/mcp --headless

여기에 프록시 설정을 추가했습니다.

-y @playwright/mcp --headless --proxy-server=http://127.0.0.1:8080

설정을 저장한 뒤 다시 사이트에 접속했습니다.

이번에는 ZAP History에서 다음 요청이 확인되었습니다.

항목실제 결과

HTTP Method GET
요청 URL http://testaspnet.vulnweb.com/
응답 코드 200 OK
응답 시간 498ms
응답 본문 14,066 bytes
최고 경고 위험도 Medium

드디어 Playwright가 발생시킨 HTTP 요청을 ZAP에서 수집하는 데 성공했습니다.

이때부터 ARTEX와 ZAP을 연계한 보안 분석이 가능해졌습니다.

9. OWASP ZAP 패시브 스캔 결과

ZAP의 경고 화면에서 총 10종류의 보안 경고가 확인되었습니다.

번호경고 항목위험도

1 Absence of Anti-CSRF Tokens Medium
2 Content Security Policy Header Not Set Medium
3 Missing Anti-clickjacking Header Medium
4 Cookie without SameSite Attribute Low
5 Server Leaks Information via X-Powered-By Low
6 Server Leaks Version Information via Server Low
7 X-AspNet-Version Response Header Low
8 X-Content-Type-Options Header Missing Low
9 Charset Mismatch Informational
10 Session Management Response Identified Informational

이는 ZAP에서 탐지한 경고 유형 10개를 의미합니다. 실제 공격으로 입증된 취약점 10개라는 의미는 아닙니다.

특히 정보성 경고는 반드시 취약점으로 분류되는 것은 아닙니다.

10. 실제 HTTP 응답 헤더 분석

ZAP에 수집된 응답에는 다음과 같은 정보가 포함되어 있었습니다.

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/8.5
X-AspNet-Version: 2.0.50727
Set-Cookie: ASP.NET_SessionId=...; path=/; HttpOnly
X-Powered-By: ASP.NET

이 응답을 통해 다음과 같은 보안 설정 미흡 사항을 확인했습니다.

첫째, 서버와 프레임워크 버전 정보가 노출되었습니다.

둘째, 세션 쿠키에 SameSite 속성이 명시되어 있지 않았습니다.

셋째, CSP와 클릭재킹 방지 헤더 및 X-Content-Type-Options 헤더가 확인되지 않았습니다.

다만 응답 헤더에 표시된 버전만으로 실제 서버의 패치 수준이나 알려진 취약점의 악용 가능성을 확정할 수는 없습니다.

또한 SameSite 속성 누락이 곧바로 세션 탈취를 의미하는 것도 아닙니다.

보안 진단에서는 이러한 차이를 구분해야 합니다.

11. 가장 중요한 실습: CSRF 오탐 가능성 분석

이번 실습에서 가장 흥미로웠던 항목은 다음 경고였습니다.

Absence of Anti-CSRF Tokens
Risk: Medium
CWE-352

ZAP은 HTML의 POST 폼에서 일반적인 Anti-CSRF 토큰을 찾지 못했습니다.

그런데 해당 사이트는 ASP.NET Web Forms를 사용하고 있었고, HTML에는 다음 필드가 존재했습니다.

<input type="hidden" name="__VIEWSTATE" ...>
<input type="hidden" name="__EVENTVALIDATION" ...>

여기서 주의할 점이 있습니다.

__VIEWSTATE는 주로 페이지 상태 유지와 무결성 보호에 사용됩니다.

__EVENTVALIDATION은 허용된 이벤트 및 입력값의 유효성을 검증하는 기능입니다.

두 기능 모두 CSRF 방어를 직접 보장하는 전용 토큰은 아닙니다.

ASP.NET에서는 사용자별 ViewStateUserKey 설정이나 별도의 CSRF 토큰 검증 등으로 방어를 강화할 수 있습니다.

따라서 단순히 ViewState와 EventValidation이 존재한다는 이유로 CSRF 취약점이 없다고 판단해서는 안 됩니다.

반대로 ZAP이 토큰을 탐지하지 못했다는 이유만으로 실제 CSRF 공격이 가능하다고 확정해서도 안 됩니다.

이번 진단에서는 해당 항목을 추가 검증 필요로 분류했습니다.

12. ARTEX AI를 이용한 취약점 진단 보고서 작성

이후 ARTEX AI에게 지금까지 수집한 ZAP 데이터를 기반으로 웹 취약점 진단 보고서를 작성하도록 지시했습니다.

보고서에는 다음 내용을 포함하도록 했습니다.

  • - 취약점명 및 위험도
  • - 대상 URL
  • - 취약점 현황
  • - 판정 근거
  • - 보안 영향
  • - 조치 방안
  • - 재진단 방법

ARTEX는 보안 헤더 누락, 쿠키 속성 미흡, 서버 정보 노출, CSRF 추가 검증 항목을 구분하여 보고서 초안을 작성했습니다.

하지만 AI가 작성한 보고서에서도 기술적으로 부정확한 표현이 일부 발견되었습니다.

예를 들어 SameSite 누락을 세션 탈취와 직접 연결하거나, ViewState와 EventValidation의 존재를 CSRF 방어의 충분한 근거처럼 설명하는 부분이 있었습니다.

따라서 최종 보고서에서는 이러한 표현을 수정했습니다.

실무 보고서에 사용할 수 있는 종합 의견 예시는 다음과 같습니다.

 

웹 보안 진단 종합 의견

본 진단은 OWASP ZAP 패시브 스캔 및 HTTP 응답 분석을 통해 웹 애플리케이션의 보안 설정 현황을 점검하였으며, 주요 보안 헤더 미설정, 세션 쿠키 보안 속성 미흡, 웹 서버 및 프레임워크 정보 노출 등의 사항을 확인하였다.

또한 ASP.NET Web Forms 기반 POST 요청 처리 구간에서 일반적인 Anti-CSRF 토큰이 식별되지 않았으나, 서버 측 CSRF 방어 구현 여부가 확인되지 않아 해당 항목은 추가 검증이 필요한 사항으로 분류하였다.

확인된 보안 설정 미흡 사항에 대해서는 서비스 운영 특성을 고려한 보안 정책 적용 및 불필요한 시스템 정보 노출 최소화를 권고한다.

본 진단 결과는 수집된 HTTP 응답 및 패시브 스캔 증적을 기준으로 작성되었으며, SQL Injection, XSS 등 능동적 검증이 필요한 취약점의 존재 여부를 판단하는 근거로 활용할 수 없다.

13. 이번 실습에서 배운 점

이번 실습을 통해 AI 보안 진단 자동화의 가능성과 한계를 모두 경험할 수 있었습니다.

첫 번째는 MCP 연결만으로 자동화가 완성되지 않는다는 점입니다.

Playwright와 ZAP을 연결했더라도 프록시 설정이 누락되면 브라우저의 HTTP 요청을 ZAP에서 분석할 수 없었습니다.

두 번째는 AI의 분석 결과를 반드시 검증해야 한다는 점입니다.

MCP 데이터 조회 오류로 인해 실제 적용된 보안 헤더를 AI가 확인하지 못하는 상황이 발생했습니다.

세 번째는 보안 경고와 실제 취약점을 구분해야 한다는 점입니다.

CSRF 토큰 미탐지, 보안 헤더 누락, 서버 버전 노출은 서로 다른 성격의 보안 이슈입니다. 이를 모두 동일한 수준의 취약점으로 분류하면 보고서의 정확성이 떨어질 수 있습니다.

네 번째는 AI를 보고서 작성 보조 도구로 활용할 수 있다는 점입니다.

ARTEX AI는 ZAP에서 수집한 증거를 바탕으로 취약점 현황과 조치 방안을 정리하는 데 도움이 되었습니다.

그러나 최종 판정과 보고서 품질 관리는 여전히 보안 전문가의 검토가 필요했습니다.

 

14. 마무리

이번 실습에서는 ARTEX AI를 이용하여 웹사이트 구조 분석, HTTP 통신 수집, 보안 경고 탐지, 오탐 가능성 검토, 보고서 작성까지 진행했습니다.

가장 인상 깊었던 부분은 AI가 자동으로 분석해 준 결과를 사람이 다시 검토하는 과정이었습니다.

AI가 모든 취약점을 정확하게 찾아주거나 모든 경고를 올바르게 판단해 주는 것은 아닙니다.

하지만 Playwright MCP, OWASP ZAP MCP와 같은 도구를 적절히 연동하면 반복적인 정보 수집과 분석, 보고서 초안 작성 업무를 효율화할 가능성이 있습니다.

앞으로도 실제 실습을 통해 AI 보안 진단 자동화 기술을 하나씩 익혀볼 계획입니다.

읽어주셔서 감사합니다. ^^

 

 


참고 키워드

ARTEX AI, OWASP ZAP, Playwright MCP, AI 보안, 웹 취약점 진단, MCP 보안 자동화, ASP.NET 보안, CSRF, CSP, 클릭재킹, 보안 컨설팅, 침투테스트

반응형

반응형

AI 자동 침투테스트의 원리부터 금융권 보안사고, MCP 기술, 보안 취약점 및 대응방안까지

작성 기준: 2026년 11월

1. 들어가며: AI가 해킹의 판도를 바꾸고 있다

최근 인공지능(AI) 기술이 급속도로 발전하면서 정보보안 분야에도 커다란 변화가 나타나고 있다.

과거에는 숙련된 해커가 직접 시스템을 분석하고 취약점을 찾아 공격하는 방식이 일반적이었다. 그러나 이제는 AI가 웹사이트를 탐색하고, 취약점을 분석하고, 보안 도구를 호출하는 과정까지 지원할 수 있게 되었다.

그 중심에 있는 기술 중 하나가 'ARTEX AI(아르텍스 AI)'와 같은 AI 기반 자동화 침투테스트 플랫폼이다.

특히 2026년 국내 금융권을 겨냥한 공격에서 ARTEX 활용 정황이 보도되면서 AI 보안에 대한 관심이 커졌다.

여기서 중요한 질문이 생긴다.

"금융기관에는 방화벽, 웹방화벽(WAF), 침입방지시스템(IPS), EDR, SIEM 등 수많은 보안 솔루션이 설치되어 있는데, 왜 보안사고가 발생할까?"

이 질문의 답을 이해하려면 AI 침투테스트의 작동 원리뿐 아니라 기존 정보보안 체계가 가진 구조적인 한계도 살펴봐야 한다.

이번 글에서는 ARTEX AI의 기술적 특징과 AI 기반 공격의 위험성, 금융권 및 공공기관이 준비해야 할 대응방안을 자세히 알아보겠다.


2. ARTEX AI란 무엇인가?

ARTEX AI는 대규모 언어모델(LLM)과 여러 보안 도구를 연동하여 침투테스트 작업을 자동화할 수 있도록 설계된 AI 에이전트 기반 플랫폼이다.

쉽게 설명하면 사람이 보안 점검 목표를 설정하면 AI가 필요한 작업을 계획하고, 연결된 도구를 이용해 정보를 수집한 뒤, 결과를 분석하여 다음 작업을 제안하거나 수행하는 구조다.

2.1 기존 침투테스트와 ARTEX AI의 차이점

기존 침투테스트는 다음과 같은 절차로 수행된다.

① 점검 대상 시스템 확인

② 정보 수집 및 공격 표면 분석

③ 웹·서버·네트워크 취약점 점검

④ 취약점 검증

⑤ 위험도 평가

⑥ 개선방안 및 결과보고서 작성

이러한 작업은 보안 전문가의 기술과 경험에 크게 의존한다.

반면 ARTEX와 같은 AI 에이전트 플랫폼은 일부 단계를 자동화할 수 있다.

예를 들어 AI가 웹페이지 구조를 분석하고, 입력 폼과 API를 식별하며, 연결된 보안 도구의 결과를 해석한 다음 추가 점검이 필요한 영역을 분류하는 방식이다.

다만 AI가 수행한 모든 분석이 정확한 것은 아니다. 오탐과 미탐이 발생할 수 있으며, 실제 취약점 여부는 검증이 필요하다.

2.2 ARTEX AI의 주요 구성요소

① Planner Agent(계획 에이전트)

전체 작업을 계획하고 순서를 결정한다.

예를 들어 로그인 기능을 점검할 때 인증 방식, 세션 관리, 접근통제 등 어떤 항목을 확인할지 계획할 수 있다.

② Worker Agent(실행 에이전트)

계획된 작업을 실제 도구로 수행한다.

HTTP 요청 분석, 응답 헤더 확인, 페이지 구조 수집 등이 여기에 해당한다.

③ LLM(대규모 언어모델)

수집된 정보를 분석하고 다음 작업을 판단한다.

AI 모델은 취약점의 의미를 설명하거나 점검 결과를 보고서 형태로 정리하는 데도 활용할 수 있다.

④ MCP(Model Context Protocol)

AI와 외부 프로그램을 연결하는 인터페이스다.

MCP를 이용하면 AI가 보안 도구의 기능을 호출하고 결과를 전달받을 수 있다.

⑤ Context 및 작업 기록

점검 과정에서 발견한 정보와 이전 작업 결과를 관리한다.

다만 이러한 기록에 개인정보나 인증 토큰이 포함되면 별도의 보안 위험이 발생할 수 있다.


3. MCP 기술이 중요한 이유

MCP는 AI 모델과 외부 시스템을 연결하는 기술이다.

기존 AI 챗봇은 주로 질문에 답변하거나 코드를 작성하는 역할을 했다.

그러나 MCP와 실행 도구가 연결되면 AI가 실제 프로그램의 기능을 사용할 수 있다.

예를 들어 다음과 같은 구성이 가능하다.

사용자 → ARTEX AI → MCP 서버 → OWASP ZAP → 점검 결과 → ARTEX AI

이때 ARTEX는 OWASP ZAP에서 수집한 HTTP 요청 및 보안 경고를 분석하고 취약점 가능성을 설명할 수 있다.

3.1 MCP가 보안에 미치는 영향

MCP는 보안 업무의 효율성을 높일 수 있지만 위험도 존재한다.

첫째, AI에 과도한 도구 실행 권한을 부여하면 허가되지 않은 작업이 실행될 수 있다.

둘째, 외부 웹페이지나 로그에 포함된 악의적인 문장이 AI의 판단을 왜곡할 수 있다. 이를 프롬프트 인젝션이라고 한다.

셋째, AI가 외부 LLM 서비스에 민감한 데이터를 전송할 수 있다.

넷째, 여러 도구가 연결되면서 인증정보와 접근 권한을 관리하기 어려워질 수 있다.

따라서 MCP를 운영할 때는 허용 대상 제한, 최소 권한, 명령 실행 승인, 로그 기록, 네트워크 격리 등의 통제가 필요하다.


4. 2026년 국내 금융권 공격과 ARTEX AI

2026년 국내 금융권을 대상으로 한 일련의 사이버 공격과 관련하여 AI 기반 침투테스트 도구의 활용 정황이 공개적으로 논의되었다.

관련 분석에서 중요한 점은 AI가 기존 보안 취약점을 더욱 빠르게 탐색하고 공격 과정을 자동화하는 데 사용될 수 있다는 것이다.

그러나 AI 도구가 사용되었다는 사실만으로 모든 피해가 AI 때문에 발생했다고 볼 수는 없다.

실제 사고 원인을 분석하려면 다음 사항을 구분해야 한다.

① 공격자가 사용한 도구

② 최초 침투에 이용된 취약점

③ 인증 및 접근통제 실패 여부

④ 공격 이후 수행된 행위

⑤ 개인정보 유출 및 시스템 피해 범위

⑥ 보안장비의 탐지 및 대응 여부

특히 사고 대상이 된 개별 금융회사의 취약점과 피해 규모는 공식 조사 결과에 따라 별도로 확인해야 한다.

4.1 금융권에서 주변 업무시스템이 중요한 이유

금융기관의 핵심 인터넷뱅킹 시스템은 일반적으로 다양한 보안 통제를 적용받는다.

하지만 금융회사에는 인터넷뱅킹 외에도 여러 업무시스템이 존재한다.

예를 들어 대출모집인 시스템, 협력사 포털, 직원 업무지원 시스템, 영업지원 API 등이 있다.

이러한 시스템은 업무 편의성을 위해 외부 접속을 허용하는 경우가 있다.

만약 인증이나 접근통제가 충분하지 않다면 공격자는 핵심 금융시스템을 직접 공격하지 않고도 주변 시스템을 통해 중요정보에 접근할 가능성이 있다.

이것이 공격 표면 관리(Attack Surface Management)가 중요한 이유다.


5. 금융기관에 보안장비가 많은데도 침해사고가 발생하는 이유

많은 기업이 방화벽과 웹방화벽을 설치하면 외부 공격을 충분히 차단할 수 있다고 생각한다.

그러나 실제 보안은 그렇게 단순하지 않다.

5.1 웹방화벽(WAF)의 한계

WAF는 SQL Injection, XSS 등 웹 공격을 탐지하거나 차단하는 데 도움을 준다.

그러나 정상적인 HTTP 요청 형태로 이루어지는 권한 위반까지 모두 탐지할 수 있는 것은 아니다.

예를 들어 사용자가 자신의 주문정보를 조회할 수 있도록 설계된 API가 있다고 가정해 보자.

서버가 로그인 여부만 확인하고 주문정보의 실제 소유자를 검증하지 않는다면 다른 사용자의 데이터가 노출될 수 있다.

이러한 취약점을 BOLA(Broken Object Level Authorization) 또는 IDOR(Insecure Direct Object Reference)와 연관 지어 설명할 수 있다.

핵심은 로그인에 성공했다는 사실과 특정 정보에 접근할 권한이 있다는 사실은 서로 다르다는 것이다.

5.2 API 접근통제 취약점

API는 시스템 간 데이터를 주고받기 위한 인터페이스다.

금융권에서는 고객정보 조회, 계좌 관련 업무, 대출 상태 조회, 직원 업무지원 등 다양한 분야에서 사용된다.

API의 인증·인가 검증이 충분하지 않으면 개인정보가 노출될 수 있다.

대표적인 위험은 다음과 같다.

  • BOLA: 다른 사용자의 객체에 접근
  • BFLA: 허용되지 않은 기능 호출
  • Broken Authentication: 인증 절차의 결함
  • Excessive Data Exposure: 불필요한 정보 반환
  • Unrestricted Resource Consumption: 과도한 API 요청으로 자원 소모

따라서 웹 취약점 점검에서는 입력값 검증뿐 아니라 사용자별 권한 검증과 데이터 접근 범위를 반드시 확인해야 한다.

5.3 자동화 공격과 비정상 조회

자동화 도구는 동일한 작업을 빠르고 반복적으로 수행할 수 있다.

AI 에이전트는 점검 결과를 해석하고 다음 요청을 선택할 수 있으므로 기존의 단순 반복형 스크립트보다 유연하게 동작할 가능성이 있다.

이에 대응하려면 IP 차단뿐 아니라 사용자 계정, 세션, 조회 빈도, 데이터 접근 패턴을 함께 분석해야 한다.

예를 들어 정상 직원이 하루에 조회하는 고객정보의 양과 비교해 비정상적인 대량 조회가 발생하면 경고를 생성하는 방식이다.


6. 온나라시스템과 같은 공공 업무시스템의 보안 위험

온나라시스템과 같은 공공 전자문서 및 업무처리 시스템에서는 기밀성, 무결성, 가용성이 모두 중요하다.

특히 문서 접근 권한과 기관 간 정보 연계가 핵심 보안 요소다.

다만 특정 온나라시스템 침해사고가 ARTEX로 발생했다고 단정하려면 공식적인 조사 결과와 기술적 증거가 필요하다.

공공 업무시스템에서 중점적으로 점검해야 할 사항은 다음과 같다.

6.1 통합인증 및 세션 관리

SSO를 사용하더라도 개별 업무시스템은 인증 토큰의 유효성, 만료 여부, 사용자 권한을 검증해야 한다.

6.2 문서 접근통제

로그인한 사용자가 다른 부서나 기관의 비공개 문서를 조회하지 못하도록 문서 단위 권한 검증이 필요하다.

6.3 기관 간 연계 보안

API와 중계 서버를 통한 데이터 교환 시 상호 인증, 접근통제, 전송구간 암호화, 연계 이력 관리가 필요하다.

6.4 관리자 및 유지보수 계정 관리

관리자 계정에 최소 권한을 적용하고 외부 유지보수 접속은 승인·기록·모니터링해야 한다.


7. 쿠팡과 같은 대규모 플랫폼의 보안 위험

전자상거래 플랫폼에서는 회원정보, 주문정보, 배송정보, 결제 관련 정보 등 방대한 데이터를 처리한다.

따라서 API 접근통제와 개인정보 조회 이력 관리가 중요하다.

주요 위험 요소는 다음과 같다.

① 인증 토큰 관리 미흡

② 사용자별 주문정보 접근통제 오류

③ 내부 서비스 계정의 과도한 권한

④ 협력사 시스템과의 연계 취약점

⑤ 개인정보 대량 조회 탐지 미흡

⑥ 퇴직자 및 외부 인력 계정 관리 부실

이러한 항목은 대규모 플랫폼에서 일반적으로 점검해야 할 보안 위험이며, 특정 쿠팡 사고의 확정 원인을 의미하지는 않는다.


8. AI 기반 사이버 공격에 대응하는 7가지 핵심 보안 전략

전략 1. 공격 표면 관리(ASM)

인터넷에 노출된 서버, 도메인, API, 관리 페이지, 협력사 연계 시스템을 식별한다.

자산 목록에 없는 시스템도 지속적으로 탐색하고 관리해야 한다.

전략 2. Zero Trust 보안 적용

내부망에 접속했다는 이유만으로 사용자를 신뢰해서는 안 된다.

모든 접근에 대해 사용자 신원, 단말 상태, 권한, 접근 대상 등을 검증해야 한다.

전략 3. API 보안 강화

API Gateway와 애플리케이션에서 인증·인가를 검증한다.

특히 사용자별 데이터 접근 권한과 대량 조회 제한을 구현해야 한다.

전략 4. SIEM 및 UEBA 기반 이상행위 탐지

SIEM은 다양한 보안 로그를 통합 분석하는 시스템이다.

UEBA는 사용자와 시스템의 행위 패턴을 분석하여 이상행위를 식별하는 기술이다.

두 기술을 활용하면 정상적인 형태의 요청으로 이루어지는 비정상적인 대량 조회를 탐지하는 데 도움을 받을 수 있다.

전략 5. AI 기반 지속적 보안 검증

정기적인 취약점 진단에 더해 승인된 범위에서 자동화 보안 검증을 수행한다.

단, 운영시스템에 영향을 줄 수 있는 점검은 반드시 사전 승인을 받아야 한다.

전략 6. AI 및 MCP 보안 통제

AI가 호출할 수 있는 도구와 대상 시스템을 제한한다.

고위험 명령은 사람의 승인을 요구하고, 실행 이력은 감사 가능하도록 보존한다.

전략 7. 사고 대응 및 복구 체계 강화

침해사고 발생 시 로그 분석, 계정 차단, 영향 범위 확인, 개인정보 유출 조사, 복구 및 재발 방지까지 이어지는 대응 절차가 필요하다.

AI 기반 공격에 대비하려면 탐지 속도뿐 아니라 대응 의사결정 속도도 높여야 한다.


9. ARTEX AI와 OWASP ZAP을 활용한 안전한 보안 실습

ARTEX를 학습할 때 처음부터 공격 자동화에 집중할 필요는 없다.

오히려 AI가 실제 보안 점검 결과를 얼마나 정확하게 분석하는지 검증하는 것이 중요하다.

필자는 ARTEX와 OWASP ZAP을 MCP로 연동하는 실습을 진행했다.

실습 환경에서는 브라우저 자동화 도구를 이용해 웹페이지 구조를 확인하고, ZAP의 패시브 스캔 상태를 조회하는 방식으로 기능을 검증했다.

9.1 실습 환경 예시

운영체제: Windows

AI 플랫폼: ARTEX AI

보안 도구: OWASP ZAP

도구 연동: MCP

웹 분석: Playwright 기반 브라우저 도구

실습 대상: 로컬 테스트 웹 애플리케이션

9.2 단계별 실습 절차

1단계: 로컬 실습 환경 구성

본인이 소유하거나 사용 승인을 받은 테스트 애플리케이션을 준비한다.

2단계: ARTEX와 MCP 연결

ARTEX가 MCP 서버에 연결되어 정상적으로 도구 목록을 확인할 수 있는지 점검한다.

3단계: 웹페이지 구조 분석

페이지 제목, 입력 폼, HTTP 메서드, 링크 등을 확인한다.

4단계: ZAP 패시브 분석

기존에 수집된 HTTP 요청과 응답에서 보안 헤더, 쿠키 속성, 정보 노출 가능성을 점검한다.

5단계: AI 분석 결과 검증

AI가 제시한 취약점 가능성과 실제 HTTP 요청·응답을 비교한다.

6단계: 결과보고서 작성

취약점명, 위험도, 발생 원인, 검증 증적, 개선방안, 재점검 결과를 정리한다.

이 과정에서는 운영시스템을 대상으로 무단 스캔이나 공격을 수행하지 않는다.


10. 금융권 보안 컨설턴트가 반드시 확인해야 할 점검 항목

실제 금융기관 보안 컨설팅에서는 기술적 취약점뿐 아니라 관리적 통제와 운영 절차를 함께 평가해야 한다.

점검 분야주요 확인사항

자산 관리 외부 노출 서비스 및 API 현황
인증 관리 MFA, SSO, 세션 만료
접근통제 사용자·객체·기능별 권한
계정 관리 퇴직자·협력사·서비스 계정
개인정보 보호 최소 조회 및 대량 반출 통제
로그 관리 API 호출 및 관리자 행위 기록
침해 탐지 SIEM·UEBA 탐지 정책
보안 운영 사고 대응 및 재발 방지
AI 보안 LLM·MCP 실행 권한과 데이터 보호

이러한 점검 항목은 CSP 안전성평가, ISMS-P, 금융권 보안 컨설팅, 웹·API 취약점 진단 업무와도 연결할 수 있다.

다만 각 평가제도의 법적·제도적 요구사항은 해당 기준의 최신 버전을 별도로 확인해야 한다.


11. 앞으로 AI 보안 전문가에게 필요한 역량

AI가 보안 점검의 일부를 자동화하더라도 보안 전문가의 역할이 사라지는 것은 아니다.

오히려 AI가 수행한 작업의 정확성을 검증하고, 위험을 판단하고, 조직에 적합한 보안 아키텍처를 설계하는 역량이 중요해진다.

앞으로 특히 주목할 분야는 다음과 같다.

① AI Red Team: AI 시스템의 취약점과 악용 가능성을 평가하는 분야

② AI Security Architecture: AI 서비스와 인프라의 보안 구조를 설계하는 분야

③ LLM Security: 프롬프트 인젝션, 정보 유출, 도구 오남용 등을 점검하는 분야

④ API Security: 애플리케이션 간 통신과 데이터 접근을 보호하는 분야

⑤ Agentic AI Security: 자율적으로 도구를 사용하는 AI 에이전트의 권한과 행동을 통제하는 분야

⑥ AI Governance: AI 활용에 따른 위험과 책임, 정책, 통제체계를 관리하는 분야

기존 웹·모바일·인프라 보안 전문가라면 이러한 분야로 충분히 역량을 확장할 수 있다.

특히 AI 보안 분야에서는 단순히 도구를 사용할 줄 아는 것보다 도구가 왜 특정 결과를 출력했는지 검증하고, 실제 위험을 판단하며, 적절한 대응방안을 설계하는 능력이 중요하다.


12. 결론: AI 시대의 보안은 무엇이 달라져야 할까?

ARTEX AI와 같은 자동화 침투테스트 기술은 정보보안 분야에 새로운 가능성과 위험을 동시에 가져왔다.

방어자 입장에서는 반복적인 보안 점검을 효율화하고 취약점 분석 속도를 높일 수 있다.

반대로 공격자가 이를 악용하면 기존 취약점을 더 빠르게 탐색하고 공격을 반복하는 데 활용할 수 있다.

따라서 기업은 단순히 보안 솔루션을 추가하는 방식에서 벗어나야 한다.

외부 노출 자산을 지속적으로 파악하고, 인증·인가를 강화하고, 개인정보 접근을 감시하고, 이상행위를 빠르게 탐지해야 한다.

또한 AI 자체의 실행 권한과 데이터 접근을 통제해야 한다.

AI가 공격을 자동화하는 시대에는 방어 역시 지속적인 검증과 신속한 대응을 중심으로 발전해야 한다.

그러나 마지막 판단과 책임은 여전히 사람과 조직에 있다.

AI 보안 도구를 무조건 신뢰하기보다는 전문가의 검증과 체계적인 통제 아래 활용하는 것이 중요하다.


참고자료

  1. OWASP, API Security Top 10 (2023) — https://owasp.org/API-Security/
  2. OWASP, Top 10 for Large Language Model Applications — https://genai.owasp.org/
  3. MITRE, ATT&CK Framework — https://attack.mitre.org/
  4. NIST, AI Risk Management Framework — https://www.nist.gov/itl/ai-risk-management-framework
  5. Model Context Protocol 공식 문서 — https://modelcontextprotocol.io/
  6. CrowdStrike 및 금융보안 관련 공개 위협 인텔리전스 자료 — 개별 사고의 최신 조사 결과 확인 필요

※ 본 글은 AI 기반 침투테스트 기술과 보안 대응방안을 교육·연구 목적으로 설명한 자료입니다. 특정 기업의 침해 원인이나 피해 범위를 독립적으로 확정하는 조사보고서는 아닙니다. 모든 보안 실습은 본인 소유 또는 정식 허가를 받은 환경에서만 수행해야 합니다.

반응형

반응형

## 경고문 ##

제 블로그의 모든 글들은 해킹과 보안에 대한 학습용 글입니다.

해당 글을 보고 실제 홈페이지에 공격하는 것은 명백한 범죄행위임을 알려드리며,

절대로 실제 홈페이지에 공격하지 마시기 당부드립니다. 실제 공격한 부분에 대한 책임은

본인이 지셔야 하며, 블로그를 통해 공유한 블로거와는 무관함을 알려드립니다.

 

 

 

AI가 보안 진단 도구를 직접 실행하는 첫 실습 | Windows 11 실습 후기

2026년 10월 · 개인 실습 기록 · 비밀키 및 개인 식별 정보 제외

1. 왜 이 실습을 시작했을까?

웹 취약점 진단을 할 때 Burp Suite, OWASP ZAP 같은 도구를 사람이 직접 조작하는 방식은 익숙합니다. 이번에는 한 걸음 더 나아가 AI에게 자연어로 요청하면 보안 도구를 호출하고 결과를 설명하도록 구성해 보았습니다. 목표는 “AI가 보안 진단을 전부 대신한다”가 아니라, AI와 도구 사이의 연결을 실제로 검증하는 것이었습니다.

2. MCP란 무엇일까?

MCP(Model Context Protocol)는 AI 애플리케이션이 외부 도구나 데이터에 표준화된 방식으로 접근하도록 돕는 연결 규약입니다. 이번 실습에서는 ARTEX가 MCP 클라이언트 역할을 하고, OWASP ZAP의 MCP Integration 애드온이 ZAP 기능을 외부에 제공합니다.

사용자 → ARTEX AI 에이전트 → MCP → OWASP ZAP → 상태 결과 → 한국어 답변

중요한 점은 “도구 목록이 보이는 것”과 “실제 도구가 실행되는 것”이 다르다는 사실입니다. 그래서 마지막에 읽기 전용 상태 조회를 직접 실행해 확인했습니다.

3. 실습 환경

운영체제 Windows 11
AI 플랫폼 ARTEX Global (로컬 웹 콘솔)
LLM OpenAI GPT-4.1 API 프로필
브라우저 자동화 Playwright Browser MCP (25개 도구 검색)
보안 진단 도구 OWASP ZAP 2.17.0
ZAP 확장 MCP Integration 0.4.0 (Alpha)
ZAP MCP 도구 17개 검색 성공

 

ARTEX와 ZAP은 같은 PC에서 실행했습니다. ARTEX 접속 주소는 로컬 환경의 http://127.0.0.1:8787 이었습니다. 이 주소는 외부 공개 서비스 주소가 아닙니다.

4. 설치와 연결 과정

① ARTEX 준비

ARTEX를 로컬에서 실행하고 관리자 계정으로 로그인한 뒤, System → LLM에서 OpenAI API 프로필을 등록했습니다. GPT-4.1 응답이 정상적으로 오는지 먼저 확인했습니다. API 사용에는 별도 과금이 발생할 수 있으므로 사용량과 자동 충전 설정을 확인하는 것이 좋습니다.

② Playwright Browser MCP 연결

ARTEX의 System → MCP에서 브라우저용 STDIO MCP 서버를 등록했습니다. 도구 검색(Refresh) 결과 25개 브라우저 도구가 확인되었습니다. 브라우저 자동화 도구는 페이지 탐색에 유용하지만 그 자체가 전문 취약점 스캐너는 아닙니다.

③ OWASP ZAP 설치와 MCP 애드온 추가

OWASP ZAP 2.17.0을 설치했습니다. 실행에 필요한 Java 환경도 준비했습니다. ZAP 상단 툴바의 Manage Add-ons 아이콘을 열고 Marketplace에서 “mcp”를 검색한 후 MCP Integration 0.4.0을 설치했습니다. 설치 직후 설정 항목이 보이지 않아 ZAP을 재시작했고, 이후 Tools → Options → MCP Integration 메뉴가 나타났습니다.

 

 

그림 1. ZAP Installed 탭에서 MCP Integration 0.4.0 설치 확인

 

④ ZAP MCP 서버 활성화

Options → MCP Integration에서 Enable MCP Server를 체크했습니다. 포트는 8282를 사용하고, Security Key 인증 및 Secure Only(HTTPS) 옵션을 유지했습니다. Security Key는 화면에 노출하거나 블로그에 게시하면 안 됩니다.

 

그림 2. MCP Integration 설정 화면(키는 마스킹된 상태)

 

⑤ ARTEX에 OWASP-ZAP 서버 등록

ARTEX → System → MCP → Add MCP에서 http (remote)를 선택하고 아래 항목을 설정했습니다.

 

그림 3. ARTEX MCP 서버 등록 창(HTTP 방식 선택)

 

 

Name OWASP-ZAP
Transport http (remote) / Streamable HTTP
Remote URL https://127.0.0.1:8282/mcp
Request headers Authorization=본인의_ZAP_Security_Key
TLS 인증서 검증 생략 로컬 자체 서명 인증서 테스트에서만 임시 사용

 

주의: ZAP MCP Integration에서는 이 실습 기준으로 Authorization 헤더에 Bearer 접두어를 붙이지 않고 키 값을 그대로 넣어야 정상 인증되었습니다. 실제 키를 예시 문자열과 바꿔 입력해야 합니다.

5. 실제로 만난 오류와 해결 방법

오류 A. ZAP 옵션에 MCP Integration이 안 보임

증상: 애드온은 Installed 목록에 보이지만 Options 메뉴에는 없었습니다. 해결: ZAP을 완전히 종료한 뒤 다시 실행하고, Options 검색창에서 “mcp”를 검색하니 설정 항목이 표시되었습니다.

오류 B. TLS 인증서 검증 실패

tls: failed to verify certificate: x509: certificate signed by unknown authority

원인: ARTEX가 ZAP의 HTTPS 서버에 접근했지만 자체 서명 인증서를 신뢰하지 못했습니다. 해결: 동일 PC의 로컬 실습에 한하여 ARTEX 등록 설정의 “Skip TLS certificate verification”을 체크했습니다. 운영 환경에서는 인증서 검증을 생략하지 않고 신뢰 가능한 인증서 체인을 구성해야 합니다.

 

그림 4. TLS 인증서 검증 실패 로그(오류 부분만 발췌)

 

오류 C. 401 Invalid or missing security key

mcp http 401: Invalid or missing security key

원인: ARTEX의 Authorization 헤더에 잘못된 형식으로 키를 전달했습니다. 처음에는 “Authorization=Bearer 키값”으로 시도했으나 인증에 실패했습니다. 해결: “Authorization=키값” 형식으로 변경하고 저장한 뒤 Tool list에서 Refresh를 실행했습니다. 이후 도구 17개가 정상 검색되었습니다.

6. 최종 성공: MCP 도구 17개 확인

ARTEX의 OWASP-ZAP 서버 상세 화면에서 “Tool list (17)”이 나타났습니다. 화면에는 zap_create_context, zap_generate_report, zap_get_history, zap_get_passive_scan_status, zap_get_spider_status 등의 도구가 표시되었습니다. 이것은 ARTEX가 ZAP MCP 서버에 접속하여 도구 목록을 가져오는 데 성공했다는 의미입니다.

 

그림 5. OWASP-ZAP 도구 17개 검색 성공

 

7. 첫 번째 AI 보안 자동화 실습

연동 성공 여부를 확실히 검증하기 위해 공격이나 신규 스캔 없이 패시브 스캔 상태만 조회했습니다. ARTEX Chat의 Auto 에이전트에 다음과 같이 요청했습니다.

OWASP-ZAP MCP 서버의 zap_get_passive_scan_status 도구를 1회 호출해 주세요.
새로운 웹 요청이나 Spider, Active Scan은 실행하지 말고, 결과를 한국어로 설명해 주세요.

실제 실행 기록에는 다음 두 단계가 확인되었습니다.

SearchExtraTools → mcp__OWASP-ZAP__zap_get_passive_scan_status
ExecuteExtraTool → mcp__OWASP-ZAP__zap_get_passive_scan_status

ARTEX의 응답은 “패시브 스캔 상태 idle, 대기 중인 스캔 0건”이었습니다. AI가 단순히 답변을 만들어낸 것이 아니라 MCP 도구를 실제로 호출했다는 점이 이번 실습의 핵심 성과입니다. 단, idle 및 0건은 현재 대기 중인 패시브 스캔 작업이 없다는 뜻이지, 대상 웹사이트에 취약점이 없다는 뜻은 아닙니다.

 

그림 6. ARTEX에서 Browser 25개, OWASP-ZAP 17개 도구 등록 확인

 

8. 이번 실습에서 배운 점

·        MCP 서버 등록만으로 연동이 완료되는 것은 아닙니다. 도구 검색과 실제 실행까지 확인해야 합니다.

·        자체 서명 HTTPS 인증서와 Authorization 헤더 형식은 연결 실패의 흔한 원인입니다.

·        브라우저 탐색, 패시브 스캔, 액티브 스캔은 서로 다른 기능입니다. AI에 허용할 도구와 범위를 구분해야 합니다.

·        ZAP MCP Integration 0.4.0은 Alpha 버전이므로 업데이트 시 동작과 옵션을 재확인해야 합니다.

·        AI가 도구를 실행할 수 있어도 결과 검증과 최종 보안 판단의 책임은 사람에게 있습니다.

 

반응형