웹 사이트를 방문하여 바이러스를 감염시키는 방법은 무엇입니까? [복제] 컴퓨터가 맬웨어에

중복 가능성 :
웹 브라우저를 통해 컴퓨터가 맬웨어에 감염 될 수 있습니까?

웹 사이트를 방문하는 것만으로 바이러스에 감염 될 수 있다는 것은 일반적인 지식입니다. 그러나 이것이 어떻게 가능합니까?

이러한 바이러스가 Windows, Mac 및 Linux 사용자를 공격합니까, 아니면 Mac / Linux 사용자가 면역합니까?

Windows에서 .exe를 다운로드하여 실행하면 분명히 바이러스에 감염 될 수 있지만 웹 사이트에 액세스하여 어떻게 바이러스에 감염 될 수 있습니까?

바이러스는 JavaScript로 프로그램되어 있습니까? (로컬로 실행되는 프로그래밍 언어이므로 의미가 있습니다.) 그렇다면 일반적으로 사용되는 JavaScript 함수는 무엇입니까?



답변

웹 사이트를 방문하는 것만으로 바이러스에 감염 될 수 있다는 것은 일반적인 지식입니다. 아무도 이것이 어떻게 가능한지 설명 할 수 있습니까?

Parens의 예. 브라우저 (IE), 자바 스크립트 인터프리터 또는 플러그인 (플래시 또는 자바와 같은)에 버그가 있습니다. 이 버그는 코드 실행으로 이어집니다.이 부분은 실제로 복잡 할 수 있지만 종종 무료 사용 후 버그 및 힙 조작이 필요 합니다.

그런 다음 일부 쉘 코드가 실행 중입니다. V8 / Chrome 버그의 경우 쉘 코드는 브라우저의 보호 기능을 모두 벗어나야합니다. 크롬의 샌드 박스를 벗어나 DEP와 ASLR을 물리쳐야합니다. IE의 경우 DEP와 ASLR을 이기고 낮은 무결성 모드에서 벗어나야합니다. Java의 경우 … 아무것도하지 않아도됩니다. 모두 황금입니다. (따라서 Java 버그가 많이 발생했습니다.)

이제 컴퓨터에서 임의의 코드가 실행 중이므로 (관리자로 실행하지 않고 있습니까?) 인터넷에서 파일을 다운로드하여 실행하여 컴퓨터에 일부 악성 코드를 드롭 할 수 있습니다.

바이러스는 JavaScript로 프로그램되어 있습니까? (로컬로 실행되는 프로그래밍 언어이므로 의미가 있습니다.) 그렇다면 일반적으로 사용되는 JavaScript 함수는 무엇입니까?

구체적으로-아니요. 자바 스크립트는 사람들이 브라우저에서 버그를 찾는 데 사용할 공격 벡터입니다. 또한 Flash, Java 또는 Silverlight를 공격 벡터로 사용할 수 있습니다. 자바 스크립트의 경우 브라우저 버그를 발생시키기 위해 자바 스크립트를 작성하면 인터넷에서 바이러스가 제거됩니다.


답변

불행하게도 그리고 역으로, 이것이 일어날 수있는 방법은 여러 가지가 있습니다.

브라우저와 같은 “읽기 장치”는 자신의 시스템을 적극적으로 조작 할 수 있으며 해를 끼칠 수 있습니다. 책을 읽어도 은행 계좌가 고갈되지 않고 신문을 열어도 자녀에게 해가되지 않습니다. 왜 웹 사이트를 열면 그 이상이 가능합니까?

인터넷에서 발생하는 외부 데이터는 항상 악의적 인 의도로 만들어 져야 할 가능성이있을 때마다 문제가 발생합니다.

명령 행 wget http://evil.com/hitme.php에 앉아서을 입력 하면 wget HTTP 클라이언트는 단순히 요청의 2 진 덤프를 디스크에 작성하며 디스크가 가득 찬 것 외에는 아무 것도 발생하지 않습니다. 그러나 브라우저에 주소를 입력하면 브라우저 하드 디스크를 포맷 하고 신용 카드 정보를 전송 하는 등 원하는 모든 작업을 자유롭게 수행 할 수 있습니다. 브라우저 가이를 신뢰 하지 않는 것은 사용자의 책임입니다. 실제로 대부분의 브라우저는 이러한 나쁜 일을하지 않으려 고 노력하지만, 사용자는 브라우저가 더 많은 “영리한 트릭” 을 수행하고 인터넷의 지시에 따라 자동 동작을 보여줄 것을 요구했습니다.. 우리의 요구로 인해 JavaScript 및 Flash와 같은 클라이언트 측 코드 실행 기술이 개발되어 임의의 외국 코드 , 신뢰할 수없는 악성 코드 를 다운로드 하고 실행하여 즐거움을 얻었습니다.

이러한 기술을 사용하는 사람들이 즉시 처형되지 않은 이유는 다음과 같습니다. 로컬 시스템 (예 : 로컬 디스크 읽기 / 쓰기 금지, 클립 보드 읽기 / 쓰기 금지, 다른 탭의 읽기 / 쓰기 양식 필드)

불행히도, “먼저 모든 것을 허용 한 다음 생각할 수있는 몇 가지 나쁜 부분을 패치 적으로 덮는다”는 설계 방식은 근본적으로 결함이 있으며, 이제 클라이언트 측 편의 기능으로 끝없는 새로운 방식의 흐름에 직면하고 있습니다. 시스템을 손상시키는 데 사용됩니다.

적당히 안전한 유일한 방법은 브라우저에서 JavaScript 및 플러그인을 비활성화하는 것입니다. 우리가 1995 년에 있었던 것처럼 안전합니다.


답변

정말 정말 집에 이길 원하는 이러한 답변에 한 발짝 비켜 됐어요 요점은 이것이다 : 당신이 웹 페이지에서 바이러스를 얻을 수있는 이유는 실행중인 일부 소프트웨어는 버그를 가지고 있다는 것입니다 – 보안 취약점을 .

소프트웨어 제작 과정의 모든 단계에서 Flash 제작자는; 브라우저 인터넷의 임의의 악성 코드가 자신을 실행하는 방법을 알아낼 수 없도록하기 위해 운영 체제 중 하나를 시도했습니다. 불행히도이 작업은 어렵습니다 . 정말 힘들어요 .

따라서 모든 인간과 마찬가지로이 소프트웨어의 개발자는 실수를 범해야합니다. HTML 파서는 실수로 html을 종료하면 스택의 1 바이트를 덮어 씁니다 </p. 실수 로을 (를) signed int대신 사용 했습니다unsigned int . 자바 스크립트 JIT 컴파일러가 실수로 배열 색인을 널 포인터로 역 참조하려고합니다. 보안 지식 부족, 감독 또는 단순한 실수로 인해 소프트웨어에서 이러한 취약점과 수백만 가지 이상의 취약점이 항상 발생합니다. 소프트웨어는 단순히 방법으로 그들 모두를 잡기 위해 너무 복잡합니다.

이 때문에 운영 체제에는 취약점이 발견 된 경우에도 시스템 손상을 방지하는 메커니즘이 내장되어 있습니다. OS에 DEPASLR 이있을 수 있습니다 . 프로그램은 컴파일러에 의해 다양한 보호 기능을 추가 할 수 있습니다 . 브라우저는 낮은 권한에서 실행됩니다. 프로그램은 이러한 많은 취약점을 포착 할 수있는 자동 분석테스트 를 통해 실행 됩니다 .

제 요점은, 아무도 그렇게 할 수 없게 만드는 것입니다. 그러나 완전히 안전한 금고를 설계하는 것이 불가능한 것처럼 완전히 안전한 소프트웨어를 설계하는 것은 불가능합니다. 충분한 시간, 지식, 돈 및 인센티브를 가진 사람은 항상 그것을 열 수있는 방법을 찾을 것입니다. 그리고의 문제점 일부 해커 균열이 그것을 자신의 복사본을 열면 안전 그들은 자신의 방을 떠나지 않고 쉽게, 전세계 열린 다른 복사 할 수 있습니다.


답변

구체적인 질문

Windows에서 .exe를 다운로드하여 실행하면 분명히 바이러스에 감염 될 수 있지만 웹 사이트에 액세스하면 어떻게 바이러스에 감염 될 수 있습니까?

브라우저가 항상 코드를 실행하고 있습니다 (코드로 만들어 짐). 웹 페이지를 다운로드 할 때 해당 코드는 임의의 데이터 (픽셀, 문자 등)를 다운로드하여 표시합니다.

코드는 또한 데이터입니다 (프로세서 레벨에서).

코드는 데이터이므로 브라우저가 파일 확장자 나 형식에 관계없이 데이터를 실행하려고하면 실제로 실행될 수 있습니다 (올바르게 만들어진 경우).

일반적으로 브라우저는 다운로드 한 임의의 데이터를 실행하려고 시도하는 것처럼 어리석지 않습니다. 그러나 이런 일이 발생할 수 있습니다.

이를 수행하는 한 가지 방법은 읽을 때 브라우저의 실행 가능 프로그램을 구성하는 데이터를 “누설”하고 덮어 쓰는 방식으로 데이터를 형성하는 것입니다. 이를 위해서는 브라우저에 버그가 있어야합니다 (가장 일반적으로 버퍼 오버런 허용 ).

브라우저는 또한 웹 페이지 위에서 프로그램을 실행합니다. 언급했듯이 Javascript는 이러한 유형의 코드 중 하나입니다. 그러나 수십이 있습니다. ActiveX, Flash, 애드온, 그리스 몽키 스크립트 등은 웹 페이지를 방문하는 동안 실행중인 모든 코드입니다. 이 코드는 보안 문제를 일으키는 버그를 포함 할 수 있습니다.

이 바이러스는 Windows, Mac 및 Linux 사용자를 모두 공격합니까 아니면 Mac / Linux 사용자를 면역합니까?

우리가 사용하는 플랫폼은 모두 데이터를 코드로 취급하는 프로세서를 사용하기 때문에 버그에 완전히 영향을받지 않습니다. 이것이 바로 기존 컴퓨터 아키텍처의 작동 방식입니다.

이 신화의 이유는 Mac과 Linux가 Windows 컴퓨터 (데스크톱 수준)에 비해 채택률이 훨씬 낮기 때문입니다. 따라서 이러한 컴퓨터의 데스크톱 소프트웨어는 바이러스 제작자에게 일반적인 대상이 아닙니다.

바이러스는 마법에 의해 발생하지 않으며 (생물학적 바이러스처럼) 발생 진화에 의해 발생하지 않습니다. 개인 또는 개발자 팀이 작성한 소프트웨어입니다. 또한 일반 소프트웨어 공급 업체와 동일한 방식으로 최대 시장 점유율을 목표로합니다.

하나의 바이러스가 여러 플랫폼을 대상으로 할 수 있는지 여부; 모든 브라우저는 서로 다른 코드를 실행하므로 서로 다른 버그 (다른 플랫폼의 동일한 브라우저)도 있습니다. 그러나 여러 플랫폼에서 공유되는 일부 코드 라이브러리가 있습니다. 이러한 라이브러리에 버그가 포함 된 경우 여러 플랫폼에 악용 될 수 있습니다.

그러나, 만들어 공격의 유형에 따라 비 인텔 Mac 용으로 작성된 바이러스는 서로 다른 프로세서를 가지고 있기 때문에, 그 반대의 인텔 맥에서 작동하지. 다른 프로세서의 경우 코드를 나타내는 데이터의 형식이 다릅니다.

가상 머신이나 스크립팅 언어에 대해 이야기 할 때 공격은 플랫폼에 독립적 일 수 있습니다. 다음 질문으로 넘어갑니다.

바이러스는 JavaScript로 프로그램되어 있습니까?

일부 바이러스가 있습니다. 위에서 언급 한 정보 (버퍼 오버런 악용에 대한)는 일반적으로 Javascript 외부의 공격으로 사용되지만 Javascript 해석기의 악용을 공격하기 위해 제작 된 바이러스에도 동일하게 적용될 수 있습니다.

자바 스크립트는 또한 버퍼 오버런보다 높은 운영 레벨에서 자체 익스플로잇을 갖습니다. 모든 소프트웨어를 공격 할 수있는 다양한 방법이 있습니다. 소프트웨어가 클수록 (코드 라인), 더 많은 종류의 사용자 입력 (이 경우 코드 유형) 및 더 많은 버그가 포함될 수 있습니다.

또한 실행중인 소프트웨어 (예 : 서버를 실행하는 소프트웨어)가 노출 될수록 공격에 취약합니다.

일반적으로이를 공격면 이라고합니다

일반적으로 악용

Microsoft는 유형을 악용, 그들은 모두 자신의 흥미로운 속성, 그들이 공격 할 수있는 소프트웨어의 서로 다른 수준의 공통점에 대한 니모닉이 – STRIDE , 약자 :

Spoofing (of user identity)
Tampering
Repudiation
Information disclosure (privacy breach or Data leak)
Denial of Service (D.o.S.)
Elevation of privilege

이들 중 일부는 다른 서버보다 일부는 서버, 일부는 데이터 파일 (예 : 이미지)에 비해 Javascript 기반 공격에 더 많이 사용됩니다.

그러나 보안은 크게 발전하는 분야입니다. 모든 질문에 완전히 대답하기에는 너무 많은 정보가 있습니다.


답변

이 용어를 “드라이브로 다운로드”라고합니다.

다음은 웹 사이트를 방문하지 않고 아무 일도하지 않고 어떻게 발생하는지에 대한 좋은 예 입니다.

슈나이더는이 회사의 연구원 팀이 페이지에서 악성 사이트를 가리키는 iframe을 주입하고있는 JavaScript를 발견했다고 말했다. 면밀히 조사한 결과 완전히 패치 된 브라우저 버전을 크래시하고 악성 코드를 실행할 수있는 이전에 알려지지 않은 (0 일) IE 익스플로잇을 사용하고있는 것으로 나타났습니다. 그러나 마이크로 소프트가이 취약점에 대한 세부 정보를 곧 발표함에 따라 0 일은 단명했습니다.

셸 코드에 대한 추가 분석 결과, 알려진 악의적 인 서버를 가리키는 일반 텍스트 URL이 발견되었으며,이 서버는 잘 알려진 iepeers.dll 취약점 인 MS10-018을 악용 한 것으로 M86의 저장소에 저장되었습니다.


답변

비결은 바이러스 제작자 / 보안 전문가가 브라우저에서 허점을 찾는 것입니다. 간단히 말해서, 그들은 브라우저의 보안에 구멍을 발견 하고이 구멍을 사용하여 시스템에 무언가를 할 수 있습니다. Adobe Flash에 구멍이 있었고 특정 코드를 사용하여 악용 될 수있는 경우가 있습니다. 이러한 보안 허점을 유발할 수있는 자바 스크립트 문자열도 있습니다.

그럼에도 불구하고 브라우저를 최신 상태로 유지하면 웹 사이트를 방문하여 감염 될 가능성이 거의 없습니다 (파일 다운로드 및 실행은 다른 이야기입니다!).


답변

웹 사이트를 방문하여 귀하를 감염시키는 바이러스와 같은 바이러스는 방문 시스템의 결함을 악용합니다. 예를 들어, 브라우저 나 플러그인의 프로그래밍에 결함이있어 (실수로 브라우저 개발자의 관점에서) 방문 컴퓨터에서 임의의 명령을 실행할 수 있습니다.

따라서 모든 운영 체제가 잠재적 인 희생자 일 수 있지만 바이러스 작성자는 일반적으로 규모의 경제를 기반으로 공격을 구성합니다. 사용자가 많을수록 좋습니다. 그렇기 때문에 Windows와 Internet Explorer가 더 자주 대상이됩니다.

브라우저 또는 플러그인의 일부는 바이러스의 대상 일 수 있습니다. 위에서 언급 한 원인 바이러스 이미지가 실제 예입니다. 플래시는 일반적인 목표입니다. 브라우저의 JavaScript 엔진도 있습니다. 잘못 될 수있는 많은 다른 것들이 있습니다.

최선의 방법은 양질의 바이러스 스캐너를 실행하는 것입니다. 나는 Eset에 의해 NOD32를 사용했다 . 또한 너무 좋은 것이 아니라면 클릭하지 마십시오. Firefox 및 AdBlock 에서 NoScript 를 사용하십시오 .