공격경로의 이해
작성자 정보
- 손석범 작성
- 작성일
컨텐츠 정보
- 2,334 조회
- 0 추천
- 목록
본문
만약 당신이 크래커라 가정하자. 당신은 루트에 이르는 가능한 경로의 최종 지점들을 발견하고 그 가각을 이용하는 데 드는 비용을 산정 하려 노력할 것이다. 비용은 아마 그 경로를 걷는데 드는 시간일 수 있다. 또는 실제적인 재정적 비용일 수도 있다. 예를 들면 적절한 시간 내에 비밀번호를 해독하기 위해 요구되는 강력한 컴퓨터 비용 또는 루트 비밀번호를 알아내기 위해 누군가를 매수하는데 드는 비용, 전화 도청 장치를 설치하고 거기에 모뎀을 연결하는 데 드는 비용 같은 것이다.
그리고 이러한 최종 세그먼트(root가 가려는 최종 목적지)의 출발점에 이르는 다양한 경로를 그려내고 비용을 분석한다. 다음으로 이러한 경로에 이르는 세그먼트를 고안해 내고 비용을 계산한다. 마침내 당신이 명확히 시작할 수 있는 다양한 출발점에 이르게 될 것이다. 이러한 경로들을 그림으로 그려보면 나무와 상당히 유사하다. 자연계의 살아 있는 나무, 또는 파일 시스템 트리 둘 다 모두 유사하다. 종국적으로 당신은 각각의 가능한 경로에 대해 모든 세그먼트의 비용을 추가한다. 이제 루트에 대한 공격 경로에 대해 알아보자!
루트를 공격하는 경로
알려지지 않은 FTP -> FTP를 통해 계정 이름 발견(chroot로 되지 않았거나 etc/passwd 파일을 읽을 수 있는 FTP) -> 일반 사용자(패스워드 추측)
정보가 될만한 웹사이트, 뉴스 그룹, 이메일을 통해 계정 이름을 발견 -> 일반 사용자(위와 같다)
finger로 계정 이름 발견 -> 일반 사용자(위와 같다)
일반 사용자 -> /tmp 디렉토리에 쓰기 기능 가능하고, /bin 디렉토리 안에 실행 파일이 실행되기 전에 “.” 먼저 실행하도록 한 root의 $PATH -> Root(/tmp 디렉토리에 크래킹된 ls 명령어를 install 시킨다.)
일반 사용자 -> Root(su를 이용해서 root 패스워드 추측)
일반 사용자 -> Root(root 프로그램에서 set-UID를 꺼버린다.
일반 사용자 -> 암호화된 root 패스워드를 알아낸다(섀도우 패스워드를 사용하지 않거나 /etc/password가 읽기 속성으로 되어있을 때) -> Root(자신의 시스템에 root패스워드를 크랙건다.)
* 참고
알려지지 않은 FTP -> /tmp 디렉토리에 쓰기 기능 가능하고, /bin 디렉토리 안에 실행 파일이 실행되기 전에 “.” 먼저 실행하도록 한 root의 $PATH(/tmp 디렉토리에 쓰기 권한이 허락되어진 chroot가 안된 FTP) -> Root(/tmp 디렉토리에 크래킹된 ls 명령어를 install 시킨다.)
여기 까지가 루트를 공격하는 경로 입니다.
이 루트를 공격하는 경로를 열심히 연구해서 각 단계를 분석한다면 당신은 최소한의 노력으로 침입하기 어렵게 만들 수 있는 여러 개의 경로를 발견하게 될 것이다. 보안을 강화하기 위해 각 경로의 세그먼트의 어려움을 분석하고 쉬운 경로를 제거하거나 그것들을 어렵게 만들도록 노력하자!
* 시스템을 강화하는 몇 가지 전형적인 방법들
1. shadow 비밀번호를 이용하라. 크래커들은 암호화된 비밀번호를 획득하여 그들의 시스템에서 이를 해독하려한다. 따라서 shadow 비밀번호를 사용함으로써 이를 차단하는 것이 중요하다. 이를 구현하는 것에 관해서는 우수한 보안을 위한 shadowed MD5(255자의 암호화를 지원하는 방식)이 제일 좋다(자세한 것은 좀더 많은 리눅스 지식을 쌓은후...)
2. chroot를 구동할 수 있도록 FTP를 구성해서 /etc/password나 /tmp를 획득할 수 없도록 하라. 대부분의 최근 배급 판들은 이미 이러한 방식으로 구동하도록 장착되어 있다. named 같은 다른 데몬에도 이 chroot 능력을 이용하라.
3. 루트의 $PATH가 “.”를 포함하지 않도록 하라.(자세한 것은 좀더 많은 리눅스 지식을 쌓은후...)
4. finger 데몬과 같은 모든 불필요한 서비스를 사용 불가능하게 하라!
5. 사용자의 계정 이름이나 e-mail 주소를 웹사이트에 공개하지 말라!
6. 풀기 어려운 비밀번호를 이용하도록 하라.(역시 위와 같다..)
7. 버그가 많은 set-UID 프로그램이 없도록 확실히 하라. 최신 버전의 소프트웨어로 항상 업그레이드하라. 루트가 아닌 어떤 가능한 계정에 set-UID 프로그램에 보안을 강화할 수 있는 대안을 찾아낸다.
8. 훌륭한 컨설턴트를 고용해서 당신의 보안을 감사하고 침입 시험을 수행하라.
보안 문제를 최적화하는 작업을 분석하는데 이 공격 경로는 엄청난 도움이 된다. 특히 CGI 프로그램을 포함한 국부적으로 추가된 어플리케이션의 경우는 더욱 그러하다. 왜냐하면 CGI는 흔히 보안 취약점(버그)을 가지고 있기 때문에 이 공격 경로는 그 결과가 얼마나 심각할 수 있는 지를 결정할 수 있다. 이 테크닉은 또한 CGI나 다른 응용프로그램에서 취약점이 발견된 경우 얼마나 다른 변환들이 발생한 피해를 제한시킬 수 있는지를 보게 해준다. 또한 어떤 CGI가 보안의 관점에서 가장 치명치인지를 보게 해줌으로써 CGI를 가장 자세하게 분석해야 하는 지도 알려준다.
강의출처 : 정보보안.네트워크.IT자격증 정보공유사이트
보안전문가 준비에대한 철저한 계획 및 진행에 대한 상담을 드립니다
국방부 컨퍼런스 및 경찰청, 사이버수사대, 안철수랩 보안교육센터
(주)해커스칼리지 해커대학
http://www.eduhacker.co.kr
02-3291-3264
관련자료
-
이전
-
다음