기술 포트폴리오 · 슬라이드
함수 추상화
정확도 문제 분석·해결
코드 유사성 분석 도구가 사실상 동일한 함수를 일관되게 식별하지 못하던 결함을, 원인 규명부터 내용 기반 해시 명명까지 해결
래브라도랩스(LabradorLabs) · 데이터파트 · 2023 · 데이터 엔지니어
01 · 배경
무엇이 문제였나
- 도구는 소스를 함수 단위로 추상화해 시그니처를 비교 → 유사 코드·취약점 탐지
- 변수명·타입만 다른 사실상 동일한 함수가 매번 다른 시그니처로 생성
- 특히 익명 함수는 호출마다 다른 이름 → 동일 함수가 별개로 인식, 정확도 저하
02 · 원인 규명
다언어 심층 테스트로 좁히다
- C++ / Java 등 여러 언어 소스로 테스트하며 불일치 케이스 수집
- 원인 ① 구문 분석기가 특정 키워드(
final, Map<> 등)를 처리 못함
- 원인 ② 내부 정규식 로직 결함으로 추상화 결과가 일관되지 않음
03 · 해결
내용 기반 해시 명명
원본 함수C++ / Java 등
구문 분석함수 구조 파싱
추상화변수명·타입 정규화
내용 해시 명명고유·일관 함수명
유사성 비교안정적 매칭
익명 함수가 매번 다른 이름으로 처리되던 문제를, 함수 내용 기반 해시값으로 고유·일관된 이름을 부여하도록 대체.
04 · 임팩트
결과
정확성·일관성동일 함수를 일관된 시그니처로 식별
유사 코드 탐지내용 기반 해시로 동일 로직 안정 매칭
취약점 분석 기반코드 레벨 취약점 분석 정확도 향상
구조적 해법변수명·타입·익명 여부와 무관한 식별
05 · 역할 & 배움
내 역할
- 데이터 엔지니어로서 문제 재현 → 다언어 테스트 → 원인 규명 → 해결 로직 적용 주도
- 증상에서 출발해 파서·정규식이라는 근본 원인을 분리해냄
- 배움: 식별자 기반 명명의 한계는 내용 기반 해시로 구조적으로 풀 수 있다