
A Framework for Integrating Application Security into Software Engineering (FIASSE) using the Securable Software Engineering Model (SSEM)
참고: 이 저장소는 진행 중인 작업입니다. 기여를 환영합니다!
TL;DR: DOC를 읽어주세요. FIASSE 웹사이트를 탐색해보세요. 기여를 위해 GitHub Discussions를 방문하세요.
이 저장소는 OWASP 애플리케이션 보안을 소프트웨어 엔지니어링에 통합하기 위한 프레임워크(FIASSE)에 대한 리소스와 자료를 포함합니다. FIASSE(/feiz/로 발음, 'phase'처럼)는 개발자 중심의 원칙 기반 접근 방식을 통해 보안 가능한(securable) 소프트웨어를 구축하는 것을 장려합니다. 이는 보안이 개발과 마찬가지로 역동적이고 지속적인 프로세스임을 인식합니다. 또한 SSEM(Securable Software Engineering Model)을 공통 설계 언어로 도입하여, 확립된 소프트웨어 엔지니어링 용어를 사용해 보안을 소프트웨어 아키텍처, 설계 및 엔지니어링에 통합합니다. 코드 자체를 형성하는 원칙에 보안을 통합하는 것입니다. 이 프레임워크는 시간이 지나도 위협을 견디는 탄력적인 애플리케이션을 구축하는 것을 목표로 합니다.
개발자에게 권한을 부여하여 깊은 보안 전문 지식 없이도 보안 가능한 소프트웨어를 만들 수 있는 실용적인 지침을 제공하고, 보안 전문가가 자신의 보안 경험을 소프트웨어 엔지니어링에 효과적으로 통합할 수 있도록 안내하는 것입니다. FIASSE는 소프트웨어 엔지니어링 렌즈를 통해 이를 달성하며, 인지 부하를 줄이고 개발 팀과 보안 팀 간의 협업을 촉진합니다.
OWASP Top 10과 같은 보증 중심 프로젝트가 피해야 할 것(블록 리스트)을 강조하는 반면, OWASP FIASSE는 따라야 할 긍정적인 속성과 관행(허용 리스트)을 제공합니다. 이 접근 방식은 개발자가 익스플로잇 기술을 배우거나 취약점 중심 사고방식을 채택하도록 요구하는 대신, 기존 소프트웨어 엔지니어링 기술을 활용하여 보안 가능한 소프트웨어를 구축합니다. 익숙한 엔지니어링 원칙을 통해 실용적이고 안전한 코딩을 가능하게 하는 데 중점을 둡니다.
개발 프로세스 내에서 보안의 실질적인 역할을 명확히 정의함으로써, 이 프레임워크는 비즈니스 가치가 효과적으로 확보되도록 보장합니다. 이러한 방식으로 기대치를 설정함으로써, 보안 결함이 발견되어 나중에 수정이 필요할 가능성을 크게 줄입니다.
/docs 디렉토리의 문서를 검토하세요.이 저장소는 보안 가능한 소프트웨어를 안정적이고 탄력적이며 적응 가능한 시스템으로 정의합니다. 진정한 보안은 정적인 성취가 아닌 지속적인 프로세스임을 강조합니다. 보안을 잘 엔지니어링된 소프트웨어의 내재된 품질 집합으로 구성하는 SSEM(Securable Software Engineering Model)을 도입합니다. 이를 위해 유지보수성(Maintainability), 신뢰성(Trustworthiness), 그리고 탄력성(Resilience)을 포함한 신뢰성(Reliability)의 속성 범주를 제시합니다. FIASSE는 보안 관행을 가장 큰 영향을 미치는 개발 워크플로우에 통합할 것을 주장합니다. 이는 "사후 보안" 또는 "시프트 레프트(shift left)" 접근 방식에서 사전 예방적이고 협력적인 모델로 전환합니다. 제품 소유자, 개발자 및 보안 전문가가 설계의 초기 단계부터, 특히 보안 요구 사항 정의, 협력적 위협 모델링 및 승인 기준과 같은 활동을 통해 함께 작업한다는 아이디어입니다. 이는 코드 활동과 테스트에 대한 명확한 기대치를 설정합니다. 소프트웨어 엔지니어는 유연성과 통제의 균형에 대한 지침을 받습니다. 또한 보안 결정을 내리기 위한 명확한 모델도 제공받습니다. 궁극적으로 이는 모든 이해관계자가 더욱 견고하고 안정적이며 본질적으로 보안 가능한 시스템을 구축하는 데 기여할 수 있도록 지원합니다.
FIASSE는 개발자가 보안 전문가가 되거나 적대적 사고방식을 채택하도록 요구하지 않는다는 점에서 기존 접근 방식과 다릅니다. 이 접근 방식은 개발자의 인지 부하를 줄이면서도 보안 팀이 코드 및 소프트웨어 엔지니어링 프로세스의 특정 속성을 통해 자신의 우려 사항이 해결된다는 확신을 가질 수 있도록 보장하는 것을 목표로 합니다.
FIASSE는 개방적이고 접근하기 쉬우며 협력적이기를 지향합니다.
FIASSE 프로젝트의 초기 이정표:
추가 이정표는 프로젝트 팀과 함께 개발될 예정입니다. 커뮤니티 의견은 GitHub Discussions를 통해 환영합니다.
이 저장소는 FIASSE 웹사이트를 보완합니다.
OWASP FIASSE 프로젝트는 불안전한 소프트웨어를 제거하는 사명에 중점을 둔 비영리 조직인 OWASP 재단의 일부입니다. OWASP 재단은 FIASSE의 원칙과 일치하는 풍부한 리소스와 프레임워크를 제공합니다.
이 프레임워크는 보안 가능한 소프트웨어 엔지니어링에 중점을 두며 다른 OWASP 프로젝트로 보완됩니다:
OWASP는 또한 OWASP 모바일 애플리케이션 보안과 같은 보안 요구 사항 및 기능을 문서화하는 다양한 프로젝트를 호스팅합니다. 다양한 OWASP 리소스에 대한 포괄적인 참조 자료인 OWASP 개발자 가이드도 있습니다.
참조 요구 사항 및 보증 관행을 위한 또 다른 훌륭한 리소스는 다양한 보안 프레임워크를 수집하고 매핑하는 OpenCRE입니다.
NIST 안전한 소프트웨어 개발 프레임워크 (SSDF)는 안전한 소프트웨어 개발 관행을 구현하기 위한 다양한 측면을 나타내는 네 가지 단계를 정의합니다. 소프트웨어 개발 수명주기에 보안 통합을 강조함으로써 FIASSE의 원칙과 일치합니다.
NCSC의 소프트웨어 보안 행동 강령은 원하는 결과와 몇 가지 핵심 전략을 정의합니다. FIASSE 프레임워크는 보안 가능한 결과를 달성하기 위한 1차 후속 원칙과 전략에 중점을 두며, 개발 및 보증 팀이 비즈니스 전략과 일치하도록 설계되었습니다. SSEM은 원하는 결과를 생성하는 데 사용되는 속성을 지정하고, FIASSE 방법론은 이러한 속성을 소프트웨어 엔지니어링 관행에 구현하기 위한 실용적인 지침을 제공합니다.
카네기 멜론 대학의 CERT는 취약한 코드 패턴을 보여주는 "하지 말아야 할 것" 예제와 "해야 할 것" 예제를 모두 제공하는 언어 수준 규칙 집합입니다. FIASSE는 프로그래머가 보안 가능한 코드 뒤에 있는 "이유"를 이해하도록 돕는 원칙 기반 접근 방식을 제공하여 이러한 규칙을 보완합니다.
소프트웨어 팩토리 보안 프레임워크 (SF2)는 "보안 리더에게 비즈니스 결과를 개선하면서 보안 역량을 확장하기 위한 전략적 접근 방식을 제공합니다." 이는 FIASSE의 소프트웨어 엔지니어링 관행에 대한 초점을 보완하는 조직 수준의 프레임워크입니다.
문서와 예제를 개선하기 위한 기여를 환영합니다. 자세한 내용은 기여 지침을 참조하세요.
Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) - 자세한 내용은 LICENSE 파일을 참조하세요.
이 프로젝트는 OWASP 커뮤니티의 협력적 노력입니다. 소프트웨어 보안 개선에 귀중한 의견과 헌신을 제공한 모든 기여자에게 감사드립니다.
이 프로젝트에 참여한 기여자 목록이 있습니다. 초기 개념을 형성하고 아이디어를 레드팀 검증하는 데 도움을 준 일부 초기 기여자들이 있습니다.