Linux Security (패스워드공격) 네트워크 실험실 김 윤 수 2019-01-12 #
목 차 패스워드 공격 1. 패스워드 공격 2. 쉐도우 패스워드와 쉐도우 슈트 3. 다른 패스워드 보안 문제 2019-01-12 #
1. 패스워드 공격 패스워드 크랙, 해독, 삭제 등을 포함하는 모든 행동을 의미하며, 패스워드 보안 체제를 위회하는 행위도 포함. 최소의 기술만으로도 가능하기 때문에 초보 해커와 크랙커들이 처음으로 익히는 방법. 2019-01-12 #
리눅스에서 패스워드 생성과 저장방법 $ cat /etc/passwd 1. 패스워드 공격(계속) root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin: adm:x:3:4:adm:/var/adm: yskim:x:500:500:Y.S.KIM:/home/yskim:/bin/bash 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. 2019-01-12 #
1. 패스워드 공격(계속) 패스워드의 역사 - 암호화(Cryptography) Krypto(숨은, 비밀의)+ graphia(쓰기, 표기) - ROT-13 치환기법중의 하나. 각문자를 13문자 앞으로 이동시키는 방법(a는n, b=o) 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. 2019-01-12 #
DES(The Data Encryption Standard) 1. 패스워드 공격(계속) DES(The Data Encryption Standard) - IBM에서 개발된 암호화 기법. - 1977년 NBS와 NSA에 의해 채택. - 일반적인 환경과 유닉스/리눅스 패스워드에서 사용되는 사실상의 알고리즘. - Key에 의한 암호화와 암호화 해독 - Key는 64개의 이진수로 구성(56비트는 암호화 8비트는 에러 검사 과정에서 사용) 바이트 코드는 클래스 로더에 의해 로드되며, 바이트 코드 검증기는 프로그램이 수행되기 전에 부적절한 클래스 접근이나 스택의 오버 플로우, 부적절한 형변환을 검사한다. 2019-01-12 #
사전공격(Dictionary Attack) 1. 패스워드 공격(계속) 사전공격(Dictionary Attack) 공격자는 주어진 단어 목록(사전) 안에 있는 단어를 적당하게 조합하거나 변형시켜서 DES로 암호화하여 패스워드와 일치하는 것이 존재하는지 검색. 2019-01-12 #
Crack 5.0a 패스워드 크랙 1. 패스워드 공격(계속) $ gunzip Crack_5.0a.tar.gz $ tar xvf Crack_5.0a.tar $ cd c50a $ ./Crack –makeonly $ ./Crack –makedict $ ./Crack passwd $ ./Reporter 2019-01-12 #
크랙에서 사용되는 규칙들 1. 패스워드 공격(계속) 규 칙 결 과 appendix : $X 문자 X를 단어의 처음에 추가. 규 칙 결 과 appendix : $X 문자 X를 단어의 처음에 추가. dfirst : [ 첫문자를 삭제. lowercase : l 현재 단어를 모두 소문자로 변경. reverse : r 현재 단어를 역으로 뒤집는다. togcase : t 대소문자를 변환 uppercase : u 현재 단어를 모두 대문자로 변경 컨텐트(Content) 핸들러: 새로운 형식의 파일들을 전송 받을때 사용 내용에 관한 정보(MIME형식) plain/text, text/html.. 프로토콜 핸들러:기존의 프로토콜 이외의 프로토콜을 처리 가능 2019-01-12 #
1. 패스워드 공격(계속) Crack의 명령행 옵션 옵 션 목 적 -debug 통계 정보와 진행상황 출력. -fgnd 옵 션 목 적 -debug 통계 정보와 진행상황 출력. -fgnd Foreground로 실행. -mail 패스워드 크랙이 된 사용자에게 메일. -network 네트워크 모드로 전환. -nice Crack을 낮은 우선순위로 프로세스 동작 -recover 비정상적인 종료로 부터 다시 시작. 2019-01-12 #
1. 패스워드 공격(계속) 패스워드 감시 도구들 - John the Ripper - Killer Cracker - Lard - PerlCrack - Xcrack 2019-01-12 #
/etc/shadow: 쉐도우 패스워드 데이터베이스 2. 쉐도우 패스워드와 쉐도우 슈트 /etc/shadow: 쉐도우 패스워드 데이터베이스 ID:password:lastchg:minday:maxday:warn:inactive:expire lastchg : 1970.1.1기준. 패스워드 변경된 날수. minday : 한번 변경 후 적용시켜야 날 수. maxday : 패스워드를 변경하는 날까지의 남은 날수 warn : 패스워드 만료되기 전 경고기간 inactive : 패스워드 만료 후 패스워드 불가능하게 되는 날수 expire : 1970.1.1기준. 패스워드가 불가능하게 된 날까지 수 2019-01-12 #
2. 쉐도우 패스워드와 쉐도우 슈트(계속) Shadow 슈트 유틸리티와 기능 유틸리티 기 능 chsh 기본 쉘 정보의 변경 기 능 chsh 기본 쉘 정보의 변경 usermod 사용자 정보 변경(쉘, 패스워드 만료일등) pwck shadow와 passwd간의 정보일치 검사 groupadd 새로운 그룹추가 userdel 유저삭제 chfn finger정보 변경 2019-01-12 #
2. 쉐도우 패스워드와 쉐도우 슈트(계속) /usr/sbin/useradd 새로운 사용자 추가를 위하여 /etc/passwd, /etc/group, /etc/shadow의 항목을 다룬다 Usage: useradd [-u uid] [-g gid] [-m] [-d home] [-s shell] [-r rootdir] [-e expire dd/mm/yyyy] [-f inactive] name useradd -D 2019-01-12 #
2. 쉐도우 패스워드와 쉐도우 슈트(계속) /usr/sbin/usermod -사용자 정보변경 및 전체 필드변경 -USAGE : /usr/sbin/usermod [-u uid [-o]] [-g group] [-G group,...] [-d home [-m]][-s shell] [-c comment] [-l new_name] [-f inactive] [-e expire ] [-p passwd] [-L|-U] name 2019-01-12 #
2. 쉐도우 패스워드와 쉐도우 슈트(계속) 쉐도우 시스템에 대한 패스워드 공격 shadow슈트는 기본적으로 결함을 갖고 있지는 않지만 관계없는 다른 요인이 보안에 영향을 미칠 수 있다. 쉐도우 슈트 설치후 할일 - 사용자 패스워드 선택과 시스템보안 - 사전패스워드 검사(proactive password checking) passwd+, anlpasswd, npasswd 2019-01-12 #
2. 쉐도우 패스워드와 쉐도우 슈트(계속) /etc/shadow에 접근할 수 있는 공격 방 법 설 명 deshadow.c 방 법 설 명 deshadow.c /etc/shadow 항목 노출 Imapd hole imapd가 코어 덤프 되면 쉐도우 패스워드가 노출 telnet hole telnet 을 이용한 코어 덤프. 덤프 된 파일 안에는 패스워드가 노출. shadowyank FTP를 코어 덤프. 쉐도우된 패스워드 노출 2019-01-12 #
2. 쉐도우 패스워드와 쉐도우 슈트(계속) /etc/shadow에 접근할 수 있는 공격 방 법 설 명 deshadow.c 방 법 설 명 deshadow.c /etc/shadow 항목 노출 Imapd hole imapd가 코어 덤프 되면 쉐도우 패스워드가 노출 telnet hole telnet 을 이용한 코어 덤프. 덤프 된 파일 안에는 패스워드가 노출. shadowyank FTP를 코어 덤프. 쉐도우된 패스워드 노출 2019-01-12 #
패스워드 데이터베이스를 변경하기 전에 쉽게 추측 될수 있는 패스워드를 제거. 3. 다른 패스워드 보안문제 사전 패스워드 검사도구 패스워드 데이터베이스를 변경하기 전에 쉽게 추측 될수 있는 패스워드를 제거. 패스워드 변경시 쉽게 노출될수 있는 문자의 조합을 사전에 제거.(성명사용금지, 로그인명사용금지, 패스워드 최소 길이, 여러가지 rule-set생성) -passwd+, anlpaswd, npasswd 2019-01-12 #
PAM : Pluggable authentication modules 이진파일을 다시 컴파일 할 필요없이 인증법, 3. 다른 패스워드 보안문제(계속) 장착식 인증 모듈 PAM : Pluggable authentication modules 이진파일을 다시 컴파일 할 필요없이 인증법, 제한사항, 지역인증법을 쉽게 캡슐화 할 수 있도록 하여준다. - /etc/pam.d/* - /lib/security/* 2019-01-12 #
3. 다른 패스워드 보안문제(계속) 일반적인 PAM Module - pam_cracklib 장착식 사전 패스워드 검사기 - pam_deny 애플리케이션에 인증 실패를 알림 - pam_pwdb 패스워드 데이터베이스 모듈 - pam_group 사용자에 대한 그룹 멤버쉽 할당 추적 2019-01-12 #
3. 다른 패스워드 보안문제(계속) NIS(NIS)와 패스워드 보안 - 1985년 SUN에 의해 개발 네트워크에 있는 도든 시스템에서 사용자와 패스워드 정보를 공유. -클라이언트 서버 모델과 RPC를 이용하여 아래의 파일 정보를 공유 /etc/group, /etc/hosts, /etc/passwd - YP유틸리티에 의해 정보 갱신. - NIS도메인 이름 추정에 의해 패스워드 정보획득. 2019-01-12 #