학교 테블릿과 컴퓨터에서 취약점을 찾았다

학교 테블릿과 컴퓨터에서 여러 기능을 차단하는 기능을 우회하는 취약점을 찾았습니다.

⚠️ 문제가 생기지 않게 모든 테스트는 기기 손상 없이, 복구가 가능한 방법으로 진행했습니다.

충청북도교육청에서는 학생들에게 제공하는 테플릿에 충청북도 스마트 ALL와 WebKeeper라는 앱을 설치하여 많은 제한(유해 사이트 접근 차단, 특정 설정 접근 차단, 화이트리스트 앱 제외 설치 차단, 새벽 시간 테블릿 이용 차단)을 합니다. 테블릿를 이용할 때 너무 불편해서 방법이 없을까 고민하다보니 가설을 만들어서 우회를 시도하게 되었습니다. 결국 모든 제한을 해제하게 되었고 오늘은 그 이야기를 해드리겠습니다.

처음 가설을 만들 때 테블릿에 영구적으로 손상이 가지 않고 원래 상태로 복구할 수 있는 방법만 시도하는 것으로 마음먹었습니다. 해당 테블릿은 영구적으로 갖는 것이 아니고 대여를 받아서 사용하는 교육청의 자산이기 때문에 손상되거나 복구할 수 없는 경우 책임을 져야할 수 있기 때문에 최대한 안전한 방법으로만 가설을 만들고 시도했습니다.

1 초기화 후 권한 요청 거부

(초기화 없이 사용하는 방법은 2, 3 참고)

초기화 후 권한을 요청하는데 이때 거부하면 앱 설치 등 모든 제한이 해제됩니다.

2 충청북도 스마트 ALL과 WebKeeper 비활성화

비활성화하려면 설정 → 접근성 → 설치된 서비스에서 앱을 끄면 되는데 끄려고 할 때 충청북도 스마트 ALL에 의해 차단되게 됩니다.

하지만 충청북도 스마트 ALL는 OS단에서 동작되는 기능이 아닌 일반 앱이기 때문에 끄는 기능 자체를 비활성화하지는 못합니다. 즉 끄는 기능으로 접근하려는 것을 감지하면 차단 화면을 띄우고 해당 창으로 접근할 수 없게 막는거죠.

저는 테블릿을 재시작 할 때 생기는 렉을 통해서는 해당 설정을 끌 수 있을 것이라는 가설을 만들고 시도하게 됩니다.

최대한 빠르게 재시작 후 결국 끄는 것에 성공하게 됩니다. (10번 정도는 시도한 것 같네요..) 어쨋든 앱을 모두 끄게 되었습니다. 이렇게 되면 몇초마다 접근을 허용하라고 팝업을 띄우는데 이 팝업은 설정 → 애플리케이션 → 충청북도 스마트 ALL에 들어가서 모든 권한을 해제하고 다른 앱 위에 표시를 끄면 해결됩니다.

이렇게 되면 상세 설정 접근 차단, 새벽 시간에 테블릿 이용 차단 등에 제한을 받지 않게됩니다.

3 앱 설치 차단 우회

허용된 앱 이외의 앱 설치를 차단하는 기능은 OS단에서 동작되는 기능이기 때문에 이전 방법으로는 절대 우회할 수 없습니다.

저는 앱 설치 차단 기능이 사전에 허용된 화이트리스트 앱은 설치가 가능하다는 점에서 착안하여 원하는 앱을 허용 앱인 것처럼 속이고 설치하는 방법으로 우회를 시도하게 되었습니다.

다른 안드로이드 기기에서 APK Edtior Pro라는 앱으로 원하는 앱의 패키지 이름을 사전에 허용된 앱의 패키지 이름으로 변경한 후 APK 파일을 테블릿에 설치하는 방식으로 결국 차단된 앱 설치에 성공했습니다.

4 유해 사이트 접근 차단 우회

유해 사이트를 접근 차단하는 기능은 테블릿이 아닌 학교 인터넷에 존재합니다. 테블릿에 프록시 앱을 설치하는 것으로 이 문제를 해결할 수 있습니다.

Cloudflare사의 1.1.1.1 또는 유니콘 HTTPS 등

5 실패한 가설

개발자 모드를 켜고 외부 툴로 앱을 강제 삭제하거나 테블릿을 루팅하는 방법은 OS에서 개발자 모드 실행 자체를 막아서 진행하지 못했습니다. 안전모드로 부팅하는 방법 또한 OS에서 차단한 기능이라 불가능했습니다.


학교 컴퓨터는 충청북도교육청 프로그램을 통해 선생님이 특정 컴퓨터의 인터넷을 차단하고 화면을 보고 조작하는 등 여러 제한이 가능합니다.

이런 제한은 생각보다 간단하게 뚫렸습니다. 바로 안전부팅입니다. 검색창에 msconfig를 검색하여 시스템 구성으로 들어가서 부팅 → 안전부팅 체크 → 네트워크 체크하여 적용하고 재시작하면 인터넷을 사용할 수 있고 선생님 화면에서 보고 조작하지 못하게 됩니다.

위에서 설명한 가설 말고도 많은 가설을 만들고 시도하기를 반복했습니다.

오늘의 결론은 ”어디에나 취약점은 존재한다는 것“입니다.