이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 15171|회답: 1

[출처] UPNP의 특징과 위험 요소

[링크 복사]
게시됨 2017. 10. 12. 오전 8:58:01 | | | |

UPNP는 다음과 같이 해석됩니다: 개인용 컴퓨터의 경우, BitCot의 UPnP 함수는 게이트웨이나 라우터의 NAT 모듈이 자동으로 포트 매핑을 수행하고, 게이트웨이나 라우터에서 인트라넷 컴퓨터로 비트코멧이 청취하는 포트를 매핑할 수 있습니다.
게이트웨이나 라우터의 네트워크 방화벽 모듈이 이 포트를 인터넷의 다른 컴퓨터로 열기 시작합니다.
NAT 트래버설 기술은 웹 애플리케이션이 UPnP 지원 NAT 장치 뒤에 있는지 감지할 수 있게 합니다. 이 프로그램들은 공유 글로벌 라우팅 가능한 IP 주소를 받고, NAT 외부 포트에서 애플리케이션이 사용하는 내부 포트로 패킷을 전달하는 포트 매핑을 자동으로 설정하며, 사용자가 수동으로 포트 매핑을 하거나 다른 작업을 할 필요가 없습니다. NAT 트래버설 기술은 네트워크 장치나 피어 투 피어 애플리케이션이 NAT 게이트웨이를 통해 외부 서비스와의 통신 포트를 동적으로 열고 닫는 방식으로 외부와 통신할 수 있게 합니다.
즉, 간단 NAT의 변환 효율은 높지 않으며, UPNP 기술이 도입되면 NAT 데이터 변환 효율이 향상될 수 있다는 것을 요약할 수 있습니다.
좋은 일인 것 같아요. 하지만 어떤???



UPNP에는 심각한 단점이 있습니다: 다음은 발췌문입니다:

첫 번째 결함은 버퍼 사용이 점검되고 제한되지 않는다는 점입니다. 외부 공격자는 이를 통해 시스템 전체의 통제 권한을 얻을 수 있습니다! UPnp 기능은 작동하기 위해 컴퓨터의 포트를 사용해야 하므로, 제어권을 획득한 공격자는 이 포트를 이용해 공격자의 목표를 달성할 수도 있습니다. 이 결함의 결과는 매우 심각합니다. 어떤 버전의 윈도우 시스템이든 UPnP가 실행 중인 한 이 위험은 존재합니다! 하지만 엄밀히 말하면, 이것은 전적으로 UPnP 기술 자체의 문제가 아니라 프로그래밍 실수에 가깝습니다.
두 번째 결함은 UPnP의 작동 메커니즘과 관련이 있습니다. 결함은 UPnP가 작동하는 '장치 발견' 단계에서 발생합니다. 장치를 발견하는 것은 두 가지 상황으로 나눌 수 있습니다: UPnP 지원 컴퓨터가 성공적으로 부팅되어 네트워크에 연결되면, 즉시 네트워크에 "브로드캐스트"를 보내 네트워크 내 UPnP 장치에 준비가 되었음을 알리고, 프로그래밍 수준에서는 브로드캐스트 콘텐츠가 M-SEARCH(메시지) 명령어입니다. 이 방송은 "음향 범위" 내 모든 장치에서 "들리는" 것입니다. 그리고 관련 정보를 컴퓨터에 피드백하여 이후 제어 목적을 지원한다.
마찬가지로, 장치가 네트워크에 막 연결되어 있을 때도 네트워크에 "알림"을 보내는데, 이는 프로그래밍 수준에서 NOTIFY 신호입니다. 또한 "음향 범위" 내 모든 컴퓨터에서도 이를 인정할 수 있습니다. 컴퓨터는 장치가 "스스로에게 보고"했다는 것을 "감지"합니다. 실제로 NOTIFY 명령어는 컴퓨터로 전송될 뿐만 아니라 다른 네트워크 장치에서도 들을 수 있습니다. 위에서 언급한 방송과 청취에서 문제가 발생합니다!
해커가 사용자의 시스템에 NOTIFY 명령을 보내면, 사용자의 시스템은 이 NOTIFY 명령을 받고 해당 서버에 연결한 후, 해당 서버에 다운로드 서비스를 요청하여 실행할 서비스 내용을 다운로드합니다. 서버는 물론 이 요청에 응답할 것입니다. UPnP 서비스 시스템은 장치의 설명을 설명하고, 더 많은 파일을 요청하며, 서버는 그 요청에 응답해야 합니다. 이렇게 하면 "요청-응답" 사이클이 형성되어 많은 시스템 자원을 차지하고 UPnP 시스템 서비스 속도를 느리거나 심지어 멈추게 만듭니다. 그래서 이 결함이 '서비스 거부' 공격을 가능하게 할 것입니다!


즉, UPNP 기능은 사용 단계에서 지속적으로 자체 네트워크 자원을 소비하며, 장치의 네트워크 자원이 소진되면 정지 상태(suspended animation) 현상이 발생합니다. 위 정보를 한번 보세요.




이전의:.net/c# 파일 읽기 작업은 파일의 모든 행을 배치로 읽기 위해 사용됩니다
다음:c# Lamda 표현식 집합 탈그룹화: 최소 값을 취하기
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com