Network

네트워크 프린터 해킹(Network Printer Hacking)

Dork94 2018. 4. 20. 00:16


Big Brother




안녕하세요. 


오늘은 네트워크 프린터 해킹을 보도록 하겠습니다.


프로젝트명은 Big Brother로 조지 오웰의 소설 1984에 나오는 인물의 이름으로 하였습니다.


빅 브라더(Big Brother)는 조지 오웰의 소설 《1984년》에 나오는 가공의 인물로, 전체주의 국가 오세아니아를 통치하는 정체 모를 수수께끼의 독재자다. 빅 브라더는 당에서 대중을 지배하기 위해 만들어낸 허구의 인물이라는 이야기도 있고, 거의 확실하다.

오웰이 묘사한 사회에서는, 모든 사람들이 텔레스크린을 사용한 감시하에 놓여 있다. 시민들은 끊임없이 “빅 브라더가 당신을 보고 계시다”("Big Brother is watching you")라는 프로파간다 문구를 통해 이 사실을 상기하게 된다.


※ 쉽게 말해 모든 정보를 보는 독재자이며 정치적 의도는 전혀 없음을 밝힙니다.


출처 : https://ko.wikipedia.org/wiki/%EB%B9%85_%EB%B8%8C%EB%9D%BC%EB%8D%94_(1984%EB%85%84)





  # 네트워크 프린터란?



네트워크 프린터란 네트워크에 연결된 프린터를 뜻합니다. 프린터가 네트워크에 연결됨으로써 얻는 이점은 다음과 같습니다.


1. 프린터를 PC에 직접 연결할 필요가 없다.


2. PC 당 프린터를 구매할 필요가 없다.


간단히 비교하기 위해서 프린터의 사용이 많은 어느 회사의 사무실이라고 가정해봅시다.




[상황 1]





위와 같이 네트워크를 프린터를 쓰지 않는 상황에서는 사무용 PC당 프린터가 연결되어 있어야 하고 PC가 N개 라면 프린터도 마찬가지로 N개가 필요합니다.


이런 상황에서 프린터 구매 비용 및 프린터가 차지하는 공간 비용을 고려해 볼 때 비 효율적인 것을 알 수 있습니다.


프린터 구매 비용 및 공간 비용을 아끼기 위해선 프린터 한 대를 놓고 인쇄를 원하는 PC를 들고 다니거나 프린터를 들고 다니면서 출력을 해야 하는 인적 자원이 낭비 되게 됩니다.




[상황 2]




반면에 아래와 같이 사무실을 구성한다면 프린터를 원하는 PC는 네트워크를 통해 프린트할 데이터를 보내고 프린터에서 인쇄물을 받아가기만 하면 됩니다.


네트워크를 이용해 프린터를 함으로써 비용적 공간적 이점을 누리게 됩니다.



  # 네트워크 프린터 프로토콜



그러면 위와 같은 통신이 가능하기 위해선 특정한 프로토콜이 필요할 것입니다.


프로토콜에 대해 간단히 알아보도록 하겠습니다.


IPP



IPP 프로토콜은 Well-known port 631번을 사용하며 TCP/IP를 사용하며 HTTP 서버 Java™, SSL이 필요합니다. 

그러나 모든 프린터가 IPP를 지원하지는 않습니다.




LPR



LPR은 BSD Unix가 있었던 시절부터 있던 프로토콜로 그만큼 호환성이 좋으며 대부분의 프린터 기기에서 LPR(Port 515)를 지원합니다. 

TCP / IP 및 LPD(Line Printer Deamon)을 이용하며 작동합니다. LPD는 소프트웨어로 문서나 다른 자료를 인쇄할 수 있도록 합니다.

또한, 이 프로토콜 UNIX 용으로 제작되었으나 후에 다른 platform도 호환이 되도록 발전했습니다.

자세한 내용은 RFC 1179에 기술되어 있습니다.


RAW



RAW는 AppSocket으로도 알려져있는 프로토콜 이며 9100포트를 사용합니다.

RAW는 문서가 번역된 다음 프린터로 전송되는 언어로 프린터가 프로토콜을 해석하고 문서를 인쇄하며 주로 컴퓨터 사용자가 텍스트 나 문자 이상의 복잡한 문서를 인쇄하고자 할 때 사용합니다. 대부분의 프린터 설정시 RAW가 기본적으로 설정됩니다.




프린트할 때 80번 포트를 이용하여 웹으로 프린터 데이터를 전달할 수도 있지만, 논외로 하겠습니다.




  #네트워크 프린터 취약점


위 프로토콜의 설명을 보듯 보안이 고려된 프로토콜은 IPP 프로토콜 밖에 없습니다.


그러나 문제는 기본적으로 설정되는 프로토콜 대부분은 RAW(9100) 프로토콜 또는 LPR이며, 심지어는 IPP를 지원하지 않는 프린터도 있습니다.


아래는 국내에서 가장 인기 있는 프린터 중 하나를 포트 스캔 한 결과로 IPP 프로토콜을 지원하지 않습니다.





심지어 IPP 프로토콜을 지원하는 프린터도 프린터 자동 검색 후 추가 시 RAW(9100)가 기본적으로 설정되어 프린터에 이용됩니다.


MacOS에서는 IPP 프로토콜을 이용하기 위해선 수동으로 IP주소를 통해 추가를 해줘야 하는 번거로움이 있습니다. 


보안 기능이 있는 IPP를 제외한 나머지 프로토콜이 가장 많이 사용된다는 게 아이러니합니다.


또한, 프린터에는 인증 기능을 사용할 수 있으나 대부분의 프린터 사용자 또는 회사에서 인증기능을 사용하지 않습니다.



  #그래서 그게 뭐 큰일인가?



프린터의 내용이 보안 되지 않았다는 것이 별로 크게 생각하지 않는 분들이 있을 것입니다. 패킷도 프린터가 해석할 수 있는 Command로 해석되어 전송되기 때문에 패킷 그 자체로는 내용을 읽지 못하기 때문에 안심하는 분들도 계실 것입니다.


네트워크를 기반으로 공격하고 있으므로 파급력은 미약하지만 vendor에 종속적인 취약점이 아니라 프로토콜에 기반을 둔 취약점으로 전 세계 대부분의 네트워크 프린터에서 같은 취약점이 존재한다는 것에 의의를 둘 수 있겠습니다(테스트는 실제로 많이 사용하는 vendor의 제품들로 테스트 해보았으며 추후에 다른 vendor의 제품들도 테스트 할 예정 입니다).


간단한 시연 영상을 보도록 하겠습니다.


시연 영상은 쉽게 보실 수 있도록 있을 법한 사례로 이야기를 만들어 보았습니다.


영상 끝에 나오는 성적표는 해킹을 통해 불합리하게 얻은 성적이 아님을 분명히 밝혀드립니다.






시연 영상을 통해 취약점 및 활용에 대해 간단히 알아보았습니다.


보는 분들의 재미를 위해 유머러스하게 구성해 보았지만, 해당 프로그램은 라즈베리 파이 등과 같은 소형 PC에도 적용할 수 있는 프로그램이며 만약 악의적인 목적을 가지고 어떠한 회사 내에 잠입하여 해당 프로그램을 구동시켜 놓는다면 그 시점부터 인쇄되는 문서는 해커의 손에 넘어간 것과 다름없습니다.



라즈베리 파이는 아래와 같이 소형화되어 있으며 사람들의 시선이 닿지 않는 사각지대에 설치해 놓는다면 심각한 위협이 될 수 있습니다. 또한, AP 기술의 발달로 장소의 제약이 줄어듦으로 주의해야 합니다.







  #그럼 어떻게 방어해야 할까?



위에 언급한 바와 같이 보안성이 있는 프로토콜 IPP를 권장해야 하며 그렇지 못한 경우 사용자 인증을 사용해야 합니다.


IPP 프로토콜의 경우 Attack 시도할 때 아래와 같이 프린터 서버에서 연결을 끊는 것을 볼 수 있습니다.



또한, 프린터 IPP 프로토콜을 지원하는 프로토콜을 이용하셔야 합니다. 그리고 중요 문서는 네트워크 프린터를 이용하는 것이 아닌 PC 또는 USB를 통해 유선으로 해당 파일을 출력하는 것을 권장합니다(프린터 내에 출력물에 대한 로그가 남는 프린터도 있으니 그 부분도 주의하시기 바랍니다).


IPP 프로토콜이 지원하더라도 자동으로 설정되지 않으므로 사용자가 설정해 주어야 합니다.

이 게시글을 통해 기본 설정값이 IPP 프로토콜이 되길 바랍니다. 또는, 다른 프로토콜 사용 시 사용자에게 위협에 대한 경고창이 나타나게끔 되었으면 좋겠습니다.




긴 글 읽어주셔서 감사합니다.


참조 : http://www.differencebetween.net/technology/protocols-formats/difference-between-lpr-and-raw/



Thanks To : gilgil(www.gilgil.net) , 유OO교수님 , 정영호 (ho-story.tistory.com) , S.C.P (https://www.facebook.com/HackingTeamSCP/),