Với thời đại công nghệ 4.0, sự phát triển về các phần mềm cũng như các ngành liên quan trực tiếp đến lĩnh vực công nghệ như các nhà phát triển phần mềm cũng gia tăng vượt trội. Để có thể thiết kế và phát triển ra các phần mềm có tính ứng dụng cao, thứ không thể thiếu đối với các lập trình viên chính là công cụ. Phổ biến nhất và dễ tiếp cận nhất thì không thể không kể đến công cụ Visual Studio Code- trình soạn thảo mã nguồn mở được phát triển bởi Microsoft và GitHub- mạng xã hội đặc biệt dành cho lập trình viên.
Visual Studio Code
Visual Studio Code là một trình soạn thảo mã nguồn mở được phát triển bởi Microsoft dành cho Windows, Linux và macOS. Nó hỗ trợ chức năng debug, đi kèm với Git, có chức năng nổi bật cú pháp (syntax highlighting), tự hoàn thành mã thông minh, snippets và cải tiến mã nguồn. Nó cũng cho phép tùy chỉnh, do đó người dùng có thể thay đổi theme, phím tắt và các tùy chọn khác. Visual Studio Code miễn phí và là phần mềm mã nguồn mở theo giấy phép MIT, mặc dù bản phát hành của Microsoft là theo giấy phép phần mềm miễn phí
Một số tính năng của VSCode
Visual Studio Code được yêu thích bởi các tính năng vượt trội như: Hỗ trợ đa ngôn ngữ: Các ngôn ngữ lập trình như C/C++, C#, HTML,... được Visual Studio Code dễ dàng nhận diện và đưa ra các cảnh báo nếu chương trình của bạn bị lỗi. Hỗ trợ tính năng đa dạng trên các nền tảng: Hiện nay, các trình viết code thông thường chỉ sử dụng được tối đa cho 1 nền tảng Windows hoặc Mac Systems hoặc Linux. Tuy nhiên, Visual Studio Code có thể hoạt động cùng lúc trên cả ba nền tảng trên. Kho lưu trữ dữ liệu an toàn: Tính bảo mật dữ liệu hiện nay được đòi hỏi cao, đặc biệt là đối với các hệ thống lập trình công nghệ thông tin. Người dùng có thể hoàn toàn tin tưởng sử dụng Visual Studio Code vì nó có khả năng kết nối dễ dàng với Git hoặc bất cứ kho lưu trữ dữ liệu hiện có.
Cung cấp nơi lưu trữ tiện ích mở rộng: Trường hợp ngôn ngữ lập trình của lập trình viên sử dụng không thuộc danh sách các ngôn ngữ được VSCode hỗ trợ, họ có thể tải thêm các tiện ích mở rộng. Điều này không làm ảnh hưởng đến hiệu năng của phần mềm bởi phần mở rộng này hoạt động riêng biệt như một chương trình độc lập.
Hỗ trợ web: VSCode có khả năng hỗ trợ các ứng dụng web. Bên cạnh đó, nó cũng có riêng một trình soạn thảo văn bản và thiết kết, xây dựng website.
Lưu trữ dữ liệu dạng phân cấp: VSCode có ưu điểm là cung cấp thêm các thư mục cho một số tệp đặc biệt quan trọng bởi phần lớn các tệp lưu trữ dữ liệu đoạn mã đều được đặt trong các thư mục tương tự nhau.
Hỗ trợ viết code: Để thuận tiện cho người dùng, một số đoạn code có thể tùy chỉnh hoặc thay đổi. VSCode có thể đưa ra gợi ý hoặc đề xuất các tùy chọn thay thế nếu có cho lập trình viên.
Hỗ trợ thiết bị đầu cuối: Các lập trình viên sẽ không phải thao tác chuyển đổi giữa hai màn hình hoặc quay trở về thư mục gốc khi thực hiện bởi visual studio code được thiết kế tính năng tích hợp thiết bị đầu cuối.
Hỗ trợ Git: Visual Studio Code có khả năng sao chép trực tiếp mã từ GitHub có tác dụng thay thế và lưu trữ dữ liệu trên phần mềm.
Intellisense: Visual Studio Code có khả năng đặc biệt hơn so với các chương trình mã code khác là nó có thể phát hiện bất kỳ đoạn mã nào không đầy đủ. Intellisense sẽ tự động giúp các lập trình viên bổ sung các cú pháp còn thiếu kể cả khi họ quên không khai báo biến.
Lý do nên sử dụng Visual Studio Code
 Đầu tiên, với dung lượng thấp và giao diện diện gần gũi, thân thiện với người dùng là một điểm cộng đối với các lập trình viên. Tiếp theo phải kể đến là VSCode phát triển mạnh mẽ trên 3 hệ điều hành phổ biến của thế giới. Được phát triển bởi Microsoft nên nó khả năng tương thích mạng mẽ với hệ điều hành Windows. Bên cạnh đó, bạn cũng có thể sử dụng trên 2 hệ điều hành khác là macOS và Linux.
 Với kiến trúc ưu việt và có khả năng khai thác mở rộng, Visual Studio Code được xây dựng phát triển dựa trên Electron kết hợp với các hệ thống ngôn ngữ công nghệ thông minh như: Javascript, Node.js cùng khả năng vận hành vô cùng mạnh mẽ của chính nó. Bên cạnh đó, quá trình mã hóa, gỡ lỗi được tối ưu nhất, giúp bạn tiết kiệm thời gian bởi nó thiết kế các phím tắt mở ra chức năng hay thêm dòng lệnh,... để tránh gây cản trở khi đang code. Bạn cũng có thể bổ sung hay thay đổi các phím tắt để phù hợp với mục đích sử dụng của mình.
 Cuối cùng, cộng đồng hỗ trợ của Visual Studio Code vô cùng rộng lớn. Trong những năm qua, VSCode dần khẳng định được vị trí đứng của mình với một lượng lớn những người sử dụng trên khắp các nước. Nếu bạn gặp bất kỳ vấn đề gì có thể nhờ tới sự trợ giúp từ các cộng đồng Microsoft, Reddit, StackOverflow,...
GitHub
GitHub là một mạng xã hội đặc biệt dành cho lập trình viên, là một hệ thống quản lý dự án, lưu trữ source code, theo dõi và cộng tác trong các dự án phần mềm. Các lập trình viên có thể clone lại mã nguồn từ một repository và Github chính là một dịch vụ máy chủ repository công cộng, mỗi người có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để có thể làm việc.
Ngoài ra, Github là một dịch vụ nổi tiếng cung cấp các kho lưu trữ mã nguồn Git cho các dự án phần mềm. Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sung những tính năng về social để các developer tương tác với nhau.
GitHub có hai phiên bản: miễn phí và trả phí. Với phiên bản có phí thường được các doanh nghiệp sử dụng để tăng khả năng quản lý team cũng như phần quyền bảo mật dự án. Còn lại thì phần lớn chúng ta đều sử dụng Github với tài khoản miễn phí để lưu trữ source code. GitHub cung cấp các tính năng social networking như feeds, followers và network graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit. Nếu một phần comment để mô tả và giải thích một đoạn code, thì với Github, commit mesage chính là phần mô tả hành động mà bạn thực hiện trên source code.
GitHub hoạt động như thế nào?
Hầu hết các dự án phát triển phần mềm đều được xây dựng bởi một nhóm lập trình viên. Những thành viên trong nhóm này có thể làm việc tại cùng một công ty hoặc từ xa, đồng bộ hoặc không đồng bộ. Điều này tạo ra nhiều thách thức cho việc hợp tác phát triển phần mềm, nhưng GitHub giúp quá trình này trở nên dễ dàng hơn nhờ vào một số tính năng.
GitHub tập trung mã nguồn và tài liệu trong một nơi duy nhất: GitHub cho phép tất cả các mã nguồn và tài liệu dự án được lưu trữ tập trung trong các “repository” (kho lưu trữ), điều này đảm bảo rằng bất kỳ ai muốn đóng góp vào dự án đều có quyền truy cập vào những tài nguyên cần thiết, giảm thiểu các vấn đề về truy cập thông tin. Mỗi repository thường đi kèm với các hướng dẫn cụ thể, giúp người tham gia hiểu được mục tiêu và quy tắc của dự án
Quản lý xung đột mã: Đôi khi, một phần mã có thể khiến phần mã khác bị lỗi, hoặc có thể có tác động không mong muốn lên cách mà phần mềm khác hoạt động. Github giải quyết vấn đề này bằng cách hiển thị rõ ràng những thay đổi từ hai lập trình viên trước kh họ push mã lên branch của dự án. Điều này giúp phát hiện và khắc phục các lỗi tiềm ẩn trước khi chúng ảnh hưởng đến toàn bộ dự án.
GitHub giúp theo dõi và khôi phục phiên bản mã nguồn
Mạng xã hội cho developers
Cảnh báo chiến dịch tấn công lợi dụng Visual Studio Code và GitHub để xâm nhập trái phép hệ thống.
Trung tâm ứng cứu khẩn cấp không gian mạng Việt Nam (VNCERT/CC), Cục An toàn thông tin cảnh báo về chiến dịch tấn công lợi dụng Visual Studio Code và GitHub để xâm nhập trái phép hệ thống nhằm cung cấp thêm thông tin cần thiết để quản trị viên cũng như người dùng có thể thực hiện các biện pháp bảo mật một cách kịp thời và hiệu quả.
Chiến dịch tấn công này sử dụng các kỹ thuật tinh vi, lợi dụng những công cụ hợp pháp như Visual Studio Code (VSCode) và GitHub để tiến hành xâm nhập trái phép. Đây là hình thức tấn công mới, trong đó kẻ xâm nhập khai thác phần mềm có độ tin cậy cao nhằm né tránh sự phát hiện của các hệ thống bảo mật và thâm nhập vào hệ thống mục tiêu.
Phân tích
Giai đoạn ban đầu
Kẻ tấn công gửi tệp .LNK qua các hình thức phishing phổ biến như email lừa đảo. Tệp .LNK này ngụy trang là một tệp cài đặt phần mềm thông thường, sử dụng biểu tượng MSI để làm người dùng tin tưởng. Khi được mở, tệp này sẽ không hiển thị dấu hiệu bất thường, mà chỉ hiển thị thông báo “Cài đặt thành công” bằng tiếng Trung Quốc (安裝成功- ānzhuāng chénggōng). Tuy nhiên, ngầm bên dưới, nó sử dụng lệnh curl để tải xuống gói Python với tên “python-3.12.5-embed-amd64.zip” và giải nén gói này vào thư mục “%LOCALAPPDATA%\Microsoft\Python”. Sau đó nó tải xuống một script Python độc hại lưu trữ dưới tên “update.py” trong cùng thư mục. Script này được thực thi âm thầm thông qua pythonw.exe
Tự cài đặt VSCode
Script Python kiểm tra xem Visual Studio Code đã được cài đặt trên hệ thống hay chưa bằng cách kiểm tra sự tồn tại của thư mục %LOCALAPPDATA%\Microsoft\VScode. Nếu VSCode chưa được cài đặt, script sẽ tải xuống phiên bản Command Line Interface (CLI) của VSCode từ nguồn Microsoft chính thức, sau đó giải nén và cài đặt nó. Sau khi cài đặt, script sử dụng VSCode để thiết lập một Remote Tunnel. Đây là tính năng hợp pháp trong VSCode, thường được dùng để kết nối với các máy tính từ xa, nhưng trong trường hợp này, nó bị lợi dụng để thiết lập một kết nối từ xa trái phép giữa máy nạn nhân và kẻ tấn công.
Thiết lập kết nối từ xa và lấy mã kích hoạt
 Khi thiết lập Remote Tunnel, VSCode tạo ra một mã kích hoạt ngắn (gồm 8 ký tự alphanumeric) và liên kết mã này với một tài khoản GitHub để xác thực. Tác nhân tấn công sẽ trích xuất mã này từ tệp log “output2.txt” và lưu trữ mã này để sử dụng trong các giai đoạn tấn công sau. Mã kích hoạt này cho phép kẻ tấn công truy cập hệ thống từ xa thông qua GitHub, bằng cách nhập mã vào trang đăng nhập GitHub (hxxps://github/com/login/device).
Duy trì sự hiện diện trên hệ thống
Để duy trì sự tồn tại trên máy nạn nhân, script tạo một Scheduled Task với tên “MicrosoftHealthcareMonitorNode”. Tác vụ này sẽ chạy script Python “update.py” định kỳ với quyền hệ thống và mức độ ưu tiên cao. Nếu nạn nhân không có quyền quản trị, tác vụ này sẽ chạy mỗi bốn giờ một lần. Trên các hệ thống mà có người dùng có quyền quản trị, tác vụ này được kích hoạt mỗi khi người dùng đăng nhập vào hệ thống, bảo đảm rằng kẻ tấn công có thể truy cập ngay khi hệ thống được khởi động.
Thu thập và xâm nhập thông tin
Kẻ tấn công thu thập thông tin hệ thống như tên máy tính, tên thư mục, danh sách các tiến trình đang chạy cũng như các thông tin nhạy cảm khác. Toàn bộ dữ liệu này được mã hóa bằng Base64 trước khi gửi đến máy chủ của kẻ tấn công. Sau khi nhận được dữ liệu, kẻ tấn công có thể đăng nhập vào hệ thống của nạn nhân, duyệt các tệp tin và thực hiện các hành động gây hại khác như cài đặt thêm phần mềm độc hại hoặc thay đổi cấu hình hệ thống.
Tác động
Kẻ tấn công có thể chiếm quyền điều khiển hoàn toàn hệ thống của nạn nhân, từ việc truy cập tệp tin, cài đặt phần mềm độc hại, đến thu thập dữ liệu nhạy cảm. Cuộc tấn công này nguy hiểm vì nó sử dụng các công cụ hợp pháp như VSCode và GitHub nên rất khó bị phát hiện bởi các giải pháp bảo mật thông thường.
Khuyến nghị
Nhằm đảm bảo an toàn thông tin cho hệ thống thông tin của đơn vị, góp phần đảm bảo an toàn thông tin cho không gian mạng Việt Nam, Trung tâm VNCERT/CC khuyến nghị người dùng và quản trị viên nên:
- Kiểm tra Scheduled Task: Kiểm tra các tác vụ theo lịch trên hệ thống để phát hiện và loại bỏ các tác vụ không hợp lệ
- Giới hạn quyền cài đặt: Hạn chế quyền cài đặt phần mềm cho người dùng và sử dụng danh sách ứng dụng được phép để kiểm soát các phần mềm có thể cài đặt trên hệ thống.
Nguồn: vncert.vn, topdev.vn