246
3
부
방어
인(영주 )을 돕는 건물이 연결되어 있으며 이는 애플리케이션의 의존성과 통합을 나타낸다. 성
은 표면이 넓고 왕국을 둘러싸고 있어 모든 잠재적 진입점을 최대로 방어하는 것은 불가능하므
로 전시에는 우선순위를 세우는 것이 중요하다.
웹 애플리케이션 보안의 세계에서 그와 같이 우선순위를 세우고 취약점을 관리하는 것이 대
기업의 보안 기술자 또는 작은 회사의 일반적인 소프트웨어 공학자들이 종종 하는 일이다. 이
러한 전문가들은 방어를 책임지는 역할을 한다. 소프트웨어 공학 기술과 정찰 및 해킹 기술을
조합해 공격 성공률을 낮추고 잠재적 피해를 완화하며 현재 또는 과거에 발생한 피해를 관리
한다.
17.1
방어적 소프트웨어 아키텍처
안전한 웹 애플리케이션을 작성하는 첫걸음은 소프트웨어를 실제로 작성하기 전부터 시작된
다. 이것은 아키텍처 단계다. 새 제품이나 기능의 아키텍처 단계에서부터 애플리케이션에 흐르
는 데이터에 깊은 관심을 쏟아야 한다.
데이터를
A
지점에서
B
지점으로 효율적으로 흐르게 하는 것이 소프트웨어 공학의 거의 모든
것이라고 할 수 있을 것이다. 마찬가지로
A
지점에서
B
지점으로 전달되는 데이터를 항상(전
송 전후와 전송 도중에 ) 효율적으로 지키는 것이 보안 공학의 거의 전부라고 할 수 있다.
소프트웨어를 실제로 작성하고 배포하기 전에 중요한 아키텍처상의 보안 결함을 찾아 해결하
는 것이 훨씬 쉽다. 애플리케이션이 사용자에게 전달된 후 보안의 부족한 점을 채우기 위해 아
키텍처를 변경하는 데는 제한이 따르는 경우가 ...