
Generate malicious files using recently published homoglyphic-attack (CVE-2021-42694)
최근 공개된 동형문자 공격 취약점을 악용한 악성 파일 생성 도구로, 최소한 C, C++, C#, Go, Python, Rust, JS 등에서 발견되었습니다.
cve.mitre.org에서 인용
유니코드 사양 14.0까지의 문자 정의에서 문제가 발견되었습니다. 이 사양은 공격자가 동형문자를 사용하여 대상 식별자와 시각적으로 동일하게 보이는 함수명과 같은 소스 코드 식별자를 생성할 수 있도록 합니다. 공격자는 이를 악용하여 상위 소프트웨어 의존성에서 공격적인 식별자 정의를 통해 코드를 주입하고, 이를 속아 넘어간 하위 소프트웨어에서 기만적으로 호출할 수 있습니다.
동형문자의 원시 데이터 (homoglyphs.txt)는 여기에서 가져왔으며, 이탤릭체 및 유사하지 않은 문자를 분류하기 위해 정리된 데이터입니다.
케임브리지 대학교의 원본 출처 참조:
https://www.trojansource.codes/trojan-source.pdf
python3 codegen.py [-h] [-i INFILE] [-o OUTFILE] [-r] [-a]
| arg | long arg | param | descrption |
|---|---|---|---|
| -h | --help | 없음 | 이 도움말 메시지를 표시하고 종료합니다 |
| -i | --infile | INFILE | 동형문자 자리 표시자가 포함된 입력 파일 |
| -o | --outfile | OUTFILE | 최종 코드를 저장할 출력 파일 |
| -r | --random | 없음 | SET 플래그: 무작위 동형문자 선택; 설정되지 않으면 첫 번째 것을 사용 |
| -a | --about | 없음 | 정보 텍스트 출력 |
예제는 저자가 직접 만들거나 참조된 PDF에서 가져온 것입니다. 이 예제를 실행하려면 필요한 인수와 함께 codegen.py를 실행하세요:
python3 codegen.py -i infile.xyz -o outfile.xyz를 실행하고 outfile.xyz를 실행/컴파일합니다.
현재는 숫자 [0-9]와 대소문자 [a-zA-Z]만 지원됩니다. 템플릿 내에서 지원되는 문자를 (무작위) 동형문자로 바꾸려면 해당 문자를 달러 기호 $로 감싸면 됩니다. 예제를 보면 템플릿이 어떻게 생겼는지 첫인상을 얻을 수 있습니다.