1. Trang chủ
  2. » Luận Văn - Báo Cáo

môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware

56 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (7)
    • 1.1. Tổng quan về mật mã (7)
      • 1.1.1. Khái niệm mật mã (7)
      • 1.1.2. Chức năng cơ bản (8)
      • 1.1.3. Các loại hình tấn công (8)
    • 1.2. Tổng quan về mã độc (11)
      • 1.2.1. Khái niệm mã độc (11)
      • 1.2.2. Phân loại mã độc (11)
      • 1.2.3. Con đường lây nhiễm (13)
  • CHƯƠNG 2: THIẾT KẾ (15)
    • 2.1. Tìm hiểu về mã độc tống 琀椀ền - Ransomware (0)
      • 2.1.1. Khái niệm (15)
      • 2.1.2. Mục đích (15)
      • 2.1.3. Phân loại (15)
      • 2.1.4. Nguyên tắc hoạt động (16)
    • 2.2. Các phương thức mã hóa sử dụng (16)
      • 2.2.1. Tìm hiểu về mã hóa đối xứng (17)
      • 2.2.2. Tìm hiểu về mã hóa phi đối xứng (18)
    • 2.3. Các thư viện sử dụng (20)
  • CHƯƠNG 3: TRIỂN KHAI (38)
    • 3.1. Yêu cầu (38)
      • 3.1.1. Vmware Worksta琀椀on (38)
      • 3.1.2. Hệ điều hành Window 8 (38)
    • 3.2. Kịch bản (38)
      • 3.2.1. Xác định đường dẫn dữ liệu cần tấn công (38)
      • 3.2.2. Tạo cặp khoá phi đối xứng private-public (40)
      • 3.2.3. Đính kèm khoá public với chương trình ransomware và phát tán lên internet (40)
      • 3.2.4. Khi ai đó tải 昀椀le về và kích hoạt 昀椀le mã độc (0)
      • 3.2.5. Hành động của nạn nhân (43)
    • 3.3. Đánh giá (45)
  • KẾT LUẬN (47)
  • TÀI LIỆU THAM KHẢO (48)
  • PHỤ LỤC (49)

Nội dung

Virus Virus máy tính là một loại phần mềm độc hại phổ biến nhất, được ẩn dấu trongmột chương trình có vẻ vô hại, có thể tự tạo ra các bản sao và lây lan vào cácchương trình khác hoặc các

TỔNG QUAN

Tổng quan về mật mã

các phương tiện truyền đưa thông tin phát triển một cách nhanh chóng Cùng với sự phát triển đó, tính bảo mật và an toàn thông tin ngày càng trở lên cấp thiết Điều đó cho thấy triển vọng rất lớn và tầm quan trọng của mật mã học trong môi trường công nghệ thông tin đang phát triển hiện nay cũng như trong tương lai.Vì vậy phần này sẽ giới thiệu tổng quan về mật mã (khái niệm,các chức năng cơ bản và các loại hình tấn công)

Mật mã học là khoa học nghiên cứu bảo đảm an toàn thông tin bằng cách mã hóa thông tin từ dạng dễ hiểu sang dạng khó hiểu và ngược lại (giải mã) Mật mã học đảm bảo cho thông tin tính bảo mật (không bị tiết lộ cho người không được phép), tính toàn vẹn (không bị sửa đổi trái phép), tính xác thực (nguồn gốc thông tin đáng tin), tính không thể chối bỏ (nguồn gốc thông tin không thể chối bỏ).

 Tính bí mật (confidentiality): thông tin chỉ được tiết lộ cho những ai được phép

 Tính toàn vẹn (integrity): thông tin không thể bị thay đổi mà không bị phát hiện.

 Tính xác thực (authentication): người gửi (hoặc người nhận) có thể chứng minh đúng họ.

 Tính chống chối bỏ (non-repudiation): người gửi hoặc nhận sau này không thể chối bỏ việc đã gửi hoặc nhận thông tin.

Thám mã (cryptanalysis): nghiên cứu cách phá các hệ mật nhằm phục hồi bản rõ ban đầu từ bản mã, nghiên cứu các nguyên lí và phương pháp giải mã mà không biết khóa Có 3 phương pháp tấn công cơ bản của thám mã:

Bản rõ (Plaintext): Dạng ban đầu của thông báoBản mã (Ciphertext): Dạng mã của bản rõ ban đầu

Khóa (Key): thông tin tham số dùng để mã hóa

Mã hóa (Encryption): Quá trình biến đổi thông tin từ dạng bản rõ sang bản mã bằng khóa hoặc không cần khóa

Giải mã (Decryption): Quá trình ngược lại biến đổi thông tin từ dạng bản mã sang bản rõ.

 Đảm bảo tính bí mật (confidentiality) – giải quyết vấn đề bảo vệ thông tin chống lại sự tìm hiểu nội dung thông tin từ các đối tượng không có quyền truy nhập chúng.

 Đảm bảo tính toàn vẹn dữ liệu (data integrity) – đảm bảo khả năng phát hiện sửa đổi trái phép thông tin Để đảm bảo toàn vẹn dữ liệu, cần có các phương pháp đơn giản và tin cậy phát hiện bất kỳ sự can thiệp không mong muốn vào dữ liệu (các can thiệp như chèn, xóa và thay thế trong bản tin).

Xác thực là công đoạn cần thiết trong bảo mật dữ liệu, liên quan chặt chẽ với định danh Xác thực thực hiện trên cả thực thể (định danh lẫn nhau giữa hai bên trong quá trình giao tiếp) và thông tin (xác minh nguồn gốc, nội dung, thời gian gửi của thông tin truyền qua kênh truyền) Vì thế, xác thực trong mật mã bao gồm hai lớp chính: xác thực thực thể (identity authentication) và xác thực nguồn gốc dữ liệu (data origin authentication).

 Đảm bảo chống sự từ chối (non-repudiation) – chức năng ngăn ngừa một thực thể từ chối (phủ nhận) một cam kết hoặc hành động trước đó Khi xuất hiện tranh chấp vì một thực thể từ chối một hành động chắc chắn đã xảy ra, một biện pháp giải quyết là cần thiết.

1.1.3 Các loại hình tấn công a Xem trộm thông tin

Hình 1 1: Minh họa xem trộm thông tin

Trong trường hợp này người dùng T chặn các thông điệp của A gửi cho B, và xem được nội dung của thông điệp này. b Thay đổi nội dung thông điệp

Hình 1 2: Minh họa thay đổi nội dung thông điệp

Người dùng T chặn các thông điệp của A gửi cho B và ngăn không cho các thông điệp này đến B Kế tiếp T thay đổi nội dung của thông điệp và lại gửi thông điệp đó cho B, khi đó B không hề biết là thông điệp đó đã bị thay đổi. c Mạo danh người gửi

Hình 1 3:Minh họa mạo danh người gửi Ví dụ T giả làm là A gửi thông điệp cho B Bob không biết điều này và nghĩ rằng thông điệp là của A gửi cho mình d Phát lại thông điệp

Hình 1 4: Minh họa phát lại thông điệp Ví dụ trường hợp T sao chép lại hoàn toàn thông điệp mà A gửi cho B bằng các công cụ chụp các packet Sau một thời gian xữ lý T lại gửi bản sao chép này cho B và B tin đó là thông điệp chính A gửi vì nó giống thông điệp cũ Cách tấn công này nhìn qua có vẽ không ảnh hưởng gì đối với B, nhưng ta xét ví dụ tiếp sau:

B là nhân viên ngân hàng A là khách hàng cần thanh toán.

A gửi thông điệp đề nghị B chuyển cho A 10000$ A đã áp dụng các biện pháp an toàn thông tin như dùng chữ ký điện tử phòng trường hợp T thay đổi nội dung hoặc xem nội dung như các cách tấn công trên Nhưng lần này T lại dùng cách khác đó là sao chép và phát lại thông điệp này thì các biện pháp bảo vệ, phòng tránh trên đều không thể chống lại được B luôn tin rằng A đã gửi tiếp một thông điệp mới (kế tiếp) để chuyển thêm cho T 10000$ nữa, và như vậy ta đã biết tách dụng của cách tấn công này Trong nhiều trường hợp cũng gây ra tác hại không kém so với việc giả mạo thông điệp.

Tổng quan về mã độc

Internet toàn cầu là các nguy cơ mất an toàn thông tin đang trở nên nguy hiểm và khó lường hơn, trong đó mã độc (malware) là một trong những mối hiểm họa nghiêm trọng trên Internet Phần này sẽ giới thiệu tổng quan về mã độc (khái niệm,phân loại và con đường lây nhiễm) để hiểu rõ hơn về bản chất của chúng.

1.2.1 Khái niệm mã độc Mã độc (tên tiếng anh là malware – được viết tắt từ malicious software) là loại phần mềm bất kỳ được thiết kế có mục đích để gây tổn hại cho một máy tính, máy chủ, máy khách hoặc mạng máy tính Các chương trình độc hại này có thể thực hiện nhiều chức năng, bao gồm ăn cắp, mã hóa hoặc xóa dữ liệu nhạy cảm, thay đổi hoặc chiếm đoạt các chức năng tính toán lõi và giám sát hoạt động máy tính của người dùng mà không được sự cho phép của họ Mã độc chỉ gây thiệt hại sau khi được cấy hoặc đưa vào máy tính mục tiêu và có thể ở dạng mã lệnh thực thi, tập lệnh, nội dung hoạt động và phần mềm khác Mã độc có mục đích xấu, hoạt động trái phép với người dùng máy tính bình thường vì vậy mã độc không bao gồm phần mềm gây ra tác hại vô ý do một số thiếu sót liên quan đến lỗi phần mềm.

1.2.2 Phân loại mã độc Mã độc được chia thành nhiều loại tùy theo chức năng và cách thức lây nhiễm Dưới đây là một số loại mã độc phổ biến nhất hiện nay a Virus

Virus máy tính là một loại phần mềm độc hại phổ biến nhất, được ẩn dấu trong một chương trình có vẻ vô hại, có thể tự tạo ra các bản sao và lây lan vào các chương trình khác hoặc các tệp (file) khác để thực hiện một hành vi độc hại như xóa file, sao chép nội dung, mã hóa file b Worm-sâu máy tính

Sâu (Worm) là một chương trình có thể tự sao chép và gửi các bản sao từ máy tính này sang máy tính khác qua các kết nối mạng Khi đến nơi, worm có thể được kích hoạt và nhân bản lần nữa Ngoài việc nhân bản, worm thường thực hiện một số chức năng không mong muốn như thu thập thông tin hệ thống, tìm kiếm lỗ hổng bảo mật Worm là một loại phần mềm độc hại được ẩn náu trong máy tính, nhưng nó không phải là virus vì nó không được nhúng vào chương trình khác Worm lây nhiễm từ máy tính này đến máy tính khác bằng cách khai thác lổ hổng bảo mật hoặc lỗ hổng do chính tác giả tạo ra. c Ransomware

Ransomware (mã độc tống tiền) gồm nhiều lớp phần mềm độc hại với mục đích hạn chế truy cập đến hệ thống máy tính mà nó đã lây nhiễm và đòi hỏi phải trả một khoản tiền cho kẻ tấn công nhằm xóa bỏ hạn chế truy cập mà nó đã tạo ra trước đó.

Một vài dạng của ransomware mã hóa tệp tin, dữ liệu trên ổ đĩa cứng nhằm tống tiền, trong khi một vài dạng khác thì đơn giản hơn như chúng khóa hệ thống lại và hiển thị một thông báo để thuyết phục nạn nhân trả tiền Mã độc tống tiền thường lan truyền qua email với các file đính kèm, như các virus máy tính khác, khi mở file đính kèm này thì máy tính của người dùng sẽ bị kiểm soát Khi đó, mã độc quét toàn bộ ổ đĩa của máy tính và mã hóa các file bằng mã hóa công khai Hầu hết các tập tin quan trọng trên máy tính người dùng với định dạng doc, pdf, xls, zip sẽ không mở được nữa Để giải mã bắt buộc phải có khóa bí bật, mà khóa bí mật chỉ có kẻ tấn công mới có và nạn nhân sẽ nhận được thông báo trên màn hình (desktop) đòi tiền chuộc nếu muốn giải mã file. d Trojan

Trojan là một loại phần mềm giả mạo phổ biến, chúng thường ẩn náu trong chương trình phần mềm hữu ích để thực hiện các nhiệm vụ mong muốn và hợp pháp nhưng thực chất là thực hiện một số chức năng độc hại như xóa file, thu thập thông tin hệ thống và gửi cho máy chủ điều khiển, ăn cắp thông tin tài khoản người dùng e Backdoor

Backdoor (cửa hậu) là một loại phần mềm độc hại cung cấp cho kẻ tấn công quyền truy cập từ xa vào máy nạn nhân Backdoor là loại phần mềm độc hại phổ biến nhất và chúng có đủ hình dạng, kích cỡ với khả năng khác nhau Mã backdoor thường thực hiện đầy đủ các khả năng, vì vậy khi sử dụng backdoor kẻ tấn công thường không cần tải thêm các phần mềm độc hại khác hoặc mã chương trình.

Backdoor thường cho phép kẻ tấn công kết nối đến máy tính từ xa với ít quyền hoặc không cần xác thực và đi kèm với một số chức năng phổ biến như khả năng thao tác các khóa registry, liệt kê các cửa sổ hiện thị, tạo thư mục, tìm kiếm tập tin, truy cập từ xa bằng tài khoản riêng, thực thi lệnh hệ thống… f Rootkits

Rootkit là một bộ công cụ phần mềm do kẻ xâm nhập đưa vào máy tính nạn nhân nhằm mục đích cho phép mình quay lại xâm nhập máy tính đó và dùng nó cho các mục đích xấu mà không bị phát hiện.

1.2.3 Con đường lây nhiễm a Qua các thiết bị lưu trữ di động

Trước đây đĩa mềm và đĩa CD chứa chương trình thường là phương tiện bị lợi dụng nhiều nhất để phát tán Ngày nay khi đĩa mềm rất ít được sử dụng thì phương thức lây nhiễm này chuyển qua các ổ USB, các đĩa cứng di động hoặc các thiết bị giải trí kỹ thuật số. b Qua thư điện tử

Khi mà thư điện tử (e-mail) được sử dụng rộng rãi trên thế giới thì virus chuyển hướng sang lây nhiễm thông qua thư điện tử thay cho các cách lây nhiễm truyền thống.Khi đã lây nhiễm vào máy nạn nhân, virus có thể tự tìm ra danh sách các địa chỉ thư điện tử sẵn có trong máy và nó tự động gửi đi hàng loạt (mass mail) cho những địa chỉ tìm thấy Nếu các chủ nhân của các máy nhận được thư bị nhiễm virus mà không bị phát hiện, tiếp tục để lây nhiễm vào máy, virus lại tiếp tục tìm đến các địa chỉ và gửi tiếp theo Chính vì vậy số lượng phát tán có thể tăng theo cấp số nhân khiến cho trong một thời gian ngắn hàng hàng triệu máy tính bị lây nhiễm, có thể làm tê liệt nhiều cơ quan trên toàn thế giới trong một thời gian rất ngắn. c Qua trình duyệt web

Theo sự phát triển rộng rãi của Internet trên thế giới mà hiện nay các hình thức lây nhiễm virus qua Internet trở thành các phương thức chính của virus ngày nay.

Có các hình thức lây nhiễm virus và phần mềm độc hại thông qua Internet như sau:

Các phương thức lây nhiễm thông dụng hiện nay bao gồm: qua file tài liệu và phần mềm được tải từ Internet hoặc trao đổi, thông qua các trang web chứa mã độc và qua email.

THIẾT KẾ

Các phương thức mã hóa sử dụng

2.2.1 Tìm hiểu về mã hóa đối xứng

Mã hóa đối xứng còn có một số tên gọi khác như Secret Key Cryptography

(hay Private Key Cryptography), sử dụng cùng một khóa cho cả hai quá trình mã hóa và giải mã Quá trình thực hiện như sau :

Hình 2 1:Sơ đồ hệ thống mã hóa đối xứng

Trong hệ thống mã hóa đối xứng, trước khi truyền dữ liệu 2 bên gửi và nhận phải thỏa thuận về khóa dùng chung cho qúa trình mã hóa và giải mã, khóa được sinh ra bởi bộ sinh khóa Sau đó, bên gửi sẽ mã hóa Plaintext bằng cách sử dụng khóa bí mật này và gửi thông điệp đã mã hóa cho bên nhận Bên nhận sau khi nhận được thông điệp đã mã hóa sẽ sử dụng chính khóa bí mật mà hai bên thỏa thuận để giải mã và lấy ra Plaintext.

Những gì bạn nhìn thấy hình trên chính là quá trình tiến hành trao đổi thông tin giữa bên gửi và bên nhận thông qua việc sử dụng phương pháp mã hóa đối xứng.Trong quá trình này thì thành phần quan trọng nhất cần phải được giữ kín chính là khóa Việc trao đổi, thỏa thuận về thuật toán được sử dụng trong việc mã hóa có thể tiến hành một cách công khai, nhưng bước thỏa thuận về khóa trong việc mã hóa và giải mã phải tiến hành bí mật Phải có bước thỏa thuận về khóa, vì hai lý do cơ bản sau đây :

 Nếu như hai bên đã thống nhất thuật toán mã hóa, nhưng sau đó nơi gửi gửi thông điệp đã mã hóa tới cho nơi nhận mà không cho biết khóa đã sử dụng trong quá trình mã hóa Nơi nhận không có khóa để giải mã cho nên sẽ chẳng hiểu được nội dung trong tài liệu muốn nói gì Vì thế bắt buộc ngoài việc trao đổi về thuật toán thì cần phải trao đổi về khóa

 Khóa phải được trao đổi theo một kênh bí mật nào đó.Ví dụ trực tiếp trao đổi (mặt đối mặt) hay gián tiếp trao đổi (thông qua điện thoại, email, tin nhắn) Phải thực hiện qua kênh truyền bí mật vì rất có thể sẽ có một bên thứ ba nghe lén cuộc trao đổi giữa hai bên và có được khóa, như vậy thông tin trao đổi sẽ bị kẻ khác biết được Thêm vào đó hai bên buộc phải tin cậy lẫn nhau, không thể nhờ một người khác gửi hộ khóa được vì rất có thể người này sẽ dùng khóa đó để ăn cắp thông tin Thuật toán mã hóa loại này có ưu điểm là nhanh, độ an toàn gần như tuyệt đối nếu khô để lộ khóa bí mật.

Chính vì vậy mấu chốt của việc sử dụng loại thuật toán mã hóa này là việc truyền khóa bí mật cho bên nhận một cách an toàn.

Một số thuật toán mã hóa khóa bí mật phổ biến

 DES viết tắt của Data Encryption Standard Với DES, Plaintext được mã hóa theo từng khối 64 bits và sử dụng một khóa là 64 bits, nhưng thực tế thì chỉ có 56 bits là thực sự được sự dụng để tạo khóa Là một thuật toán được sử dụng rộng rãi nhất trên thế giới với bề dày lịch sử hơn 20 năm, được phát triển bởi IBM Team vào những năm 1970, sau đó được phát triển bởi NIST (National Institute of Standard and Technology) cho các ứng dụng thương mại Hiện tại DES không còn được đánh giá cao do kích thước của khóa là quá nhỏ 56 bit và nó dễ dàng bị phá vỡ chỉ trong vòng 24 tiếng đồng hồ.

 Triple DES (3DES) cải thiện độ mạnh của DES bằng việc sử dụng một quá trình mã hóa-giải mã-mã hóa mà sử dụng 3 khóa.Khối 64-bit Plaintext đầu tiên được mã hóa sử dụng khóa thứ nhất Sau đó, dữ liệu bị mã hóa được giải mã bằng việc sử dụng một khóa thứ hai Cuối cùng, sử dụng khóa thứ ba và kết quả của quá trình giải mã trên để mã hóa.

 AES : viết tắt của Advanced Encryption Standard Xuất hiện theo lời kêu gọi của NIST, cần phải phát triển một thuật toán mới thay thế cho DES AES chính thức thay thế cho DES vào tháng 11 năm 2001 Nó hỗ trợ độ lớn nhỏ nhất của khóa là 128, 192 và 256 bits.

2.2.2 Tìm hiểu về mã hóa phi đối xứng

Hay còn được gọi với một cái tên khác là mã hóa khóa công khai (Public Key Cryptography), nó được thiết kế sao cho khóa sử dụng trong quá trình mã hóa khác biệt với khóa được sử dụng trong quá trình giải mã Hơn thế nữa, khóa dùng trong quá trình giải mã không thể được tính toán hay suy luận từ khóa dùng để mã hóa và ngược lại, tức là hai khóa này có quan hệ với nhau về mặt toán học nhưng không thể suy diễn được ra nhau Thuật toán này được gọi là Public-Key bởi vì khóa dùng cho việc mã hóa được công khai cho tất cả mọi người Một người hòan toàn xa lạ có thể dùng khóa này để mã hóa dữ liệu nhưng chỉ duy nhất người mà có khóa giải mã tương ứng mới có thể đọc được dữ liệu mà thôi Do đó trong thuật mã hóa này Encryption Key được gọi là Public key còn Decryption Key được gọi là Private key.Tại sao lại có sự xuất hiện của Mã hóa khóa công khai? Như đã trình bày với các bạn ở trên, thuật toán mã hóa khóa riêng tuy có tốc độ thực hiện rất nhanh nhưng nó có một số nhược điểm như sau:

 Khóa phải được trao đổi theo một kênh bí mật.

 Nếu mất khóa thì thông tin hoàn toàn có thể bị lấy cắp hoặc giả mạo.

 Khóa cần phải thay đổi một cách định kì

 Khi số lượng người dùng tăng lên thí số lượng khóa được sử dụng cũng tăng lên.

Nhược điểm của thuật toán mã hóa khóa riêng là việc quản lý khóa sao cho hợp lý Phát minh ra thuật toán mã hóa khóa công khai đã giải quyết được vấn đề này.

Hình 2 2 Sơ đồ hệ thống mã hoá phi đối xứng

Hình minh họa ở trên cho chúng ta thấy được quá trình truyền tin an toàn dựa vào hệ thống mã hóa khóa công khai Như các bạn thấy, trong hệ thống mã hóa này thì mỗi một người sử dụng khi tham gia vào đều được cấp 2 khóa : Một khóa dùng cho việc mã hóa dữ liệu (Public key) và một khóa dùng cho việc giải mã dữ liệu (Private key), trong đó Public key được đưa ra cho tất cả mọi người cùng biết, còn Private key phải được giữ kín một cách tuyệt đối.Giả sử hai phía muốn truyền tin cho nhau thì quá trình truyền sử dụng mã hóa khóa công khai được thực hiện như sau :

 Sender yêu cầu cung cấp hoặc tự tìm khoá công khai của Receiver trên một Server chịu trách nhiệm quản lý khoá công khai.

 Sau đó hai phía thống nhất thuật toán dùng để mã hóa dữ liệu, Sender sử dụng khóa công khai của Receiver cùng với thuật toán đã thống nhất để mã hóa thông tin bí mật.

 Thông tin sau khi mã hóa được gửi tới Receiver, lúc này chính Sender cũng không thể nào giải mã được thông tin mà anh ta đã mã hóa (khác với mã hóa khóa riêng).

 Khi nhận được thông tin đã mã hóa, Receiver sẽ sử dụng khóa bí mật của mình để giải mã và lấy ra thông tin ban đầu.

Vậy là với sự ra đời của Mã hóa khóa công khai thì khóa được quản lý một cách linh hoạt và hiệu quả hơn.Người sử dụng chỉ cần bảo vệ khóa Private key Hệ thống này an toàn hơn nhiều so với mã hóa khóa riêng, người mã hóa không thể giải mã được dữ liệu đã mã hóa bằng khóa công khai của người khác.Tuy nhiên nhược điểm của Mã hóa khóa công khai nằm ở tốc độ thực hiện, nó chậm hơn mã hóa khóa riêng cỡ ~1000 lần Do đó người ta thường kết hợp hai hệ thống mã hóa khóa riêng và công khai lại với nhau và được gọi là Hybrid Cryptosystems (Hệ thống mã hóa lai) Một số thuật toán mã hóa công khai phổ biến :

 RSA : Cái tên RSA là ba chữ cái bắt đầu từ ba cái tên của ba tác giả: RonRivest, Adi Shamir ,Len Adleman Sử dụng đồng thời cho mã hóa khóa công khai và chữ kí điện tử Độ an toàn của thuật toán mã hóa RSA dựa trên việc phân tích một số nguyên tố rất lớn thành hai số nguyên tố.

Các thư viện sử dụng

Module os trong Python cung cấp các chức năng được sử dụng để tương tác với hệ điều hành và cũng có được thông tin liên quan về nó OS đi theo các Module tiện ích tiêu chuẩn của Python Module này cung cấp một cách linh động sử dụng chức năng phụ thuộc vào hệ điều hành.

Module os trong python cho phép chúng ta làm việc với các tập tin và thư mục.

Các hàm trong Module os được đưa ra dưới đây: o Hàm os.name Hàm này cung cấp tên của Module os được import.

Hiện tại, nó đăng ký 'posix', 'nt', 'os2', 'ce', 'java' và 'riscos' o Hàm os.getcwd() Nó trả về thư mục làm việc hiện tại (CWD) của tệp. o Hàm os.error

Hàm này xác định các lỗi cấp độ hệ điều hành Nó ném ra lỗi OSError trong trường hợp tên và đường dẫn file không hợp lệ hoặc không thể truy cập, v.v. o Hàm os.popen() Hàm này mở một tệp đến hoặc từ lệnh được chỉ định và nó trả về một đối tượng tệp được kết nối với một pipe. o Hàm os.close() Hàm này dùng để đóng file. o Hàm os.rename Trong hàm này, một tệp hoặc thư mục có thể được đổi tên bằng cách sử dụng hàm os.rename() Người dùng có thể đổi tên tệp nếu nó có đặc quyền thay đổi tệp. o Hàm os.access() Hàm này sử dụng uid/gid thực để kiểm tra xem người dùng có quyền truy cập vào đường dẫn hay không. b Webbrowser

Mô-đun webbrowser cung cấp giao diện mức cao để cho phép hiển thị các tài liệu trên nền Web cho người dùng Trong hầu hết các trường hợp, chúng ta chỉ cần gọi hàm open() từ mô-đun này để thực hiện Chúng ta sẽ sử dụng mô-đun này để mở trình duyệt và truy cập vào trang web mà chúng ta cần.

Câu lệnh bên trên này sẽ thực hiện mở trang được yêu cầu bằng trình duyệt mặc định.

Phương thức open() của mô-đun webbrowser có nhiệm vụ hiển thị đường dẫn url bằng cách sử dụng trình duyệt mặc định.

Cú pháp của phương thức open() như sau:

Nếu tham số new có giá trị là 0, url sẽ được mở trong cùng một cửa sổ trình duyệt nếu có thể Nếu new là 1, một cửa sổ mới trong trình duyệt sẽ được mở nếu có thể.

Nếu new là 2, một trang mới trong trình duyệt (“tab”) sẽ được mở nếu có thể Nếu autoraise là True, cửa sổ sẽ được đưa ra nếu có thể.

Ngoài ra, chúng ta có thể yêu cầu mở trang web ở một cửa sổ window mới bằng đoạn mã như sau:

Chúng ta có thể thực hiện mở một trang web trên một tab mới trong trình duyệt.

Phương thức open_new() sẽ chỉ nhận vào một tham số là đường dẫn url của trang web cần được mở.

Ví dụ: Đoạn mã bên trên đây sẽ cố gắng mở trang web trong một cửa sổ window hoặc tab mới trong trình duyệt, nếu có thể và được trình duyệt hỗ trợ Để mở một trang web trong một trình duyệt cụ thể, các bạn hãy sử dụng hàm webbrowser.get() để chỉ định một trình duyệt cụ thể.

Phương thức open_new_tab() của mô-đun webbrowser bên trên sẽ chỉ nhận một tham số đầu vào là đường dẫn url của trang web cần được mở.

Trong đoạn mã bên trên, mình đã sử dụng phương thức get() với tham số đầu vào là đường dẫn trỏ tới vị trí chứa tệp chrome.exe và tên trình duyệt cần mở là chrome để mở trình duyệt chrome Cùng với đó là phương thức open() để mở trang web mà mình muốn tìm. c Subprocess

Mô-đun Subprocess trong Python cho phép chạy các lệnh hoặc ứng dụng bên ngoài từ chương trình Python, trả về kết quả thực thi Mô-đun này còn được gọi là mô-đun quy trình con và là một phần của thư viện chuẩn Python.

Subprocess có thể gọi một lệnh hoặc một ứng dụng bên ngoài từ bên trong tập lệnh python Ví dụ với Subprocess chúng ta có thể:

Thực thi các lệnh CMD từ Python

Gọi chương trình nén file 7z từ Python Chạy các lệnh của AWS CLI từ Python Chạy các lệnh deploy web từ Python Thực thi các lệnh Shell với Python Ở trong các phiên bản Python cũ, chúng ta sử dụng subprocess trong Python với rất nhiều hàm như là call(), check_call(), check_output() hay Popen() Tuy nhiên kể từ Python 3.5 trở đi, subprocess trong Python đã được làm lại và chúng ta chỉ cần sử dụng một hàm chung cho tất cả các trường hợp là subprocess.run(), và một class cung cấp nhiều lựa chọn linh hoạt hơn dành cho các nhà phát triển là subprocess.Popen()

 Hàm subprocess.run() và xử lý đồng bô ̣ trong Python

Hàm subprocess.run() dùng để tạo 1 tiến trình đồng bộ khi gọi lệnh hoặc ứng dụng khác từ Python Điều này có nghĩa là khi lệnh hoặc ứng dụng đó được gọi, chúng ta phải chờ cho đến khi nó kết thúc thì mới có thể chạy các lệnh Python tiếp theo trong chương trình.

Sử dụng hàm subprocess.run() để gọi lệnh CMD từ Python ta có thể lấy danh sách tên file và thư mục con trong một thư mục.

Với subprocess, chúng ta có thể làm điều tương tự bằng cách thực thi lệnh CMD dir ở trên từ Python như sau:

Ngoài ra chúng ta cũng có thể sử dụng các thuộc tính đi kèm với kết quả và lấy về thông tin chi tiết như sau: d Requests Requests là một mô-đun Python mà bạn có thể sử dụng để gửi tất cả các loại yêu cầu HTTP Đây là một thư viện dễ sử dụng với nhiều tính năng khác nhau, từ việc truyền các tham số trong URL cho đến gửi các header tùy biến và xác minh SSL Trong hướng dẫn này, bạn sẽ được học cách sử dụng thư viện requests để gửi các yêu cầu HTTP đơn giản bằng Python

 Tạo một yêu cầu GET

Rất dễ để gửi một yêu cầu HTTP bằng Requests Bạn bắt đầu bằng cách import module và sau đó thực hiện yêu cầu Dưới đây là một ví dụ:

1 2 import requests req = requests.get('https://tutsplus.com/')

Tất cả các thông tin về yêu cầu của chúng ta bây giờ được lưu trữ trong một đối tượng Response được gọi là req Ví dụ: bạn có thể lấy mã hóa của trang web bằng thuộc tính req.encoding Bạn cũng có thể lấy mã trạng thái của yêu cầu bằng thuộc tính req.status_code

1 2 req.encoding # returns 'utf-8' req.status_code # returns 200

Để tạo một yêu cầu POST cũng tương tự như yêu cầu GET, bạn chỉ cần sử dụng hàm post() thay cho get() Điều này hữu ích khi bạn cần tự động gửi các biểu mẫu.

TRIỂN KHAI

Yêu cầu

VMware Workstation là một phần mềm máy ảo được sử dụng cho x86 và máy tính x86-64 để chạy nhiều hệ điều hành trên một máy chủ vật lý duy nhất

Mỗi máy ảo có thể chạy một trường hợp duy nhất của bất kỳ hệ điều hành (Microsoft, Linux, vv) cùng một lúc VMware Workstation mạnh mẽ hỗ trợ khả năng tương thích phần cứng và hoạt động như một cầu nối giữa các máy chủ và máy ảo cho tất cả các loại tài nguyên phần cứng bao gồm ổ cứng, các thiết bị USB và đĩa CD-ROM Tất cả các trình điều khiển thiết bị được cài đặt thông qua máy chủ.

Kịch bản

3.2.1 Xác định đường dẫn dữ liệu cần tấn công

Hình 3 1: Đường dẫn E:\TestChú thích: Do đường dẫn thực hiện demo để tránh những thay đổi ảnh hưởng đến hệ thống.

Hình 3 2: Kiểm tra file text

Hình 3 3: Kiểm tra file ảnh

Hình 3 4: Kiểm tra thư mục con

3.2.2 Tạo cặp khoá phi đối xứng private-public

Hình 3 5: Tạo cặp khoá phi đối xứng public và private

3.2.3 Đính kèm khoá public với chương trình ransomware và phát tán lên internet 3.2.4 Khi ai đó tải file về và kích hoạt file mã độc

Hình 3 6: Thực thi chương trình mã độc a Mã độc sẽ tạo thông điệp cùng khoá đối xứng để mã hoá dữ liệu

Hình 3 7: Khoá đối xứng được tạo trong quá trình thực thi mã độc được dùng để mã hoá dữ liệu b Khoá public được đính kèm sẽ mã hoá khoá đối xứng

Hình 3 8: Khoá đối xứng bị mã hoá

Chú ý: khoá đối xứng do ở trong máy nạn nhân có thể nhanh chóng bị tìm ra nên cần đến khoá public để mã hoá lại Sau khi có được khoá private của attacker sẽ giải khoá đối xứng và dùng khoá đối xứng vừa được giải để giải mã dữ liệu gốc. c Máy nạn nhân sẽ xuất hiện những thay đổi rõ rệt

Hình 3 9: Xuất hiện những cửa sổ bất thường

Hình 3 10: Hiển thị trang web bitcoin để thực hiện giao dịch

Hình 3 11: Dữ liệu đã bị mã hoá

3.2.5 Hành động của nạn nhân a Chi trả để lấy khoá private khôi phục dữ liệu Lưu ý: Sau khi chi trả tiền thành công, attacker có thể không đưa khoá private của hắn cho nạn nhân Vì danh tính của attacker là không xác định nên hắn không nhất thiết phải đưa khoá private cho nạn nhân.

Hình 3 12: Lấy khoá private của attacker sau khi giao dịch thành công

Hình 3 13: Giải mã khoá đối xứng Sau khi giải mã khoá đối xứng bằng khoá private nhận được, ta được 1 file tên

“PUT_ME_ON_DESKTOP” có chứa khoá đối xứng đã được giải mã Đưa file “PUT_ME_ON_DESKTOP” ra màn hình để chương trình mã độc thực hiện giải mã dữ liệu gốc

Hình 3 14: Dữ liệu đã được giải mã b Không chi trả và chấp nhận mất dữ liệu

Hình 3 15: Thời điểm trước khi bộ đếm ngược kết thúc

Hình 3 16: Dữ liệu đã bị xoá do không chi trả

Đánh giá

- Chương trình mã độc đã thực hiện được chức năng cơ bản của Ransomware.

- Có thể chọn lọc những định dạng file cần để mã hoá.

- Không bị phát hiện bởi Windows Defender.

- Tuy nhiên, chưa chuyển định dạng từ py sang exe để hoàn toàn đánh lừa nạn nhân.

- Máy nạn nhân cần có thư viện của Python mới có thể thực thi.

- Nếu nạn nhân có sẵn backup từ thiết bị lưu trữ ngoài hay trên internet thì mã độc này xem có thể như vô hại.

Ngày đăng: 18/07/2024, 14:52

HÌNH ẢNH LIÊN QUAN

Hình 1. 1: Minh họa xem trộm thông tin - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 1. 1: Minh họa xem trộm thông tin (Trang 9)
Hình 1. 2: Minh họa thay đổi nội dung thông điệp - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 1. 2: Minh họa thay đổi nội dung thông điệp (Trang 9)
Hình 1. 3:Minh họa mạo danh người gửi - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 1. 3:Minh họa mạo danh người gửi (Trang 10)
Hình 1. 4: Minh họa phát lại thông điệp - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 1. 4: Minh họa phát lại thông điệp (Trang 10)
Hình 2. 1:Sơ đồ hệ thống mã hóa đối xứng - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 2. 1:Sơ đồ hệ thống mã hóa đối xứng (Trang 17)
Hình 2. 2 Sơ đồ hệ thống mã hoá phi đối xứng - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 2. 2 Sơ đồ hệ thống mã hoá phi đối xứng (Trang 19)
Hình 3. 3: Kiểm tra file ảnh - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 3: Kiểm tra file ảnh (Trang 39)
Hình 3. 2: Kiểm tra file text - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 2: Kiểm tra file text (Trang 39)
Hình 3. 4: Kiểm tra thư mục con - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 4: Kiểm tra thư mục con (Trang 40)
Hình 3. 7: Khoá đối xứng được tạo trong quá trình thực thi mã độc được dùng để mã hoá dữ liệu - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 7: Khoá đối xứng được tạo trong quá trình thực thi mã độc được dùng để mã hoá dữ liệu (Trang 41)
Hình 3. 8: Khoá đối xứng bị mã hoá - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 8: Khoá đối xứng bị mã hoá (Trang 41)
Hình 3. 10: Hiển thị trang web bitcoin để thực hiện giao dịch - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 10: Hiển thị trang web bitcoin để thực hiện giao dịch (Trang 42)
Hình 3. 9: Xuất hiện những cửa sổ bất thường - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 9: Xuất hiện những cửa sổ bất thường (Trang 42)
Hình 3. 11: Dữ liệu đã bị mã hoá - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 11: Dữ liệu đã bị mã hoá (Trang 43)
Hình 3. 12: Lấy khoá private của attacker sau khi giao dịch thành công - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 12: Lấy khoá private của attacker sau khi giao dịch thành công (Trang 43)
Hình 3. 13: Giải mã khoá đối xứng - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 13: Giải mã khoá đối xứng (Trang 43)
Hình 3. 14: Dữ liệu đã được giải mã - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 14: Dữ liệu đã được giải mã (Trang 44)
Hình 3. 15: Thời điểm trước khi bộ đếm ngược kết thúc - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 15: Thời điểm trước khi bộ đếm ngược kết thúc (Trang 45)
Hình 3. 16: Dữ liệu đã bị xoá do không chi trả - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
Hình 3. 16: Dữ liệu đã bị xoá do không chi trả (Trang 45)
BẢNG PHÂN CÔNG - môn học kĩ thuật lập trình đề tài mã độc tống tiền ransomware
BẢNG PHÂN CÔNG (Trang 49)
w