사물 인터넷 기술
LDRA의 Mark Pitchford
보안은 IoT(사물 인터넷)의 광범위한 임베디드 시스템에 대한 최우선 관심사입니다. LDRA의 Mark Pitchford가 침투하면 전력망, 발전, 제조, 자동차 시스템, 의료 기기, 건물 관리, 가스 펌프, 토스터 등에 묻힌 시스템이 심각한 위험에 빠질 수 있습니다. 보고합니다.
다행스럽게도 보안을 통해 "1온스의 예방은 1파운드의 치료 가치가 있다"는 오래된 격언은 확실히 사실이며 훨씬 더 새로운 "좌파 이동" 유행어의 기초입니다! 엔지니어링 예측은 나중에 반응 테스트보다 저렴한 비용으로 보안 시스템을 구축하는 데 도움이 됩니다. 사실 보안 소프트웨어를 구축하는 것은 기능적으로 안전한 애플리케이션을 구축하는 것과 많은 공통점이 있기 때문에 보안 소프트웨어 개발은 기능적 안전 프로세스를 따르는 것에서 시작됩니다.
고품질 코드를 생성하고 임베디드 시스템의 보안을 개선하는 데 도움이 되는 다음 모범 사례를 고려하십시오.
기존의 보안 코드 검증은 대체로 반응적입니다. 코드는 비교적 느슨한 지침에 따라 개발된 다음 취약점을 식별하기 위해 테스트됩니다. 애자일 개발을 사용하든 기존 개발 수명 주기 모델을 사용하든 기본 제공 보안에 대한 보다 사전 예방적 접근 방식이 있습니다.
<노스크립트>기존 개발에서는 요구 사항이 설계, 코딩(모델을 통해) 및 테스트로 흐릅니다. 애자일 개발을 사용하면 요구 사항, 디자인, 코드 및 테스트의 고유한 루프가 있는 각 계층에서 내부에서 외부로 요구 사항이 반복적으로 구축됩니다. 어느 방법을 사용하든 보안 요구 사항이 개발 프로세스의 필수적인 부분이 되도록 하면 마지막에 단순히 취약점을 찾는 것보다 훨씬 더 만족스러운 결과를 얻을 수 있습니다.
대부분의 기능 안전 표준은 요구 사항에서 설계, 코드 및 테스트에 이르는 모든 개발 단계 사이의 개발 단계 사이에 완전하고 철저한 적용 범위에 대한 양방향 추적 가능성 확인의 증거를 요구합니다. 이러한 투명성을 통해 요구 사항 변경 또는 실패한 테스트 사례의 영향을 영향 분석으로 평가한 다음 해결할 수 있습니다.
적절한 표준을 지속적으로 준수한다는 증거를 제시하기 위해 인공물을 자동으로 다시 생성할 수 있습니다. 보안이 가장 중요한 경우 양방향 추적 기능을 통해 중복 코드나 지정되지 않은 기능이 없고 여기에는 백도어 방법이 포함됩니다. 이러한 이점은 보안 시스템을 구축할 수 있는 능력을 높이기 위한 체계적인 개발의 가치를 강조합니다.
C 또는 C++로 개발할 때 소프트웨어 결함의 약 80%는 언어 구성의 20%를 잘못 사용했기 때문일 수 있습니다. 언어 하위 집합은 안전하지 않은 구성의 사용을 방지하거나 플래그를 지정하여 안전과 보안을 모두 향상합니다. 두 가지 인기 있는 코딩 표준인 MISRA C와 Carnegie Mellon SEI(Software Engineering Institute) CERT C는 개발자가 보안 코드를 생성하는 데 도움을 줍니다.
MISRA C 또는 CERT C를 적용하면 둘 다 적용되지 않은 경우보다 더 안전한 코드가 생성됩니다. 그러나 수동 프로세스가 복잡하고 오류가 발생하기 쉽기 때문에 이러한 지침을 수동으로 적용하려면 시간, 노력, 비용 및 아이러니하게도 품질 대가를 치러야 합니다. 비용을 줄이고 생산성을 향상시키려면 개발 조직에서 규정 준수 지원을 자동화해야 합니다.
보안 표준은 보안 개발 솔루션의 또 다른 부분을 제공하지만 보안 표준은 수십 년 동안 사용된 기능 안전 표준만큼 잘 개발되지 않고 시간 테스트를 거쳤습니다. 그러나 이는 산업별 보안 표준이 개발됨에 따라 변경될 것입니다.
<노스크립트>예를 들어, 자동차 산업은 현재 사이버 공격의 표적이 되는 커넥티드 차량 문제를 완화하기 위해 ISO/SAE 21434 "도로 차량 사이버 보안 엔지니어링"을 개발하고 있습니다. SAE J3061 "Cyber-Physical Vehicle Systems를 위한 사이버 보안 가이드북"의 고급 지침 원칙보다 더 자세한 내용이 포함된 실질적인 문서에 대한 약속은 ISO/SAE 21434를 널리 기대하게 만듭니다.
소프트웨어 개발 프로세스의 각 단계에서 자동화는 임베디드 시스템의 취약성을 줄이고 엄청난 시간과 비용을 절약합니다. 개발자는 요구 사항 도구(예:IBM Rational DOORS)에 연결하고 시뮬레이션 및 모델링 구성을 가져오고 이를 코드에 대해 테스트하여 요구 사항이 충족되었는지 여부, 누락된 항목 및 그렇지 않은 데드 코드가 있는 위치를 한 눈에 확인할 수 있습니다. 요구 사항을 충족합니다.
정적 분석 엔진은 코딩 표준과 기능 안전 및 보안 표준의 준수 여부를 확인할 수 있습니다. 자동화 및 보안 설계를 통해 침투 테스트와 같은 사후 테스트가 자리를 잡았지만 그 역할은 코드가 안전한지 확인하지 않고 코드가 안전한지 확인하는 것입니다.
보안 임베디드 소프트웨어는 보안 플랫폼에서 실행되어야 하므로 애플리케이션이 공격을 받을 경우 다른 소프트웨어 구성 요소와 격리된 자체 사일로에서 실행됩니다("도메인 분리"). 자동화된 소프트웨어 테스트 및 검증 도구는 요구 사항 사양에서 설계 및 모델링, 코딩 및 문서화에 이르는 공통 개발 환경에 통합됩니다. 이를 통해 개발자는 친숙한 환경에서 시스템에 이미 지정된 도구를 사용하여 보안 시스템을 구축할 수 있습니다.
이 6가지 프로세스를 따르면 안전하고 신뢰할 수 있는 IoT용 임베디드 소프트웨어 개발에 대한 응집력 있는 접근 방식을 제공합니다.
저자는 LDRA의 Mark Pitchford입니다.
자세한 내용을 보려면 여기를 클릭하십시오:
사물 인터넷 기술
기술의 발전으로 산업용 사물 인터넷(IIoT)을 보다 비용 효율적으로 배포할 수 있게 됨에 따라 기업은 새로운 센서 데이터를 기존 데이터 환경과 통합하기 위한 전략적 접근 방식을 공식화해야 합니다. IIoT는 공장의 사람과 시스템을 엔터프라이즈 수준의 사람과 시스템과 통합할 수 있습니다. 또한 사용자는 기술 및 경제적 제한을 줄이면서 자동화된 시스템에서 최대한의 가치를 얻을 수 있습니다. IIoT의 성공적인 배포를 보장하기 위해 조직은 내부 및 외부 리소스는 물론 기능 라인 전반에 걸쳐 협업 작업 프로세스를 지원하는 프레임워크를
제품 관리자는 사물 인터넷 보안에 중요한 역할을 합니다. 불행히도 우리 업무의 이 부분은 적절한 수준의 관심을 받지 못하고 있습니다. 사물 인터넷 보안은 너무 자주 나중에 생각하거나 다른 팀의 책임으로 간주됩니다. 사람들이 우리 제품을 신뢰하기 시작하려면 이러한 추세를 바꿔야 합니다. 저는 실리콘 밸리에서 열린 Product School의 ProductCon 2018 컨퍼런스의 일환으로 이 강연을 했습니다. 제 목표는 종종 간과되는 주제인 제품 보호로 회의 의제를 보완하는 것이었습니다. 제품 보안에 대해 배우기 위해 전문가