User Thread 사용자 영역의 스레드로 개발자가 API를 사용하여 직접 관리할 수 있는 쓰레드다. 대표적인 예로는 다음과 같은 것들이 있다. Java의 Virtual Thread C의 Pthread Go의 goroutine Kernel Thread 운영체제에서 관리하는 쓰레드로 OS Thread 라고도 한다. Relatinship between User thread and Kernel Thread User thread - OS thread 는 Many-to-One, One-to-One, Many-to-Many 로 나뉜다. Many-to-One 장점 User thread 생성을 개발자가 원하는 만큼 값싼 비용으로 할 수 있다. User thread 간 Kernel 레벨의 Context Switchin..
Low Level
사고 발생시 PC를 절대 꺼서는 안된다. ∵ 기존에 제공하던 서비스를 제공하기 위해 KISA(한국 인터넷 진흥원)에 신고한다. 다음 두 곳에 해킹의 흔적이 남는다. 1. 하드드라이브 2. 메모리(RAM) 해킹 사고 대응 절차 memory dump 메모리 dump를 CD-ROM에 한다. (위/변조가 거의 불가능하여 법적 효력을 갖는다.) 해커의 접속 차단 : 현재 접속한 해커의 접속을 끊음. (ex. 방화벽, TCPWrapper 같은 접근 제어 이용, 해커의 셸 프로세스 확인) 시스템 이미지 확보 : 2개(CD-ROM)를 만들어 1개는 법적 증거, 1개는 Forensic 용으로 운영자에게 통보 [memory dump & image] FTK Imager download [Image File Analysis]..
트로이 목마 사용자가 의도치 않은 코드를 정상적인 프로그램에 삽입한 프로그램. 스파이웨어(Spyware) 설치된 시스템의 정보를 주기적으로 원격지의 특정한 서버에 보내는 프로그램. 백도어 (Backdoor, Administrative hook, Trap Door ) 운영체제, 프로그램을 생성 시 정상적인 인증 과정을 거치지 않고, 운영체제나 프로그램 등에 접근할 수 있도록 만든 일종의 통로 백도어의 종류 종류 방법과 예시 Local Backdoor setUID를 통한 관리자로 권한 상승 (Privilege Escalation) 사용 Remote Backdoor 네트워크에 포트를 개방했을때 원격으로 접속하여 권한 상승 등을 함. 패스워드 크래킹 백도어 패스워드는 암호화되어 shadow 파일에 저장됨, 암호..
inetd (Internet Super Daemon) 리눅스 서버에서 서비스되는 다른 여러가지 데몬들 을 제어하면서 각각의 서비스들의 연결을 담당한다. 데몬 실행모드 2가지 Mode Description Standalone 독립적으로 실행되며 항상 메모리에 상주, 서버에서 통신부분과 데이터 처리를 모두 전담. 서비스 요청시 즉시 응답. -> 메모리 항시 점유로 서버 부하 (ex. inetd) xinetd 슈퍼 데몬(inetd)에 의해 관리됨, 필요한 경우에만 메모리로 적재되어 실행 응답 // 슈퍼 데몬이 통신 부분, 데이터 처리와 응답은 서버가 처리. -> 빠른속도를 요하지 않을 때 사용, 서버 부하는 줄어듬. (ex. telnet, FTP) ==> 현재는 inetd, Xinetd 거의 쓰이지 않고 sy..
[목적] root와 같은 권한을 같는 임의의 계정을 얻는다. 0. 루트와 같은 권한 갖는 계정 탐색 grep ':0:' /etc/passwd -> :0:는 userid가 '0' (root)인 계정을 검색하는 것. 이 단계에서 성공하면 해당 계정으로 변경 su '유저명'하면 루트 권한을 가질 수 있다. 1. 계정 생성하기 Useradd 명령어로 임시 계정 생성 useradd '유저명' 2. /etc/passwd 파일 수정 sudo gedit /etc/passwd 3. 생성한 계정 패스워드 임의 설정 passwd '유저명' 4. 계정 확인 새 계정을 생성하고 uid를 0으로 임의 조작함으로써 root 계정 권한을 얻는다. 어떤 프로그램이든 uid값 '0'을통해 root인지 아닌지 검사하는 경우가 많기 때문에..
setUID를 이용한 권한 상승. what's setUID? 일시적으로 자신의 ID를 변경하는 것. 각 유저의 ID 초기값은 다음과 같다. 일반 유저 root UID 1000 0 GID 1000 0 setUID권한이 있으면 755에 4가붙어 4755 'rws'r-xr-x 로 표현. 'rws' (setUID 권한이 有) 이면 setuid, setgid 코드가 정상 작동하게된다. [예제] backdoor 실행 조건 - setUID 권한이 있어야함. (따라서 su chmod , su chown root, chgrp root 를 통해 UID와 권한설정 rws) - 파일 소유권한이 setuid , setgid의 argument(이 예제에서는 '0')와 같아야함 위 권한이 없으면 일반사용자 권한 그대로 실행됨. (..