유닉스 / 리눅스의 악성 코드에 대한 신화


142

Linux 상자가 맬웨어에 감염 될 수 있습니까?

나는 내가 아는 사람에게 일어난 일에 대해 들어 본 적이 없으며 그것이 불가능하다는 것을 몇 번이나 들었습니다. 그게 사실입니까?

그렇다면 Linux 안티 바이러스 (보안) 소프트웨어의 문제점은 무엇입니까?


1
이 quora answer : goo.gl/UVCsgz를 확인하십시오. Linux / Unix가 맬웨어와 무작위로 감염 될 가능성이 있다는 점에서 Linux / Unix가 Windows와 다른 주요 원인을 다룹니다.
arielf

2
@arielf 링크만큼 좋지는 않지만 유익한 다른 기사 : linuxmafia.com/~rick/faq/#virus
Wildcard

답변:


135

첫째, Linux와 같은 Unix 및 Unix와 유사한 운영 체제에서 바이러스를 가질 수 있습니다. 컴퓨터 바이러스 라는 용어 인 Fred Cohen은 4.3BSD 하에서 첫 실험 을했습니다. Linux 바이러스작성 하는 방법 문서 는 2003 년 이후 업데이트되지 않은 것처럼 보이지만 존재합니다.

둘째, sh-script 컴퓨터 바이러스의 소스 코드는 20 년 이상 떠 오릅니다. Tom Duff의 1988 년 논문 과 Doug McIllroy의 1988 년 논문을 참조하십시오 . 최근에는 플랫폼 독립적 인 LaTeX 바이러스 가 회의용으로 개발되었습니다. Windows 및 Linux 및 * BSD에서 실행됩니다. 당연히 그 효과는 Windows에서 더 나쁩니다 ...

셋째, (적어도) 리눅스에 대한 소수의 실제 라이브 컴퓨터 바이러스가 나타 났지만, 이들 중 2 개 또는 3 개 (RST.a 및 RST.b)가 "야생적으로"발견 된 것은 확실하지 않습니다.

따라서 실제 질문은 Linux / Unix / BSD가 컴퓨터 바이러스에 감염 될 수 있습니까? 오히려 Linux 데스크톱 및 서버 인구가 얼마나 큰지 감안할 때 왜 그 인구가 Windows가 유치하는 놀라운 바이러스 전염병을 가지고 있지 않습니까?

나는 그 이유가 전통적인 Unix 사용자 / 그룹 / 기타 임의의 보호에 의해 제공되는 가벼운 보호 및 Linux가 지원하는 손상된 소프트웨어 기반과 관련이 있다고 생각합니다. 내 서버는 여전히 Slackware 12.1을 실행하지만 사용자 정의 컴파일 된 커널과 많은 재 컴파일 패키지를 사용합니다. 내 데스크탑은 롤링 릴리스 인 Arch를 실행합니다. 둘 다 "Linux"를 실행하지만 공통점이 많지 않습니다.

리눅스에서 바이러스의 상태는 실제로 정상적인 평형 일 수 있습니다. Windows의 상황은 "드래곤 킹"일 수 있습니다. 윈도우 API는 Win32에서, NT-네이티브 API, 같은 마법의 장치 이름 미친 듯이 바로크이다 LPT, CON, AUX즉, 아무도 이해하지 않는다는 ACL을 단일 사용자의 전통, 아니, 단일 루트 사용자, 기계, 마킹 파일을 임의의 디렉토리에서 작업 할 수 있습니다 파일 이름 ( .exe) 의 일부를 사용하여 실행 파일을 실행 하면이 모든 것이 Windows의 맬웨어 상태에 영향을 줄 수 있습니다.


35
과거에 고려해야 할 한 가지 문제는 Windows ABI가 수년간 안정적으로 유지되었다는 것입니다. (또는 MS는 투명하게 출시 한 다양한 ABI를 모두 지원하기 위해 많은 어려움을 겪었습니다. 예를 들어 WoW64). 이는 Windows 3.1에서 실행되는 실행 파일이 Windows 7에서 잘 실행될 수 있음을 의미합니다. 단일 문화권 내에서의 단일 문화 : 맬웨어 제작자는 Linux와 마찬가지로 모든 Windows 버전에 대해 프로그램을 다시 작성할 필요가 없습니다.
Warren Young

50
유닉스 / 리눅스 및 맥 시스템에서 낮은 수준의 바이러스가 발생하는 또 다른 이유는 기본적으로 신뢰할 수있는 리포지토리가 구성된 글로벌 패키지 관리 시스템이 있기 때문이라고 생각합니다. Windows는 온라인에서 악의적 인 공급 업체로부터 인터넷을 통해 찾는 소프트웨어를 다운로드하는 반면 unix / linux / mac에서는 내부 소프트웨어를 사용하여 문제가 발견되면 새로운 항목을 조사하고 제거하는 저장소를 탐색합니다.
haylem

33
또한 Windows는 독점적 인 땅입니다 (다른 플랫폼에서 발생하지만 Mac OS를보고 있습니다). 사람들은이 플랫폼의 균열 소프트웨어를 다른 플랫폼보다 훨씬 더 많이 찾는 경향이 있습니다. 그리고 온라인에서 어두운 골목으로가는 것은 실제 상황에서 어두운 골목으로가는 것과 다르지 않습니다 : 문제를 예상하십시오. 마약 딜러가 자신이 광고하는 것을 제공하도록 어떻게 신뢰할 수 있습니까? 그리고 수정되지 않은 형태로? 그렇다면 금이 간 소프트웨어 딜러가 자신이 광고하는 것을 제공한다는 것을 어떻게 신뢰할 수 있습니까? 그리고 소프트웨어를 수정하지 않고?
haylem

5
또한 데이터는 코드 및 구성 파일 (var & home, bin & usr 등)과 구분됩니다. Windows 프로그램 파일 바이너리, 구성 파일, 데이터 (MS SQL)를 살펴보십시오. 데이터에 대한 실행 파일없이 디렉토리를 마운트 할 수 있습니다. 응용 프로그램은 당신이 그들에게 던지는 모든 파일 (메일 클라이언트 워드 프로세서)을 실행하지 않습니다. 검토를위한 공개 코드. 문제에 대한 빠른 수정 (커널에서 위협이 발견 된 후 RedHat 및 Debian 직원의 응답 시간 확인). 문제가 발견되면-Distro가 일부 업데이트를 추진합니다 (예를 들어 KDE가 특정 지점에서 누락 된 기능을 실행하기 위해 데스크탑 바로 가기에서 + x 플래그를 찾고 있음)
jet

1
위의 Haylem의 의견은 맞습니다. 이것은 OSX Mac의 "매우 안전한"이미지를 줄이기 위해 "게임 변경"인지 확인하는 것이 흥미로울 것입니다. 몇 년 후에는 거의 매일 OSX의 잘못된 상태가 보입니다. , 사용자가 크래킹 된 소프트웨어를 다운로드하여 설치했기 때문에 (일반 사용자는 터미널에서 열리는 'file.sh'를 실행하고 관리자 암호를 입력하지 않아도됩니다!)
forgotstackxpassword

49

Windows에서 바이러스 확산을 방지합니다.


Linux는 파일 및 전자 메일 서버와 같은 여러 가지 방식으로 사용됩니다.

이 서버의 파일 (MS Office 파일, Outlook 메시지, EXE 프로그램)은 감염 과 함께 저장할 수 있습니다 .

서버 자체에는 영향을 미치지 않지만 서버가 저장된 모든 파일을 검사하여 파일이 깨끗한 지 확인하고 Windows 시스템으로 다시 이동할 때 향후 확산되지 않도록 구성 할 수 있습니다.

친구가 Windows 시스템이 작동하지 않는 이유를 확인하거나 펜 시스템을 Windows 시스템에 꽂을 때 묻는 메시지가 표시됩니다.


39
+1 Linux에 AV 소프트웨어가 존재하는 실제 이유는 시스템에 영향을 줄 수있는 문제를 스캔하는 것이 아니라 다른 시스템 (예 : Windows)에 영향을 줄 수있는 문제를 스캔하기위한 것입니다.
xenoterracide

1
이것은 정답입니다. 우리 가족의 나머지는 Windows를 사용합니다. 외부 플래시 드라이브를 Linux 데스크톱에 꽂고 스캔 한 다음 집에있는 다른 컴퓨터에 연결하기에 안전하다고 선언하는 것이 더 안전하다고 생각합니다.
Johan

정말 멋진 관점입니다. 많은 사람들이 그런 리눅스 (usb)를 사용하지만, 실제로는 리눅스에 Windows 바이러스에 대한 응용 프로그램 기반의 스캔이있을 수 있다는 것을 결코 깨닫지 못할 것입니다.
forgotstackxpassword

1
AV 스캔을 실행할 수 있도록 Linux USB 드라이브에서 Windows PC를 자주 재부팅하지 않습니다.
Jesse Chisholm

23

Linux 용 바이러스는 원칙적으로 가능하며 일부는 있지만 실제로는 광범위한 Linux 바이러스가 없습니다. Linux 사용자 기반은 매우 작으며 Linux에서는 사용자 모델이 Windows XP와 달리 상당히 제한적이기 때문에 바이러스가 해를 입히기가 훨씬 어렵습니다. 따라서 바이러스 제작자는 일반적으로 Windows를 대상으로합니다.

예를 들어 McAfee의 Linux Anti-Virus 소프트웨어가 있지만 그러한 소프트웨어를 사용하는 Linux 사용자는 없습니다. 신뢰할 수있는 출처의 소프트웨어 만 설치하고 적시에 보안 업데이트를 설치하여 시스템을 항상 최신 상태로 유지하는 것이 훨씬 중요합니다.


3
나는 당신이 바이러스에 감염 되어도 (내 리눅스 10 년 동안 바이러스를 본 적이 없다) 최악의 시나리오는 사용자 폴더가 손상된다는 것을 추가하고 싶습니다.
Patkos Csaba

37
아니요, 최악의 시나리오는 완전한 시스템 손상입니다. 커널 사람들은 약 6 주 전에 커널에 커다란 구멍을 뚫어 GUI 프로그램이 권한을 루트 수준으로 에스컬레이션 할 수있게했습니다. 약간의 인터넷 검색을 수행하면이 자연의 다른 과거 구멍을 찾을 수 있습니다. Linux는 Windows와 비교하여 많은 방식으로 보안이 더 우수하지만, 수백만 줄의 코드가 포함 된 다른 코드베이스와 마찬가지로 다른 구멍이 발견되기를 확신 할 수 있습니다. 나도 바이러스 백신 대신 시스템을 패치로 유지하는 것을 옹호하지만 머리를 모래에서 멀리 두십시오.
Warren Young

6
"사용자 기반이 매우 작습니다"라는 이유와 달라야합니다. 실제로 가장 널리 퍼진 PC 바이러스는 1988 년 "Brain"이었습니다. 확실히 2010 년에는 Linux가 1988 년에 MS-DOS보다 데스크탑 사용자가 더 많았습니다. 왜 Linux에 더 많은 바이러스가 없는지, 실제로 바이러스가없는 이유는 무엇입니까? 광범위한 "뇌"바이러스?
Bruce Ediger

7
PC는 1988 년경에 분명한 플랫폼 지배력을 얻었습니다. 오늘날 가장 높은 손톱이 뭉개집니다.
워렌 영

6
echox가 정확합니다. 리눅스 용 AV 소프트웨어는 실제로 리눅스 시스템 자체를 보호하기위한 것은 아닙니다. 리눅스가 제공하는 파일을 스캔 할 수 있습니다. 그렇기 때문에 대부분의 AV는 시스템에서 액세스하거나 변경하는 파일 대신 스캔하도록 지정된 파일 만 봅니다.
xenoterracide

21

역사적으로 첫 번째 인터넷 웜인 Morris Worm 은 Unix 유틸리티의 취약점을 통해 확산되었습니다. Linux보다 이전 버전이지만 Unix 기반 시스템이 감염 될 수 있음을 보여줍니다.


2
그러나 Morris 웜은 바이러스가 아닙니다. Robert Morris가 작성한 소프트웨어는 그런 의미에서 독립적 인 반면 바이러스는 다른 소프트웨어에 첨부해야합니다. 자체 복제는 물론 자체 지속성이므로 바이러스가 아니라 웜이었습니다.
CVn

그렇다면 @ MichaelKjörling 맬웨어?
브라이 암

6

제 생각에, 다른 답변에서 언급 한 것 외에도 Linux 플랫폼에 바이러스가 많지 않은 이유가 하나 더 있습니다. Linux의 거의 모든 구성 요소에 대한 소스 코드는 무료로 제공됩니다.

5 명으로 구성된 팀이 응용 프로그램을 개발한다고 가정 해보십시오. 우리는 목록에 테스터와 다른 몇 명을 포함시키고 최대 10 명이 코드를 알고 있습니다. 이 10 가지 중 일부는 코드에 대한 자세한 지식이 충분하지 않을 가능성이 있습니다. 따라서 버그를 지적하기에 충분한 코드를 아는 사람들의 수는 보안 허점이 매우 적습니다.

이제이 코드를 자유 / 오픈 소스로 만들면 코드를 검토 할 눈이 크게 늘어납니다. 따라서 보안 허점을 찾을 가능성도 높아집니다.

이 새로운 기고자들은 그들에 대한 경험을 가지고 있으며, 종종 신선한 눈은 원래 개발자가 당연한 / 누락 된 것으로 무시 / 취득한 허점을 발견 할 수 있습니다.

응용 프로그램이 인기가 많을수록 더 많은 기여자가 있습니다. 이 자유 / 개방성은 Linux 플랫폼의 취약점 수를 줄이는 데 기여한다고 생각합니다.


5
나는 이것을 말하기를 정말로 싫어하지만 오픈 또는 닫힌 소스 특성은 특정 버그 상태에 도달하는 속도에만 영향을 줄 수 있습니다. Andy Ozment ( andyozment.com/papers/… )의 "우유 또는 와인" 과 Ross Anderson의 "개방 및 폐쇄 시스템은 동일합니다"( cl.cam.ac.uk/~rja14/Papers/toulousebook.pdf )
Bruce Ediger

링크를 공유해 주셔서 감사합니다 Bruce. 확실히 그들을 통과 할 것입니다.
Andrew-Dufresne

3
어떤 Linux 사용자가 모든 소스 코드를 검토 한 후 sudo make install?
Calmarius

5

이미 좋은 답변이 있지만 여전히 무언가 기여하고 싶습니다.

이 시간이 지난 후에도 여전히 창보다 나은 간단한 보안 관행과 모든 바이러스를 포함하여 문제는 크게 사회적이라고 생각합니다.

나는 주된 요소가 배포판의 다양성이라고 믿는다. 이로 인해 바이러스가 확산되어야하는 것을 확보하는 데 관여하는 노력이 증가합니다. 이것은 dodgy 이메일을 클릭 할 가능성이 거의없는 (imho) Linux 사용자의 인구 통계와 결합되거나 일반적으로 위험에 처하게됨을 의미하여 바이러스의 성공이 더욱 억제됨을 의미합니다.

사람들은 또한 창문을 공격하는 데 더 동기가 부여됩니다.


4

그렇습니다. Linux 에는 몇 가지 바이러스 가 있지만 그다지 걱정할 필요는 없습니다. 그들은 당신을 완전히 그리워 할만큼 흔하지 않습니다.

그래도 걱정할 수있는 것은 벌레 입니다. 이러한 프로그램은 일반적으로 사용자 상호 작용을 통해 감염되는 바이러스와 달리 서버간에 자체적으로 전파되어 서비스 및 플랫폼의 취약성을 악용합니다. 웜은 더 많은 서버를 검색하여 감염된 컴퓨터에 자신을 설치하고 자주 행동을 수정합니다 (예 : Windows 클라이언트 방문에 바이러스를 제공).


3

간단한 대답은 시작할 때 읽기 전용 매체에서 자체 읽기가 100 % 안전하지 않은 한 운영 체제가 100 % 안전하지 않다는 것입니다.

그러나 Windows에는 감염에 대한 벡터가 더 많으며 이러한 벡터에보다 쉽게 ​​액세스 할 수 있으며 감염되면 훨씬 더 많은 피해를 줄 수 있습니다. 이것은 "RootKit Arsenal"이나 다른 책을 읽으면 쉽게 볼 수 있습니다.

모든 머신의 익스플로잇 수는 (한 머신을 루팅 할 때의 이득을 얻습니다.) * 머신 수 / (루팅 악성 프로그램을 만드는 비용)에 대략 비례합니다.

악용 횟수는 컴퓨터 수에 비례하기 때문에 Windows에서는 맬웨어의 양이 더 많다는 것이 합리적입니다.

그러나 유일한 이유는 어리석은 일입니다. Windows에는 더 많은 바이러스가 있습니다. 더 많은 컴퓨터가 실행되고 있기 때문입니다. 리눅스에서 악성 코드에 감염되는 것은 피해가 더 많이 포함되어 있기 때문에 Windows보다 훨씬 저렴합니다. 반대로 하나의 응원으로 얻는 금액은 더 적습니다). 또한 루팅 비용은 첫 번째 단락에서 언급 한 이유 때문에 더 높습니다.

현재로서는 이것이 사실임을 명심하십시오. 이 시점에서 Linux는 Windows보다 나은 아키텍처 시스템입니다. 그러나 사용자 친화적 인 기능을보다 신속하게 개발해야한다고 말하는 힘이 있습니다. 이로 인해 버그가 쉽게 존재하고 바이러스가 생성 될 수 있습니다. 이미 우분투는 Windows만큼 버그가 많습니다.


읽기 전용 부트 미디어는 멀웨어를 막지 않는 공격 영역 만 줄입니다.
symcbean

다시 : Windows has more ... computers running it. 더 많은 최종 사용자 컴퓨터를 실행합니다. Windows보다 약간의 * Nix (Unix-variant, Linux-variant)를 실행하는 헤드리스 서버가 더 있다고 생각합니다. 보안이 제로인 DOS와 Windows의 초기는 그 플랫폼을 목표로 삼는 큰 요인이었습니다.
Jesse Chisholm

1

다른 답변은 Unix 및 Linux의 바이러스에 대한 좋은 역사적 참고 자료를 제공했습니다. 보다 현대적인 예로는 "Windigo""Mayhem" 맬웨어 캠페인이 있습니다. 이들은 수천 개의 시스템에 감염되었습니다. Mayhem은 Shellshock 취약점을 사용하여 확산되는 것으로보고되었습니다.

Linux 악성 프로그램 탐지 소프트웨어의 경우 오픈 소스 및 상업용 대안이 있습니다. 내 편견에서 가장 효과적인 것은 Second Look 입니다. 메모리 포렌식 및 무결성 검증을 사용하여 Linux 맬웨어를 탐지합니다. 저는 Second Look의 개발자입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.