본문 바로가기

[☩ Security ☩]

Password Crack의 이해와 정보

처음보안을 공부하거나 하시는 분들이 간단하게 이해 할수 있는 글입니다. 
 
사용자 삽입 이미지

 패스워드와 사용자 계정 악용은 네트워크 보안의 가장 큰 문제이다. Rob Shimonski가 패스워드 크래킹에 대해 설명한다. 크래킹이 어떻게 왜 발생하는지를 조명해본다. 네트워크에 침투하는 것이 얼마나 쉬운지, 침입자가 어떻게 진입하는지, 어떤 툴을 사용하는지, 침입에 어떻게 대항하는지를 설명한다.

기업이나 조직의 컴퓨터 시스템 공격 형태는 다양하다. 스푸핑(spoofing), 스머핑(smurfing), 서비스 거부(DoS) 공격 등이 그 예이다. 이러한 공격들은 운영 시스템에 피해를 입히거나 혼란을 가하기 위해 시도된다. 이 글에서는 가장 광범위하게 퍼진 패스워드 크래킹(password cracking)을 설명한다.

패스워드 크래킹은 패스워드로 보안화 한 리소스에 접근하기 위해 툴을 사용하여(또는 사용하지 않고) 네트워크, 시스템, 리소스로 침입하는 것을 의미한다. 이 글에서 패스워드 크래킹의 의미, 패스워드 크래킹의 이유, 방법, 크래킹 대처 방법 등을 설명하겠다. 침입자들의 유형도 간단히 설명하겠다. 여러 시나리오를 검토하여 전개 기술과 사용하는 툴도 설명한다. 어떻게 패스워드 크래커들이 내/외부적으로 기업의 인프라를 어지럽히는지를 설명하겠다. 마지막으로 이 글에서 패스워드 크래킹으로부터 자신을 보호하는데 도움이 되는 체크리스트도 제공하겠다.

우선 침입자들의 정신 상태와 그들이 네트워크와 시스템에 접근하려는 이유부터 살펴보자.

침입자: 어떻게, 왜 공격하는가?

해커(hacker)의 정의에 대한 끊임없는 논란이 일고 있다. 해커는 컴퓨터 관련 기술에 깊은 관심이 있는 누구나 다 될 수 있다. 무엇을 해치려 하는 사람만을 지칭하는 것은 아니다. 침입자(attacker)라는 용어는 악의적인 해커를 설명할 때 사용할 수 있다. 이러한 침입자를 칭하는 다른 용어로는 블랙 햇(black hat)이 있다. 보안 분석가들은 화이트 햇(white hats)도 종종 언급하는데, 화이트 햇 분석(white-hat analysis)은 방어 목적으로 해킹을 사용하는 것이다.

침입자들의 동기는 매우 다양하다. 가장 악명 높은 해커들은 지하실에서 컴퓨터 시스템을 악용할 방법을 모색하는 고등학생이다. 회사에 복수를 꾀하려는 불만 가득한 사원도 될 수 있다. 또는 보안이 잘된 시스템에 침투하려는 도전의식 때문에 침입하는 사람도 있다.

공격 방법

패스워드 크래킹에 언제나 최신식의 고급 툴이 사용되는 것은 아니다. 모니터나 키보드 아래에 패스워드가 쓰여진 포스트잇을 찾아내는 것처럼 간단한 일일 수 도 있다. 또 다른 원시적인 기술로는 "덤스터 다이빙(dumpster diving)" 이라고 하는 기술인데, 이것은 패스워드가 있을지 모르는 폐기 문서를 찾아 쓰레기를 뒤지는 침입자가 대표적이다.

물론 훨씬 더 세련된 침입 방법들이 있다. 다음은 패스워드 크래킹에 사용되는 일반적인 방법들이다.

사전 침입(Dictionary attack)
사전(dictionary) 침입은 지금까지 머신에 진입하는 가장 빠른 방법이다. 사전 파일(사전 어휘들로 가득 찬 텍스트 파일)은 (L0phtCrack 같은) 크래킹 애플리케이션으로 로딩된다. 이것은 애플리케이션에 의해 배치된 사용자 계정에 대해 실행한다. 대다수의 패스워드들이 간단하기 때문에 사전 침입을 실행하는 것 만으로도 충분하다.

합성 침입(Hybrid attack)
합성(hybrid) 침입은 파일 이름에 숫자나 심볼을 추가하여 패스워드를 성공적으로 크래킹 하는 것이다. 많은 사람들은 현재 패스워드의 끝에 숫자를 붙여서 패스워드를 변경한다. 이 패턴은 다음과 같은 형태를 취한다. 첫 달의 패스워드가 "cat"이다. 두 번째 달의 패스워드는 "cat1", 세 번째 달의 패스워드는 "cat2"로 진행된다.

무작위 침입(Brute force attack)
무작위 침입(brute force)은 포괄적인 침입 형태이다. 패스워드의 복잡함 정도에 따라 작업시간이 길게 걸릴 수 있다. 어떤 경우 한 주가 걸릴 수도 있다. L0phtcrack 역시 이 침입에 사용될 수 있다. 이제 침입자들이 사용하는 툴을 살펴보자.

Tools
가장 대중적인 툴로는 L0phtCrack(LC4)이 있다. L0phtCrack은 침입자가 암호화된 Windows NT/2000 패스워드를 가져다가 이를 플레인 텍스트로 변환하는 것이다. NT/2000 패스워드들은 암호 해시에 있고, L0phtCrack 같은 툴 없이는 읽을 수 없다. 알파벳과 숫자를 조합하여 패스워드를 크래킹 한다.

또 다른 툴로는 프로토콜 분석기가 있다. (Sniffer Pro 또는 Etherpeek 같은 네트워크 스니퍼로 알려져 있다.) 이것은 네트워크 세그먼트상의 모든 데이터를 포착할 수 있다. 이 같은 툴은 무작위 모드로 실행되면서, 로그인과 데이터 트랜스퍼 같은 세스먼트와 관련된 모든 것을 "스니핑(sniff)" 할 수 있다. 나중에 다시 설명하겠지만 이것은 네트워크 보안에 심각한 위험을 초래한다. 패스워드와 중요한 데이터를 포착할 수 있기 때문이다.

몇 가지 시나리오를 보고 침입자가 어떻게 침입을 시작해서 멈추는지를 살펴보자. 먼저 내부 침입과 관련된 두 가지 시나리오를 (조직 내에서 발생한 침입) 설명한 다음 외부 침입과 관련된 두 가지 시나리오를 보겠다.

내부 침입
가장 일반적인 크래킹은 내부 침입자들에 의해 발생한다. 침입자들은 조직의 시스템으로 직접 접근한다. 첫 번째 시나리오는 불만에 가득 찬 사원이 침입자인 경우이다. 이 침입자(베테랑 시스템 관리자)는 그녀의 작업에 불만을 갖고 있고 그녀가 관리하는 시스템을 장악하고 있다.

예제: 불만에 가득 찬 사원

Jane Smith는 나무랄 데 없는 기술을 가진 베테랑 시스템 관리자로서 심야시간 동안 테이프 백업에 투입되었다. ISP사는 약 4,000개 이상의 시스템을 갖춘 매우 큰 데이터 센터를 갖고 있고 이 모든 시스템들이 Network Operations Center에서 모니터링 된다. Jane은 두 명의 다른 기술자들과 함께 심야 백업을 모니터링하고 아침 교대 전에 테이프를 교체한다. 그들은 모두 개인적으로 작업한다. 한 명의 기술자가 유닉스 서버에서 작업하면, 다른 기술자는 Novell 서버를 관리한다. Jane은 Windows 2000 서버를 관리한다.

Jane은 6개월 째 이 일을 하고 있고 이 분야의 떠오르는 별이다. 그녀는 아침에 출근하여 늦도록 일하고 회사의 다른 부서로 옮겨줄 것을 요청한 상태이다. 한 가지 문제가 있다. 그 시점에 다른 부서에 공석이 없다. 지난 달 당신은(보안 분석가) Cisco 라우터와 유닉스 서버에 로그인 시도가 엄청나게 증가했다는 것을 알았다. 당신은 CiscoSecure ACS를 구현하여 이를 감시하여 이 같은 시도가 대부분 새벽 3시에 발생했다는 것을 알았다.

의심이 가기 시작했지만 보안 분석가로서 아무런 증거 없이 누구를 지칭할 수는 없었다.

좋은 보안 분석가인 당신은 그 상황을 깊이 분석하기 시작한다. 침입은 매우 우수한 기술력을 가진 누군가로부터 자행되었고 Jane의 근무시간 동안 발생했다. 그녀가 테이프 교체 업무를 수행한 바로 직후, 낮 근무조가 출근하기 전에 공부나 책을 읽으면서 보내는 시간에 발생했다는 것을 알았다. 이에 따라 당신은 야간 관리자에게 심야에 Jane을 감시하도록 했다. 3주 동안 면밀히 감시한 후에 이 침입이 멈췄다. 당신이 맞았다. Jane이 Cisco 라우터와 유닉스 서버에 로그인을 시도하려고 했었던 것이다.

훌륭한 보안 분석가라면 침입을 기록하기 위해 Tacacs+ 같은 좋은 감시 툴을 사용해야 한다. Tacacs+는 권한(Authorization), 계정(Accountability), 인증(Authentication)을 실행하는 CiscoSecure ACS 같은 애플리케이션이 사용하는 프로토콜이다. 당신이 권한(Authorization)을 갖고 있다면 액세스를 요청하는 사람은 그 시스템에 접근할 수 있는 권한이 필요하다. 인증을 갖고 있다면 리소스에 접근하는 사용자는 접근 권리와 허가로 인증을 받아야 한다. 권한과 인증을 받은 후에는 어떻게 할까? 계정이 필요하다. 계정 로그가 많은 패스워드 크래킹 문제들을 해결한다.

이제는, 오래된(하지만 여전히 사용되는) 침입 예제를 설명하겠다. 여기에는 패스워드 스니핑이 포함된다. 네트워크 감시자가 회사 내의 헬프데스크 기술자들이 Cisco 라우터와 스위치들을 크래킹 하는 것을 포착해 가는 시나리오이다.


예제: 헬프데스크 기술자
Tommy는 헬프데스크 관리자로 고용되어서 근무시간외 헬프데스크 직원들과 함께 일한다. 영업시간 외 근무하는 헬프데스크 직원은 약 10여명 정도이다. 그들은 그 시간 동안 회사가 지원해야 하는 8 개의 원격 사이트를 관리한다. Tommy는 일할 때 언제나 랩톱 컴퓨터를 갖고 간다. 매니저가 랩톱에 대해 물으면 Tommy는 휴식시간에 인증 시험 공부를 하는데 사용한다고 설명한다. 기업의 보안 감시 없이 외부에서 회사 네트워크로 기계를 갖고 오는 것에 대한 사내의 보안 정책이 있었음에도 허용되었다.

결국 감시카메라에는 Tommy가 팔 안쪽에 무엇인가를 들고 배선함을 떠나는 모습을 포착했다. 하지만 어떤 것도 보고되지 않았기 때문에 Tommy가 잘못을 저질렀다고 입증할 방법이 없다. 왜 배선함에 있었는지를 헬프데스크 매니저가 물었을 때 Tommy는 휴게실로 잘못 알고 들어갔다고 말했다.

이 회사의 보안 매니저인 Erika는 빌딩 건물의 보안을 책임지는 가드들이 작성한 리포트를 보고 있다. 그녀는 그 배선함에서 Tommy가 무엇을 하고 있었는지가 궁금했고 그가 헬프데스크 매니저에게 답했던 말도 만족스럽지가 않았다. 배선함을 보자마자 그녀는 패치 패널들 중 한 개에서 빠져 나온 패치 케이블과 비어있는 허브 포트를 발견했다. 그녀가 케이블 플러그를 다시 꽂았을 때 이것이 죽은 포트라는 것을 알리는 연결 빛이 다시 나타나지 않았다. 케이블 관리 벨크로 끈으로 다른 모든 케이블들이 묶여있었다. Erika의 수년 간의 예민함으로 그녀는 무슨 일이 발생했는지를 정확히 알았다.

Erika는 Tommy가 배선함에 랩톱을 가져왔다고 유추했다. Tommy는 허브에서 죽은 포트를 찾았고 여기에 패킷 스니퍼가 달린 랩톱을 연결했다. 이것은 무작위로 네트워크 세그먼트상의 트래픽을 골라냈다. Tommy는 나중에 랩톱을 가지러 돌아갔었던 것이고 이것이 감시카메라에 포착된 것이다.

회사의 보안 정책에 근거하여 그녀는 Tommy에게 모든 개인 소지품들은(랩톱과 팜 파일럿) 사내에서 인정되지 않기 때문에 조사 대상이라고 설명했다. Tommy는 처음부터 랩톱을 가져오지 말았어야 했기 때문에 그는 이것을 Erika에게 넘겼다. 세밀한 조사 끝에 Erika는 그림 1과 같은 트레이스를 발견했다.

그림 1. 프로토콜 분석기로 포착한 텔넷 트래픽


그림 2의 Sniffer Pro 애널라이저의 Hex 패인을 자세히 검토한 결과 패인의 오른편에 ASCII 데이터가 명확히 보였다. 배선함의 한 스위치에 연결하여 텔넷 세션을 통해 실행했다. 이 텔넷 프로토콜이 보안이 되지 않고 평문을 통해 전송되기 때문에 패스워드("ciscof")를 쉽게 볼 수 있었다.

그림 2. 평문 데이터의 ASCII 디코드



이것은 가장 기본적인 보안 원리들 중 하나이다. 패스워드로 제품이름을 사용하지 말 것! 하지만 이런 기본적인 원칙이 있었음에도 이렇게 버젓이 자행되고 있었다.

이제 외부 위협에 대해 알아보자.

외부 침입
외부 침입자들은 당신의 "철통방어"를 선회하여 시스템에 접근하는 사람들이다. 하지만 내부 침입자들만큼 쉽게 하지는 못한다. 첫 번째 시나리오에는 웹 사이트 디페이싱(defacing)이라고 알려진 아주 일반적인 형태의 외부 침입을 다룬다. 이 경우에는 패스워드 크래킹을 사용하여 시스템에 침입한다. 또 다른 패스워드 크래킹 침입으로는 침입자가 Social Engineering을 통해 패스워드를 얻으려고 할 때 발생한다. Social Engineering은 신임을 받는 관리자가 계정 아이디와 패스워드를 침입자에게 넘기는 트릭이다.


예제: 웹 사이트 홈 페이지 디페이싱
그림 3은 매우 일반적이고 단순한 예제로서, 외부 패스워드 크래킹인 웹 사이트의 홈페이지 디페이싱이다. 허가 설정이 잘못된 인터넷 정보 서버(IIS)를 사용하는 것으로 간단히 해결된다. 침입자는 워크스테이션으로 가서 IIS 서버를 HTML 편집 툴을 사용하여 침입한다. 인터넷을 통해 사이트에 침입을 시도할 때 침입자는 L0phtCrack 같은 패스워드 생성 툴을 사용한다. 이러면 서버에 대한 무작위 침입(brute force attack)이 시작된다.

그림 3. 침입자가 바꾼 홈페이지


당신 회사의 명성이 위태롭다. 데이터가 보안도 안된 서버에 있다고 알려지면 비즈니스 벤더들과 파트너들에게 신뢰도 잃을 것이다. 안팎의 위협 모두를 잘 살펴야 한다.

예제: Social engineering 트릭

툴과 관계 없는 트릭으로 패스워드를 크래킹 하는 것을 Social engineering 침입이라고 한다.

Jon은 큰 기업의 새로운 보안 분석가이다. 그의 첫 번째 임무는 회사의 보안 상황을 테스트하는 것이다. 물론 그는 관리가 그가 무엇을 하려고 하는지를 알도록 했다. (따라서 자기자신이 침입자라는 것을 알리지 않는다.) 그는 툴을 사용하지 않고는 네트워크를 크래킹하는 것이 얼마나 힘든지 보고 싶었다. 그는 두 가지를 시도했지만 침입에 성공했다.

큰 기업의 신입사원이기 때문에 사람들은 Jon에 대해 아직 모른다. 때문에 그가 그의 첫 번째 Social engineering 침입을 쉽게 성공할 수 있었다. 그의 첫 번째 목적은 헬프데스크이다. Jon은 헬프데스크에 루틴 호출을 하여 가상 원격 사용자로서 패스워드 리셋을 요청한다. Jon은 이미 그에게 필요한 정보의 반을 가졌다. 왜냐하면 회사의 네이밍 규약이 사용자의 이름과 성의 첫 번째 이니셜이라는 것을 알았기 때문이다. CIO의 이름은 Jeff이고, 그의 성은 Ronald이다. 따라서 JeffR이 로그인 아이디이다. 이 정보는 회사의 전화 디렉토리에서 쉽게 사용할 수 있다. CIO를 가장하여 Jon은 헬프데스크에 전화를 걸어 패스워드를 잊었다고 하면서 패스워드 재설정을 요청한다. 잃어버린 패스워드를 하루에 백 번이라도 재설정해주는 것이 헬프데스크 직원이 하는 일이다. 헬프데스크 직원은 5분 후에 Jon에게 전화를 걸어 새로운 패스워드를 알려준다. 금요일에 요청했기 때문에 패스워드는 "friday"이다. 5분 안에 Jon은 CIO의 공유 파일과 이메일에 접근한다.

Jon의 다음 Social engineering 침입에는 지역 전화국에서 일하는 그의 친구가 포함되어 있다. Jon은 그 친구가 비번인 날 기어, 벨트, 배지를 빌린다. 그는 새로운 기어와 헤드를 기업의 다른 부서로 가져간다. 거기에는 모든 재해 복구 라우터와 서버들이 배치되어 있다. 이 하드웨어에는 회사의 모든 데이터들의 복사본이 포함되어 있고 기밀사항이다. Jon은 Telco 복장을 입고 캠퍼스 보안 사무실로 들어가 Local Exchange Carrier (LEC)의 호출을 받았다고 말한다. 그는 데이터 센터로 들어가서 Smart Jack에 어떤 경고라도 있는지를 확인한다고 한다.

현장 관리자가 아이디를 검사하지도 않은 채 데이터 센터로 안내한다. 일단 내부로 들어가서 관리자는 가만히 있고 Jon이 테스트를 시작한다. 몇 분이 경과하고 Jon은 관리자에게 그의 사무실로 전화를 하고 몇 가지 테스트를 더해봐야 한다고 한다. Jon은 관리자에게 45분 정도 걸린다고 알려준다. 그래서 관리자는 Jon에게 페이저 번호를 알려주고 일이 끝나면 알려달라고 한다. Jon은 이제 유일한 장애물을 제거했고 데이터 센터에는 30대의 서버들만이 남게 된다.

Jon에게는 이제 몇 가지 기회가 남아있다. 모든 서버를 검사하여 잠기지 않은 콘솔을 찾거나 그의 랩톱을 오픈 포트에 연결하여 스니핑을 시작할 수 있다. 어느 정도 까지 가능한지 알고 싶었기 때문에 오픈 콘솔을 찾기로 결정한다. 모든 KVM 슬롯을 검사한지 5분이 지나서 Domain용 Backup Domain Controller로서 실행되는 Windows NT 서버를 찾게 된다. Jon은 가방에서 CD를 꺼내 서버의 CD 트레이에 삽입한다. 기업의 Domain용 BDC에 L0phtCrack을 설치하고 디렉토리에 침입한다. 5분 안에 Yankees 라는 패스워드가 나타난다. 이것은 책임 관리자가 New York Yankees의 팬이라는 것을 알 수 있다. 그는 이제 회사의 가장 중요한 정보에 접근할 수 있다.

이제 그가 어떻게 했는지를 알아보자.

그림 4. L0phtCrack을 사용하여 관리자 패스워드 알아내기




방어 체크 리스트

다음은 패스워드 크래킹을 방지하기 위한 체크리스트이다.

1. 사무실을 점검하라! 패스워드를 적어놓은 메모지가 모니터나 키보드 밑에 붙어있지 않은지 확인하라.
2, 더미(dummy) 계정을 설정하라. 관리자(admin) 계정을 제거하거나 트랩으로 설정하고 감시하라.
3. 추측하기 어려운 패스워드를 사용하라. 콘솔을 절대 열어두지 말라.
4. 백업은 필수이다. 실행 데이터가 있어야 한다. 트랩도 보안화 해야 한다. 그렇지 않으면 데이터가 위험하다.
5. 덤스터 다이빙(dumpster diving)을 방지하라.
6. 중요한 정보를 방치하지 말라. 완전히 파기하던지 기밀로 보관하라.
7. 아이디를 검사하고 모르는 사람에게는 질문을 던져보라. 방문자가 있다면 반드시 확인하라.
8. 엔드 유저를 교육하라. Social Engineering에 걸리지 않도록 훈련시키고 내부 사용자들에게 기업의 보안 정책을 상기시켜라.

요약
침입자의 심리적 동기와 패스워드 크래킹에 사용되는 다양한 레벨의 기술들을 살펴보았다. 다양한 침입 시나리오도 연구했다. 패스워드 크래커가 내/외부적으로 이 기술을 사용할 수 있다는 것도 설명했다. 마지막으로 패스워드 크래킹에서 자신과 회사를 보호하는 방법도 설명했다. 이러한 침입에 대응할 때에는 의식적인 노력, 훈련, 툴, 견고한 보안 정책이 필요하다. 보안 애널리스트로서 보다 적극적으로 이러한 침입을 방어하기 바란다.

기타 참고 사이트
아래 2곳은 password에 대해서 다양한 방법의 접근과 방법을 나열한 곳입니다. 학습에는 좋은 곳이니 참고 하시길...

Project RainbowCrack  -
http://www.antsight.com/zsl/rainbowcrack/index.php
Offline registry tools and password resetter - http://home.eunet.no/~pnordahl/ntpasswd/

기타 크랙관련 도구들

md5crack - http://md5crack.com/
md5pass.info - http://md5pass.info/
TheKaine.de - http://md5.thekaine.de/
insidepro - http://hash.insidepro.com/
md5decrypter - http://md5decrypter.com/
passcracking.ru - http://passcracking.ru/
md5decryption - http://md5decryption.com/
hackcrack - http://hashcrack.com/index.php
AuthSecu 
http://authsecu.com/decrypter-dechiffrer-cracker-hash-md5/decrypter-dechiffrer-cracker-hash-md5.php