본문 바로가기
반응형

전체 글421

[실습] 꼬불꼬불 라면 사리 같은 '스파게티 코드', AI로 쫙 펴서 평문으로 만들기! 🍜 (제어 흐름 난독화 해제) 안녕하세요, 끈기 있는 보안 연구원 여러분! 🕵️‍♂️악성코드 분석을 하다 보면 가끔 "이거 만든 사람 성격이 얼마나 꼬인 거야?" 싶을 정도로 복잡한 코드를 만날 때가 있습니다.코드가 위에서 아래로 순서대로 실행되는 게 아니라, GOTO 문을 남발하며 여기 갔다 저기 갔다... 마치 엉킨 이어폰 줄이나 라면 사리처럼 꼬여있는 코드 말이죠. 🧶우리는 이걸 '스파게티 코드(Spaghetti Code)' 또는 전문 용어로 '제어 흐름 평탄화(Control Flow Flattening)' 된 코드라고 부릅니다.사람의 뇌는 순차적인(Linear) 흐름을 좋아하지만, 컴퓨터는 점프(Jump)를 좋아합니다. 공격자는 이 점을 이용해 분석가를 괴롭히죠.오늘은 우리의 AI 조수에게 "이 엉킨 실타래를 풀어서, 순서.. 2025. 12. 11.
[실습] "이 코드, 쓰레기인가요?" 🗑️ AI로 더미 코드(Junk Code) 치우고 변수명 예쁘게 바꾸기 ✨ 안녕하세요, 보안 분석가 여러분! 🕵️‍♀️지난 시간, 우리는 거대한 난독화 코드를 AI가 소화할 수 있게 '한 입 크기(Chunk)'로 자르는 법을 배웠습니다. 이제 잘라낸 조각을 AI에게 먹여서 분석할 차례인데... 잠깐! ✋공격자들이 던져준 코드는 그야말로 '쓰레기장(Junk Yard)'입니다.아무 의미 없는 수학 연산, 실행되지 않는 if문, asdf 같은 무의미한 변수명들이 뒤섞여 있죠. 이걸 그대로 분석하려다간 우리의 소중한 뇌세포만 죽어납니다. 🤯오늘은 AI라는 '청소부'를 고용해서 이 난장판을 깨끗하게 정리하는 실습을 해보겠습니다.더미 코드(Junk Code) 제거와 변수명 치환(Renaming), 이 두 가지만 잘해도 분석 속도가 5배는 빨라집니다! 🚀1. 더미 코드(Junk Cod.. 2025. 12. 11.
[실습] 난독화된 코드, AI가 토하지 않게 떠먹여주기! 🥄 (청크 분할 전략) 안녕하세요, 여러분! 🕵️‍♂️지난 이론 시간에 악성 스크립트가 어떻게 요리조리 모습을 숨기는지, 그 '난독화 기법'들에 대해 배웠습니다. (기억 안 나시면 복습! 📝)이제 이론을 무장했으니 실전에 돌입해야죠! 우리의 든든한 지원군인 생성형 AI(LLM)에게 이 복잡한 코드를 해석해달라고 던져줄 차례입니다.그런데 잠깐! ✋수천 줄이 넘어가는 거대한 난독화 스크립트를 한 번에 "복사 + 붙여넣기" 해서 AI에게 던져주면 어떻게 될까요?🤖 AI: "죄송합니다. 입력이 너무 깁니다. (토큰 제한 초과)" 또는🤖 AI: (앞부분은 까먹고 뒷부분만 엉뚱하게 해석하며) "이 코드는 그냥 문자열 변수 선언이네요." 네, 그렇습니다. AI도 한 번에 소화할 수 있는 양(Context Window/Token Li.. 2025. 12. 11.
[이론] 해커들의 은신술! 🥷 악성 스크립트 난독화(Obfuscation) 기법 완벽 해부 안녕하세요, 보안 지킴이 여러분! 🛡️악성코드 분석을 시작하면 가장 먼저 마주치는 거대한 벽이 있습니다. 바로 "읽을 수 없는 코드"입니다. 분명 영어 알파벳과 숫자가 섞여 있는데, 도무지 무슨 뜻인지 알 수 없는 외계어 같은 코드들... 🤯이것이 바로 난독화(Obfuscation)입니다. 공격자들은 보안 솔루션(백신)의 탐지를 피하고, 분석가가 코드를 해석하지 못하게 만들기 위해 갖가지 기법을 동원해 코드를 꼬아놓습니다.오늘은 특히 PowerShell과 JavaScript 같은 스크립트 언어에서 주로 사용되는 대표적인 난독화 기법 4가지를 아주 상세하게 파헤쳐 보겠습니다. 이 원리를 알아야 AI에게 "이거 풀어줘!"라고 시킬 수 있겠죠? 😉1. 난독화(Obfuscation)란 무엇인가요? 🤔난독.. 2025. 12. 11.
[심화] "그 함수, 진짜 그냥 복사만 할까?" 🕵️‍♂️ 분석가가 놓치는 은밀한 서브루틴, AI로 검거하기 안녕하세요, 깊이 있는 분석을 지향하는 보안 연구원 여러분! 🦅우리가 악성코드를 분석할 때 가장 많이 하는 실수가 무엇일까요? 바로 "가정(Assumption)"입니다.main 함수에서 수많은 CALL 명령어를 만납니다. "음, FUN_00401200? 내부를 보니 파라미터 두 개 받고 루프 도네? 그냥 strcpy나 memcpy 같은 문자열 복사 함수겠지. 패스!"...하고 넘어가는 순간, 여러분은 악성코드 제작자의 함정에 빠진 걸 수도 있습니다. 😱 악성코드 제작자들은 분석가들이 귀찮아서 건너뛸 만한 '단순해 보이는 서브루틴' 안에 암호화 해제 로직이나 안티 디버깅 코드를 숨겨두곤 하거든요.오늘은 분석가가 무심코 지나치기 쉬운 서브루틴(Subroutine)의 숨겨진 발톱을 AI와의 교차 검증을 통.. 2025. 12. 11.
[실습] "AI야, 그 말 진짜야?" 🤨 AI 분석 결과와 어셈블리(Assembly) 코드 교차 검증하기 안녕하세요, 보안 꿈나무 여러분! 🌱지난 시간에는 AI에게 복잡한 코드를 던져주고 "이게 무슨 기능이야?"라고 물어보는 치트키를 썼습니다. AI가 "이건 랜섬웨어 암호화 로직입니다!"라고 딱 알려주니 정말 편했죠?하지만 잠깐! ✋"보안 분석가는 의심하는 것이 직업입니다."AI는 정말 똑똑하지만, 가끔 없는 사실을 지어내거나(Hallucination), 뉘앙스를 틀리게 해석할 때가 있습니다. AI가 "암호화"라고 했지만 실제로는 그냥 "인코딩"일 수도 있고, "삭제"라고 했지만 "이동"일 수도 있죠.그래서 오늘은 AI의 설명을 '참고자료'로 삼아, 실제 '진실의 방'인 어셈블리(Assembly) 코드와 대조해 보는 법을 배울 겁니다. 이 과정을 거쳐야 비로소 "분석 끝!" 도장을 찍을 수 있거든요.어셈블.. 2025. 12. 11.
반응형