반응형
은세고화
뚜렷한 기억보단 흐릿한 잉크를
은세고화
전체 방문자
오늘
어제
  • 분류 전체보기 (96)
    • TDD (2)
      • 학점 산출 프로그램 (2)
    • IT (44)
      • 부스트코스 (18)
      • CS50 (3)
      • 도서추천 알고리즘 (2)
      • 스터디 일정 (3)
      • 스프링 (3)
      • 프로젝트 개발 중 발생한 에러 (8)
      • 웹개발 (4)
      • DB (3)
    • 독서 후기 (12)
      • 도서 (12)
    • e북 (3)
    • 알고리즘 (26)
    • 프로젝트 (6)
      • 향수 (6)
    • 회고 (1)

블로그 메뉴

  • 홈

공지사항

인기 글

티스토리

hELLO · Designed By 정상우.
글쓰기 / 관리자
은세고화

뚜렷한 기억보단 흐릿한 잉크를

IT/스터디 일정

사내 생성형 AI의 코드 필터 우회기: 한글 변환을 이용한 질문 전략

2025. 4. 24. 10:25
반응형

문제 상황


사내 생성형 AI는 보안 정책으로 인해 프로그래밍 코드 입력이 차단되어 있습니다. 내부망 환경에서는 VMWARE/개인 노트북을 통해 별도 접속해야 하는 번거로움이 존재하죠. 더 큰 문제는 영어 기술 용어나 오류 메시지 조차도 코드로 오인되어 차단되는 경우가 빈번하다는 점입니다. -> 예시를 보면 필터 기준을 알 수 없음.

예시 차단 케이스:

"Have you ever gone to korea를 한국어로 뭐라고 해석해?" → 차단
"AWS EC2에서 CloudeFront로 연동하는 방법이 뭐야?" -> 차단
"Python에서 AWS S3 버킷 리스트 조회 방법" → 허용

업무 효율성을 위해선 비즈니스 로직 노출 없이 기술 및 영어 해석 질문을 할 수 있는 방법이 시급했습니다.


🛠 시도 1 : 코드 감지 로직 역공학

가장 먼저, AI가 어떤 기준으로 프로그래밍 코드를 감지하는지 파악하려고 했습니다.
여러 형태의 영어 문장과 오류 메시지를 입력해봤지만, 특정 패턴이나 단어가 포함되면 코드로 오인되어 차단되는 현상이 반복되었습니다. 필터의 기준이 꽤 보수적으로 잡혀 있는 듯합니다.

 

결론

  • 키워드 기반 필터링 + 구조 분석 복합적으로 동작
  • 순수 영어 텍스트 조차 위험 요소로 판단하는 과잉 보안 정책 확인

🛠 시도 2 : AI가 해석한 뒤 답변하기 (암호화 전략)

아이디어
"질문을 암호화 → AI가 복호화 후 답변 생성"

Base64 인코딩 시도

import base64
question = base64.b64encode("Python ValueError 해결법".encode()).decode()
# Output: UHl0aG9uIFZhbHVlRXJyb3Ig7ZiE7YSw66W8

결과

  • 입력 길이 초과 또는 암호화된 텍스트 입력시 오류발생 → 실패 ❌

✅ 최종 해결책 : 알파벳 → 한글 발음 변환

전략
"AWS S3" → "에이더블유에스 에스쓰리"
영어 알파벳을 한글 발음으로 치환하여 의도적으로 자연어 형식으로 변조

구현 코드

def translate_and_quote():
    # 알파벳을 한글로 바꿀 딕셔너리 정의
    alphabet_dict = {
        'A': '에이', 'B': '비', 'C': '씨', 'D': '디', 'E': '이',
        'F': '에프', 'G': '지', 'H': '에이치', 'I': '아이', 'J': '제이',
        'K': '케이', 'L': '엘', 'M': '엠', 'N': '엔', 'O': '오',
        'P': '피', 'Q': '큐', 'R': '알', 'S': '에스', 'T': '티',
        'U': '유', 'V': '브이', 'W': '더블유', 'X': '엑스', 'Y': '와이', 'Z': '제트'
    }

    # 사용자 입력을 저장할 리스트
    lines = []
    print("변환할 텍스트를 입력하세요. 입력을 마치려면 | (파이프)를 입력하세요.")
    while True:
        line = input()
        if line.strip() == "|":
            break
        lines.append(line)
    text = "\n".join(lines)
'''이하 생략'''

실행 프로세스

  1. 질문 → 한글 발음 변환 (수동/자동화)
  2. AI에 자연어 질문 전달 -> 따옴표로 깜싼 부분은 영어단어로 바꾸고 거기에 대한 답변을 달라고 질문
  3. 답변에서 특수 기호("")로 감싼 단어 자동 복원

🚨 주의사항 & 한계

  • 비즈니스 로직 포함 금지
  • AI 답변 정확도 하락할 확률 증가. -> 만약 긴 로직이 포함된 코드를 올리더라도 질문 길이가 비대해져서 AI가 오인할 가능성이 높음. -> 긴 코드 질문엔 부적절하고 영어해석, 간단한 오류에 적합함.
반응형
저작자표시 (새창열림)

'IT > 스터디 일정' 카테고리의 다른 글

3주차  (0) 2021.08.01
2주차  (0) 2021.07.23
    'IT/스터디 일정' 카테고리의 다른 글
    • 3주차
    • 2주차
    은세고화
    은세고화

    티스토리툴바