요약 | - 프로그램 코드 분야에서 생성형 AI를 이용한 코드 생성 및 보정, 번역이 활발히 진행중 - 생성형 AI를 이용해 프로그램 소스코드의 취약점 탐지 |
내용 | - 언어모델(Language Model) > 인간의 언어를 이해하고 이를 생성하려는 모델 > 사전학습: 대용량의 데이터를 학습해 언어 이해를 위한 파라미터를 구축 > 미세조정 학습: 실제 사용자의 목적에 맞는 입·출력 데이터를 학습 - 프로그램 코드를 작업하려면 코드와 자연어를 함께 이해하는 언어모델이 필수 > 대표적 언어모델: CodeBERT, CodeT5, PLBART 등 > 코드 요약, 코드 생성, 코드 번역, 코드 유사성 검사, 소스코드 취약점 탐지 등의 역할 ① 코드 요약 > 입력된 코드에 대한 자연어로 구성된 설명을 생성 > 사용자는 코드를 직접 읽지 않고 코드 요약을 받을 수 있음 ② 코드 생성 > 코드의 자연어 설명에 기반해 프로그램 코드를 생성 ③ 코드 번역 > 입력받은 코드를 다른 프로그래밍 언어의 코드로 생성 ④ 코드 유사성 검사 > 입력된 두 코드의 유사성을 탐지 > 구조는 다르나 의미상 비슷한 코드도 탐지 가능 ⑤ 소스코드 취약점 탐지 > 기존 정적ㆍ동적 소스코드 취약점 보다 상대적으로 짧은 시간에 취약점 탐지 및 사전 대응 가능 > 구별형 모델을 이용한 방식과 생성형 모델을 이용한 방식은 탐지 과정에 차이를 보임 ⒜ 구별형 언어모델 활용(Ex, BERT 모델) > 구별형 언어모델은 입력된 언어를 바탕으로 분류나 회귀 분석에 사용 > 학습 단계 - 취약점과 해당 취약점이 포함된 코드 데이터를 수집 및 전처리(불피요한 부분 제거, 연관성 없는 변수 대체) 후 최종 코드 데이터 구축 - 구축된 취약점과 코드 데이터는 임베딩 과정을 통해 벡터로 변환 - 언어모델의 미세학습 과정을 통해 모델 구축 및 별도 평가 데이터로 모델 성능 평가 > 탐지 단계 - 실제 사용자가 제시한 코드를 입력 받아 전처리 및 임베딩 과정 후 취약점 유무와 예상되는 취약점 도출 ※ 취약점 탐지에 중요한 코드 구조를 놓칠 수 있어 코드를 벡터로 변환 시 코드 내 변수별 관계성을 표현하는 방법이 제안 -> 정확한 취약점 부분을 예상 ⒝ 생성형 언어모델 활용 > 전처리 -> 프롬프트 튜닝 -> 학습 단계 -> 탐지 단계 > 프롬프트 튜닝 - 사전에 입력과 모델의 답변 형태를 지정해 모델이 원하는 답변을 유도하기 위함 - 코드 질의와 취약점 응답 형식의 데이터 쌍을 만드는 과정을 진행 - Zero-shot Prompting과 Few-shot Prompting로 나뉨 > 학습 단계 - 프롬프트 튜닝을 거친 데이터의 임베딩 과정 후 미세조정 학습 - 모델의 답변에서 취약점을 추출하는 후처리 과정으로 성능 평가 ※ 성능에 따라 추가적인 전처리 및 학습 방법 변경 후 재학습 혹은 탐지 모델 구축 > 탐지 단계 - 프롬프트 튜닝과 같은 과정을 거침 - 이후 사용자가 제시한 코드를 질문 형태로 변환 후 임베딩 과정을 거쳐 질의해 의심 취약점을 제시 - 대용량의 사전학습 단계를 진행한 모델이 사용돼 구별형 언어모델보다 유현한 답변을 얻을 수 있음 |
기타 | - 소스코드 취약점 탐지 기술 > 코드 내 취약점을 사전에 탐지해 외부 공격을 방지하는 목적으로 연구 |
보안뉴스
'보안뉴스' 카테고리의 다른 글
맨디언트 “전 세계 공격 트렌드, 제로데이 악용과 MFA 우회 그리고 피싱 공격 진화” (0) | 2024.06.25 |
---|---|
미국의 CISA, 사상 첫 인공지능 대비 사이버 모의 훈련 진행 외 2건 (0) | 2024.06.20 |
마이크로소프트의 새로운 기능 ‘리콜’, 프라이버시 위협할까 외 1건 (0) | 2024.06.13 |
[이재춘의 시큐리티 노트-1] '센트OS' 지원 종료로 인한 보안 위협 외 1건 (0) | 2024.06.10 |
새로운 유형의 ATM 멀웨어 등장, 60% 성공률 자랑 (0) | 2024.05.28 |