본문으로 바로가기

[기술] 난독화(obfuscation)란

category 보안기술 8개월 전
반응형

난독화는 보안과 매우 밀접하게 관련이 있습니다.

보안 프로그램을 사용해서 네트워크나 내 피시를 방어하는 방법이 있습니다.

난독화는 이와는 조금 개념이 다릅니다.

사용하는 프로그램을 해킹하여 프로그램을 조작한 후, 조작된 프로그램을 사용자가 실행하게 하여 공격을 할 수 있습니다.

이런 경우를 대비하여 프로그램은 난독화가 필요합니다.

난독화는 공격자들이 프로그램을 조작하지 못하도록 가독성을 낮추는 기술입니다.

즉, 프로그램을 통해서 알 수 있는 정보들을 없애버리는 것입니다.

예를 들어 계산기 프로그램이 있습니다.

계산기 프로그램을 역추적하다보면 관련 변수명이나 정보들을 알 수 있다고 가정을 하겠습니다.

난독화는 이런 정보들을 알 수 없게끔 변경을 시켜 버립니다.

1. 변수 변경

예를 들어 number이라는 변수가 있을 경우, 변수 이름을 무작위로 a,b,c 등으로 변경시켜버리면 이 프로그램의 변수가 무엇을 위해 사용하는지 알 수 없습니다.

2. 문자열 변경

일반적인 문자열을 인코딩하거나 암호화시켜 버립니다.

공격자들은 그렇게 변환된 값들을 보면 무엇인지 알수가 없습니다.

3. 실행 플로우 변경

실행 플로우를 복잡하게 만들어 버립니다.

4. 알수없는 코드 삽입

프로그램과 전혀 상관없는 코드를 넣어버려서 공격자들이 분석하기 힘들게 만듭니다.

5. 메타 데이터 삭제

c언어의 경우 디버깅 모드로 컴파일을 하면 관련 변수들을 볼 수 있습니다.

그러나 디버깅 모드만 제거하더라도 변수들을 볼 수가 없습니다.

또한, 주석과 관련 데이터들을 제거하게되면 소스코드를 더욱더 분석하게 어렵습니다.



보통 이런 작업들은 난독화 프로그램을 사용합니다.

난독화 프로그램은 무료/유료가 있지만 유료버전이 아무래도 조금더 보안에 강할 것입니다.

이상입니다.

감사합니다.

반응형

보안기술카테고리의 다른글

[기술] IPSEC 암호화  (0) 2022.09.19
[기술] salt를 이용한 해쉬 암호  (0) 2020.10.07
[기술] C&C 서버?  (0) 2020.01.09
[기술] 한줄짜리 악성코드?  (0) 2019.03.29
[기술] 비다르  (0) 2019.02.12