当前位置 - 무료 법률 상담 플랫폼 - 법률 지식 - 해커에게 백도어는 무엇을 의미하나요?

해커에게 백도어는 무엇을 의미하나요?

일반적으로 해커는 시스템에 침입한 후 두 번 이상 시스템에 침입합니다. 다음 번에 시스템에 쉽게 진입할 수 있도록 해커는 백도어를 남깁니다. 트로이 목마는 백도어의 가장 좋은 예입니다. Unix에서 백도어를 남기는 방법에는 여러 가지가 있습니다. 다음은 네트워크 관리자가 참조하고 예방할 수 있는 몇 가지 일반적인 백도어입니다.

비밀번호 크래킹 백도어

이것은 침입자가 사용하는 가장 오래되고 오래된 방법입니다. Unix 시스템에 대한 액세스 권한을 얻을 뿐만 아니라 비밀번호를 크래킹하여 백도어를 생성합니다. 이것이 취약한 비밀번호로 계정을 크랙하는 것입니다. 관리자가 향후 침입자의 현재 계정을 차단하더라도 이러한 새 계정은 여전히 ​​재침입을 위한 백도어가 될 수 있습니다. 대부분의 경우 침입자는 비밀번호가 취약한 사용되지 않는 계정을 찾아 이를 변경하기 어렵게 만듭니다. 관리자가 비밀번호가 취약한 계정을 찾을 때 비밀번호가 변경된 계정은 찾을 수 없습니다. 이로 인해 관리자가 어떤 계정이 차단되었는지 확인하기가 어렵습니다.

Rhosts + + 백도어

네트워크로 연결된 Unix 시스템에서 Rsh 및 Rlogin과 같은 서비스는 rhosts 파일의 호스트 이름을 기반으로 하는 간단한 인증 방법을 사용합니다. 사용자는 액세스를 위해 비밀번호를 요구하지 않고도 설정을 쉽게 변경할 수 있습니다. 침입자가 접근 가능한 사용자의 rhosts 파일에 "+ +"를 입력하는 한, 그는 누구나 암호 없이 어디서든 계정에 들어갈 수 있도록 허용할 수 있습니다. 특히 홈 디렉토리가 NFS를 통해 외부적으로 공유되는 경우 침입자는 이에 더욱 관심을 갖습니다. 이러한 계정은 침입자가 다시 액세스할 수 있는 백도어 역할도 합니다. 많은 사람들은 로깅 기능이 부족하기 때문에 Rsh 사용을 선호합니다. 많은 관리자들이 "++"를 체크하는 경우가 많기 때문에 침입자는 실제로 인터넷에서 다른 계정의 호스트 이름과 사용자 이름을 설정하여 발견 가능성을 낮춥니다.

체크섬 및 타임스탬프 백도어

초기에는 많은 침입자가 바이너리를 자체 트로이 목마 프로그램으로 대체했습니다. 시스템 관리자는 Unix의 sum 프로그램과 같은 바이너리 파일이 변경되었는지 여부를 식별하기 위해 타임스탬프와 시스템 체크섬 프로그램을 사용합니다. 침입자는 트로이 목마 파일과 원본 파일 간의 타임스탬프를 동기화하는 새로운 기술을 개발했습니다. 이는 다음과 같이 구현됩니다. 먼저 시스템 시계를 원래 파일 시간으로 다시 설정한 다음 트로이 목마 파일의 시간을 시스템 시간으로 조정합니다. 바이너리 트로이 목마 파일이 원본과 정확하게 동기화되면 시스템 시간을 현재 시간으로 다시 설정할 수 있습니다. Sum 프로그램은 CRC 검사를 기반으로 하며 속이기 쉽습니다. 침입자는 트로이 목마의 체크섬을 원본 파일의 체크섬으로 조정할 수 있는 프로그램을 설계했습니다. MD5는 대부분의 사람들이 권장하며 아직 누구도 MD5에서 사용하는 알고리즘을 속일 수 없습니다.

로그인 백도어

유닉스에서 로그인 프로그램은 일반적으로 텔넷에서 들어오는 사용자의 비밀번호를 확인하는 데 사용됩니다. 침입자는 login.c의 원본 코드를 확보하고, 입력된 비밀번호와 저장된 비밀번호를 비교할 때 백도어 비밀번호를 먼저 확인하도록 수정한다. 사용자가 백도어 비밀번호를 입력하면 관리자가 설정한 비밀번호를 무시하고 로그인이 가능해집니다. 이렇게 하면 침입자가 모든 계정, 심지어 루트에도 액세스할 수 있게 됩니다. 백도어 비밀번호는 사용자가 실제로 로그인하기 전에 접근권한을 생성해 utmp, wtmp에 로그인되기 때문에 침입자는 계정을 노출하지 않고도 로그인해 쉘을 탈취할 수 있다. 관리자는 이 백도어를 발견한 후 "strings" 명령을 사용하여 로그인 프로그램에서 문자 메시지를 검색했습니다. 많은 경우 백도어 비밀번호의 정체가 공개됩니다. 그런 다음 침입자는 비밀번호를 암호화하거나 숨기기 시작하여 문자열 명령을 쓸모없게 만듭니다. 따라서 더 많은 관리자가 MD5 체크섬을 사용하여 이러한 종류의 백도어를 탐지합니다.

Telnetd 백도어

사용자가 시스템에 텔넷을 연결하면 포트에서 수신 대기 중인 inetd 서비스가 연결을 수락한 다음 이를 in.telnetd에 전달하여 일부 침입자가 로그인합니다. 관리자가 로그인을 확인할 것임을 알고 있습니다. 수정된 경우 in.telnetd 수정을 시작합니다. in.telnetd 내에서 사용자가 사용하는 터미널과 같은 사용자 정보에 대한 몇 가지 확인이 있습니다.

일반적인 터미널 설정은 Xterm 또는 VT100입니다. 침입자는 터미널이 "letmein"으로 설정된 경우 인증이 필요하지 않은 셸을 생성하는 백도어를 생성하고 특정 소스 포트로부터의 액세스를 차단할 수 있습니다. 껍질.

서비스 백도어

거의 모든 네트워크 서비스가 침입자에 의해 백도어되었습니다. Finger, rsh, rexec, rlogin, ftp, 심지어 inetd 등의 다양한 버전이 어디에서나 사용 가능합니다. 일부는 특정 TCP 포트에 연결된 쉘일 뿐이며 백도어 비밀번호를 통해 접근이 가능하다. 이러한 절차가 때때로 사용됩니까? Ucp와 같은 사용되지 않는 서비스는 inetd.conf에 새 서비스로 추가될 수 있습니다. 관리자는 어떤 서비스가 실행되고 있는지 주의 깊게 살펴보고 MD5를 사용하여 원래 서비스 프로그램을 확인해야 합니다.

Cronjob 백도어

Unix의 Cronjob은 일정에 따라 특정 프로그램의 실행을 예약할 수 있습니다. 침입자는 백도어 셸 프로그램을 추가하여 오전 1시부터 오전 2시 사이에 실행되도록 한 다음 매일 밤 1시간 동안 액세스 권한을 얻을 수 있습니다. 또한, cronjob에서 자주 실행되는 합법적인 프로그램을 확인하는 동시에 백도어를 삽입할 수도 있습니다.

라이브러리 백도어

거의 모든 UNIX 시스템은 동일한 기능을 재사용하고 코드 길이를 줄이는 데 사용되는 공유 라이브러리를 사용합니다. 일부 침입자는 crypt.c 및 _crypt.c와 같은 기능에 백도어를 만들었습니다. login.c와 같은 프로그램에서는 crypt()를 호출합니다. 백도어 비밀번호가 사용될 때 쉘을 생성합니다. 따라서 관리자가 MD5를 이용해 로그인 프로그램을 확인하더라도 여전히 백도어 기능이 발생할 수 있으며, 많은 관리자들은 라이브러리의 백도어 여부를 확인하지 않습니다. 많은 침입자에게는 문제가 있습니다. 일부 관리자는 모든 것에 대해 추가 MD5 확인을 수행합니다. 한 가지 방법은 침입자가 open() 및 파일 액세스 기능을 백도어하는 것입니다. 백도어 기능은 원본 파일을 읽지만 트로이 목마 백도어 프로그램을 실행합니다. 그래서 MD5가 이 파일들을 읽을 때 체크섬은 모두 정상이지만, 시스템이 실행되면 트로이목마 버전이 실행되게 됩니다. 심지어 트로이목마 라이브러리 자체도 MD5 검사를 회피할 수 있는데, 이는 관리자가 백도어를 찾아내는 방법입니다. MD5 검증 프로그램을 정적으로 컴파일한 후 실행합니다. 정적 링커는 트로이 목마*** 공유 라이브러리를 사용하지 않습니다.

커널 백도어

커널은 유닉스 작업의 핵심이다. MD5 검증을 피하기 위해 라이브러리에서 사용하는 방법은 커널 수준에도 적용 가능하며 정적 연결도 인식할 수 없다. 잘 백도어가 설치된 커널은 관리자가 찾기 가장 어렵습니다. 다행스럽게도 커널 백도어는 쉽게 사용할 수 없으며 실제로 얼마나 널리 퍼져 있는지는 누구나 알고 있습니다.

파일 시스템 백도어

침입자는 관리자가 발견하지 못한 채 서버에 전리품이나 데이터를 저장해야 합니다. 침입자의 기사에는 익스플로잇 스크립트 도구와 백도어가 포함되는 경우가 많습니다. , 이메일 백업, 원본 코드 등! 때때로 관리자가 이러한 대용량 파일을 발견하는 것을 방지하기 위해 침입자는 특정 디렉터리와 파일을 숨기기 위해 "ls", "du", "fsck"를 패치해야 합니다. 매우 낮은 수준에서 침입자는 이 취약점을 사용합니다. 하드 디스크의 일부에서 떨어져 불량 섹터로 표시됩니다. 따라서 침입자는 이러한 숨겨진 파일에 액세스하기 위해 특수한 도구만 사용할 수 있습니다. 일반 관리자의 경우 이러한 "불량 섹터"에서 파일 시스템을 찾는 것이 어렵고 실제로 존재합니다.

부팅 차단 백도어

PC 세계에서는 루트존에 많은 바이러스가 숨어 있는데, 바이러스 백신 소프트웨어는 루트존이 변경되었는지 확인한다. Unix에서는 대부분의 관리자가 루트 영역을 확인하는 소프트웨어를 갖고 있지 않기 때문에 일부 침입자는 루트 영역에 백도어를 남겨둡니다.

숨겨진 프로세스 백도어

침입자는 일반적으로 자신이 실행하는 프로그램을 숨기려고 합니다. 이러한 프로그램은 대개 비밀번호 크래킹 프로그램 및 스니퍼입니다. 다른 프로세스 이름처럼 보이도록 프로그램을 작성할 때 자신만의 argv[]를 수정하세요. 스니퍼 프로그램의 이름을 in.syslog와 같은 이름으로 변경한 후 실행하면 됩니다. 따라서 관리자가 "ps"를 사용하여 실행 중인 프로세스를 확인하면 표준 서비스 이름이 나타납니다.

"ps"가 모든 프로세스를 표시하지 못하도록 라이브러리 기능을 수정할 수 있고, 프로세스 테이블에 나타나지 않도록 인터럽트 드라이버에 백도어나 프로그램을 내장할 수도 있습니다. 이 기술을 사용하는 백도어의 예는

amod.tar.gz:

네트워크 액세스입니다. 이러한 네트워크 액세스 백도어는 때때로 침입자가 방화벽을 통해 액세스할 수 있도록 허용합니다. 침입자가 정상적인 서비스를 거치지 않고 특정 포트 번호를 생성하고 접근 권한을 얻을 수 있도록 하는 네트워크 백도어가 많이 있습니다. 이는 비표준 네트워크 포트를 통한 트래픽이기 때문에 관리자는 침입자의 발자국을 놓칠 수 있습니다. 이 백도어는 일반적으로 TCP, UDP 및 ICMP를 사용하지만 다른 유형의 메시지도 가능합니다.

TCP 셸 백도어

침입자는 방화벽에 의해 차단되지 않는 높은 수준의 TCP 포트에 이러한 TCP 셸 백도어를 설정할 수 있습니다. 대부분의 경우 관리자가 이를 방지하기 위해 비밀번호로 보호됩니다. 즉시 연결에서 쉘 액세스임을 확인하십시오. 관리자는 netstat 명령을 사용하여 현재 연결 상태, 수신 중인 포트, 현재 연결의 내부 및 외부를 볼 수 있습니다. 일반적으로 이러한 백도어를 사용하면 침입자가 TCP 래퍼 기술을 회피할 수 있습니다. 이러한 백도어는 많은 방화벽에서 이메일이 통과하도록 허용하는 SMTP 포트에 배치될 수 있습니다.

UDP 셸 백도어

관리자는 종종 TCP 연결에 주의를 기울이고 이상한 동작을 관찰합니다. UDP 쉘 백도어 그러한 연결이 없으므로 netstat는 침입자의 액세스 추적을 표시할 수 없습니다. 많은 방화벽은 DNS와 유사한 UDP 메시지의 통과를 허용하도록 설정되어 있습니다. 일반적으로 침입자는 이를 허용하기 위해 이 포트에 UDP 쉘을 배치합니다. 방화벽을 통과하세요.

ICMP 셸 백도어

Ping은 ICMP 패킷을 보내고 받음으로써 시스템 활동을 탐지하는 일반적인 방법 중 하나입니다. 많은 방화벽에서는 외부인이 내부 시스템에 ping을 수행하도록 허용합니다. 침입자는 Ping ICMP 패킷에 데이터를 넣어 ping 시스템 사이에 쉘 채널을 형성할 수 있지만 관리자는 패킷의 데이터를 보지 않는 한 이를 알 수 있습니다. 침입자가 노출되지 않을 방법은 없습니다.

암호화된 연결

관리자는 데이터에 접근하기 위해 스니퍼를 만들 수 있지만, 침입자가 네트워크 접근 백도어를 암호화하면 두 시스템 사이의 연결을 확인할 수 없습니다. . 콘텐츠가 전송됩니다.