전체 글251 APT(Advanced Persistent Threat) APT(Advanced Persistent Threat) 특정 기업 및 조직을 대상으로 정하여 다양한 공격 기법을 사용해 지속적으로 공격을 수행하는 지능적 해킹 방식 APT 공격 단계 1. 침투(Incrusion) Email, USB, 웹사이트를 통한 악성코드 등 2. 탐색(Discovery) Network 정보, 시스템 정보, 계정 정보 및 DB/시스템 구조에 대한 정보 3. 유출(Exfiltration) 목표로 한 데이터 수집 혹은 시스템 공격 4. 수집/공격(Capture/Attack) 분석 및 추가 공격 혹은 금전적 이익을 차치하기 위해 정보 유출 2020. 4. 3. ASLR(Address Space Layout Randomization) ASLR(Address Space Layout Randomization) 실행파일이 메모리에 로드될 때 기본 주소는 항상 동일한 주소를 갖는다. 하지만 이렇게 동일한 메모리 주소를 가지는 것은 매우 취약한 문제점이 될 수 있다. 주소가 동일하기 때문에 해당 주소에 악성 코드를 적재하기가 쉬워지기 때문이다. ASLR은 위와같은 메모리 상의 공격을 어렵게 하기 위해 스택이나 힙, 라이브러리 등의 주소를 랜덤으로 프로세스 주소 공간에 배치함으로써 실행할 때마다 데이터의 주소가 바뀌게 하는 기법이다. 윈도우 Vista부터는 메모리의 주소를 항상 동적으로 할당하게 설정했다. 즉, 기본 주소가 동적으로 할당된다. 리눅스에서 ASLR 해제 (고정주소로 설정) sysctl -w kernel.randomize_va_sp.. 2020. 4. 2. Shell Code, Heap Spray Shell code 소프트웨어 취약점을 이용하는 작은 크기의 기계어 코드 주로 소프트웨어 취약점을 이용한 공격 이후 실행될 작은 규모의 코드로 사용된다. 일반적으로 대상(피해자) 시스템의 명령 셸을 실행시켜 대상의 컴퓨터를 공격자가 통제한다. 제작된 shell code는 해당 코드가 메모리에 로딩되면 바로 실행된다. Heap Spary 짧은 기계어 코드인 Shell Code를 Heap 영역에 삽입하여 실행시키는 공격 기법 2020. 4. 2. 바이러스 컴퓨터 바이러스(Computer Virus) 컴퓨터 바이러스는 컴퓨터 프로그램의 한 종류로 사용자 몰래 정상적인 프로그램이나 사용자의 데이터를 파괴하는 악성 프로그램이다. 바이러스와 악성코드는 혼동하여 많이 사용되지만, 가장 근본적인 차이점은 자기 복제 여부이다. 바이러스는 자기 스스로 복제하여 증식하는 특징을 가지고 있다. 세대별 컴퓨터 바이러스 분류 1세대 원시적 바이러스(Primitvie Virus) 단순하고 분석이 쉬우며 코드의 변형이 없어 고정된 크기를 가지고 있다. 일반적으로 주기억장치에 상주해 부트 영역이나 파일을 감염시키는 특성이 있다. 예) Stoned 바이러스, Jerusalem 바이러스 2세대 암호화 바이러스(Encryption Virus) 컴퓨터 프로그램의 일부 또는 전체를 암호화하.. 2020. 4. 2. 윈도우 이벤트 로그 및 웹 아티팩트 분석 윈도우 이벤트 로그(Windows Event Log) 윈도우 이벤트 로그는 윈도우 시스템을 사용하는 동안 발생되는 모든 내용을 발생시간 순으로 기록하는 로그파일이다. 이벤트 로그는 이벤트 뷰어(Event Viewer)라는 관리 도구를 사용하여 확인할 수 있다. 이벤트 로그 파일은 .evt 확장자를 가진다. 이벤트 로그는 윈도우에서 발생되는 로그파일을 계속하여 기록하는 것이 아니라 일정한 크기가 되면 덮어쓰는 형태로 기록된다. 그러므로 모든 로그를 보유하고 있는 것은 아니다. 이벤트 로그 파일 수집 명령어(forecopy_handy 도구 사용) forecopy_handy -e [저장할 파일] 웹 아티팩트 분석(Web Artifact Analysis) 웹 아티팩트 분석은 사용자가 웹 사이트를 이용한 흔적을 .. 2020. 4. 2. 레지스트리 레지스트리(registry) 레지스트리는 윈도우 운영체제에서 운영체제 및 응용프로그램 등에 필요한 정보를 저장하고 관리하기 위한 계층형 데이터베이스이다. 윈도우 부팅 시 로그인, 서비스 실행, 응용 프로그램 실행, 사용자의 행위에 관한 모든 활동에 참여하고 그 정보를 기록한다. regidit.exe라는 레지스트리 관리 프로그램을 사용해 레지스트리를 확인할 수 있다. 계층형 데이터베이스로 Key, Data Type, Data로 이루어져 있다. 루트 키(root key) 레지스트리 키 중 가장 상위 레벨에 있는 레지스트리 키를 루트 키 라고 한다. 레지스트리 정보를 일정한 기준으로 분류하였으며 하위 레지스트리에 어떤 정보가 있는지 알려준다. 하이브 파일(Hive File) 레지스트리 정보를 가지고 있는 물리.. 2020. 4. 1. NTFS 시스템 NTFS 시스템 NTFS 파일 시스템은 기존 FAT(File Allocation Table) 파일 시스템을 개선하고 윈도우 서버용으로 사용하기 위해 개발된 파일 시스템이다. NTFS 파일 시스템 구조 VBR(Volume Boot Record) NTFS 파일 시스템의 제일 처음에 위치하여 부트 섹터, 부트 코드, NTLDR의 주소 등의 정보를 가지고 있다. VBR의 Boot Sector는 섹터 0번에 위치한다. MFT(Master File Table) NTFS의 메타 데이터, 파일 및 디렉터리 등의 정보를 관리하는 파일로 파일 위치, 속성, 시간 정보, 파일명, 크기 등의 정보를 가지고 있다. Data Area 실제 사용자의 데이터가 위치하는 공간 2020. 4. 1. 윈도우 시스템 윈도우 시스템 윈도우 인증 시스템 winlogon은 내부적으로 msgina.dll이라는 GINA(Graphical Identification and Authentication) 프로그램을 구동시키며 검증을 위해서 아이디를 LSA(Local Security Authority)에게 전달한다. NTLM값과 SAM(Security Account Manager)에 저장된 값을 비교하여 같으면 SRM(Service Reference Monitor)에게 권한(토큰)을 부여한다. 윈도우 실행 프로세스 윈도우 운영체제 관련 프로세스는 wininit.exe, services.exe, winlogon.exe 등이 있으며 C:\windows\system32 폴더에 위치한다. 윈도우 사용자 계정 내장된 사용자 계정 관리자가 계.. 2020. 3. 31. iptables Iptables iptables는 Netfilter에서 개발한 리눅스에서 방화벽 정책을 수립할 수 있는 도구로 2001년 리눅스 2.4 커널 배포 시점부터 리눅스의 일부분으로 제공되기 시작하였다. iptables의 가장 주된 기능은 패킷 필터링으로 들어오고 나가는 IP 패킷에 대하여 제어 기능을 구현할 수 있다. 패킷을 검사하고 해당 패킷을 허용할지 차단할지 결정하기 위해서는 특정한 기준이 필요하며 이러한 허용과 차단에 대한 기준을 정책이라고 한다. table iptables에서의 테이블은 패킷 필터링이나 네트워크 주소 변환(NAT, Network Address Translation)과와 같은 iptables에서 제공하는 기능의 큰 범주(category)를 기술하는 용어로써 iptables의 구성요소 정.. 2020. 3. 31. 리눅스 작업 스케줄 관리 (cron, at) 리눅스 작업 스케줄 관리 cron cron 은 일정한 날짜와 시간에 지정된 작업을 실행하는 프로세스로 반복적인 작업을 수행할 때 사용한다. corn 프로세스는 /etc/crontab 파일에 설정된 것을 읽어서 작업을 수행한다. 보안 취약점 검사를 수행할 때 매일 반복적으로 점검하거나, 공격자가 악성코드 실행하는 명령을 crontab에 설정하여 반복적으로 악성코드를 실행하는 등의 활용을 할 수 있다. cron 예시 30 * * * * root (명령) : 30분에 명령 실행 */10 * * * * root (명령) : 10분마다 명령 실행 20 1 * * * root (명령) : 매일 1시 20분마다 명령 실행 */20 2-5 * * * root (명령) : 2시부터 5시까지 20분마다 명령 실행 30 3.. 2020. 3. 31. 이전 1 ··· 15 16 17 18 19 20 21 ··· 26 다음