Nhóm hacker Lazarus


Nhóm tin tặc Lazarus là một nhóm tội phạm trên mạng được hình thành từ một số lượng cá nhân không rõ. Mặc dù không có nhiều thông tin về nhóm Lazarus, các nhà nghiên cứu của Kaspersky Lab cho rằng nhiều cuộc tấn công không gian mạng tới từ họ trong thập kỷ qua.

Tóm tắt

Lazarus đã hoạt động trong nhiều năm, từ 2009. Phần mềm độc hại do nhóm tạo ra được tìm thấy trong nhiều vụ tấn công mạng nghiêm trọng, ví dụ vụ rò rỉ và xóa hàng loạt dữ liệu của Sony Pictures Entertainment năm 2014; chiến dịch gián điệp mạng nhắm vào Hàn Quốc có tên Operation Troy năm 2013; và chiến dịch DarkSeoul với mục tiêu là các công ty tài chính và truyền thông Hàn Quốc năm 2013.

Đã có nhiều ý kiến cho rằng Lazarus chính là nhóm hacker đứng đằng sau vụ trộm Ngân hàng Trung ương Bangladesh năm 2016 – một trong những vụ tấn công lớn nhất trong lịch sử không gian mạng. Các nhà nghiên cứu phát hiện sự tương đồng giữa backdoor sử dụng tại Bangladesh và code của một trong những công cụ phá hoại dữ liệu của Lazarus. Đây là lí do đầu tiên khiến Lazarus bị quy trách nhiệm. Tuy nhiên, sau đó truyền thông đưa tin có ít nhất ba kẻ tấn công độc lập, gián tiếp phủ định tất cả những suy đoán về danh tính kẻ đứng sau. Điều duy nhất chắc chắn đó là phần mềm độc hại Lazarus đã được dùng cho một trong những vụ tấn công ngân hàng lớn nhất trong lịch sử này. Tuy nhiên, từ thực tế là Lazarus từng được tìm thấy ở hàng chục quốc gia khác, ngay cả ở Bangladesh trước đó cũng đã có hàng chục vụ liên quan đến mã độc này, thì đây cũng không phải là bằng chứng thuyết phục và nhiều nhà nghiên cứu bày tỏ sự hoài nghi về việc quy kết này.

Bài viết này là kết quả của các cuộc điều tra Forensic tại các ngân hàng ở hai quốc gia cách xa nhau do Kaspersky thực hiện. Bài viết tiết lộ các mô-đun mới được Lazarus sử dụng, đồng thời chỉ ra mối liên hệ không nhỏ giữa các công cụ đã được sử dụng để tấn công hệ thống hỗ trợ SWIFT với kho vũ khí của nhóm Lazarus.

Xét rằng Lazarus vẫn đang hoạt động và không ngừng tổ chức các chiến dịch không gian mạng khác nhau, chúng tôi đã tách bộ phận chuyên tấn công vào ngân hàng và tổ chức tài chính của Lazarus thành một nhóm riêng với tên Bluenoroff (theo cách gọi của một trong những công cụ mà nhóm này sử dụng).

Giới thiệu

Đầu năm 2016, thông tin về cuộc tấn công mạng nhắm vào Ngân hàng Trung ương Bangladesh nhằm lấy trộm gần 1 tỷ đô xuất hiện trên khắp các mặt báo. Suốt quá trình điều tra, thỉnh thoảng lại có những dữ kiện mới được đưa ra, có những sự vụ lần đầu được công khai. Một trong số đó là tuyên bố của Ngân hàng Tiên Phong Việt Nam về việc đã kịp ngăn chặn tin tặc trộm 1 triệu đô vào tháng 12/2015.

Các công ty an ninh đã thu thập, phân tích một số công cụ được sử dụng tấn công và nhanh chóng gán trách nhiệm cho Lazarus.

Hoạt động của nhóm Lazarus kéo dài trong nhiều năm từ 2009. Tuy nhiên, các hoạt động của nhóm này tăng vọt kể từ năm 2011. Lazarus đã triển khai nhiều dòng mã độc qua các năm, bao gồm phần mềm độc hại liên quan đến Operation Troy và DarkSeoul, mã độc Hangman (2014-2015) và Wild Positron/Duuzer (2015). Nhóm cũng được cho là đã thực hiện các cuộc tấn công Spear Phishing lợi dụng lỗ hổng zero-day CVE-2015-6585 tại thời điểm lỗ hổng được phát hiện.

Ấn phẩm mới nhất về nhóm Lazarus được thực hiện bởi liên minh bảo mật do hãng phân tích an ninh mạng Novetta lãnh đạo. Nghiên cứu được đặt tên là Operation Blockbuster (Chiến dịch bom tấn).

Trích dẫn sau đây được lấy từ báo cáo của Novetta về mục đích nghiên cứu, đã thu hút sự chú ý của chúng tôi: “Mặc dù việc ngăn chặn hoàn toàn các hoạt động độc hại là không thể, Novetta tin rằng những nỗ lực đó có thể làm gián đoạn đáng kể hoạt động của hacker và khiến chúng phải tăng chi phí hoạt động, đồng thời dần vẽ nên chân dung của những tổ chức mà thành công của chúng vốn phụ thuộc phần lớn vào tính ẩn danh”.

Bluenoroff: Đứa con của Lazarus

Có một thực tế là Lazarus luôn cần nguồn ngân sách khổng lồ cho các hoạt động của mình. Báo cáo của Novetta có thể đã khiến chi phí hoạt động của nhóm tăng lên, đòi hỏi Lazarus phải có tài chính tốt hơn nhằm tiếp tục các hoạt động gián điệp và phá hoại. Đây là lí do để Bluenoroff được thành lập. Dựa trên phân tích, chúng tôi tin rằng Bluenoroff thuộc nhóm Lazarus, tận dụng backdoor có sẵn của nhóm cùng các hệ thống đã lây nhiễm từ trước, đồng thời thâm nhập vào các mục tiêu có dòng tài chính lớn. Tất nhiên, Bluenoroff có ý tập trung chính vào các ngân hàng, nhưng đây không phải là mục tiêu duy nhất: các công ty tài chính, thương nhân và sòng bạc cũng là những đích ngắm ưa thích của nhóm này.

Báo cáo của Novetta không đưa ra được bằng chứng khẳng định thủ phạm là Lazarus, mà chỉ nhắc đến cuộc điều tra của FBI về vụ tấn công Sony Pictures Entertainment và sự tương đồng trong các công cụ phần mềm độc hại. Về sau, truyền thông công bố một số dữ liệu do NSA tiết lộ, một lần nữa khẳng định kết quả điều tra của FBI. Richard Ledgett, Phó giám đốc NSA, gần đây đã bình luận về Lazarus và quan hệ của nhóm với Triều Tiên, tuy nhiên không đưa ra bằng chứng mới về mối liên hệ này.

Mối liên hệ trước đó với Lazarus

Kể từ khi sự cố tại Ngân hàng Trung ương Bangladesh diễn ra, chỉ có một vài bài viết giải thích về sự kết nối giữa nhóm Lazarus và vụ cướp đặc biệt này. Một trong số đó được đăng tải trên chuyên trang về an ninh mạng của BAE Systems tháng 5/2016. Tuy nhiên, bài viết, chỉ có phân tích về mã wiper. Một bài viết khác trên blog của Anomali Labs sau đó cũng xác nhận về sự tương đồng trong mã wiper. Sự tương đồng này có thể đã làm hài lòng rất nhiều độc giả, nhưng chúng tôi muốn tìm ra bằng chứng mạnh mẽ hơn nữa.

Năm 2017, Symantec cho rằng kẻ tấn công nhắm vào lĩnh vực tài chính ở Ba Lan là Lazarus khi hãng này phát hiện string được sử dụng cho mã độc lây nhiễm trên hệ thống của khách hàng tại Ba Lan. Symantec cũng xác nhận đã phát hiện công cụ xóa dữ liệu Lazarus ở Ba Lan, tuy nhiên điều này chỉ có thể chứng minh được rằng Larazus có thể đã tấn công các ngân hàng Ba Lan.

Mặc dù những sự thật này có vẻ hấp dẫn, nhưng mối liên hệ giữa các cuộc tấn công vào các ngân hàng của Lazarus và vai trò của nhóm trong các cuộc tấn công hoạt động back office vẫn còn lỏng lẻo. Vụ Ngân hàng Trung ương Bangladesh là trường hợp duy nhất mà phần mềm độc hại nhắm vào cơ sở hạ tầng sử dụng cho kết nối tới SWIFT được phát hiện. Tuy nhiên, dù sự việc được nhiều người biết đến, nhưng chỉ một vài chi tiết kĩ thuật được tiết lộ từ quá trình điều tra tại hiện trường. Theo thông tin được truyền thông đăng tải, cuộc điều tra đã tìm ra ba kẻ tấn công khác nhau. Nếu vậy, chúng ta chưa thể khẳng định được liệu Lazarus có phải là nhóm đứng đằng sau các giao dịch lừa đảo SWIFT, hay liệu có phải chính Lazarus đã tự phát triển phần mềm độc hại để tấn công các hệ thống ngân hàng.

Ngoài ra, việc chỉ dựa vào một điểm tương đồng duy nhất trên mã wiper là chưa đủ, bởi quy trình xóa tệp là một chức năng tiện ích được sử dụng ngay cả trong nhiều dự án không liên quan đến phần mềm độc hại. Mã này có thể bị lan truyền trong các cộng đồng phát triển phần mềm nhất định ở Châu Á. Ví dụ như dự án mã nguồn mở có tên Sderase được đưa lên SourceForge bởi một nhà phát triển Châu Á – Zhaoliang86. Chúng tôi cho rằng có thể có nhiều dự án khác như Sdersase tồn tại trên các diễn đàn lập trình Châu Á, nơi diễn ra các hoạt động trao đổi mã dạng này.

Chúng tôi muốn đưa ra một vài thông tin chứng minh sự liên quan giữa Lazarus với một số cuộc tấn công ngân hàng, chia sẻ một số phát hiện của chúng tôi và làm sáng tỏ chiến thuật, kĩ thuật và phương thức gần đây được attacker sử dụng, bao gồm một số chi tiết chưa được công bố kể từ vụ tấn công vào Châu Âu năm 2017.

Nhiều công cụ ẩn sâu bên trong cơ sở hạ tầng của ngân hàng bị tấn công được tìm thấy sau khi biến thể mới dòng mã độc Trojan-banker.Win32.Alreay được phát hiện.

Vụ việc #1


Vụ việc xảy ra ở một quốc gia Đông Nam Á vào tháng 8 năm 2016, khi biến thể mới của dòng mã độc Trojan-Banker.Win32.Alreay được phát hiện. Mã độc này có liên quan với kho công cụ trước đó được sử dụng bởi các kẻ tấn công ở Bangladesh. Vì tổ chức bị tấn công là ngân hàng, chúng tôi đã quyết định điều tra kỹ trường hợp này. Trong thời gian hợp tác với ngân hàng bị tấn công, chúng tôi đã khám phá ra rất nhiều các công cụ ẩn sâu bên trong cơ sở hạ tầng. Dường như những kẻ tấn công đã biết về cuộc điều tra và xóa sạch mọi dấu vết có thể, bao gồm các công cụ, tệp cấu hình và bản ghi chép. Dù vậy, chúng đã bỏ quên một vài công cụ và thành phần khi vội vã bỏ trốn.

Sự tương đồng của mã độc

Giống như các ngân hàng khác có máy chủ riêng kết nối với SWIFT, ngân hàng trong sự việc #1 cũng có một máy chủ chạy phần mềm SWIFT Alliance.

Từ cuộc tấn công mạng khét tiếng tại Bangladesh, phần mềm SWIFT Alliance đã được cập nhật, bổ sung thêm một số bước kiểm tra nhằm xác thực tính toàn vẹn của phần mềm và cơ sở dữ liệu. Đây là việc cần thiết và hợp lý khi, như bài viết của BAE Systems đã chỉ ra, các hacker đã tìm cách can thiệp vào phần mềm SWIFT Alliance trên ổ đĩa vật lý và trong bộ nhớ, vô hiệu hóa quá trình sử dụng cơ sở dữ liệu trực tiếp. Hacker đã nắm được điều này khi theo dõi những thay đổi trong phần mềm SWIFT Alliance. Các công cụ phần mềm độc hại trong sự việc #1 cho thấy các kẻ tấn công đã thận trọng phân tích các bản vá và tìm ra cách để đối phó.

Phần mềm độc hại được phát hiện trên máy chủ kết nối với SWIFT liên kết chặt chẽ sự việc #1 với sự cố tại Bangladesh. Mặc dù một số công cụ nhất định là mới và có sự khác nhau trong mã phần mềm độc hại, những điểm giống nhau giữa hai vụ việc vẫn đủ để khẳng định các thủ phạm đã sử dụng cùng một nền tảng mã. Dưới đây là một số mã giống hệt nhau mà chúng tôi tìm thấy.

1.png
​Ảnh trên cho thấy mã nguồn được dịch ngược của chức năng ghi log trong phần mềm độc hại. Mã gần như là giống hệt nhau, chỉ khác biệt một chút ở cải tiến thêm ID của tiến trình hiện tại vào log.

Có vẻ, một trong những chiến lược dài hạn của Lazarus là không ngừng sửa đổi mã, ngay cả khi việc thay đổi không bổ sung được nhiều tính năng mới. Việc thay đổi giúp mã độc vượt qua được sự phát hiện của Yara và các nền tảng (khác) dựa trên chữ ký. Một ví dụ khác về việc thay đổi mã trong khi vẫn giữ ý tưởng cốt lõi là tập mẫu của Novetta. Một trong những mô-đun phần mềm độc hại của Lazarus do Novetta phát hiện ra có sử dụng tệp cấu hình nhị phân được mã hóa bằng RC4 và khóa mã hóa cứng.

Trong ảnh là một đoạn mã có nhiệm vụ tải, giải mã và xác thực tệp cấu hình magic.

2.png
3.png
​Đoạn mã phía trên được dùng để đọc, giải mã và kiểm tra tệp cấu hình bên ngoài. Có thể thấy mã này thay đổi theo thời gian. Mẫu thu thập từ vụ việc #1 có những sự khác biệt nhất định nhằm vô hiệu hóa cơ chế phát hiện nhị phân thông thường với Yara. Rõ ràng rằng, các đoạn mã là một dù có sự khác biệt nhất định. Thay vì đọc tệp một lần, phần mềm độc hại cố đọc tới năm lần với độ trễ 100 mili giây. Sau đó nó giải mã tệp với khóa mã hóa cứng RC4 gồm 16 bytes giống hệt nhau trong hai mẫu (4E 38 1F A7 7F 08 CC AA 0D 56 ED EF F9 ED 08 EF), và xác thực giá trị magic là 0xA0B0C0D0.

Theo phân tích forensic, phần mềm độc hại này được truy cập từ xa vào hệ thống thông qua backdoor tùy chỉnh. Hầu hết các máy chủ được phân tích không được điều khiển trực tiếp thông qua máy chủ C2. Thay vào đó, chúng kết nối đến một máy chủ nội bộ khác, máy chủ này có nhiệm vụ chuyển tiếp kết nối TCP tới máy chủ C2 bằng một công cụ được đặt tên là TCP Tunnel. Công cụ này được sử dụng để kết nối các máy chủ nội bộ và chuyển tiếp kết nối tới máy chủ C2 thực. Điều này khiến quản trị viên khó xác định máy chủ bị xâm nhập hơn bởi các kết nối cục bộ có vẻ ít bị nghi ngờ. Một công cụ tương tự mà Novetta mô tả là Proxy PapaAlfa. Công cụ này là một trong những công cụ phổ biến nhất trong một cuộc tấn công. Một vài máy chủ không chứa phần mềm độc hại được dùng như là công cụ chuyển tiếp. Đó là lý do vì sao chúng tôi tin rằng, Lazarus có nhiều biến thể của công cụ này cũng như thay đổi chúng thường xuyên để tránh việc phát hiện dựa trên mạng hoặc tệp. Để biết đầy đủ các chi tiết kĩ thuật của công cụ được phát hiện trong sự việc #1, hãy xem Phụ lục (MD5: e62a52073fd7bfd251efca9906580839) (được đăng trong những kỳ sau).

Trên một trong những máy chủ trung tâm được cài đặt SWIFT Alliance của ngân hàng, chúng tôi phát hiện một backdoor có cùng mã và thiết kế giao thức với dòng backdoor có tên Romeo. Một backdoor tương tự đã được tải lên dịch vụ multiscanner từ Ba Lan và Hàn Quốc tháng 11 năm 2016 (MD5: 06cd99f0f9f152655469156059a8ea25). Chúng tôi tin rằng đây là ‘điềm báo’ của những cuộc tấn công sau đó tại Ba Lan và các nước Châu Âu khác. Tháng 1 năm 2017, phần mềm mã độc tương tự đã được phát tán nhắm đến các ngân hàng Châu Âu trong một cuộc tấn công khai thác.

Có rất nhiều sự tương đồng hữu hình giữa phần mềm độc hại của Lazarus và phần mềm độc hại được phát hiện ở sự vụ #1, ví dụ như quy trình nhập API và PE Loader. PE loader được dùng cho nhiều thành phần của phần mềm độc hại: DLL loader, Injector và backdoor.

4.png
​Cần lưu ý rằng các mô-đun khác nhau về thể loại tệp và mục tiêu: ví dụ tệp EXE – mẫu của Novetta, được sử dụng để tải các tệp PE độc hại khác, trong khi mẫu được phát hiện trong vụ việc #1 là DLL backdoor. Tuy nhiên, chúng dựa trên một cơ sở mã giống hệt nhau.

Có thể sẽ còn có những ý kiến khác về sự tương đồng này. Dù vậy, có một điều đã rất rõ ràng rằng cuộc tấn công vào ngân hàng trung ương Bangladesh và vụ việc #1 có mối liên hệ với nhau thông qua việc sử dụng phần mềm độc hại Lazarus.

Điều tra số trên máy chủ kết nối với SWIFT

Trong trường hợp tấn công ở Đông Nam Á, mã độc đã lây lan trên cả máy chủ kết nối với SWIFT và một số hệ thống thuộc bộ phận công nghệ thông tin của công ty. Chúng tôi phục hồi hầu hết các mô-đun, trong khi một số mô-đun khác bị xóa hoàn toàn và không thể truy cập để phân tích. Tuy nhiên, trong nhiều trường hợp, chúng tôi có tham chiếu đến các tệp có tên như thế trên các hệ thống bị lây nhiễm khác và rất có thể là các công cụ độc hại. Như vụ việc này, có những mối tương quan giữa các nạn nhân, cho thấy kẻ tấn công nhắm vào nhiều ngân hàng cùng một lúc.

Dưới đây là những điểm chính từ phân tích forensic:
Các kẻ tấn công đã nằm vùng trong công ty trong hơn bảy tháng. Ngân hàng Đông Nam Á đã bị xâm phạm cùng thời điểm với vụ cướp ở ngân hàng Trung ương Bangladesh.

  • Hầu hết phần mềm mã độc nằm trong thư mục C:\Windows hoặc C:\MSO10. Hai đường dẫn này được mã hóa cứng trong nhiều mô-đun.
  • Phần mềm độc hại được viết chỉ vài ngày hoặc đôi khi vài giờ trước khi tấn công, điều này cho thấy đây là một hoạt động có chủ đích.
  • Các kẻ tấn công sử dụng một bộ giải mã có ‘vẻ ngoài’ vô hại với PE loader tùy chỉnh được thiết kế nhằm qua mặt các sản phẩm bảo mật.
  • Hầu hết các mô-đun được thiết kế để chạy như một dịch vụ hoặc có các quyền quản trị hệ thống.
  • Backdoor trên máy chủ kết nối tới SWIFT được tìm thấy trong cuộc tấn công trùng khớp với dòng mã độc RAT được Novetta đặt tên là Romeo, trong khi đó Romeo liên quan trực tiếp tới trường hợp Đông Nam Á và Lazarus.
  • Không phải lúc nào cũng hoàn toàn dễ dàng đối với kẻ tấn công. Chúng tôi đã tìm thấy nhiều chi tiết của quá trình phá hủy và khởi động lại hệ thống khi có sự hiện diện của kẻ tấn công.
  • Để tránh bị phát hiện, các kẻ tấn công hoạt động ngoài giờ hành chính theo lịch trình và múi giờ của nạn nhân.
  • Chúng đã cố gắng debug một số vấn đề bằng cách kích hoạt trình điều khiển sysmon trong vài giờ. Sau đó, chúng quên xóa tệp nhật ký chi tiết sysmon chứa thông tin các quy trình đang chạy, các dòng lệnh và tệp hash tương ứng.
  • Có một loại mã độc nhắm vào phần mềm SWIFT Alliance, làm vô hiệu hóa việc kiểm tra tính toàn vẹn nội bộ và chặn các tệp giao dịch đã được xử lý. Chúng tôi đặt tên mã độc này là ‘SWIFT targeted malware’ và cho rằng đơn vị Bluenoroff của Larazus chính là tác giả.
  • Mã độc SWIFT khác với các công cụ Lazarus khác, vì nó thiếu tính che giấu, ngụy trang và đóng gói.
  • Mã độc nằm vùng được cài đặt như một dịch vụ DLL của Windows, đăng ký trong nhóm Dịch vụ mạng (netsvcs).
  • Chúng sử dụng trình theo dõi thao tác bàn phím, một chương trình lưu trữ tại ổ chứa được mã hóa. Ổ chứa này được giải mã và đọc bởi một loader lấy thông tin mã hóa từ một máy khác (được ẩn dưới dạng 1 file trong C:\Windows\Web\Wallpaper\Windows\).
  • Những kẻ tấn công đã vá các mô-đun phần mềm SWIFT Alliance vĩnh viễn trên đĩa, nhưng sau đó đã khôi phục các thay đổi. Một lỗi hoạt động khác là quên khôi phục mô-đun đã vá trong thư mục sao lưu. Bản vá được áp dụng cho mô-đun liboradb.dll rất giống với bản được mô tả bởi BAE Systems trong bài viết về các cuộc tấn công Bangladesh.
  • Các kẻ tấn công đã sử dụng cả backdoor chủ động và bị động. Các backdoor bị động dựa vào cổng TCP được mở trong Firewall thông qua lệnh netsh.exe chuẩn. Điều này đã tạo ra thêm một bản lưu trên hệ thống nhật ký sự kiện. Cổng được đặt trong cấu hình, hoặc được truyền dưới dạng đối số dòng lệnh. Chúng thường lựa chọn các cổng có đuôi 443, ví dụ 6443, 8443, 443.
  • Nhật ký phần mềm nội bộ SWIFT Alliance có một số cảnh báo về lỗi cơ sở dữ liệu từ tháng 6 đến tháng 8 năm 2016, tương ứng với những nỗ lực giả mạo cơ sở dữ liệu giao dịch của hacker.
  • Những kẻ tấn công không giành được quyền kiểm soát trực quan trên máy tính thông qua backdoor của chúng, đó là lý do tại sao chúng đã dựa vào các công cụ TCP tunnel của riêng mình để chuyển tiếp các cổng RDP tới nhà điều hành. Do đó, chúng tôi đã xác định được hoạt động bất thường của Terminal Service: Làm việc muộn và đôi khi vào cả cuối tuần.
  • Một trong những phiên Terminal Service gần đây được bắt đầu từ máy chủ web lưu trữ website của công ty. Máy chủ web nằm trong cùng mạng với máy chủ được kết nối với SWIFT, và rất có thể không phải là nạn nhân của cuộc tấn công này.

Dòng thời gian của các cuộc tấn công

Việc hợp tác với ngân hàng lâu dài giúp chúng tôi có cơ hội kiểm tra một số máy chủ trong ngân hàng bị xâm nhập. Có thể thấy các kết nối đến các máy chủ trong mạng thông qua việc phân tích máy chủ trung tâm kết nối với SWIFT. Chúng tôi nghi ngờ rằng các máy chủ này bị nhiễm độc, và điều này đã được xác nhận khi phân tích sâu hơn.

Khi mối liên hệ giữa ngân hàng và Kaspersky Lab được hình thành, các kẻ tấn công phần nào nhận ra sự bất thường trong hành vi của các quản trị viên hệ thống và bắt đầu xóa sạch mọi dấu vết hoạt động. Dù rằng phải mất vài tháng để công bố những dấu vết về sự hiện diện của chúng, nhưng chúng tôi đã thu thập và xây dựng một dòng thời gian sơ bộ về một số hoạt động của các kẻ tấn công.

Các dấu mốc chỉ ra hoạt động của các kẻ tấn công đã được thu thập, điều này giúp chúng tôi xây dựng dòng sự kiện dựa vào các giả lập còn lại.
5.png
Tính đồng bộ của các sự việc trong các sự cố khác nhau.

Trong quá trình phân tích nhật ký sự kiện, chúng tôi đã tìm thấy một tệp từ Sysinternals Sysmon. Đáng ngạc nhiên, tệp nhật ký này chứa các bản ghi hoạt động của phần mềm độc hại từ nhiều tháng trước khi phân tích forensic, ghi lại một số hoạt động chủ động của kẻ xâm nhập.

Khi phát hiện ra nhật ký sysmon có điều bất thường, chúng tôi khá bối rối bởi có vẻ như kẻ tấn công đã kích hoạt nó, hoặc ai đó muốn theo dõi hoạt động của kẻ tấn công. Sau đó, một nhà nghiên cứu bảo mật trong vụ Bangladesh đã xác nhận rằng hoạt động sysmon tương tự đã được đăng ký ngày 29 tháng 1 năm 2016. Điều này có nghĩa rằng nó đã xảy ra với ít nhất hai nạn nhân khác nhau trong vòng vài phút.

Một sự kiện khác cũng liên quan với việc giả mạo mô-đun cơ sở dữ liệu SWIFT.
Qua phân tích hệ thống ở sự vụ #1, chúng tôi đã tìm thấy thư mục C:\Users\%username%\Desktop\win32\ được tạo vào 2016-02-05 03:22:51 (UTC). Thư mục chứa tệp liboradb.dll đã vá được sửa đổi vào 2016-02-04 14:07:07 (UTC), trong khi tệp chưa được vá dường như được tạo vào ngày 2015-10-13 12:34:26 (UTC) và được lưu trữ trong liboradb.dll.bak. Điều này cho thấy hoạt động của kẻ tấn công và khoảng thời gian 2016-02-04 14:07:07 (UTC), cũng chính là thời gian diễn ra vụ cướp ngân hàng tại Bangladesh.

Phát hiện này đúng với sự cố tại Ngân hàng Trung ương Bangladesh vào tháng 2 năm 2016. Theo BAE systems, tại ngân hàng BCB, mô-đun “liboradb.dll” cũng được vá bằng kỹ thuật “NOP NOP”.

6.png
​Điều này có nghĩa rằng hoạt động của kẻ tấn công và việc chỉnh sửa tệp đã diễn ra cùng một ngày tại hai ngân hàng ở hai đất nước khác nhau vào ngày 29 tháng Một năm 2016 và ngày 4 tháng Hai năm 2016.

Tóm lại, ngân hàng Trung ương Bangladesh có lẽ là một trong nhiều ngân hàng bị xâm phạm bởi hoạt động liên quan đến hàng trăm triệu đô. Một ngân hàng ở Đông Nam Á liên quan đến sự vụ #1 này là minh chứng cho thực tế này.

Kỹ thuật chống Forensic

Các kẻ tấn công sử dụng một số kỹ thuật khá mới mẻ và thú vị. Cho đến nay, tất cả tài sản bị nhiễm độc đều nằm giữa các hệ thống kết nối tới SWIFT và hệ thống riêng của ngân hàng. Bằng cách chia tải trọng độc hại thành hai phần và đặt chúng ở hai khu vực khác nhau, các kẻ tấn công đã lẩn trốn bất kỳ bên nào điều tra hoặc phân tích các tệp đáng ngờ.

Về mặt kỹ thuật, nó được thực hiện qua việc tách các tệp, ghép lại với nhau thành một quy trình độc hại có đầy đủ chức năng. Chúng tôi phát hiện cách làm này ít nhất hai lần khi phân tích forensic, và tin rằng đó không phải là sự trùng hợp ngẫu nhiên.

7.PNG ​Thông thường các quy trình forensic sẽ được áp dụng cho toàn bộ hệ thống. Với các quy trình forensic tiêu chuẩn, bao gồm phân tích kết xuất bộ nhớ và disk image của hệ thống bị xâm nhập, hiếm khi nào một máy tính được xem là một hệ thống bị xâm phạm một nửa, nghĩa là còn một thành phần khác được đặt ở nơi khác. Tuy nhiên, trên thực thế, hệ thống vẫn bị xâm nhập. Có nghĩa rằng, khi phân tích forensic mà tập trung vào một hệ thống đơn lẻ, chúng ta sẽ không nhận ra được bức tranh tổng thể. Đó là lý do tại sao chúng tôi tin rằng kĩ thuật này đã được sử dụng nhằm ngăn chặn phân tích forensic. Với suy nghĩ này, chúng tôi muốn khuyến khích tất cả các nhà phân tích forensic nên có tư duy mới mẻ hơn, đặc biệt là khi đối phó với Lazarus.

Mật khẩu bảo vệ phần mềm độc hại

Một kỹ thuật thú vị khác là việc sử dụng mật khẩu để bảo vệ phần mềm độc hại. Mặc dù kỹ thuật này không hoàn toàn mới, thường là chữ ký của những kẻ tấn công. Mã độc Gauss bí ẩn là một phần mềm như vậy, đòi hỏi một thành phần bí mật để giải mã. Chúng tôi đã công bố nghiên cứu về phần mềm độc hại Gauss vào năm 2012 và kể từ đó, đã có nhiều nỗ lực được thực hiện nhằm bẻ khóa mật khẩu mã hóa Gauss nhưng đều thất bại.

Ý tưởng này là một biện pháp chống forensic khá đơn giản nhưng rất hiệu quả: Phần mềm độc hại Dropper (trình cài đặt) sử dụng cụm mật khẩu bí mật được truyền quan đối số dòng lệnh. Đối số được băm với MD5 và được sử dụng như chìa khóa giải mã tải trọng. Trong bối cảnh của cuộc tấn công #1, payload được xem như một trình tải của payload giai đoạn kế tiếp, được mã hóa và nhúng vào trình tải. Trình tải không có khóa để giải mã payload được nhúng, nhưng lại tìm thấy trong registry value. Registry value cần được đặt bởi trình cài đặt, nếu không phần mềm độc hại không hoạt động. Vì vậy, rõ ràng rằng trừ khi có cụm mật khẩu bí mật, bạn sẽ không thể xây dựng lại chuỗi biến động. Trong trường hợp #1, chúng tôi đã có cụm mật khẩu – một chuỗi gồm 24 ký tự chữ hoa và chữ thường ngẫu nhiên được chọn lựa cẩn thận.

Cách thức lây nhiễm
Không rõ những kẻ tấn công ban đầu đã xâm nhập hệ thống ngân hàng như thế nào. Tuy nhiên, rõ ràng rằng chúng đã sử dụng một máy chủ web đặt ở ngân hàng để kết nối đến các hệ thống kết nối SWIFT thông qua Terminal Services. Trong một số trường hợp, thay vì máy chủ web, chúng sẽ dùng một máy chủ nội bộ bị lây nhiễm khác. Tuy nhiên, tất cả các máy chủ mà chúng tôi phân tích đều không có tương tác với bên ngoài, ngoại trừ máy chủ web lưu trữ trang web của công ty được đề cập tới.

Quá trình cài đặt máy chủ web khá mới mẻ: server này lưu trữ trang web mới của công ty chỉ vài tháng trước khi bị xâm nhập. Ngân hàng đã kí hợp đồng với một công ty kiểm thử để thực hiện đánh giá bảo mật trang web mới, và quá trình này diễn ra đúng lúc Lazarus xâm phạm máy chủ. Sự lây nhiễm trên máy chủ web xuất hiện ở giữa các đầu dò kiểm thử. Một số đầu dò đã thành công và người kiểm thử đã tải webshell dạng C99 lên máy chủ như một bằng chứng vi phạm. Sau đó, người kiểm thử tiếp tục dò các lệnh dễ bị tấn công trên máy chủ. Cuối cùng, tất cả các kịch bản đều được báo cáo và vá.

Xét rằng trên máy chủ web đã có những vi phạm được phát hiện và khắc phục với sự trợ giúp của kiểm toán bảo mật độc lập thì khả năng cao là máy chủ này xâm nhập bởi Lazarus trước thời điểm kiểm toán. Một khả năng khác là webshell C99 được tải lên bởi người kiểm thử đã nhiễm backdoor và Lazarus đã ngay lập tức tiếp quản máy chủ. Thật không may, webshell C99 chỉ được xác định bởi chuỗi truy vấn mà không thể khôi phục phần thân.

Bằng cách này hay cách khác, vi phạm máy chủ web dường như là cách thức lây nhiễm dễ xảy ra nhất được Lazarus sử dụng để xâm nhập vào mạng ngân hàng.

Vụ việc #2

Cuộc điều tra tại Châu Âu được bắt đầu với những dấu hiệu tương tự như sự cố #1 xảy ra tại Đông Nam Á. Tháng 1/2017, chúng tôi nhận được thông tin về những phát hiện mới liên quan đến phần mềm độc hại Bluenoroff mà chúng tôi đang theo dõi. Một trong những yếu tố đáng báo động là có dấu hiệu về hàng loạt mẫu mới được tung ra, báo hiệu một hoạt động nghiêm trọng đã bắt đầu.

Sau khi thiết lập một kênh liên lạc an toàn với một số mục tiêu, chúng tôi đã thông qua các dấu vết tấn công trên hệ thống và nhanh chóng nhận được một số phản hồi xác nhận.

Nhờ sự hỗ trợ và hợp tác của một số đối tác, chúng tôi đã phân tích nhiều hình ảnh đĩa cứng được tạo ngay sau khi các hệ thống bị xâm nhập được ngắt kết nối online.

Phân tích hình ảnh đĩa cho thấy sự tồn tại của nhiều công cụ phần mềm độc hại liên kết với Bluenoroff của nhóm Lazarus. Trong nhật ký sự kiện, một số máy chủ bị nhiễm độc và các máy chủ khác đã bị kẻ tấn công nhắm vào cho các hoạt động mở rộng địa bàn khai thác. Những kẻ tấn công cố gắng truy cập bộ điều khiển miền và máy chủ hòm thư trong công ty, đó là lý do tại sao chúng tôi khuyến cáo các cuộc điều tra trong tương lai hãy tránh sử dụng hòm thư công ty để liên lạc với các nạn nhân của Lazarus.

Trong một trường hợp, cuộc tấn công ban đầu khai thác lỗ hổng trong Adobe Flash Player, vốn được vá vào tháng 4 năm 2016. Mặc dù một trình cập nhật đã được cài đặt, nhưng Adobe Flash Player đã không được cập nhật có thể do sự cố về kết nối mạng.

Lây nhiễm ban đầu
Trong một trường hợp, chúng tôi phát hiện ra rằng nạn nhân đầu tiên đã truy cập trang web của chính phủ bị xâm nhập bằng Microsoft Internet Explorer vào ngày 10 tháng 1 năm 2017. URL trang web bị lây nhiễm:
https://www.knf.gov[.]pl/opracowania/sektor_bankowy/index.html

Thời gian truy cập được xác nhận bởi tệp cache Internet Explorer, gồm phần thân trang html từ máy chủ này.

Trang web đã tải tài nguyên Javascript từ máy chủ web tương tự được tham chiếu từ trang:
Capture.PNG ​Dưới đây là thông tin liên quan đã được công bố:

Điều tra sơ bộ cho thấy điểm lây nhiễm khởi đầu có thể là máy chủ web của cơ quan quản lý tài chính Ba Lan, trực thuộc cơ quan giám sát tài chính Ba Lan (www.knf.gov[.]pl). Do một số thay đổi nhỏ của một trong các tệp JS cục bộ, một tệp JS bên ngoài đã được tải nhằm thực thi các payload mã độc trên các mục tiêu đã lựa chọn.

Ghi chú: hình ảnh của badcyber.com

Mã không được ủy quyền được đặt trong tệp sau:

http://www.knf.gov[.]pl/DefaultDesign/Layouts/KNF2013/resources/accordian-src.js?ver=11
và có dạng:
document.write(“<div id=’efHpTk’ width=’0px’ height=’0px’>http://strong</div>”);

Sau khi khai thác thành công, mã độc được tải về máy trạm. Nếu được thực thi, mã độc kết nối với một số máy chủ nước ngoài và có thể được sử dụng để thăm dò mạng, mở rộng địa bàn khai thác và đánh cắp dữ liệu.


Truy cập trang khai thác dẫn đến việc Microsoft Internet Explorer bị lỗi. Thông tin về sự cố này được ghi lại trong file dump tiến trình, bao gồm các chỉ số sau:
[version=”2″]
[swfURL=”https://sap.misapor[.]ch/vishop/include/cambio.swf
pageURL=”https://sap.misapor[.]ch/vishop/view.jsp“]… BOX

Nghiên cứu bổ sung của Kaspersky Lab đã phát hiện ra tệp bị khai thác trong hxxp://sap.misapor[.]ch:443/vishop/include/cambio.swf dẫn đến việc tải mô-đun backdoor.

Kaspersky Lab sau đó xác nhận rằng sap.misapor[.]ch cũng bị xâm nhập và mở rộng việc khai thác đến Adobe Flash Player và Microsoft Silverlight. Một số lỗ hổng CVE được tìm thấy trong các cuộc tấn công bắt nguồn từ trang web này.

  1. CVE-2016-4117
  2. CVE-2015-8651
  3. CVE-2016-1019
  4. CVE-2016-0034

Những lỗ hổng này đã được Adobe và Microsoft vá từ tháng 4 năm 2016 và tháng 1 năm 2016.
1.png
Ảnh: Một phần mã khai thác ​Bên trong các mã khai thác, có thể thấy rất nhiều chuỗi từ tiếng Nga như “chainik”, “BabaLena”, “vyzov-chainika”, “podgotovkaskotiny”… Shellcode tải tải trọng cuối cùng từ:
https://sap[.]misapor.ch/vishop/view.jsp?uid=[redacted]&pagenum=3&eid=00000002&s=2&data=

Điều đáng nói ở đây là Lazarus đã sử dụng các cờ giả khác kết hợp với mã khai thác của Nga. Chúng cũng đã sử dụng một số từ tiếng Nga vào một trong các backdoor và đóng gói phần mềm độc hại với một bộ bảo vệ thương mại (Enigma) được phát triển bởi tác giả người Nga. Tuy nhiên, các từ tiếng Nga trong backdoor có vẻ chỉ là một sự bắt chước rẻ tiền, bởi bất kỳ nhà phát triển phần mềm tiếng Nga bản địa nào cũng có thể nhanh chóng nhận thấy rằng các lệnh này kỳ quặc đến mức nào.
2.png
Ảnh: Từ tiếng Nga trong mã backdoor
​Tại thời điểm nghiên cứu, URL này đã bị vô hiệu hóa, nhưng chúng tôi có thể tìm thấy một URL giống hệt dẫn đến tải xuống một tệp độc hại (MD5:06cd99f0f9f152655469156059a8ea25, TrojanBanker.Win32.Alreay.gen) từ http://www.eye-watch[.]in/design/img/perfmon.dat. Điều thú vị là mẫu này được tải lên VirusTotal từ Ba Lan và Hàn Quốc vào tháng 11 năm 2016. Đây là phiên bản đóng gói của một backdoor được biết đến từ trước, sử dụng bởi Lazarus trong vụ việc ngân hàng #1.

Điều gì dẫn đến các vụ xâm nhập?


Bởi vì những kẻ tấn công không sử dụng bất kì lỗ hổng zero-day nào, sự xâm nhập thành công là do phần mềm không được cập nhật. Trong một trường hợp, chúng tôi đã quan sát một nạn nhân chạy phần mềm sau:

Hệ thống chạy Adobe Flash Player, phiên bản 20.0.0.235. Phiên bản này được phát hành chính thức ngày 8 tháng 12 năm 2015.

Vài năm về trước, Adobe đã triển khai cơ chế tự cập nhật cho Flash Player và hệ thống được phân tích thực sự được lên lịch để cập nhật Adobe Flash Updater định kỳ Chúng tôi đã kiểm tra nhật ký sự kiện của Task Scheduler và thấy tác vụ này thường xuyên được chạy.

Tác vụ được bắt đầu với tư cách là người dùng HỆ THỐNG, kết nối Internet để nạp các bản cập nhật Flash Player từ fpdownload.macromedia.com. Tuy nhiên, việc này không thành công vì không thể tìm thấy máy chủ proxy để kết nối với máy chủ cập nhật, hoặc bởi thiếu thông tin đăng nhập cho proxy. Lần thử thất bại cuối cùng để cập nhật Adobe Flash là vào tháng 12 năm 2016, một tháng trước khi vụ xâm nhập xảy ra. Giá như bộ cập nhật kết nối được đến Internet thì cuộc tấn công đã thất bại. Đây là một vấn đề quan trọng có thể thấy trong nhiều hệ thống mạng của các công ty.

Mở rộng địa bàn khai thác. Máy chủ dự phòng
Sau khi xâm nhập thành công, những kẻ tấn công tìm cách di chuyển tới một nơi an toàn hơn để có thể duy trì sự lây nhiễm trên hệ thống. Máy chủ dự phòng đã được chọn làm mục tiêu tiếp theo.

Dựa trên nhật ký lưu lượng, chúng tôi xác nhận rằng có kết nối từ những máy chủ bị lây nhiễm tới máy chủ Bluenoroff C2 đã biết. Những thông tin sau được tìm thấy trong nhật ký mạng:

3.PNG

Bằng việc kiểm tra các máy chủ và dải IP không nằm trong danh sách trắng, chúng tôi có thể xác định thêm một máy chủ C2 thuộc sở hữu của kẻ tấn công:

4.PNG

Mặc dù máy chủ C2 này chưa từng được báo cáo trước đó, không có máy chủ nào khác có thể kết nối với máy chủ này.

Mở rộng địa bàn khai thác. Host1
Trong cuộc tấn công, kẻ tấn công đã triển khai một số phần mềm độc hại khác cho máy thứ hai mà chúng tôi gọi là Host1. Các tệp phần mềm độc hại bao gồm:

5.PNG

msv2_0.dll giải mã và tải các payload từ msv2_0.chm, sau đó giải mã và tải tệp cấu hình từ msv2_0.hlp. msv2_0.hlp, được mã hóa bằng thuật toán Spritz và khóa sau: 6B EA F5 11 DF 18 6D 74 AF F2 D9 30 8D 17 72 E4 BD A1 45 2D 3F 91 EB DE DC F6 FA 4C 9E 3A 8F 98

Chi tiết kỹ thuật về phần mềm độc hại này nằm trong Phụ lục.

Tệp cấu hình được giải mã chứa các tham chiếu tới hai máy chủ C2 Bluenoroff đã biết:
tradeboard.mefound[.]com:443
movis-es.ignorelist[.]com:443

Một tệp khác được tạo ra cùng thời gian đã được tìm thấy tại đường dẫn:
C:\Windows\Temp\tmp3363.tmp.
Nó bao gồm tệp văn bản ngắn chứa nội dung sau:

6.PNG

Các tìm kiếm bổ sung theo sự kiện xảy ra cùng thời điểm đã mang lại một số bằng chứng về các mô-đun thực thi dòng lệnh và công cụ hệ thống Windows khác đang được chạy vào ngày hôm đó và sau đó. Các tệp Prefetch sau cho biết việc thực thi các mô-đun khác:

7.PNG

Điều này xác nhận giai đoạn thăm dò tích cực của cuộc tấn công

Theo các tệp prefetch cho RUNDLL32.EXE, tệp thực thi này được dùng để tải msv2_0.dll msv2_0.chm. Tham chiếu tới các tệp được tìm thấy trong dữ liệu prefetch của quy trình.

Ghi chú: MSDTC.EXE và GPSVC.EXE là các tên tệp phổ biến của những kẻ tấn công này trong quá khứ. Các tên tệp này có vẻ như hợp pháp, nhưng vị trí của chúng khác với hệ thống tiêu chuẩn tương đương.

Tập tin chuẩn msdtc.exe của Windows thường được đặt trong %systemroot%\System32\msdtc.exe, trong khi đó kẻ tấn công đã đặt msdtc.exe trong %systemroot%\msdtc.exe để cải trang. Đường dẫn đã được xác nhận từ các tệp prefetch phân tách. Thật không may, kẻ tấn công đã cẩn thận xóa tệp msdtc.exe rong thư mục Windows khiến chúng tôi không thể khôi phục tệp tin này.

Điều tương tự cũng xảy ra với file %systemroot%\gpvc.exe.

Dựa trên dấu thời gian chúng tôi tìm kiếm được, dường như sự lây nhiễm ban đầu của Host1 xảy ra thông qua việc truy cập từ một tài khoản đặc quyền. Chúng tôi đã xem xét kĩ các sự kiện trước thời gian lây nhiễm và tìm thấy một vài điểm đáng ngờ trong nhật ký sự kiện Windows Security:

Capture.PNG

Sau đó, chúng tôi đã kiểm tra liệu người dùng ‘[ADMIN ACCOUNT REDACTED]’ đã từng truy cập vào hệ thống này chưa. Theo nhật ký sự kiện, điều này chưa từng xảy ra cho đến khi kẻ tấn công sử dụng. Rõ ràng, người dùng này có các đặc quyền rất cao (SeBackupPrivilege, SeLoadDriverPrivilege, SeDebugPrivilege, SeImpersonatePrivilege), cho phép điều khiển từ xa nhằm kiểm soát hoàn toàn máy chủ, cài đặt các dịch vụ hệ thống, driver, bắt đầu các tiến trình như những người dùng khác, đồng thời có quyền kiểm soát hoàn toàn các tiến trình khác chạy trên hệ thống (ví dụ tiêm mã vào bộ nhớ).

Tiếp theo, chúng tôi đã tìm các bản lưu nhật kí sự kiện khác liên quan đến hoạt động của tài khoản này, và tìm được các bản lưu cho thấy tài khoản này được sử dụng từ Host1 để truy cập vào các máy chủ khác trong cùng một domain.

Capture1.PNG

Điều này chỉ ra rằng tài khoản đã được sử dụng để tạo các tác vụ theo lịch trình trên các máy chủ từ xa. Đây là một trong những cách phổ biến để chạy các tiến trình mới từ xa và lan truyền lây nhiễm trong các cuộc tấn công.

Sau đó, chúng tôi đã tìm kiếm các hành động tương tự để bắt đầu schtasks.exe từ xa trên các máy chủ khác.

Mở rộng địa bàn khai thác. Host2
Máy chủ này bao gồm các mô-đun mã độc rất lớn và khác biệt. Các tệp sau được tìm thấy trong hệ thống:

10.PNG

Tất cả phần mềm độc hại này là các backdoor, cùng với thành phần dropper loader và các tệp cấu hình. Chi tiết về phần mềm độc hại này được mô tả trong Phụ lục.

Mở rộng địa bàn khai thác. Host 3
Các tệp mã độc sau đây được tìm thấy trên hệ thống:

11.PNG

Gpsvc.dat chứa một tải trọng được mã hóa cho một trình tải không xác định. Có thể trình tải được đặt trên một máy chủ khác theo phương pháp chống điều tra số mà chúng tôi đã quan sát trước đây hoặc trình tải gpsvc.exe, tuy nhiên chúng tôi đang thiếu cụm mật khẩu bí mật được truyền qua dòng lệnh. Các tệp được giải mã được mô tả trong Phụ lục của báo cáo này.

Suy giảm hoạt động
Trong một số trường hợp chúng tôi đã điều tra, một khi kẻ tấn công tin rằng chúng đã bị phát hiện do mất một số tài sản bị xâm nhập, chúng sẽ bắt đầu xóa sạch các phần mềm độc hại còn lại. Điều này cho thấy đó là kẻ tấn công lành nghề.

Các hoạt động đã biết khác
Cuộc tấn công vào các tổ chức tài chính Châu Âu đã được thực hiện bằng kĩ thuật “watering hole”, một trang web của chính phủ có nhiều lượt truy cập thường xuyên từ các ngân hàng địa phương. Tuy nhiên, cách tiếp cận tương tự đã được sử dụng ở nhiều nơi khác nhau trên thế giới. Sự cố waterhole ở Ba Lan nhận được nhiều sự chú ý của công chúng hơn các sự cố khác, bởi cảnh báo được đặt ở mức cao và đối tượng bị xâm nhập là trang web của chính phủ.

Chúng tôi đã thấy một vài trang web khác bị xâm nhập với các dấu hiệu tương tự, biến thành một watering hole thông qua script injection hoặc đặt mã phân phối khai thác. Chúng tôi đã tìm thấy ở một số quốc gia sau:

  • Liên Bang Nga
  • Úc
  • U-ru-goay
  • Mê-xi-cô
  • Ấn độ
  • Ni-giê-ri-a
  • Pê-ru

Thứ kết nối hầu hết các trang web bị xâm nhập là nền tảng máy chủ ứng dụng JBoss. Điều này cho thấy các kẻ tấn công có thể có khai thác cho máy chủ JBoss. Thật không may, chúng tôi không thể tìm thấy mã khai thác. Tuy nhiên, chúng tôi khuyên các quản trị viên máy chủ ứng dụng JBoss giới hạn truy cập không cần thiết vào máy chủ và kiểm tra nhật kí truy cập để tìm kiếm dấu hiệu tấn công.

Các ngân hàng không phải là đối tượng duy nhất nhóm Lazarus nhắm đến. Chúng có nhiều mục tiêu khác nhau. Chúng tôi đã thấy một số nạn nhân bất thường, có thể trùng lặp với các hoạt động ngoài của nhóm Lazarus, ví dụ như một doanh nghiệp tiền điện tử. Khi nói đến Bluenoroff, danh sách mục tiêu điển hình bao gồm các ngân hàng, các công ty tài chính và thương mại, sòng bạc và các doanh nghiệp tiền điện tử.

Những phát hiện về phần mềm độc hại Lazarus/Bluenoroff cũng được lan rộng trên toàn thế giới. Dưới đây là một số ví dụ:
12.png
Cuộc tấn công tài chính của nhóm Lazarus
Kết luận
Lazarus không chỉ là một nhóm tấn công APT. Quy mô hoạt động của chúng thực sự gây sốc. Chúng đã tăng trưởng đột biến kể từ năm 2011 và các hoạt động của chúng không biến mất sau khi Novetta công bố kết quả nghiên cứu. Hàng trăm mẫu chúng tôi thu thập được đều cho thấy Lazarus đang vận hành nhà máy phần mềm độc hại, nơi sản xuất nhưng mẫu mới thông qua nhiều băng tải độc lập.

Chúng sử dụng các kĩ thuật làm rối mã khác nhau, viết lại các thuật toán riêng, áp dụng các bộ bảo vệ phần mềm thương mại, và sử dụng các trình đóng gói ngầm riêng của chúng. Lazarus biết giá trị của các mã có chất lượng, đó là lí do tại sao chúng ta thường thấy các backdoor thô bị đẩy trong giai đoạn đầu lây nhiễm. Việc xóa bỏ những thứ đó không gây ra quá nhiều ảnh hưởng đối với nhóm. Tuy nhiên, nếu backdoor giai đoạn đầu báo cáo ca lây nhiễm là thú vị, nhiều tiềm năng, nó bắt đầu triển khai mã nâng cao hơn, cẩn thận bảo vệ khỏi sự phát hiện trên đĩa. Mã được gói vào một trình tải DLL hoặc lưu trữ trong thùng chứa được mã hóa, hoặc có thể được giấu trong registry value được mã hóa nhị phân. Nó thường đi kèm với một trình cài đặt mà chỉ những kẻ tấn công mới có thể sử dụng được bởi chúng đã đặt mật khẩu. Nó đảm bảo rằng các hệ thống tự động – có thể là sandbox công cộng hoặc môi trường của nhà nghiên cứu, sẽ không bao giờ thấy được payload thực sự.

Hầu hết các công cụ được thiết kế là vật liệu dùng một lần, được thay thế bằng thế hệ mới ngay khi bị xóa bỏ. Sau đó sẽ có các phiên bản mới hơn, mới hơn và mới hơn nữa. Lazarus tránh sử dụng lại các công cụ giống nhau, cùng mã và thuật toán. “Tiếp tục biến hình” dường như là phương châm nội bộ của chúng. Những trường hợp hiếm hoi khi sử dụng các công cụ giống nhau là lỗi do vận hành, bởi nhóm dường như quá lớn đến nỗi một bộ phận không biết bộ phần khác đang làm gì.

Mức độ tinh vi này là cái gì đó thường không được tìm thấy trong thế giới tội phạm mạng. Đó là sự đòi hỏi tổ chức chặt chẽ và kiểm soát ở tất cả các giai đoạn hoạt động. Đó là lý do tại sao chúng tôi nghĩ rằng Lazarus không chỉ là một nhóm tấn công có chủ đích.

Tất nhiên, quá trình như vậy đòi hỏi rất nhiều tiền để vận hành doanh nghiệp, đó là lý do tại sao sự xuất hiện của Bluenoroff là hợp lý.

Bluenoroff, với tư cách là một nhóm nhỏ của Lazarus, chỉ tập trung vào các cuộc tấn công tài chính. Chúng có các kỹ năng reverse engineering và dành thời gian phá phần mềm hợp pháp, thực hiện các bản vá cho phần mềm SWIFT Alliance, tìm cách và kế hoạch nhằm đánh cắp số tiền lớn. Phần mềm độc hại của chúng khác nhau, và các kẻ tấn công không thực sự là những người lính vừa đánh vừa chạy. Thay vào đó, họ thích tạo ra dấu vết để có thể xây dựng lại và nhanh chóng gỡ lỗi vấn đề. Họ là những kỹ sư đến khi hiện trường được dọn sạch sau khi chinh phục những vùng đất mới.

Một trong những chiến lược ưa thích của Bluenoroff là âm thầm thâm nhập vào các quy trình đang chạy mà không phá vỡ chúng. Từ góc độ của mã mà chúng tôi đã thấy, có vẻ như chúng không thực sự tìm kiếm các giải pháp vừa đánh vừa chạy khi nói đến việc trộm tiền. Các giải pháp của chúng nhằm mục đích trộm cắp mà không để lại dấu vết. Tất nhiên, các nỗ lực hành động xung quanh hàng triệu đô khó có thể không bị chú ý, nhưng chúng tôi tin rằng phần mềm độc hại của chúng có thể được triển khai bí mật ở nhiều nơi khác mà không gây ra bất kỳ báo động nghiêm trọng nào.

Trong tất cả các cuộc tấn công đối với các ngân hàng mà chúng tôi đã phân tích, các máy chủ được dùng để kết nối với SWIFT không được mô tả hoặc tiết lộ bất kỳ lỗ hổng cụ thể nào. Các cuộc tấn công tập trung vào cơ sở hạ tầng và nhân viên ngân hàng, khai thác các lỗ hổng trong phần mềm hoặc trang web thường được sử dụng, brute force mật khẩu, sử dụng keylogger và leo thang đặc quyền. Tuy nhiên, việc thiết kế các giao dịch liên ngân hàng sử dụng máy chủ ngân hàng chạy phần mềm được kết nối SWIFT cho thấy nhân viên chịu trách nhiệm quản trị và vận hành máy chủ kết nối SWIFT. Sớm hay muộn kẻ tấn công tìm thấy những người dùng này, có được các đặc quyền cần thiết và truy cập vào máy chủ được kết nối với nền tảng nhắn tin SWIFT. Với quyền truy cập quản trị vào nền tảng, chúng có thể thao tác phần mềm chạy trên hệ thống theo ý muốn. Hầu như không có gì có thể ngăn chặn chúng, bởi từ góc độ kỹ thuật, nó có thể không khác với những gì các kỹ sư được ủy quyền và có trình độ để làm: bắt đầu và dừng dịch vụ, vá phần mềm hoặc sửa đổi cơ sở dữ liệu.

Do đó, trong các vi phạm mà chúng tôi đã phân tích, SWIFT – với tư cách là một tổ chức đã không mắc lỗi trực tiếp, hơn thế nữa, chúng tôi đã chứng kiến SWIFT cố gắng bảo vệ khách hàng của mình bằng cách phát hiện các vấn đề về tính toàn vẹn của cơ sở dữ liệu và phần mềm. Chúng tôi tin rằng đây là hướng đi đúng, phải được mở rộng và hỗ trợ đầy đủ. Các bản vá phức tạp nhằm kiểm tra tính toàn vẹn có thể tạo ra mối đe dọa nghiêm trọng tới sự thành công cho các hoạt động tiếp theo của Lazarus/ Bluenoroff nhằm chống lại các ngân hàng trên thế giới.

Đến nay, nhóm Lazarus/ Bluenoroff là mọt trong những nhóm thành công nhất với các hoạt động quy mô lớn chống lại ngành tài chính. Chúng tôi tin rằng, chúng vẫn là một trong những mối đe dọa lớn nhất trong nhiều năm tới đối với ngân hàng, các công ty tài chính và thương mại cũng như sòng bạc.

Như thường lệ, phòng thủ chống lại các cuộc tấn công như của Lazarus/ Bluenoroff nên bao gồm cách tiếp cận nhiều lớp. Các sản phẩm của Kaspersky Lab bao gồm các chiến lược giảm thiểu đặc biệt chống lại nhóm này, cũng như các nhóm tấn công có chủ đích khác. Nếu bạn muốn tìm hiểu thêm về các chiến lược giảm thiểu hiệu quả nói chung, chúng tôi khuyên bạn đọc các bài viết sau:

  • Chiến lược giảm thiểu tấn công APT
  • Cách giảm thiểu 85% các mối đe dọa với 4 chiến lược

Chúng tôi sẽ tiếp tục theo dõi Lazarus/ Bluenoroff và chia sẻ các phát hiện mới với công chúng.

Phụ lục: Phân tích mã độc
Mã độc số 1: Thu thập thông tin các giao dịch SWIFT (Hiệp hội viễn thông liên ngân hàng và tài chính quốc tế)

  • Hàm băm MD5: 0abdaebbdbd5e6507e6db15f628d6fd7
  • Đường dẫn phát hiện: C:\MSO10\fltmsg.exe
  • Thời điểm phát hiện: 18/08/2016 lúc 23:44:21
  • Kích thước file: 90’112 bytes
  • Thời điểm tạo mã độc: 18/08/2016 lúc 22:24:41 (giờ GMT)
  • Phiên bản: 10.0
  • Kiểu file: 32bit Windows (PE32 executable (GUI) Intel 80386)
  • Nhãn Bluenoroff nội bộ: NR
  • Được sử dụng trong vụ việc #1

Một tệp tin có đặc điểm gần như giống hệt đã được tìm thấy ở một địa điểm khác với các đặc tính sau:

  • Hàm băm MD5: 9d1db33d89ce9d44354dcba9ebba4c2d
  • Đường dẫn phát hiện: D:\Alliance\Entry\common\bin\win32\nroff.exe
  • Thời điểm phát hiện: 2016-08-12 22:24:19
  • Kích thước file: 89’088 bytes
  • Thời điểm tạo mã độc: 12/08/2016 lúc 12:25:02 (giờ GMT)
  • Kiểu file: 32bit Windows (PE32 executable (GUI) Intel 80386)
  • Nhãn mô-dun nội bộ: NR

Nhãn thời gian tạo mã độc cho thấy mã độc được tạo chính xác là một ngày trước khi được đưa vào sử dụng tại ngân hàng.

Mã độc tạo thư mục MSO10 trên ổ đĩa cài hệ điều hành, ví dụ C:\MSO10. Nó cũng tạo một vài đường dẫn với mục đích không rõ ràng. Không phải tất cả các đường dẫn đều có trong code và chúng có thể là các code được copy – paste hoặc một phần trong một file chung chung của framework. Các đường dẫn có dạng như sau:

  • %DRIVE%:\MSO10\LATIN.SHP
  • %DRIVE%:\MSO10\ENGDIC.LNG
  • %DRIVE%:\MSO10\ADDT.REF
  • %DRIVE%:\MSO10\MSE.LIV

Khi bắt đầu thực thi, mã độc cố gắng đọc file C:\MSO10\LATIN.SHP 5 lần liên tiếp, mỗi lần cách nhau 100ms. Nếu không tìm thấy file này hoặc chữ ký file không hợp lệ, nó sẽ ghi ra một message với nội dung “NR-PR” để ghi lại thông tin lỗi. Chúng tôi đoán PR là 2 chữ cái đầu của PRoblem (Vấn đề), và NR ám chỉ chương trình printer helper có tên “nroff” được phần mềm SWIFT Alliance sử dụng.

Nếu kích thước file lớn hơn hoặc bằng 35.260 byte, file sẽ được đọc thành công. Sau đó, mô-đun sẽ giải mã file bằng thuật toán RC4 sử dụng khóa 4E 38 1F A7 7F 08 CC AA 0D 56 ED EF F9 ED 08 EF. Khóa này là duy nhất và từng được tìm thấy trong công cụ dùng để tấn công phần mềm SWIFT Alliance và công cụ Wiper Tool trong vụ tấn công ngân hàng tại Bangladesh đầu năm 2016 (MD5: 5d0ffbc8389f27b0649696f0ef5b3cfe). Nó cũng được sử dụng trong một công cụ khác để mã hóa các file cấu hình như báo cáo của Tập đoàn BAE.

Dữ liệu sau khi được giải mã sẽ được xác thực lại bằng cách kiểm tra 4byte đầu với giá trị 0xA0B0C0D0. File này chứa cấu hình của 35.260 byte sẽ được sao chép sang bộ nhớ riêng và các khối dữ liệu chứa 1.096 byte mỗi khối. Số lượng các khối có thể thay đổi, mô-đun đọc tất cả các khối này và lưu trữ trong danh sách liên kết.

Mã độc có chức năng ghi log quá trình thực thi và được lưu trong file C:\MSO10\ENGDIC.LNG có định dạng [%Hour%:%Minute%:%Second%] [%Process_PID%] %Message%\r\n và các tiền tố như sau:

  • [ERROR]
  • [INFO]
  • [WARNING]

Chức năng ghi log được gọi và thực thi thông qua 3 tham số truyền vào: fltmsg.exe <mode> <print -file > <output-path>

Tham số thứ nhất (Mode): có giá trị bằng 1 hoặc 2, tuân theo định dạng sau “NR-PR-P %mode%”. Chúng tôi cho rằng “NR-PR-P” có nghĩa là “nroff problem parameter”.

  • Mode = 1: Đường dẫn xuất ra file log sẽ là #%04d%04d.prt
  • Mode = 2: Đường dẫn xuất ra file log sẽ lấy từ tham số thứ 3

Tham số thứ 2 <print-file>: là đường dẫn của một bản backup của log có đuôi file là “.prt”, “.out” hoặc “.txt”.

Tham số thứ 3: Đường dẫn lưu file log thuộc một trong các thư mục sau:

  • C:\MSO10\P %N%\MOT\
  • C:\MSO10\R %N%\MOT\
  • C:\MSO10\N %N%\MOT\

Trong đó, N là một số nguyên bất kỳ.

Mã độc sẽ phân tích các file lịch sử giao dịch SWIFT để lấy các thông tin như: Người gửi, người nhận, số tài khoản, sao kê và các thông tin khác… Các file được gửi đến bản sao lưu này có định dạng giao dịch SWIFT, cho thấy kẻ tấn công đã quen với các tài liệu trong nội bộ của SWIFT hoặc đã khá cẩn thận khi đảo ngược lại định dạng như sau:

  • 515 (M51)
  • 940 (M94) – Số dư đầu ngày
  • 950 (M95) – Số dư cuối ngày

Khi mã độc tìm thấy các file này, chúng sẽ lưu một bản copy vào drive:\MSO10. Và một file được mã hóa RC4 (LATIN.SHP), chứa các chuỗi dưới đây sau khi giải mã:

  • D:\Alliance\Entry\database\bin\sqlplus.exe
  • D:\Alliance\Entry\common\bin\win32
  • D:\Alliance\Entry
  • C:\MSO10\fltmsg.exe
  • C:\MSO10\MSO.DLL
  • C:\MSO10\MXS.DLL
  • \\127.0.0.1\share
  • localhost\testuser
  • \\127.0.0.1\share\

Trong một trường hợp trước đó từ ngân hàng Bangladesh, cấu hình chứa mã định danh doanh nghiệp SWIFT (BIC) ẩn trong các báo cáo giao dịch SWIFT.

Mã độc số 2: SWIFT Alliance Access Protection Mangler

  • Hàm băm MD5: 198760a270a19091582a5bd841fbaec0
  • Kích thước file: 71’680 bytes
  • Đường dẫn phát hiện: C:\MSO10\MSO.dll
  • Biên dịch ngày: 18/08/2016 lúc 22:24:44 (GMT)
  • Phiên bản: 10.0
  • Kiểu file: 32bit Windows
  • Nhãn Bluenoroff nội bộ : PM
  • Được sử dụng trong vụ việc #1

Thời điểm biên dịch cho thấy mã độc được tạo ra vài ngày trước khi tấn công vào ngân hàng.

Mã độc này được sử dụng để vá một số mô-đun phần mềm SWIFT Alliance trong bộ nhớ nhằm vô hiệu hóa cơ chế bảo vệ của phần mềm dùng để phát hiện các hành động thay đổi dữ liệu. Mã rất có thể được tạo ra bởi cùng một nhà phát triển Mã độc 1 (MD5: 0abdaebbdbd5e6507e6db15f628d6fd7) vì nó có các thư mục tương tự như Mã độc số 1 được tạo ra trên ổ đĩa C: \ MSO10.

Nó cũng tạo ra một số đường dẫn với mục đích không rõ ràng giống như Mã độc 1.

  • %DRIVE%:\MSO10\LATIN.SHP
  • %DRIVE%:\MSO10\ENGDIC.LNG
  • %DRIVE%:\MSO10\ADDT.REF
  • %DRIVE%:\MSO10\MSE.LIV

Khi bắt đầu thực thi mã độc đọc file %DRIVE%:\MSO10\LATIN.SHP 5 lần liên tiếp với mỗi lần cách nhau 100ms. Nếu không tìm thấy hoặc file không hợp lệ, nó sẽ lưu vào log “PM-PhR”. File được đọc thành công nếu kích thước của nó lớn hơn hoặc bằng 35.260 byte. Sau đó, module bắt đầu giải mã file bằng thuật toán RC4 với khóa mã hóa 4E 38 1F A7 7F 08 CC AA 0D 56 ED EF F9 ED 08 EF.

Nội dung file sau khi giải mã sẽ được kiểm tra phần header với giá trị 0xA0B0C0D0. Nếu chính xác nó sẽ đọc từng khối dữ liệu 1096 byte và lưu vào một danh sách liên kết.

Nếu file LATIN.SHP tồn tại, mô-đun đơn giản chỉ cần đếm số lượng các bản ghi của file và tiến hành ghi đè lên file đó còn ngược lại nó sẽ tạo file mới hoàn toàn.

Mã độc có tính năng ghi lại các hoạt động vào một file log C:\MSO10\ENGDIC.LNG với định dạng như sau:

Malware1_2_1.PNG ​Mô-đun này có bảy khối bao gồm 0x130 byte chứa thông tin đối tượng mô-đun cần vá. Mỗi khối có bốn phần, mỗi phần tương đương 0x4C byte chứa thông tin mỗi bản vá. Tuy nhiên, chỉ có phần đầu tiên trên mỗi mô-đun được sử dụng.

Mỗi phần sẽ chứa thông tin về kích thước bản vá và đường dẫn tương đối đến mô-đun được vá trên ổ đĩa, vị trí đến các byte được vá (chứa địa chỉ ảo tương đối) và byte gốc. Việc xác minh các byte gốc có tồn tại tại vị trí xác định hay không sẽ được thực hiện trước khi tiến hành sửa đổi mã.

Phần dữ liệu đầu tiên là một bản vá cho thư viện liboradb.dll có vẻ như cần thiết và được áp dụng trong mọi trường hợp. Các bản vá khác được thiết kế cho các tệp thực thi cụ thể mà mô-đun Patcher DLL của phần mềm SWIFT Alliance được tải vào. Phần này tìm kiếm một bản vá tương ứng phù hợp với tên tệp có thể thực thi theo tiến trình hiện tại và chỉ áp dụng bản vá đó.

Bảng dưới đây sẽ giải thích các khối của bản vá:
Malware 1_2_2.PNG
​Các công cụ nhị phân của phần mềm SWIFT Alliance được liên kết với file “saa_check.cpp”, giúp kiểm tra bảo mật cơ bản và xác nhận tính toàn vẹn của cơ sở dữ liệu. Các bản vá được áp dụng cho các mô-đun để vô hiệu hóa việc kiểm tra này và ngăn chặn việc phát hiện ra sự không nhất quán của cơ sở dữ liệu. File lựa chọn không phải ngẫu nhiên, vì môi trường máy chủ được kết nối SWIFT là tổ hợp các file có thể thực thi có mối quan hệ phức tạp, kẻ tấn công xác định được tất cả các file thực thi đã triển khai các tính năng bảo mật mới và vá chúng lại. Chúng tôi đã kiểm tra tất cả các nhị phân khác trên máy chủ và không có ứng dụng nào khác có liên kết với saa_check.cpp, ngoại trừ danh sách bản vá.

Trình vá DLL phải được tải lên không gian địa chỉ của tiến trình mục tiêu, không được thiết kế để vá các tiến trình khác.


Nguồn: Kaspersky Lab

Nguoidentubinhduong tham khảo tại https://whitehat.vn

2 thoughts on “Nhóm hacker Lazarus

Thank you so much

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s