북한의 컴퓨터 운영체제인 붉은 별 3.0에 추적 기능이 있다는 애기를 듣고 분석하게 되었다.
솔직히 많이 두렵기는 했다.
아무리 북한에서 사용하는 대역이 다르고, 사설망을 사용하고, VMware에서 테스트할 것이고, 혹시 몰라 VM 인터넷 연결도 없는 상태로 시작을 했지만, 그곳은 북한이기 때문에 겁이 났다.
그래도 궁금한 건 못참지 ㅋㅋ

조선콤퓨터쎈터가 개발한 컴퓨터 운영 체제이다.
오픈소스 리눅스 커널을 기반으로 하여, 북한에 맞는 맞춤형 기능과 보안 체계를 추가했다.
내부 네트워크 보안 강화와 국외 정보 유출 차단을 위해, 다른 OS에서는 찾기 어려운 사용자 및 시스템 감시 기능이 포함되어 있을 가능성이 있다.
붉은별 OS는 단순한 운영체제 이상의 역할을 수행하며, 특히 파일의 메타데이터나 태그 변화로 사용자를 추적할 수 있다는 의혹이 제기되고 있다.
확인 방법으로 USB를 통해 특정 파일이 붉은 별 OS에 인식되었다가 나오면 파일의 메타데이터가 변경 되었는지를 확인할 것이다.
각 파일에는 고유의 Hash 값이 존재한다.
파일이 변경되지 않는 이상 다른 PC에 들어가도 값이 바뀌지 않는다.




Hash 값이 달라 졌다.
Hash 값이 바뀌는 이유는 해당 OS가 파일에 특정 정보를 자동으로 추가하는 기능이 있다고 볼 수 있다.
=> 추적하고 통제하려는 의도로 설계되었음을 예상.
붉은별은 바이러스 백신이나 방화벽 등 핵심 기능에 변화를 주려고 할 경우 에러 메시지를 띄우거나 아예 재부팅을 해버린다.
자동 태그 기능 :
붉은 별 OS는 컴퓨터나 연결된 USB에 담긴 모든 파일에 고유한 태그를 추가.
해당 태그는 파일이 어떤 컴퓨터를 거쳤는지 추적할 수 있도록 설계.
이러한 태그는 열거나 수정하지 않아도 자동으로 추가되며, 이로 인해 파일의 Hash 값이 변경.
파일 메타데이터 변경 :
Hash 값은 파일의 내용이 조금이라도 바뀌면 달라지기 때문에, 붉은 별 OS가 파일 내부에 정보를 기록하거나 메타데이터를 수정하면 Hash 값이 달라 짐.
보안 및 감시 목적으로 설계된 기능으로 예상.
디스크 설정 후 관리자 가입

망정보 설정 (봉사기 == 서버)

붉은 별 설치



현재 로드된 커널 모듈을 확인.

모듈을 확인하는 방법으로는 lsmod가 있고,cat /proc/modules가 있다.
북한에서 만든 모듈


ko 파일은 바이너리 모듈 파일이다.
그래서 바로 소스 코드로 보이지 않기 때문에, nm이나 objdump -D 같은 도구를 이용해 기호 목록 및 어셈블리 코드를 확인할 수 있다..




rtscan의 내부 함수들을 확인했고, 그 중에 특별히 의심스러운 함수가 rts_send_files_ioctl 함수이다.
가볍게 어셈블리어 코드를 분석을 해보니


ioctl 인터페이스를 통해 파일을 전송 명령을 처리하는 함수인 듯 했다.
copy_from_user: 사용자 공간에서 커널 공간으로 데이터를 복사하는 함수.copy_to_user: 커널 공간에서 사용자 공간으로 데이터를 복사하는 함수.mutex_lock, mutex_unlock: 커널의 뮤텍스 잠금/해제를 처리하는 동기화 함수.rts_open_list, rts_open_list_empty: 특정 리스트를 열거나 비어 있는지 확인하는 함수로 보인다.rts_wait_lock, rts_temp_lock: 잠금(lock) 메커니즘을 처리하는 함수들로 보인다.rts_process_file_open, rts_process_file_close: 파일 열기 및 닫기와 관련된 작업을 수행할 가능성이 있다.rts_process_rename, rts_process_unlink: 프로세스나 파일의 이름 변경 및 연결 해제 작업을 수행할 가능성이 있다.rtm_scan_* 계열: 스캔(scan) 작업과 관련된 여러 작업(열기, 닫기, 삭제 등)을 처리할 수 있는 함수들로 보인다.rts_add_hidden_file, rts_remove_hidden_file: 특정 파일을 숨기거나 숨김 상태를 해제하는 데 사용될 가능성이 있다.rts_add_protect_file, rts_remove_protect_file: 파일 보호 기능을 추가하거나 제거하는 데 사용될 가능성이 있다.rts_check_protect_file: 파일 보호 상태를 확인하는 역할일 가능성이 있다.rts_is_excludefile: 특정 파일이 제외 대상인지 확인하는 함수로 보인다.rts_device_ioctl, rts_device_poll, rts_device_read: 디바이스 드라이버와 관련된 I/O 제어 및 읽기 작업을 수행할 가능성이 있다.이벤트 기반의 rtscan 모듈 실행 가능성
파일에 추적 기능