좋은 전자 레인지가 나쁜 갈 때 : 임베디드 시스템 보안이 개발자를위한 다음 보스 전투인 이유

게시됨 Aug 30, 2021
작성자: 마티아스 마두, Ph.
사례 연구

좋은 전자 레인지가 나쁜 갈 때 : 임베디드 시스템 보안이 개발자를위한 다음 보스 전투인 이유

게시됨 Aug 30, 2021
작성자: 마티아스 마두, Ph.
리소스 보기
리소스 보기

불량 AI와 로봇에 대한 대중 문화 참조가 많이 있으며, 가전 제품이 인간 주인을 켜고 있습니다. 공상 과학 소설의 재미와 환상에 크게 가득차 있지만 IoT와 연결된 장치가 가정에서 더 널리 퍼지기 때문에 사이버 보안및 안전에 관한 대화도 마찬가지입니다. 소프트웨어는 우리 주변에 있으며, 우리에게 많은 혁신과 편의를 제공하는 모든 영리한 일을 하기 위해 코드 라인에 얼마나 의존하고 있는지 잊어 버리는 것은 매우 쉽습니다. 웹 기반 소프트웨어, API 및 모바일 장치와 마찬가지로 공격자가 야생에서 발견되면 임베디드 시스템의 취약한 코드를 악용할 수 있습니다. 

마이크로파 군대가 사이버 공격의 결과로 인류를 노예로 만드는 것은 불가능하지만(테슬라 봇은 약간 우려스런) 악의적인 사이버 이벤트가 여전히 가능합니다. 일부 자동차, 비행기 및 의료 기기는 복잡한 임베디드 시스템 코드에 의존하여 주요 작업을 수행하며 이러한 물체가 손상될 가능성은 놀라운 것일 뿐만 아니라 잠재적으로 생명을 위협할 수 있습니다.

다른 모든 유형의 소프트웨어와 마찬가지로 개발자는 생성 단계 의 시작 부분에서 코드를 가장 먼저 만질 수 있습니다. 그리고 다른 모든 유형의 소프트웨어와 마찬가지로, 이것은 제품이 생방송되기 전에 들키지 않을 수 있는 교활하고 일반적인 취약점의 번식지가 될 수 있습니다. 

개발자는 보안 전문가가 아니며, 어떤 회사도 그 역할을 할 것으로 예상해서는 안되지만, 자신과 관련된 위협을 해결하기 위해 훨씬 더 강력한 무기를 장착할 수 있습니다. 일반적으로 C 및 C++로 작성된 임베디드 시스템은 기술 요구가 계속 진화함에 따라 더 자주 사용되며 이 환경에서 는 개발자를 위한 특수 보안 교육이 필수적입니다. 

폭발 공기 튀김, 불량 차량 ... 우리는 오리를 앉아 있습니까?

안전을 위해 모든 보안 개발에 대한 몇 가지 표준 및 규정이 있지만 모든 유형의 소프트웨어 보안을 위해 훨씬 더 정확하고 의미 있는 진전을 만들어야 합니다. 누군가가 에어 프라이어를 해킹하여 발생할 수있는 문제를 생각하기가 훨씬 멀어 보일 수 있지만 원격 코드 실행 공격 (위협 배우가 위험한 수준으로 온도를 올릴 수 있도록)의 형태로 일어났습니다.

특히 차량은 특히 복잡하며, 여러 개의 임베디드 시스템이 탑재되어 있으며, 각각 마이크로 기능을 담당합니다. 자동 와이퍼에서 엔진 및 제동 기능에 이르기까지 모든 것을 제공합니다. WI-Fi, Bluetooth 및 GPS와 같은 통신 기술의 스택과 얽혀 있는 커넥티드 차량은 여러 공격 벡터에 노출된 복잡한 디지털 인프라를 나타냅니다. 그리고 2023년까지 전 세계적으로 7,630만 대의 커넥티드 차량이 도로를 강타할 것으로 예상되는데, 이는 진정한 안전을 위해 마련될 방어 기반의 모놀리스를 나타냅니다.

MISRA는 임베디드 시스템의 맥락에서 코드 안전, 보안, 휴대성 및 신뢰성을 용이하게 하기 위한 지침을 개발한 임베디드 시스템 위협에 맞서 싸우는 핵심 조직입니다. 이 지침은 모든 회사가 임베디드 시스템 프로젝트에서 노력해야 하는 표준의 북스타입니다.

그러나 이 골드 표준을 준수하는 코드를 만들고 실행하려면 도구에서 보안 인식은 물론 자신있는 임베디드 시스템 엔지니어가 필요합니다. 

임베디드 시스템 보안 업스킬링이 그렇게 구체적인 이유는 무엇입니까?

C 와 C ++ 프로그래밍 언어는 오늘날의 표준에 의해 노인이지만 널리 사용되고 있습니다. 임베디드 시스템 코드베이스의 작동 코어를 형성하며 임베디드 C/C++는 연결된 장치 세계의 일부로 반짝이는 현대 생활을 즐깁니다.

이러한 언어는 오히려 고대의 뿌리를 가지고 있음에도 불구하고 - 사출 결함 및 버퍼 오버플로와 같은 일반적인 문제면에서 유사한 취약점 동작을 표시 - 개발자가 임베디드 시스템에서 보안 버그를 완화하는 데 진정으로 성공을 거두기 위해, 그들은 그들이 작업 하는 환경을 모방 하는 코드와 실습을 얻을 해야 합니다. 일반 보안 관행에서 일반 C 교육은 단순히 여분의 시간과 관리가 임베디드 C 컨텍스트에서 작업하는 것처럼 강력하고 기억에 남는되지 않습니다.

현대 차량에 12개에서 100개 이상의 임베디드 시스템을 갖춘 개발자는 IDE에서 찾아야 할 사항과 이를 해결하는 방법에 대한 정밀 교육을 받아야 합니다.

비즈니스 논리 결함은 임베디드 C/C++에서 어떤 모습일까요? 살펴보고 프로처럼 식별하고 수정할 수 있는지 확인하십시오.

1층에서 임베디드 시스템을 보호하는 것은 모든 사람의 책임입니다.

많은 조직에서 현상 유지는 개발 속도가 적어도 개발자의 책임에 관해서는 보안을 능가한다는 것입니다. 안전한 코드를 생성하는 능력에 대해 거의 평가되지 않지만 멋진 기능의 빠른 개발은 금본위제입니다. 소프트웨어에 대한 수요는 증가할 뿐이지만, 이것은 취약점과의 전쟁에서 패배한 문화와 그들이 허용하는 후속 사이버 공격에 대비한 문화입니다. 

개발자가 교육을 받지 않은 경우, 그것은 그들의 잘못이 아니며 AppSec 팀의 누군가가 전체 개발 커뮤니티에 대한 upskilling 프로그램을 사용할 수 있는 권리(평가 가능한) 프로그램을 추천하여 채우는 데 도움을 줄 필요가 있는 구멍입니다. 소프트웨어 개발 프로젝트의 시작 부분에서 보안은 모든 사람, 특히 개발자가 자신의 역할을 수행해야 하는 것을 감안할 때 가장 중요한 고려 사항이 되어야 합니다. 

임베디드 시스템 보안 문제로 실습

버퍼 오버플로, 사출 결함 및 비즈니스 논리 버그는 모두 임베디드 시스템 개발의 일반적인 함정입니다. 단일 차량이나 장치에 마이크로 컨트롤러의 미로에 깊이 묻혀있을 때, 그것은 보안 관점에서 재앙을 철자 할 수 있습니다.

버퍼 오버플로는 특히 널리 퍼져 있으며, 이전에 우리가 이전에 이야기한 에어 프라이어 (원격 코드 실행 허용)를 어떻게 손상시키는지 에 대해 자세히 알아가고 싶다면 CVE-2020-28592에 대한이 보고서를 확인하십시오.

이제 버퍼 오버플로 취약점을 실제 임베디드 C/C++ 코드에서 실습할 시간입니다. 이 문제를 재생하여 이 교활한 버그로 이어지는 잘못된 코딩 패턴을 찾고, 식별하고, 수정할 수 있는지 확인합니다.

버퍼 오버플로 기록을 만듭니다.



어떻게 하셨나요? 임베디드 시스템 보안에 대한 정밀하고 효과적인 교육을 위해 www.securecodewarrior.com 방문하십시오.

리소스 보기
리소스 보기

저자

마티아스 마두, Ph.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

좋은 전자 레인지가 나쁜 갈 때 : 임베디드 시스템 보안이 개발자를위한 다음 보스 전투인 이유

게시됨 Aug 30, 2021
마티아스 마두, Ph.

불량 AI와 로봇에 대한 대중 문화 참조가 많이 있으며, 가전 제품이 인간 주인을 켜고 있습니다. 공상 과학 소설의 재미와 환상에 크게 가득차 있지만 IoT와 연결된 장치가 가정에서 더 널리 퍼지기 때문에 사이버 보안및 안전에 관한 대화도 마찬가지입니다. 소프트웨어는 우리 주변에 있으며, 우리에게 많은 혁신과 편의를 제공하는 모든 영리한 일을 하기 위해 코드 라인에 얼마나 의존하고 있는지 잊어 버리는 것은 매우 쉽습니다. 웹 기반 소프트웨어, API 및 모바일 장치와 마찬가지로 공격자가 야생에서 발견되면 임베디드 시스템의 취약한 코드를 악용할 수 있습니다. 

마이크로파 군대가 사이버 공격의 결과로 인류를 노예로 만드는 것은 불가능하지만(테슬라 봇은 약간 우려스런) 악의적인 사이버 이벤트가 여전히 가능합니다. 일부 자동차, 비행기 및 의료 기기는 복잡한 임베디드 시스템 코드에 의존하여 주요 작업을 수행하며 이러한 물체가 손상될 가능성은 놀라운 것일 뿐만 아니라 잠재적으로 생명을 위협할 수 있습니다.

다른 모든 유형의 소프트웨어와 마찬가지로 개발자는 생성 단계 의 시작 부분에서 코드를 가장 먼저 만질 수 있습니다. 그리고 다른 모든 유형의 소프트웨어와 마찬가지로, 이것은 제품이 생방송되기 전에 들키지 않을 수 있는 교활하고 일반적인 취약점의 번식지가 될 수 있습니다. 

개발자는 보안 전문가가 아니며, 어떤 회사도 그 역할을 할 것으로 예상해서는 안되지만, 자신과 관련된 위협을 해결하기 위해 훨씬 더 강력한 무기를 장착할 수 있습니다. 일반적으로 C 및 C++로 작성된 임베디드 시스템은 기술 요구가 계속 진화함에 따라 더 자주 사용되며 이 환경에서 는 개발자를 위한 특수 보안 교육이 필수적입니다. 

폭발 공기 튀김, 불량 차량 ... 우리는 오리를 앉아 있습니까?

안전을 위해 모든 보안 개발에 대한 몇 가지 표준 및 규정이 있지만 모든 유형의 소프트웨어 보안을 위해 훨씬 더 정확하고 의미 있는 진전을 만들어야 합니다. 누군가가 에어 프라이어를 해킹하여 발생할 수있는 문제를 생각하기가 훨씬 멀어 보일 수 있지만 원격 코드 실행 공격 (위협 배우가 위험한 수준으로 온도를 올릴 수 있도록)의 형태로 일어났습니다.

특히 차량은 특히 복잡하며, 여러 개의 임베디드 시스템이 탑재되어 있으며, 각각 마이크로 기능을 담당합니다. 자동 와이퍼에서 엔진 및 제동 기능에 이르기까지 모든 것을 제공합니다. WI-Fi, Bluetooth 및 GPS와 같은 통신 기술의 스택과 얽혀 있는 커넥티드 차량은 여러 공격 벡터에 노출된 복잡한 디지털 인프라를 나타냅니다. 그리고 2023년까지 전 세계적으로 7,630만 대의 커넥티드 차량이 도로를 강타할 것으로 예상되는데, 이는 진정한 안전을 위해 마련될 방어 기반의 모놀리스를 나타냅니다.

MISRA는 임베디드 시스템의 맥락에서 코드 안전, 보안, 휴대성 및 신뢰성을 용이하게 하기 위한 지침을 개발한 임베디드 시스템 위협에 맞서 싸우는 핵심 조직입니다. 이 지침은 모든 회사가 임베디드 시스템 프로젝트에서 노력해야 하는 표준의 북스타입니다.

그러나 이 골드 표준을 준수하는 코드를 만들고 실행하려면 도구에서 보안 인식은 물론 자신있는 임베디드 시스템 엔지니어가 필요합니다. 

임베디드 시스템 보안 업스킬링이 그렇게 구체적인 이유는 무엇입니까?

C 와 C ++ 프로그래밍 언어는 오늘날의 표준에 의해 노인이지만 널리 사용되고 있습니다. 임베디드 시스템 코드베이스의 작동 코어를 형성하며 임베디드 C/C++는 연결된 장치 세계의 일부로 반짝이는 현대 생활을 즐깁니다.

이러한 언어는 오히려 고대의 뿌리를 가지고 있음에도 불구하고 - 사출 결함 및 버퍼 오버플로와 같은 일반적인 문제면에서 유사한 취약점 동작을 표시 - 개발자가 임베디드 시스템에서 보안 버그를 완화하는 데 진정으로 성공을 거두기 위해, 그들은 그들이 작업 하는 환경을 모방 하는 코드와 실습을 얻을 해야 합니다. 일반 보안 관행에서 일반 C 교육은 단순히 여분의 시간과 관리가 임베디드 C 컨텍스트에서 작업하는 것처럼 강력하고 기억에 남는되지 않습니다.

현대 차량에 12개에서 100개 이상의 임베디드 시스템을 갖춘 개발자는 IDE에서 찾아야 할 사항과 이를 해결하는 방법에 대한 정밀 교육을 받아야 합니다.

비즈니스 논리 결함은 임베디드 C/C++에서 어떤 모습일까요? 살펴보고 프로처럼 식별하고 수정할 수 있는지 확인하십시오.

1층에서 임베디드 시스템을 보호하는 것은 모든 사람의 책임입니다.

많은 조직에서 현상 유지는 개발 속도가 적어도 개발자의 책임에 관해서는 보안을 능가한다는 것입니다. 안전한 코드를 생성하는 능력에 대해 거의 평가되지 않지만 멋진 기능의 빠른 개발은 금본위제입니다. 소프트웨어에 대한 수요는 증가할 뿐이지만, 이것은 취약점과의 전쟁에서 패배한 문화와 그들이 허용하는 후속 사이버 공격에 대비한 문화입니다. 

개발자가 교육을 받지 않은 경우, 그것은 그들의 잘못이 아니며 AppSec 팀의 누군가가 전체 개발 커뮤니티에 대한 upskilling 프로그램을 사용할 수 있는 권리(평가 가능한) 프로그램을 추천하여 채우는 데 도움을 줄 필요가 있는 구멍입니다. 소프트웨어 개발 프로젝트의 시작 부분에서 보안은 모든 사람, 특히 개발자가 자신의 역할을 수행해야 하는 것을 감안할 때 가장 중요한 고려 사항이 되어야 합니다. 

임베디드 시스템 보안 문제로 실습

버퍼 오버플로, 사출 결함 및 비즈니스 논리 버그는 모두 임베디드 시스템 개발의 일반적인 함정입니다. 단일 차량이나 장치에 마이크로 컨트롤러의 미로에 깊이 묻혀있을 때, 그것은 보안 관점에서 재앙을 철자 할 수 있습니다.

버퍼 오버플로는 특히 널리 퍼져 있으며, 이전에 우리가 이전에 이야기한 에어 프라이어 (원격 코드 실행 허용)를 어떻게 손상시키는지 에 대해 자세히 알아가고 싶다면 CVE-2020-28592에 대한이 보고서를 확인하십시오.

이제 버퍼 오버플로 취약점을 실제 임베디드 C/C++ 코드에서 실습할 시간입니다. 이 문제를 재생하여 이 교활한 버그로 이어지는 잘못된 코딩 패턴을 찾고, 식별하고, 수정할 수 있는지 확인합니다.

버퍼 오버플로 기록을 만듭니다.



어떻게 하셨나요? 임베디드 시스템 보안에 대한 정밀하고 효과적인 교육을 위해 www.securecodewarrior.com 방문하십시오.

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

전송
양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.