본문 바로가기
보안

[정보보안] javascript 난독화 Uglify.JS

by MMXVI 2023. 2. 22.
728x90
반응형
SMALL

난독화(obfuscation)는  왜 사용하는걸까??

 

 

 

반응형

 

 

주로 소프트웨어 보안 및 저작권 보호와 관련하여 사용됩니다.

 

먼저,

 

악성 코드 작성자들은 난독화를 사용하여 자신의 코드를 분석하고 탐지하는 것을 어렵게 만들어,

보다 효과적으로 사용자의 시스템에 침입하거나 악성 기능을 실행하는 데 사용합니다.

따라서, 난독화는 악성 코드 작성자들이 코드를 분석하거나 수정하는 것을 방해하여,

보안적인 측면에서 중요한 역할을 합니다.

 

또한, 상용 소프트웨어 개발자들은 소스 코드를 보호하고, 더 나은 보안 수준을 유지하려는 목적으로 난독화를 사용할 수 있습니다. 이는 소프트웨어 개발자들이 자신의 코드를 보호하고,

경쟁 업체나 악성 코드 작성자들로부터 코드를 보호하기 위해 자주 사용됩니다.

하지만, 난독화는 코드의 가독성을 낮추고 유지 보수를 어렵게 만드는 등의 부작용을 가지기도 합니다.

따라서, 난독화는 보안적인 목적으로 사용될 때, 다른 보안 기술과 함께 사용되어야 합니다.

 

 

728x90

 

난독화 솔류션의 종류는 어떤게 있을까?

 

 

 

소프트웨어나 코드의 난독화는 다양한 솔루션을 사용하여 수행할 수 있습니다.

 몇 가지 일반적인 솔루션이 있습니다.

  1. UglifyJS: JavaScript 코드를 압축하고, 변수 이름을 바꾸고, 불필요한 공백 및 줄바꿈을 제거하는 등의 기능을 제공하여 코드의 가독성을 낮춥니다.
  2. Obfuscator: Java, .NET 등 다양한 프로그래밍 언어의 코드를 난독화하는 데 사용됩니다. 이 솔루션은 코드의 이름, 변수 및 메소드를 변경하여, 코드를 이해하기 어렵게 만듭니다.
  3. Dotfuscator: .NET 프로그램의 난독화에 특화된 도구로, 코드를 압축하고, 이름을 변경하고, 불필요한 코드를 제거하여 프로그램의 보안성을 높이고, 프로그램의 실행 속도를 높입니다.
  4. Code Shield: Java 및 Android 애플리케이션의 난독화를 위한 도구로, 코드의 흐름을 바꾸고, 변수 및 메소드를 임의로 변경하여, 악성 코드로부터 보호합니다.
  5. ConfuserEx: .NET 애플리케이션의 난독화에 사용되는 오픈 소스 도구로, 코드 변형, 가상화 및 암호화 등의 방법을 사용하여 코드를 보호합니다.
  6. ProGuard: 안드로이드 애플리케이션의 난독화 및 최적화를 수행하는 오픈 소스 도구로, 코드 압축, 이름 축소, 최적화 등의 기능을 제공합니다.

이 외에도 다양한 솔루션이 존재하며,

각 솔루션은 자체적으로 독특한 특징과 기능을 가지고 있습니다.

 

Uglify.js 로 보는 예시 javascript 문장
SMALL

 

 

 

 

Uglify.js 난독화 사이트 링크 바로가기

 

https://obfuscator.io/

 

JavaScript Obfuscator Tool

What is this? This tool transforms your original JavaScript source code into a new representation that's harder to understand, copy, re-use and modify without authorization. The obfuscated result will have the exact functionality of the original code. How

obfuscator.io

 

 

 

Uglify.JS는 JavaScript 코드의 압축과 난독화를 수행하는데 사용되는 오픈소스 도구입니다.

아래는 UglifyJS를 사용하여 간단한 JavaScript 코드를 난독화하는 예시입니다.

보기)

 

// 원본 JavaScript 코드 
function multiply(a, b) {
return a * b; 
} 
var result = multiply(5, 10); 

console.log(result);

위의 원본 JavaScript 코드를 UglifyJS를 사용하여 압축하고 난독화한 결과는 다음과 같습니다.

 

// UglifyJS를 사용하여 압축하고 난독화한 JavaScript 코드
function multiply(o, t) {
  return o * t;
}

var n = multiply(5, 10);
console.log(n);

 

위의 예시에서 볼 수 있듯이,

 

UglifyJS는 변수 이름을 변경하고, 불필요한 공백 및 줄바꿈을 제거하여 코드의 가독성을 낮춥니다.

이렇게 하면 코드의 크기를 줄이고, 다운로드 시간을 단축할 수 있으며,

코드를 이해하기 어렵게 만들어 악성 사용자로부터 보호할 수 있습니다.

 

 

 

728x90
반응형
LIST

댓글