목록보안/악성코드 (103)

실습 예제 1. DLL entrypoint 주소 2. Imports 윈도우를 이용해 gethostbyname을 탐색 3. gethostbyname을 호출하는 명령어는 개수 4. 0x10001757에 위치한 gethostbyname호출을 통해 어떤 dns 요청이 이루어지는지 확인 5. 0x10001656에 있는 서브루틴에서 지역 변수 개수 6. 0x10001656에 있는 서브루틴에서 파라미터 개수 7. 디스어셈블리 내의 문자열 \cmd.exe /c찾기 8. \cmd.exe /c를 참조하는 코드 영역에서 무슨 일이 발생하는지 확인 9. 악성코드는 어떻게 dword_1008e5c4를 설정하는지 확인 1번은 간단하게 functions window에서 dll을 검색해서 ep를 찾는다. 0x1001516D가 ent..

기초 동적 분석 개요 - 기초 동적 분석이란 - 프로그램을 직접 실행하며 분석 - 악성코드 분석에서 가장 프로그램의 영향을 쉽게 파악 - 프로그램의 기능을 파악하기 위해 악성코드 실행 전후 상태를 조사 및 분석 - 분석 방법 - 악성코드 실습 시 발생하는 호스트/네트워크 환경 구성 - 파일, 프로그램 실행, 레지스트리, 서비스 등 관련 항목 변경 사항 확인 - 실행 시 발생하는 네트워크 트래픽 분석 기초 동적 분석 도구 - 프로세스 모니터(procmon.exe) - 특정 레지스트리, 파일 시스템, 네트워크, 프로세스, 스레드 행위를 모니터링하는 고급 도구 - ProcMon의 한계 - 특정 GUI와 장치 I/O 제어를 통한 루트킷 탐지 불가 - 네트워크 행위에 대해 일관성 있는 탐지 불가 - 프로세스 익스..

예제 악성코드 샘플을 통해 실습을 진행했다. 파일을 실행하지 않고 정적으로 분석을 진행한다. 먼저 악성코드의 이름과 같은 해시값을 추출해준다. 해시값을 바이러스 토탈에 검색하면 score는 51/71이다. 예제 샘플이라고 나온다. 바이러스 토탈에서는 더욱 자세한 해시값들과 패커까지 알려준다. 컴파일된 날짜를 확인한다. PEVIEW를 통해 확인할 수 있다. exe파일과 dll파일이 거의 동일한 시간대에 컴파일된 것을 확인할 수 있다. 패킹이 되어있는지 확인하기 위해 offset들을 확인해주었다. peid로도 확인해본 결과 패킹은 되어있지 않았다. dll의 IAT를 확인해주었다. Sleep을 통해 예약 스케줄링이 있다는 것을 예측할 수 있다. Mutex기능으로 중복 실행을 방지한다. 그리고 KERNEL32...

악성코드 분석 방법 순서 기초 정적 분석 - 비실행 기초 동적 분석 - 실행 고급 정적 분석 - 비실행 고급 동적 분석 - 실행 악성코드 분석의 네 가지 접근 방법 완전 자동화 분석 - 정적 분석 및 동적 분석을 통해 악의적인 행위를 판단 - 자동 분석 수행 - 전문가에 의해 분석되는 만큼 상세하거나 정확하지 않을 수 있음 - 악성코드 분석 제공 서비스 정적 속성 분석 - 악성코드의 추가 분석을 위해 필요한 단계 - 문자열 헤더 정보, 해시 값, 리소스 정보, 패킹 여부 등 신속하게 정보 획득 - 정보들을 활용해 실행 파일 간의 비교 데이터베이스를 구성 - 바이러스 토탈 서비스 대화형 동적 분석 - 레지스트리, 파일시스템, 프로세스, 네트워크 활동을 위해 분리된 가상 머신 환경에서 실행하며 분석 - 메모..

정적 분석에 쓰이는 프로그램 PESTUDIO이다. 첫 시작할때 나오는 화면이다. 파일 고유의 해시값, 파일 크기, 파일 종류 등을 확인할 수 있다. indicators 항목을 클릭하게 되면, 해당 파일의 중요한 정보들을 위험도 순으로 정렬되어 표시된다. VirusTotal 항목은 백신사의 탐지율을 나타내며 탐지명을 알려준다. fuctions항목과 libraries를 통해 dll 파일 및 함수 이름들을 확인할 수 있다. 직접 검색하여 무슨 기능을 하는지 파악을 해야 한다. pro 버전에서는 링크로 바로 연결하여 확인할 수 있다. tls-callback 및 resource 는 예제가 없어 스샷이 없다. tls는 진입점 이전에 실행되는 코드이다. 일반적으로 애플리케이션이 실행할 환경을 설정하는 데 사용할 수 ..

PE파일 개요 -Portable Executeable File Format 파일(File)이 +이식 가능한 다른 곳에 옮겨져도(Portable) +실행 가능하도록(Executable) +만든 포맷(Format) 윈도우에서 사용하는 실행 파일, DLL 파일 등을 위한 파일 형식 윈도우 로더가 실행 가능한 코드를 관리하는데 필요한 정보를 캘슐화한 데이터 구조체 링킹을 위한 동적 라이브러리 참조, API 익스포트와 임포트 테이블, 자원 관리 데이터 그리고 TLS 데이터를 포함 - 실행 파일 컴파일 과정 Source.h(c언어) -> (compile) -> Source.obj 모든 헤더파일과 소스파일을 합쳐 하나의 기계어 코드 생성 Source.obj -> Link(Static Link Library, Impo..

악성코드 분석 개념과 종류 랜섬웨어 : 파일을 암호화해 접근을 차단하고 잠금 해제를 위한 금전 요구 >빠르게 발전되는 악성코드, 감염 즉시 파일 삭제 시작 >일반적인 방법 : 합법적 전자 메일로 위장해 첨부 파일 다운로드 & 실행 유도 sha256 암호화 사용 가끔 sha1024사용하는 사람도 있음 파일 복호화가 힘듬 예전 랜섬웨어인 경우 유출된 키 캆으로 복호화 가능 트로이목마 : 신뢰할 수 있는 소프트웨어나 응용 프로그램으로 위장 >일반적인 방법 : 크랙 제품 위장해 블로그나 전자 메일에 첨부해 다운로드 & 실행 유도 > 백신에서 쉽게 볼 수 있는 악성코드 웜 : 네트워크 상의 취약점을 찾아 스스로 복제 > 자체 복제 및 확산되는 악성코드 유형 > 빠르게 확산되기 위해 별도 사람의 행동 불필요 키로거..