316
3
부
시스템의 구현
성할 수 있고
SRE
도 신뢰성 이슈를 놓칠 수 있다. 안전하고 신뢰성 있는 시스템을 구축하는 데
필요한 수많은 고려사항과 절충을 동시에 염두에 두는 것은 어려운 일이다. 특히 여러분이 소
프트웨어를 제작하는 책임을 지고 있다면 더욱 그렇다.
안전하고 신뢰성 있는 코드 작성을 개발자에게만 의존하는 것보다는 코드와 소프트웨어 설계
의 검토에
SRE
와 보안 전문가의 도움을 받는 편이 좋다. 물론 이 방법도 완벽하지는 않다. 사
람이 코드를 검토한다고 해서 모든 이슈를 찾아낼 수는 없으며 어떤 검토자도 잠재적인 공격
가능성을 내포한 보안 문제를
모두
찾아낼 수는 없다. 게다가 검토자는 자신의 경험이나 관심에
편향될 수밖에 없다. 예를 들어 검토자는 본질적으로 새로운 종류의 공격, 고수준 설계 이슈 또
는 암호화 프로토콜의 흥미로운 결함 등에 관심이 끌릴 수밖에 없다. 반면 수백 개의
HTML
템
플릿에서 크로스 사이트 스크립팅(
XSS
) 결함을 찾거나 애플리케이션의 모든
RPC
호출의 에
러 처리 로직을 검사하는 것에는 흥미를 덜 느끼기 마련이다.
코드 검토로 모든 취약점을 찾아낼 수는 없지만 다른 장점이 있다. 강력한 검토 문화는 개발자
가 보안 및 신뢰성 속성을 쉽게 검토할 수 있는 방법으로 코드를 작성하도록 장려한다. 이번 장
에서는 검토자가 명확하게 보안 및 신뢰성 속성을 확인할 수 있고 개발 절차에 자동화를 통합
하기 위한 전략을 설명한다. 이 전략을 도입하면 팀이 다른 이슈에 집중하고 보안과 신뢰성 문
화를 구축할 ...