좋은 개발자가 되기 위해 알아야 할 Threat Modeling

📌 Threat Modeling이란? 시스템에 존재하는 리스크와 Threat을 찾고 솔루션을 마련하는 것. Threat Modeling할 때 솔루션을 먼저 생각하려는 자세는 버리고 최대한 많은 리스크를 찾는 데 집중해야 한다. 📌 Threat Modeling은 언제 해야 할까? 개발자가 새로운 시스템을 설계할 때 해야 한다. 약 90% 정도 설계가 완료되었을 때 Threat Modeling을 해야 한다. 설계 단계에서 Threat Modeling을 하는 게 중요한 이유는 다음과 같다. 시스템이 설계되고 다 만들어진 후 Threat Modeling을 하고 보안 문제때문에 설계 구조를 바꿔야 하는 경우 재설계하고 고치는 데 많은 엔지니어링 리소스와 시간이 걸린다. 📌 Threat Modeling을 해야 하는 이유는? SAS와 같은 자동 보안 스캔 도구는 아주 기본적인 보안 리스크를 캐치한다. 자동 보안 도구는 설계 결함을 찾아주지만 “Broken Access Control”과 같은 비지니스 결함을 찾지 못한다. 뿐만 아니라 서비스 거부 공격(Denial of Service)는 기존 자동 도구나 정적 분석으로 발견될 수 없다. 📌 Threat Modeling 하는 법 시스템 설계할 때 만든 설계 다이어그램과 데이터 순서도(Data Flow Diagram)를 보안 엔지니어나 SRE와 함께 리뷰한다. 보안 엔지니어는 자신이 가진 전문 지식으로 통찰력을 제공할 수 있지만 궁극적으로 소프트웨어 개발자가 Threat Modeling을 적고 검토해야 한다. 왜냐하면 개발자는 본인이 설계한 시스템이 어떻게 작동하는지 정확하게 알지만 보안 엔지니어는 잘 알지 못한다. 개발자가 Threat Modeling을 할 수 있도록 훈련시키면 더 효율적이다. Twilio와 같은 다양한 테크 회사는 모든 개발자가 Threat Modeling을 할 수 있도록 트레이닝 프로그램을 제공한다. 그리고 Threat Modeling을 잘하는 시니어 엔지니어 미팅에 참여해서 그들이 Threat Modeling하는 법을 유심히 관찰하자. 여러 팀의 Threat Modeling을 검토해봤습니다. Threat Modeling을 배우면 좋은 점은 시스템의 큰그림을 볼 수 있는 힘을 기를 수 있습니다. 빅픽쳐 보는 건 테크 리더에게 필요한 가장 중요한 스킬이며, 새롭고 복잡한 시스템을 설계할 때에도 많은 도움이 됩니다. 클라우드 보안에 관심 있다면 아래 팟캐스트 한 번 들어보세요.

HOW TO Threat Model Digital Applications in Cloud

Spotify

HOW TO Threat Model Digital Applications in Cloud

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 12월 18일 오전 12:06

 • 

저장 43조회 5,431

댓글 0