OWASP IOT TOP10 2018(번역)

RoughBoy·2023년 11월 22일
0

임베디드

목록 보기
3/4
post-custom-banner

2018년도에 작성된 OWASP Internet of Things(IOT) TOP 10

1. 쉽게 추측할수있거나 하드코딩되어있는 비밀번호(Weak, Guessable, or Default Passwords)

"배포된 시스템에 대한 무단 액세스를 허용하는 펌웨어 또는 클라이언트 소프트웨어의 백도어를 포함하여 쉽게 무차별 방식(Brute force)으로 공개적으로 사용 가능하거나 변경할 수 없는 자격 증명을 사용합니다."

오늘날 IoT 시스템의 일반적이고 만연한 취약점은 취약하거나 바뀌지않은 기본 비밀번호에서 비롯됩니다. 장치 자격 증명을 잘 못 관리하면 IoT장치가 무차별 대입 공격의 대상이 될 위험이 커집니다.

2018년 캘리포나이에선 SB-327 IoT 법률이 통과되어 기본 인증서 사용을 금지했습니다. 이 법은 최종적으로 취약한 비밀번호의 사용을 방지하는것을 목표로 만들어졌습니다.

이러한 시스템을 보호하기 위한 즉각적인 단계는 IT 관리자가 사용자와 관리자가 기본 장치 비밀번호를 변경하도록 요구하는 새로운 로그인 정책을 설정하는 것입니다.

2. 안전하지 않은 네트워크 서비스(Insecure Network Services)

“장치에서 실행되는 불필요하거나 안전하지 않은 네트워크 서비스, 특히 인터넷에 노출되는 네트워크 서비스는 정보의 기밀성, 무결성/진실성을 위태롭게 하고 IoT 장치의 무단 원격 제어 위험을 초래합니다.”

IoT 디바이스들은 네트워크 인프라에 통합되어 있으며 연기 경보, 근접 센서 또는 광학 장치와 같은 연결된 스마트 디바이스들로부터 데이터를 전송, 검색 및 해석할 수 있습니다. 시스템의 통신 메커니즘은 다양하지만 BLE 및 ZigBee부터 WiFi, 셀룰러 데이터 및 이더넷에 이르는 네트워크 프로토콜을 포함할 수 있습니다.

스마트 기술은 인간의 간섭 없이 선택을 할 수 있는 능력을 가지고 있어 독특합니다. 이러한 수준의 디바이스 자율성은 IoT 디바이스의 안전성을 손상시키지 않으면서 소비자 수준의 이동성과 상호 운용성을 보장해야 하는 어려움을 초래합니다.

인터넷에 연결된 모든 서비스가 올바르게 작동하려면 특정 포트를 열어야 합니다. 장치나 다른 기계에 대한 액세스를 제공하는 열린 포트와 서비스를 그대로 두는 것은 전형적인 보안 오류입니다. 비트사이트와 어드바이든의 공동 연구는 위반된 조직의 60%가 10개 이상의 취약한 열린 포트를 가지고 있다는 것을 보여주었습니다.

IoT 장치의 서비스 취약성을 이용하면 바이러스, 스파이웨어, 랜섬웨어 및 트로이 목마와 같은 은밀한 악성 소프트웨어 서비스가 발생할 수 있습니다. 사이버 범죄자는 이러한 오픈 포트 서비스를 사용하여 중요한 데이터에 액세스하거나 개인 통신을 듣거나 서비스 거부(DoS) 및 MITM(Man-in-the-middle) 공격을 실행할 수 있습니다.

그러나 심각한 보안 위협에도 불구하고 이러한 네트워크 계층 취약성을 해결할 수 있는 자동화된 보안 옵션이 부족합니다. 65,000개가 넘는 TCP 포트와 그에 상응하는 수의 UDP 포트를 사용하여 포트를 열고 닫을 수 있는 간단한 방법이 없습니다.

포트 유지 관리를 위해서는 네트워크에 필수 서비스를 연결하기 위해 어떤 포트가 열려 있어야 하는지 아는 관리자가 필요합니다. 포트가 열려 있고 중요한 네트워크 서비스에 연결되어 있지 않다면 포트는 즉시 닫아야 합니다.

상대적으로 IP 주소가 적은 소규모 네트워크는 취약한 포트를 폐쇄하는 데 오랜 시간이 걸리지 않아야 합니다. 그러나 새로운 장치를 지속적으로 추가하는 기업 네트워크에서는 개방된 포트를 모니터링하고 관리하는 데 시간이 많이 소요될 수 있습니다.

시스템 관리자는 네트워크에서 정보를 교환하는 불필요한 열린 포트 및 서비스를 검색하고 닫아야 합니다.

3. 안전하지 않은 생태계 인터페이스(Insecure Ecosystem Interfaces)

"기기나 관련 구성 요소를 손상시킬 수 있는 기기 외부의 생태계에서 안전하지 않은 웹, 백엔드 API, 클라우드 또는 모바일 인터페이스. 일반적인 문제로는 인증/인가 부족, 암호화 부족 또는 취약, 입출력 필터링 부족 등이 있습니다."

많은 기업들이 백엔드 API에 연결할 때 IoT 시스템 보안 정책과 절차를 간과하는 경우가 많습니다. 생태계의 모든 장치와 센서, 그리고 이를 인터페이스하는 모든 장치를 이해하는 것이 중요합니다.

IoT 시스템은 대용량의 정보를 송수신하고 REST 기반의 API를 통해 디바이스/센서, 게이트웨이 디바이스, 백엔드 데이터베이스 간의 데이터 전송을 안전하게 보호합니다.

API가 강력한 확장성을 제공하지만, 이러한 동일한 API는 공격자가 여러분의 IoT 장치에 데이터를 연결하고 액세스할 수 있는 새로운 입구를 제공합니다. 해커는 올바르게 보안되지 않으면 라우터나 장치의 웹 인터페이스를 침해할 수 있습니다. 인증, 암호화 및 공개 키 인프라스트럭처(PKI)는 API가 미리 검증된 다른 장치 및 응용 프로그램과만 통신하도록 보장합니다.

또 다른 흔한 문제는 원격 관리 또는 원격 관리로 알려진 기능인 원격 웹 인터페이스에 연결된 라우터입니다. 관리자는 열린 포트 80(HTTP)과 443(HTTPS)을 확인함으로써 원격 관리를 위한 라우터의 가용성을 테스트할 수 있습니다. 이것은 관리자들이 이 기능을 안전하게 비활성화할 수 있게 해줍니다.

IoT 기기를 백엔드 시스템에 연결하는 네트워크도 안전해야 합니다.

IoT 애플리케이션은 표준, 장치, 통신 프로토콜이 다양하기 때문에 네트워크 보안이 더욱 어렵습니다. 설계 및 구현 시 IoT 네트워크 보안에 세심한 주의가 필요합니다.

개발자들은 기기 자체가 보호된다고 가정하지 않고 더 안전한 IoT 어플리케이션을 설계할 필요가 있습니다. 방화벽, 안티바이러스, 침입 탐지 및 방지 시스템은 안전한 IoT 네트워크를 제공해야 합니다.

IoT 기기들은 연결하고자 하는 기기의 신원을 확인하기 위해 서로 인증해야 합니다. 기기가 여러 기기에서 신원 확인을 수행하면 중앙 인증 기관이 도움이 될 수 있습니다.

또한 잘 훈련된 관리자가 정기적으로 패키지를 업데이트하고 오래된 서비스 및 패키지를 탐지 및 삭제하는 것이 필수적입니다.

4. 취약한 업데이트 메카니즘(Lack of a Secure Update Mechanism)

"IoT장치를 안전하게 업데이트하는 기능이 부족합니다. 부족한 점으로는 장치의 펌웨어 검증 부족, 안전한 전송 부족(전송 중 암호화 X), 롤백 방지 메카니즘 부족, 업데이트로 인한 보안 변경 알림 부족 등이 포함됩니다."

업데이트를 진행할때는 어떻게 수행되는지, 그리고 더욱 안전하게 만드는 방법을 고려해야합니다. 예를 들어 스마트 워치나 IOT센서와 같은 장치를 설계할 때 적절한 시기의 업데이트를 위한 업데이트 메카니즘 구축을 고려해야합니다.

정기적인 업데이트는 운영체제, 펌웨어 및 애플리케이션의 공격 벡터 수를 최소화합니다.

업데이트가 있는 경우 일부 장치에서는 사용자에게 업데이트가 있음을 알리지 않을 수 있습니다. 반대로, 다른 장치에서는 자동으로 업데이트를 설치할 수 있지만 업데이트가 적용되기 전에 하드웨어를 재부팅해야 할 수도 있습니다. 재부팅하면 업데이트를 적용하는 동안 시스템이 취약해지고 사용할 수 없게 됩니다.

각 업데이트의 원본과 무결성을 확인하고 적법한 공급업체의 적법한 애플리케이션만 사용하는것이 중요합니다.
일부 사용 가능한 업데이트 메커니즘에는 무결성 보장이 부족하여 MITM 공격 및 수정 공격에 추약합니다. 기계 대 기꼐 인증 방법을 사용하여 새 펌웨어의 이미지를 다운로드하기 전에 업그레이드 서버를 인증하여 보호 계층을 추가 할 수 있습니다.

5. 취약하거나 업데이트 되지않은 구성 요소 사용(Use of Insecure or Outdated Components)

"장치가 손상될 수 있는 사용 가치가 떨어지거나 안전하지 않은 소프트웨어 구성요소/라이브러리를 사용합니다. 여기에는 운영 체제 플랫폼의 안전하지 않은 사용자 지정, 손상된 공급망의 타사 소프트웨어 또는 하드웨어 구성요소 사용이 포함됩니다."

소프트웨어 종속성 또는 레거시 시스템의 취약성으로 인해 잠재적인 문제가 발생할 수 있습니다.

수백만 개의 IoT 스마트 기기에 영향을 미치는 중요한 취약점은 제조업체가 IoT 기기를 구축하기 위해 사용하는 타사 컴포넌트, 라이브러리, 프레임워크 등 오래되거나 보안이 되지 않은 소프트웨어를 사용하는 것입니다. 이 소프트웨어는 추적하기가 어렵고 제대로 알려지지 않거나 관리되지 않으면 사이버 공격에 취약합니다.

기존의 IoT 기기용 소프트웨어 업데이트 프로토콜을 사용하는 레거시 시스템은 사용자가 보안의 구멍을 찾고 패치하는 데 부담을 줍니다. 이러한 프로토콜은 다른 시스템이나 기기와 상호 작용하지 않고 방화벽 기기에서 실행됩니다. 결과적으로 사이버 보안 시스템은 IoT 기기를 알려지지 않은 엔드포인트로 간주하고, 따라서 IoT 기기의 특정 기기 유형, 위험 프로파일 및 예상 동작을 알지 못합니다.

이는 네트워크에 연결된 모든 엔드포인트에 걸쳐 가시성을 갖지만 IoT 기업 환경을 식별, 추적 및 보안할 수 있을 정도로 잘 확장할 수 없는 기존의 네트워크 기반 사이버 보안 시스템과 다릅니다.

IoT 자산은 이러한 고유한 위협의 실행을 방지하기 위해 보다 강력한 리스크 관리 관행이 필요합니다. PKI와 디지털 인증서는 기업 방화벽 내부와 외부의 연결을 보호하기 위해 그 어느 때보다 중요합니다. 각 개인, 기계 및 애플리케이션은 검증되고 신뢰할 수 있는 ID를 가져야 합니다.

최신 클라우드 기반 보안 인프라가 기존 네트워크 경계를 대체하기 때문에 기존 보안 시스템의 펌웨어나 소프트웨어에 대한 인식을 유지하는 것이 중요합니다.

6. 충분하지 않은 개인 정보 보호(Insufficient Privacy Protection)

"장치나 생태계에 저장된 사용자의 개인정보가 안전하지 않거나 부적절하게 사용되거나 무단으로 사용되는 경우"

개인이 개인 데이터 삭제를 요청할 때 제공자는 모든 제3자가 데이터를 삭제하도록 보장해야 합니다.

웹사이트와 달리 많은 IoT 기기들은 개인 정보 보호 정책을 보기 위한 쉬운 접근을 제공하지 않습니다. 이들은 종종 기기 설명서와 별도로 포함됩니다. 때로는 시스템을 열고 설치한 후에만 사용할 수 있거나 설명서 어딘가에 사용자가 제조업체의 웹사이트를 방문하도록 지시하는 안내문이 있을 수 있습니다.

운전자의 주의를 산만하게 하는 것과 같은 피해를 야기하는 것에 대한 합법적인 우려 때문에, IoT 기기는 사람들에게 그들이 데이터를 수집하고 있다는 것을 경고하는 훌륭한 방법을 가지고 있지 않습니다. 게다가, 일부 IoT 서비스 제공자들의 개인 정보 보호 정책 진술은 시스템 기능을 식별하기 어렵고 데이터 수집에 대해 불분명합니다.

사물인터넷 어플리케이션은 데이터 유출 취약성에도 취약합니다. 연구원들이 230개의 스마트싱스 어플리케이션을 분석했을 때, 그들은 138개의 어플리케이션이 인터넷이나 메시징 서비스를 통해 적어도 하나의 민감한 데이터를 노출하는 것을 발견했습니다. 저자들은 또한 분석된 어플리케이션의 절반이 디바이스 정보, 디바이스 상태, 사용자 입력, 인터넷 또는 메시징 서비스와 같은 적어도 세 가지의 다른 민감한 데이터 소스를 유출한다는 것을 보여주었습니다.

7. 안전하지 않은 데이터 전송 및 저장(Insecure Data Transfer and Storage)

"휴게소, 운송 중 또는 처리 중 등 생태계 내 어디서나 중요한 데이터를 암호화하거나 액세스 제어할 수 없습니다."

네트워크 및 통신 계층은 모든 IoT 애플리케이션 및 구현에서 중심 역할을 수행하여 서로 다른 계층 간의 정보 공유를 용이하게 하고 IoT 디바이스 간의 실시간 상호 작용을 통해 가치를 창출합니다.

IoT 애플리케이션의 주요 특징 중 하나는 IoT 디바이스, 네트워크, 네트워크 및 네트워크, 그리고 고수준의 정보 처리 인프라(예를 들어, 클라우드, 데이터 센터 등) 간에 정보를 전송하는 것입니다.

그러나 네트워크를 통해 이동하는 스마트 기기가 수집한 데이터를 손상시키거나 새로운 위치에 저장할 가능성이 증가하고 있습니다. 예를 들어, MITM 공격은 잘못된 키 교환 관행을 악용하고 악성 기기가 생태계를 통과하는 모든 정보를 가로챌 수 있도록 합니다.

대부분의 IT 팀은 네트워크 액세스 제어 프로토콜을 사용하여 동적으로 온보드 IT 장치를 설계하지만 이 기능을 IoT 자산으로 확장하지는 않습니다.

클라우드 기반의 통신과 데이터 스토리지가 계속해서 성장함에 따라, 더 많은 데이터가 클라우드와 IoT 컴퓨터로 흘러갑니다. 고객들은 그들의 데이터가 전송되는 동안 안전하기를 기대합니다.

오늘날 사물인터넷 데이터 전송 및 저장 모범 사례에서는 암호화된 사물인터넷 기기 통신을 위해 DTLS 프로토콜을 통해 안전한 공개 키 암호화를 요구합니다. 공개 키 암호화는 하드 코드화된 비밀이 아닌 개인 및 공개 암호화 키에 의존하는 강력한 암호화 방법입니다.

여러 IoT 보안 솔루션은 DTLS, PKI 및 차세대 하드웨어 보안과의 통합을 제공하여 장치 ID, 권한 및 위험 프로파일을 관리합니다.

이동 중 데이터 통신 보안은 일반적인 PKI에서 사용되는 신뢰 체인 모델에 의해 달성됩니다. PKI 인증서는 가장 일반적인 암호화 및 인증을 가지며 HTTPS 인터넷 프로토콜에서 가장 일반적으로 사용됩니다.

인증된 당사자의 신원에 대한 완전한 유효성을 인증하는 인증기관은 각 디지털 인증서를 발급해야 합니다. 데이터 토큰화는 공인된 장치만이 해독할 수 있는 민감한 암호화된 데이터를 보호할 수 있습니다.

8. 기기 관리의 부족함(Lack of Device Management)

"자산 관리, 업데이트 관리, 안전한 삭제, 시스템 모니터링, 대응 기능 등 프로덕션에 배포된 장치에 대한 보안 지원이 부족합니다."

IoT의 가장 중요한 안전 위험 및 과제 중 하나는 모든 장치를 관리하고 경계를 폐쇠하는 것입니다.

그러나 악성 장치나 위조된 악성 IoT 장치는 인증업이 안전한 네트워크에 접근 합니다. 악성 장치는 원래 장치를 그룹 구성원으로 대체하거나 통합하여 민감한 정보를 수집하거나 변경합니다. 이러한 장치는 네트워크 경계를 무너뜨립니다.

장치 관리는 다른 IT 자산광리의

9. 안전하지 않은 기본 설정(Insecure Settings by Default)

"안전하지 않은 기본 설정으로 제공되는 장치나 시스템은 운영자가 구성을 수정하는 것을 제한함으로써 시스템을 보다 안전하게 만들 수 있는 기능이 부족합니다."

장치 온보드는 제한된 IoT 생태계에 새로운 장치가 추가될 때 발생합니다. 새로운 장치의 온보드 단계에서 도청이 발생할 수 있으며, 여기서 해커는 제한된 네트워크 내에서 통신을 설정하는 데 사용되는 비밀 키를 가로챌 수 있습니다.

해커들은 IoT 기기의 가장 깊은 계층인 물리적 마더보드에서 시작할 수 있습니다. JTAG UART, I2C, SPI와 같은 하드웨어 디버그 포트 또는 통신 포트는 거기에서 찾을 수 있습니다. 거기에서, 그들은 하드 코드화된 비밀번호, 숨겨진 뒷문, 그리고 그들의 버림받은 펌웨어의 취약점들을 검색할 수 있습니다.

장치에 응용 프로그램을 설정하려면 필요한 권한을 검토하고 이 응용 프로그램에 대한 액세스를 제한합니다. 설정, 자격 증명, 펌웨어 버전 및 최근 패치를 기록해야 합니다. 이 단계는 사용자가 어떤 보안 조치를 취해야 하는지 평가하고 어떤 장치를 교체하거나 업데이트해야 하는지 식별하는 데 도움이 될 수 있습니다.

방화벽 라우터 활성화, WPS 비활성화, WPA2 보안 프로토콜 활성화, 강력한 Wi-Fi 암호 사용 등이 바로 이러한 방식들 중 일부입니다. 또한 라우터에 VPN(Virtual Private Networking)을 설치하여 ISP를 통한 모든 트래픽을 암호화할 수 있습니다.

10. 물리적 보안의 부족(Lack of Physical Hardening)

"물리적 보안 조치가 부족하여 잠재적인 공격자가 향후 원격 공격에 도움이 될 수 있는 민감한 정보를 얻거나 장치를 로컬로 제어할 수 있습니다."

IoT 컴퓨팅은 어디에나 있기 때문에 장치는 일반적으로 안전한 위치에 유지되지 않고 작업을 수행하기 위해 현장에 노출되어야 합니다. 감시가 없으면 악의적인 행위자가 장치를 조작하거나 액세스할 수 있습니다.

특히, IoT 기기들은 위협에 대응하기 위한 필수적인 내장 보안이 부족하기 때문에 취약합니다. 우리의 전화, 노트북, 개인용 컴퓨터와 달리, 많은 IoT 기기들은 무인으로 작동하기 때문에, 범죄자들이 기기를 조작하고 탐지되지 않는 것을 더 쉽게 만듭니다.

보안 프로토콜은 네트워크를 통해 전송되는 동안에는 데이터를 보호하지만 장치에 저장되는 동안에는 데이터를 보호하지 않습니다. 도난당하거나 폐기된 장비에서 복구된 데이터로 인해 대규모 데이터 침해가 발생했습니다.

암호화가 부족하면 해커는 각 장치의 파일 시스템을 변경할 수 있습니다. 엔지니어는 장치에 중요한 데이터가 저장되어 있어야 합니다.

UART(Universal Asynchronous Receiver Transmitter)에 무제한으로 액세스할 수 있는 소비자 및 산업용 제어 시스템 모두에 상당한 하드웨어 취약성이 있으며 이를 통해 장치 부팅 시퀀스를 변경할 수 있습니다. 해커는 부팅 시퀀스를 수정하여 장치에 대한 낮은 수준의 액세스를 얻고 로그인 정보를 추출할 수 있습니다.

단일 공격자가 시스템의 IT 요소와 OT 요소가 서로 상호 작용하는 것을 막을 수 있습니다. 물리 계층의 방해 및 변조는 센서가 화재, 홍수 및 예기치 않은 움직임과 같은 위험을 감지하지 못하게 할 수 있습니다.

하드웨어가 조작, 물리적 액세스, 조작 및 방해로부터 안전한지 확인합니다.

강력한 IoT 하드웨어 보안을 달성하는 한 가지 방법은 신뢰할 수 있는 플랫폼 모듈(TPM)과 신뢰할 수 있는 실행 환경(TEE)에 키를 저장하는 것입니다. TPM은 본질적으로 CPU 근처의 IoT 장치에 설치된 칩입니다. 보안 키를 생성하고 저장하고 데이터를 저장하는 암호화 작업 및 기타 관련 작업에 주로 사용됩니다. 디스크 암호화 및 암호 보호 플랫폼의 무결성을 보장할 수 있습니다.

2018년 이후 업데이트 되지 않는거같습니다. ㅠㅜ


참조 사이트

profile
The day⋯ is doomed⋯. Thanks to⋯ the Rowdyruff Boys⋯.
post-custom-banner

0개의 댓글