우분투에서 바이러스를 만드는 데 어떤 파일 형식이 사용됩니까? [닫은]


9

우분투에서 바이러스를 만드는 데 어떤 파일 형식이 사용됩니까? 예를 들어, 대부분의 Windows 바이러스는 .exe형식으로 작성 되었지만 우분투에서는 일반적인 형식을 식별 할 수 없습니다.


3
리눅스에는 바이러스가 없습니다.

20
@CelticWarrior 물론 Linux 용 바이러스가 있으며 너무 많은 en.wikipedia.org/wiki/Linux_malware Eshan : 바이러스는 파일 유형으로 제한되지 않으며 Ubuntu 또는 Windows에서는 피해야 할 특정 유형의 파일이 없습니다. 아무것도 같은 일부 내용은이 코멘트에있는 링크 읽기
마크 커비

@MarkKirby 이것은 의견이 아니라 답변 (그리고 좋은 답변)입니다.
don.joey

1
나는이 질문이 공정한 질문이므로이 질문을 닫으려고하지 않는다. 리눅스에 바이러스를 포함하는 특정 파일 형식이 있는가? 또한 @MarkKirby가 답변했습니다.
don.joey

5
내가 가진 가장 큰 문제 :이 바이러스는 어디에서 발생한다고 가정합니까? 공식 레포? 런치 패드? (그들의 기록이 좋기 때문에 가능하지만 의문의 여지가 있습니다. 다시 공식 저장소에 충실한 시스템으로 살기가 쉽습니다.). 임의의 스크립트? 우리는 그렇게하지 않습니다 ... 우리는 평균 윈도우 사용자가 아닙니다 ... 바이러스가 시스템에 도달 할 수 없거나 1 시스템으로 제한 될 때 바이러스가 아닌 맬웨어입니다. ;-)
Rinzwind

답변:


27

대중적인 신념과는 달리 Linux 용 바이러스가 있으며 상당히 많습니다. Linux에서는 그다지 일반적이지 않으며 대부분 시스템에 허용해야하지만 여전히 존재합니다.

바이러스는 Ubuntu 또는 Windows에서 파일 형식으로 제한되지 않습니다. 피할 특정 유형의 파일이 없거나 그와 비슷한 것이 없으므로 조심하십시오. Linux는주의하는 한 안전합니다.

안전을 위해 할 수있는 몇 가지 사항은 다음과 같습니다.

  1. 다운로드중인 제품을 신뢰하지 않는 한 타사에서 다운로드하지 마십시오.
  2. 사용 apt또는 런치 패드 (우분투의 코드 호스팅 서비스)와 유사한 서비스는 소스에서 소프트웨어를 얻을 수 있습니다.
  3. 온라인에서 찾은 터미널 명령, 특히 이해하지 못하는 경우에는 복사하여 붙여 넣지 마십시오.

clamav시스템에서 위협 요소를 검사하려는 경우 와 같은 안티 바이러스를 사용할 수도 있습니다 .

sudo apt-get install clamav

clamtkGUI를 설치하십시오 .

다음은 일반적인 리눅스 바이러스 에 대한 정보와이를 다루는 방법입니다.


5
그것들은 Windows와 마찬가지로 Linux에 영향을 미치지 않으며 거의 ​​모든 (전부가 아님) 설치해야합니다.
Rinzwind

3
@Rinzwind 모든 OS의 대부분의 바이러스 는 사용자가 설치해야합니다. 그들은 단지 사용자가 다른 일을하고 있다고 생각하도록 속입니다. 또는 특정 소프트웨어 (예 : 브라우저, 메일 클라이언트)의 버그 악용 하여 높은 권한을 얻습니다.
IMSoP

1
"리눅스는 조심하는 한 안전하다"-Windows도 마찬가지이다 (Microsoft가 보안에 관심을
가지기

1
@MarkKirby UAC는 단일 사용자 시스템에서 많은 것을 수행하지 않습니다. 프로그램은 UAC 프롬프트를 트리거하지 않고도 모든 중요한 파일을 암호화 할 수 있습니다. 시스템에 연결하여 제거 할 수 없도록하여 시스템을 제거 할 수는 있지만 파일이 이미 암호화되어 있습니다.
user253751

1
@Rinzwind "리눅스 사용자가 교육을 많이 받았기 때문에 리눅스가 더 안전하다"고 말하는 것은 이치에 맞지 않습니다. 교육이 보호 기능을 제공하는 것이라면 이를 사용하는 Windows 도 안전 것입니다. 바이러스는 버그를 악용하며 버그는 어디에나 있습니다. 매크로 기반 바이러스는 하나의 응용 프로그램 설정 및 파일 형식에 완전히 상주 할 수 있으며 여러 플랫폼에 행복하게 퍼질 있습니다.
IMSoP

13

확장은 의미가 없습니다. 하지만 윈도우 그들에 대한 염려, 비 .EXE 바이러스가 있습니다. 리눅스에서는 확장이 중요하지 않습니다. "어떤 종류의 파일"은 조금 더 기본입니다.

본질적 으로 리눅스에서는 ELF 바이너리의 풍미가 될 수 있습니다 . 아마도 정적 또는 공유 객체 일 것 입니다.

심지어 커널을 모듈 또는 루트킷으로 연결하거나 핵심 운영 체제 도구 또는 구성 요소를 자체 도구로 대체 할 수도 있습니다.

거기 -하지만 그들 모두는 클래스 파일로, 자바 바이러스 , 조립 기반의 쉘 코드 공격이나 (이 재미있을 것입니다 시작하는 실행 얼마나 불구하고) 배쉬로 작성된 악성 코드의 가능성도.

따라서 기본적으로 확실하지 않으면 믿지 마십시오.)


1
bash의 바이러스? 확실히. bash 키로거를 만드는 것은 쉽습니다.
Nonny Moose

루트 권한이 있다고 가정하면 @NonnyMoose가 쉬워집니다
random_clyde

1
사회 공학은 맬웨어를 시스템으로 가져 오는 매우 일반적인 방법입니다.
Journeyman Geek

@ Jean-LouisBonnaffe 왜? 집에서 ./bashrc를 편집하려면 루트가 필요합니까?
Rinzwind

@RinzWind 정확하게. 모든 사용자를 위해 루트 만 설치하면됩니다.
Nonny Moose

6

나는 바이러스뿐만 아니라이 답변에 대한 일반적인 맬웨어를 다룰 것입니다.

Linux의 바이러스는 특정 파일 확장자 / 유형으로 제한되지 않습니다.

우리가 말하는 내용을 더 잘 이해하려면 먼저 확장명과 파일 형식 간의 연결 및 바이러스의 실제 작동 방식을 이해해야합니다.

Windows에서 .exe파일에는 PE (Portable Executable file format) 형식의 파일이 포함되며이 실행 파일은 이진 실행 데이터를 포함하는 형식입니다.이 실행 데이터는 메모리에로드 된 다음 해당 데이터의 지침을 해석하여 실행됩니다.

즉, 코드를 실행하는 가장 쉬운 방법은 코드를로 패키지하는 것 .exe입니다. 그러나 다른 방법도 있습니다. PDF 파일에는 독자가 해석 할 수있는 부분이 포함되어 있기 때문에 안전하지 않습니다. 이는 내장 된 스크립트가 독자의 보안상의 취약점을 악용 할 수 있으며 시스템에서 다른 PDF 파일을 검색 및 수정하는 것과 같은 의미입니다.

더 나빠질 수 있습니다. 응용 프로그램의 프로그래밍 실수를 악용하여 악성 코드를 컴퓨터 메모리에 직접 주입 할 수 있습니다. 일단 거기에 도달하면, 이러한 명령어는 원시 코드로 실행되고 종종 높은 권한으로 실행되어 치명적인 결과를 얻을 수 있습니다.

그렇다면 리눅스에서 어떻게 작동합니까?

Windows와 마찬가지로 Linux는 이진 실행 형식을 갖습니다. Windows는 PE 형식, Linux는 ELF 형식입니다. 일반적으로 Unices는 파일 확장자 요구 사항이 훨씬 적으므로 ELF 파일은 일반적으로 확장자가 없습니다. Linux는 Magic Numbers를 사용하여 해당 파일을 식별하므로 확장자가 필요하지 않습니다.

그러나 바이너리는 Linux에서 맬웨어 배포 방법으로 널리 사용되지는 않습니다. 최종 사용자가 실제로 수동으로받는 바이너리를 거의 거의 열지 않기 때문입니다. 바이너리는 최종 사용자가 아닌 패키지 관리자에 의해 설치 및 관리됩니다. 따라서 악성 코드는 피해자에게 코드를 주입하기 위해 다른 공격 경로가 필요합니다.

이는 다른 방법 (코드 삽입, 스크립팅)이 악성 코드 캐리어로 훨씬 더 널리 사용됨을 의미합니다.


2

여기서 구별은 파일 확장자가 아니라 명령에 의해 설정된 파일 특성에 의해 수행됩니다.

chmod +x filename

이 방법으로 스크립트 파일뿐만 아니라 바이너리 파일에서도 실행 파일을 만들 수 있습니다.

ls -l

실행 전에 파일 속성을 안전한 방식으로 나열 할 수 있습니다.

또한 다음을 실행할 수 있습니다.

file filename

파일에 대한보다 자세한 데이터를 표시합니다.


4
"여기서 권한은 파일 형식보다 보안에 중요하다"는 말이 있습니다. 이것은 매우 좋은 지적이지만 아마도 명시 적으로 말할 수 있습니다. 항상 읽는 사람은 주제에 대한 사전 지식이 없다고 가정하십시오. :) 명확히하기 위해 간단한 편집을하고 이것을 투표하겠습니다.
Mark Kirby

1

확장 프로그램과 실행 파일은 Windows 또는 Linux에서 서로 관련이 거의 없으며 확장 기능은 바이러스와 전혀 관련이 없습니다. 작업 할 명시 적 파일이 제공되면 두 운영 체제는 파일의 헤더를보고 파일 처리 방법을 결정합니다. 파일 이름이 모호 할 경우 두 OS는 약간 다른 전략을 사용하여 의도 한 대상을 식별합니다. 예를 들어, Windows 실행 상자, Windows 터미널 또는 Linux 터미널에 "echo hello"를 입력하면 둘 다 PATH 환경 변수의 각 디렉토리에서 실행 권한이 있고 실행을 시도하는 "echo"라는 파일을 찾습니다. "hello"인수와 함께. Windows는 "echo.com", "echo.exe", "echo.bat", "echo.cmd", "echo.vb"파일을 찾습니다.


1
Windows는 파일 헤더를 보지 않습니다. 확장명 만 사용합니다.
UniversallyUniqueID

@BharadwajRaju 죄송하지만 실수입니다. 앞에서 설명한 것처럼 확장명은 경로 검색을 '개선'하는 데 사용되지만 적합한 후보를 찾으면 파일의 '헤더'를 검사하여 로더와 함께 수행 할 작업을 결정하는 로더로 전달됩니다. 최신 버전의 Windows에서이 로더는 ntdll.dll (또 다른 실행 파일 확장명)에 포함 된 함수 세트입니다.
Paul Smith

바뀌 었어? 알겠습니다 ... 이제 Windows에서 확장명없이 파일을 열 수 있습니까?
UniversallyUniqueID

변경 사항이 있었지만 이전 MS_DOS 및 CP / M 시절 이후 기본 동작이었습니다.
Paul Smith

@PaulSmith Windows 는 확장명없이 파일을 열 있지만 일반적으로 Windows는 그러한 응용 프로그램과 같은 응용 프로그램 으로 열지 않는 한 확장명이없는 파일로 수행 할 작업을 알지 못합니다 .
mchid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.