Triều Tiên luôn là một quốc gia đặc biệt và đầy bí ẩn dưới góc độ công nghệ. Dưới sự kiểm soát chặt chẽ của chính quyền, công dân nước này gần như hoàn toàn bị cô lập với thế giới bên ngoài, và việc nhập cảnh vào Triều Tiên cũng bị hạn chế nghiêm ngặt. Hầu hết những thông tin mà chúng ta biết đều được tổng hợp từ hình ảnh vệ tinh, lời kể của những người đào thoát, và các báo cáo đôi khi mâu thuẫn. Chính vì vậy, Red Star OS 3 – một bản phân phối Linux dựa trên Fedora được phát triển bởi Triều Tiên – trở nên đặc biệt hấp dẫn. Đây là một cái nhìn hiếm hoi vào một thế giới phần lớn chưa được biết đến. Với tư cách là một chuyên gia tại 123thuthuat.com, tôi đã tự mình thiết lập hệ điều hành này trong một máy ảo để khám phá những điều kỳ lạ và thú vị ẩn chứa bên trong.
Red Star OS 3, phiên bản mà chúng tôi sẽ đi sâu vào đây, đã bị rò rỉ gần một thập kỷ trước. Thực tế, phiên bản kế nhiệm của nó là Red Star OS 4 được cho là dựa trên Ubuntu, nhưng phiên bản này hiện chỉ nằm trong tay một số ít nhà báo và không thể tải xuống công khai. Mặc dù đã một thập kỷ trôi qua và có vô số thông tin về Red Star OS 3 rải rác trên internet, tôi vẫn cảm thấy việc khám phá lại là cần thiết để làm nổi bật những khía cạnh độc đáo nhất của hệ điều hành này, cũng như những gì nó hé lộ về một quốc gia bí ẩn mà chúng ta biết rất ít. Hóa ra, vẫn còn nhiều điều để tìm hiểu, khi tôi phát hiện ra một số chức năng chưa từng được báo cáo ở bất kỳ đâu trước đây.
Đối với những ai muốn bắt đầu hành trình khám phá Red Star OS, điều quan trọng là phải biết một vài điều. Đầu tiên, như bạn có thể mong đợi, hệ điều hành này bị khóa chặt ngay từ đầu, theo dõi các tệp mà người dùng truy cập và chặn quyền truy cập vào mạng internet toàn cầu. Thứ hai, nếu bạn định tự chạy nó, có vẻ an toàn khi chạy hệ điều hành này trên kết nối tại nhà với quyền truy cập internet hạn chế, dựa trên những gì chúng ta biết về nó. Tuy nhiên, vẫn nên khuyến nghị không cung cấp cho hệ điều hành này quyền truy cập vào mạng internet tại nhà của bạn hoàn toàn.
Với mục đích thử nghiệm, tôi đã không cấp cho Red Star OS một bộ chuyển đổi mạng trong VirtualBox. Thành thật mà nói, không có quá nhiều điều phải lo lắng khi chạy nó. Mặc dù việc thoát khỏi máy ảo về mặt lý thuyết có thể xảy ra thông qua một trình điều khiển ảo được tạo bởi máy ảo, nhưng rất khó có khả năng một hệ điều hành mười năm tuổi đã được nghiên cứu không ngừng nghỉ vẫn có thể khai thác một môi trường hiện đại. Hơn nữa, các kết nối chính của nó đều hướng đến mạng nội bộ của Triều Tiên, vì vậy nó dường như không có khả năng “gọi về nhà” ra thế giới bên ngoài.
Red Star OS là gì và lịch sử của nó?
Lịch sử thú vị của một HĐH đặc biệt
Red Star OS, như chúng ta đã biết, là một bản phân phối Linux được phát triển ở Triều Tiên. Nó bắt đầu được phát triển vào năm 1998, và phiên bản đầu tiên xuất hiện vào năm 2008 với giao diện rất giống Windows XP. Red Star OS 2 được phát hành vào năm 2009 và cũng có giao diện tương tự Windows XP. Tuy nhiên, Red Star OS 3, phiên bản mà chúng ta đang xem xét ở đây, đã thay đổi đáng kể giao diện người dùng để giống macOS hơn.
Về cơ bản, đây là một bản phân phối Linux điển hình dựa trên Red Hat/Fedora, mặc dù nó chứa các phần mềm được cài đặt sẵn và một gói ngôn ngữ tiếng Hàn được bản địa hóa với thuật ngữ và chính tả của Triều Tiên. Có thể chuyển ngôn ngữ của hệ điều hành sang tiếng Anh với quyền truy cập root, và cũng có các trình cài đặt đã được sửa đổi để chuyển trình cài đặt sang tiếng Anh.
Giao diện Red Star OS 3 khi chuyển sang tiếng Anh
Các phần mềm được cài đặt sẵn dành cho người dùng bao gồm một trình duyệt dựa trên Firefox có tên Naenara (nghĩa là “Đất nước của tôi”), một trình soạn thảo văn bản, một bản sao OpenOffice có tên Sogwang Office, một trình phát media (được gọi là QuickTime khi sử dụng hệ điều hành bằng tiếng Anh), một ứng dụng chia sẻ tệp và một số trò chơi cơ bản. Ngoài ra còn có một ứng dụng âm nhạc, có tên UnBangUl, một cái tên trùng khớp với một thương hiệu đàn accordion lớn của Triều Tiên. Wine cũng được cài đặt sẵn để cho phép chạy các ứng dụng Windows.
Những tính năng ẩn và cơ chế giám sát
Tuy nhiên, nếu bạn nhìn sâu hơn vào bên trong, có nhiều phần mềm hơn đang hoạt động ngầm. Các tệp được tự động đóng dấu (watermark), các tệp hệ thống được bảo vệ và hệ thống sẽ tự khởi động lại nếu phát hiện một thay đổi trái phép. Một phần mềm “diệt virus” ẩn có thể xóa các tệp được chỉ định. Snort cũng được cài đặt sẵn, mặc dù không được bật theo mặc định, và các quy tắc iptables thực hiện những điều sau:
- Cho phép một số dịch vụ đến nhất định như HTTP, HTTPS, SMB, và loại bỏ phần còn lại.
- Xác định quyền cho phép lưu lượng phản hồi cho các dịch vụ đó.
- Các yêu cầu DNS có thể được thực hiện, nhưng các phản hồi sẽ không được chấp nhận vì iptables không tham chiếu đến cổng 53 (sport 53 hoặc dport 53).
- mDNS/Bonjour được chấp nhận rõ ràng qua cổng 5353.
Quy trình cấp quyền root trên hệ điều hành Red Star OS 3
Phần lớn, Red Star OS là một hệ điều hành không có gì đáng chú ý trên bề mặt. Một khi bạn đã có quyền truy cập root vào hệ thống và có thể cài đặt các ứng dụng của riêng mình mà không bị hạn chế, cùng với việc gỡ cài đặt phần mềm gián điệp được cài đặt sẵn để theo dõi người dùng, thì nó chỉ là một bản Fedora được thay đổi giao diện, và chỉ có vậy. Việc chạy các phiên bản trình quản lý gói hiện đại trên đó có thể là một yêu cầu khó khăn, và đặc biệt là bây giờ, nó đã quá lỗi thời để thực sự có thể sử dụng được.
Tuy nhiên, có một số khía cạnh của hệ thống đặt ra nhiều câu hỏi. Một trong những điều lớn nhất là với Naenara, trình duyệt dựa trên Firefox được cài đặt sẵn.
Naenara và những tiết lộ về Intranet của Triều Tiên
Cái nhìn sâu hơn về mạng nội bộ Kwangmyong
Trình duyệt Naenara của Red Star OS hiển thị các tiện ích mở rộng
Khi lần đầu tiên khởi chạy Naenara, trang chủ mặc định là địa chỉ IP “10.76.1.11”. Đây là một địa chỉ IP nội bộ được IETF và IANA dành riêng như đã chỉ rõ trong RFC1918, và bạn thường thấy các địa chỉ “10.x.x.x” được sử dụng trong các tập đoàn hoặc mạng gia đình. Mặc dù đã được biết rộng rãi rằng Triều Tiên có một mạng nội bộ được gọi là Kwangmyong, điều này cho chúng ta một chút cái nhìn sâu sắc về cách các thiết bị có thể giao tiếp. Để hiểu rõ hơn, Will Scott, cựu giảng viên tại Đại học Khoa học và Công nghệ Bình Nhưỡng, đã tuyên bố rằng quốc gia này dường như có hệ thống DNS riêng với các tên miền cấp cao nhất (TLD) riêng. Những TLD này bao gồm cả những TLD không tồn tại trên internet toàn cầu, như .web và .rec.
Scott cũng cho biết hầu hết các máy tính đầu cuối mà ông thấy đều chạy Windows XP và một số ít sử dụng Windows 7, và rằng Red Star không phải là thứ mà ông đã thấy ở nhiều nơi. Giả thuyết của ông là Red Star được sử dụng nhiều hơn như một hệ điều hành công nghiệp hơn là một hệ điều hành được thiết kế cho người dùng cuối, và hầu hết các máy tính mà ông đã thấy trong thời gian ở Triều Tiên dường như được nhập khẩu từ Trung Quốc.
Về việc địa chỉ IP nội bộ của Naenara là địa chỉ IP mặc định, điều đó rất hợp lý. Triều Tiên đã chính thức được APNIC phân bổ chỉ 1.024 địa chỉ IP, và dải địa chỉ của họ là 175.45.176.0/22. Có hai khối bổ sung được gán cho họ dưới sự kiểm soát của China Unicom (210.52.109.0/24) và công ty vệ tinh Nga SatGate (77.94.35.0/24), mặc dù điều này vẫn tổng cộng là một số lượng địa chỉ rất nhỏ cho một quốc gia có 26,42 triệu dân (tính đến năm 2023). Tuy nhiên, đây không phải là vấn đề lớn đối với Triều Tiên, vì quyền truy cập internet toàn cầu bị hạn chế nghiêm ngặt trong khu vực đối với các quan chức cấp cao của chính phủ, một số nhân viên Trung tâm Máy tính Triều Tiên và một số học giả với mục đích nghiên cứu. Quyền truy cập internet này cũng bị giám sát chặt chẽ.
Đối với các chứng chỉ được trình duyệt sử dụng, các chứng chỉ gốc có mã quốc gia phát hành là KP, mã ISO 3166-1 Alpha-2 của Triều Tiên. Điều này hợp lý; Scott đã nói rằng các yêu cầu mạng yêu cầu sử dụng proxy HTTP Squid ở cấp độ khuôn viên trường, và mỗi yêu cầu đều được liên kết với tên người dùng của ông. Với các chứng chỉ của Triều Tiên, tổ chức phát hành giữ khóa riêng có thể thực hiện tấn công Man-in-the-Middle (MITM) tất cả các yêu cầu “được mã hóa”. Điều thú vị là Scott lưu ý rằng trong khi việc sử dụng internet của ông không bị lọc, các sinh viên cao học và giáo sư tại trường đại học có quyền truy cập vào internet rộng hơn giống như ông, mặc dù của họ đã bị lọc, và một người quản lý phòng thí nghiệm sẽ theo dõi người dùng trong một căn phòng đặc biệt của khuôn viên trường được chỉ định cho việc duyệt web bên ngoài đó.
Khi xem xét about:config
trong Naenara, có vẻ như nhiều URL của Google và Mozilla chỉ đơn giản được thay thế bằng một địa chỉ IP nội bộ, vì vẫn còn các địa chỉ gắn cờ liên quan đến Mozilla và Chrome theo đúng đường dẫn URL của một yêu cầu thông thường, mặc dù với IP nội bộ được đặt thay thế. Điều thú vị là dường như có các tiện ích mở rộng chính thức có thể được cài đặt, và công cụ tìm kiếm mặc định thay thế miền của Google bằng miền nội bộ đã được ghi chú trước đó. Trừ khi chức năng cơ bản được tích hợp sẵn có thể truy cập bị lỗi trên mạng nội bộ của Triều Tiên, kết luận hợp lý là các dịch vụ nội bộ có thể được mô phỏng theo các dịch vụ hiện có từ bên ngoài đất nước.
Cuối cùng, việc kiểm tra cập nhật tự động không thể tắt được. Tuy nhiên, bạn có thể đặt nó thành “luôn hỏi” trước khi một bản cập nhật được cài đặt. Ngay từ đầu, nó sẽ tự động cài đặt các bản cập nhật.
Ứng dụng trên Red Star OS 3: Những điều kỳ lạ
Tiện ích mã hóa Bokem và cấu trúc ứng dụng
Trong quá trình điều hướng hệ điều hành và tìm kiếm những gì tôi có thể khám phá, tôi đã tìm thấy một ứng dụng có tên “Bokem”. Đây là một tiện ích mã hóa triển khai một thuật toán mã hóa khối 128-bit dựa trên AES có tên Pilsung. Hóa ra, bản thân thuật toán này dường như khá an toàn, mặc dù việc triển khai của nó trong Bokem có lẽ không. Tuy nhiên, bạn cần quyền truy cập root để sử dụng nó, vì vậy có thể không ai được mong đợi sử dụng nó. Khởi chạy ứng dụng này trong một máy ảo yêu cầu thêm tiền tố lệnh khởi chạy với “DISPLAY=:0”.
Điều thú vị hơn là bố cục thực tế của các ứng dụng. Không chỉ hệ điều hành có giao diện giống macOS; các ứng dụng tự chúng được lưu trữ theo cách tương tự như các ứng dụng được lưu trữ trên macOS. Trong Red Star, chúng được đặt dưới /Applications
, và mỗi ứng dụng nằm trong thư mục “.app” riêng của nó. Ví dụ, “QuickTime” nằm trong thư mục QuickTime.app, chứa thư mục Contents, thư mục Resources và thư mục “RedStar”, chứa tệp thực thi thực tế.
Không có nhiều điều để thấy từ phía ứng dụng mà chúng ta chưa xem xét. Tuy nhiên, tôi đã dành một chút thời gian để tìm hiểu sâu hơn về một trong những tiện ích được thiết kế để theo dõi người dùng, và vẫn còn một số điều thú vị để tìm thấy mà tôi chưa thấy được báo cáo ở bất kỳ đâu khác.
Khám phá sâu scnprc – “Phần mềm chống virus” bí ẩn
Có hai thành phần cốt lõi tạo nên hệ thống khóa chặt của Red Star. Đầu tiên là scnprc, phần mềm quét các tệp, và thứ hai là opprc, phần mềm thực hiện việc đóng dấu (watermarking) các tệp đó. Tuy nhiên, scnprc cũng thực hiện một số điều khá thú vị, và tôi đã đưa nó vào Ghidra để phân tích một số chức năng của nó. Tôi đã xem xét các hàm sau trong binary:
- WriteHiddenEncodeFile
- WritePatternToUSB
- WriteImageInformation
- ImageProcessing
- get_disk_serial
- ScanCD
- checkfile
Hiện tại, vẫn chưa rõ chức năng nào trong số này thực sự được sử dụng, nhưng các hàm này tồn tại trong binary và về mặt lý thuyết có thể được thực thi bất cứ lúc nào.
Những khám phá thú vị nhất mà tôi đã thực hiện là trong WritePatternToUSB và ScanCD. Tôi chưa thấy bất kỳ thảo luận nào về cả hai chức năng này liên quan đến Red Star OS trước đây, mặc dù các hoạt động của chúng đã được giả định rộng rãi. Chúng ta sẽ xem xét WritePatternToUSB trước.
WritePatternToUSB: Cơ chế ghi dấu USB
WritePatternToUSB là một hàm lớn mất một thời gian để giải mã, nhưng về cơ bản, nó thực hiện những điều sau:
- Kiểm tra tính toàn vẹn của hệ thống tệp bằng cách kiểm tra xem ổ đĩa có thể mở được không, đọc 64 byte đầu tiên và xác nhận bằng một hàm hỗ trợ xem nó có giống hệ thống tệp FAT32 không.
- Đọc các trường FAT32 từ hệ thống tệp. Điều này bao gồm:
FATSz32/DrvNum
: offset 0x24 (36) cho loại FAT. Đây sẽ là DrvNum cho FAT16 hoặc FATSz32 cho FAT32.BPB_RsvdSecCnt
: Offset 0x0E (14) cho số sector dự trữ.BPB_BytsPerSec
: Offset 0x0B (11) cho số byte mỗi sector.BPB_FSInfo
: Offset 0x30 (48) cho sector bắt đầu của FSINFO.
- Đọc sector FSINFO.
- Tính toán một offset byte để phân định vùng FAT.
- Kiểm tra một pattern (mẫu) với thông tin thu được từ hệ thống tệp.
- Pattern này được cập nhật, hoặc một pattern mới được tạo.
Tôi không thể xác định chính xác pattern nào đang được ghi, mặc dù tôi có thể thấy rằng nó nhận một tệp “tmp.tmp” với dữ liệu yêu cầu. Tôi nghi ngờ đây là dữ liệu được cung cấp bởi opprc, hoặc chưa bao giờ được triển khai đầy đủ. Hàm này sẽ tìm kiếm fatStart+clusterIndex*4
, ghi một giá trị 4 byte tại vị trí mảng đó và hoạt động thông qua một bản đồ cluster trong bộ nhớ.
ScanCD: Quét đĩa CD và phản ứng của hệ thống
ScanCD là một chức năng thú vị khác, nhưng may mắn thay, dễ hiểu hơn nhiều. Có vẻ như nó được gọi khi một đĩa CD được đưa vào hệ thống và thực hiện những điều sau:
- Nó quét mọi thư mục trên đĩa CD được đưa vào.
- Mọi tệp được tìm thấy đều được chuyển đến hàm
checkfile
.checkfile
gọi một tiến trình hỗ trợ khác để phân tích tệp.- Phản hồi từ tiến trình điền vào một biến cục bộ.
- Kiểm tra các loại tệp khác nhau dựa trên mô tả nhận được.
- Trong những điều kiện rất cụ thể, một giá trị -1000 có thể được trả về.
- Trong trường hợp này, đĩa CD bị đẩy ra.
- Đường dẫn tệp vi phạm được ghi lại.
- Một cảnh báo GUI được hiển thị.
- Hệ thống được khởi động lại sau 1000 giây.
checkfile
nhận dạng các loại tệp sau:
- Ảnh: dữ liệu ảnh JPEG, dữ liệu ảnh TIFF, dữ liệu ảnh PNG, dữ liệu ảnh GIF, dữ liệu bitmap.
- Âm thanh (lossy): MPEG ADTS, âm thanh Wave, Microsoft ASF, MP3, “rất ngắn”.
- Video/container: dữ liệu RIFF (little-endian), chuỗi MPEG, RealMedia, phim QuickTime, Macromedia Flash (Video).
- Văn bản thuần túy/mã nguồn: UTF, Unicode, ASCII, văn bản chung.
- Tài liệu PDF.
- Tệp trợ giúp CHM.
- Ảnh DjVu.
- Sách điện tử CNKI CAJ – Đây là một nhà xuất bản ở Trung Quốc xuất bản các bài báo học thuật.
- Office 2007 và OOXML.
- Hangul Word Processor.
- Sách điện tử Superstar/Founder PDG.
Những điều này không tự động kích hoạt cảnh báo và tắt máy. Tôi không thể xác nhận chính xác điều gì kích hoạt nó, và tôi nghi ngờ điều này cũng do một dịch vụ bên ngoài quyết định, vì có nhiều lệnh gọi tiến trình.
Phân tích hàm get_disk_serial trong scnprc của Red Star OS bằng Ghidra
Tệp dường như quản lý việc đóng dấu (watermarking) cho tất cả các tệp khác liên quan đến get_disk_serial
, và tệp này khá đơn giản. Nó thực hiện những điều sau:
- Lấy số major và minor của
st_dev
của hệ thống tệp gốc. - Tạo một thiết bị khối tạm thời trên ổ đĩa đó.
- Cố gắng lấy số serial của ổ đĩa bằng
ioctl
thông qua một trong ba cách:- Hỏi
HDIO_GET_IDENTITY
. - Hỏi
SG_ATA_IDENTIFY
với góiIDENTIFY_DEVICE
. - Thử lại nhưng với gói
IDENTIFY
. - Nếu thất bại, lấy từ
gszConstSerial
.
- Hỏi
- Cắt phản hồi thành 20 byte, chuyển đổi sang chữ hoa, loại bỏ “WD-W” nếu có (ID của Western Digital).
- Mọi ký tự ‘0’ đứng đầu đều được thay thế bằng ‘Z’.
Số serial ổ đĩa này dường như đóng một vai trò trong việc đóng dấu tệp. Khi hình ảnh, tài liệu hoặc video được phát hiện, một watermark nhận dạng máy tính đã tương tác với chúng sẽ được nhúng vào tệp. Với một hình ảnh, dữ liệu này được nối vào cuối tệp, trong khi một tài liệu Word sẽ thấy nó được chèn vào không gian rỗng ở đầu tệp. Đối với hình ảnh, các thiết bị độc đáo sẽ có dữ liệu của chúng được nối vào cuối tệp.
Hành vi watermarking nêu trên chèn trực tiếp vào một tệp hiện có đã được mô tả trong quá khứ với Red Star OS, nhưng tôi đã khám phá một cách tiếp cận watermarking khác, rất thú vị mà tôi chưa từng thấy được tài liệu hóa ở bất cứ đâu khác. Phương pháp watermarking được báo cáo trước đây hoạt động, nhưng có thể dễ dàng được xác định bằng cách xem tệp trong trình chỉnh sửa hex. Chức năng mà tôi tìm thấy, được gọi là WriteImageInformation, có một cách tiếp cận khác. Nó ẩn một chuỗi watermark bên trong một bitmap RGB, thêm tiền tố “WM” vào đầu một mảng ký tự. Sau đó, nó điều chỉnh các hệ số DCT tần số cao của các khối 8×8 byte liên tiếp của hình ảnh, lặp lại nhiều lần nếu cần để bao phủ toàn bộ kích thước của hình ảnh, và sau đó ghi lại các pixel đã sửa đổi.
Cách tiếp cận này yêu cầu hình ảnh phải có kích thước tối thiểu, và giống như các chức năng khác được xác định ở đây, không rõ liệu nó có thực sự được sử dụng trong phiên bản phần mềm này hay không. Tuy nhiên, nó tồn tại, có nghĩa là nếu nó chưa được sử dụng trước đây, thì có lẽ bây giờ nó đã được hoặc đã được cải tiến.
Lý do không nên sử dụng Red Star OS 3
Giao diện tổng quan của hệ điều hành Red Star OS 3
Mặc dù nghe có vẻ hấp dẫn, bạn không nên cài đặt Red Star OS trừ khi bạn thực sự biết mình đang làm gì. Về cơ bản, nó là phần mềm gián điệp được ngụy trang dưới dạng một hệ điều hành, nhưng tất nhiên, điều đó đã được dự đoán trước. Không chỉ vậy, nó thậm chí còn không thực sự có thể sử dụng được trong thế giới ngày nay. Firefox 3.5 đã quá lỗi thời, và các trang web sử dụng HTTPS thậm chí sẽ không cho phép bạn truy cập ngay từ đầu. Không có lý do gì để triển khai nó, và bạn chỉ tự đặt mình vào nguy hiểm một cách vô cớ khi làm như vậy.
Tất nhiên, người ta có thể lập luận rằng hệ điều hành này chỉ gọi về nhà trong mạng nội bộ Triều Tiên, và bạn có thể đúng, nhưng nó cũng không đáng để mạo hiểm. Thật thú vị khi khởi động nó trong một máy ảo, nhưng tôi đã thấy nhiều người cài đặt nó như một hệ điều hành dual-boot, không nhận ra rằng, ít nhất, bạn đang thêm dữ liệu nhận dạng vào tất cả các tệp mà Red Star có thể truy cập mà không có lý do chính đáng.
Đã có rất nhiều cuộc thảo luận và điều tra hấp dẫn về Red Star OS 3, và tôi chỉ mới khám phá được một phần nhỏ trong phân tích của mình ở đây. Tôi thực sự khuyên bạn nên tìm hiểu thêm nếu muốn biết sâu hơn về chủ đề này.
Bạn nghĩ sao về hệ điều hành bí ẩn này và những cơ chế giám sát mà nó ẩn chứa? Hãy để lại bình luận và chia sẻ kiến thức của bạn cùng 123thuthuat.com!