Searching...
한국어
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Building Secure and Reliable Systems

Building Secure and Reliable Systems

Best Practices for Designing, Implementing, and Maintaining Systems
저자 Heather Adkins 2020 541 페이지
3.86
100+ 평점
듣기
Try Full Access for 7 Days
Unlock listening & more!
Continue

가지 주요 요점

1. 프레임워크는 애플리케이션 전반에 걸쳐 보안과 신뢰성을 강화합니다

프레임워크는 코드 재사용을 가능하게 합니다: 특정 기능이나 특징에 영향을 미치는 모든 보안 및 신뢰성 측면을 고려하는 대신, 개발자는 특정 빌딩 블록만 맞춤화하면 됩니다.

표준화된 보호. 프레임워크는 여러 애플리케이션에서 공통 보안 및 신뢰성 문제를 해결하는 일관된 접근 방식을 제공합니다. 인증, 권한 부여, 오류 처리와 같은 중요한 기능을 중앙 집중화함으로써, 프레임워크는 일관되지 않은 구현에서 발생할 수 있는 취약성의 가능성을 줄입니다. 이 접근 방식은 도메인 전문가가 안전한 빌딩 블록을 설계하고 개발할 수 있게 하여, 프레임워크를 사용하는 모든 팀이 혜택을 받을 수 있습니다.

생산성 향상. 프레임워크를 사용하면 개발자는 보안 및 신뢰성 기능을 재발명하는 대신 비즈니스 로직에 집중할 수 있어 생산성이 높아집니다. 프레임워크는 종종 모니터링, 로깅, 성능 최적화를 위한 내장 도구를 제공하여 개발 프로세스를 더욱 간소화합니다. 이러한 표준화는 프로젝트 전반에 걸쳐 공통 패턴이 일관되게 적용되므로 코드 보안 및 신뢰성을 이해하기 쉽게 만듭니다.

2. 코드 설계의 단순성은 보안과 유지보수성을 향상시킵니다

YAGNI 코드를 피하면 신뢰성이 향상되고, 단순한 코드는 보안 버그가 적어지고 실수할 기회가 줄어들며, 사용되지 않는 코드를 유지보수하는 데 소요되는 개발자 시간도 줄어듭니다.

복잡성 감소. 단순한 코드는 이해하기 쉽고, 검토 및 유지보수가 용이합니다. YAGNI (You Aren't Gonna Need It) 원칙을 따르고 과도한 엔지니어링을 피함으로써, 개발자는 더 견고하고 안전한 시스템을 만들 수 있습니다. 단순한 코드는 잠재적인 고장 지점이 적고 숨겨진 취약성이 포함될 가능성이 적습니다.

유지보수성 향상. 정기적인 리팩토링과 기술 부채 해결은 시간이 지남에 따라 코드 단순성을 유지하는 데 중요합니다. 이 지속적인 프로세스는 복잡하고 이해하기 어려운 코드의 축적을 방지하여 보안 및 신뢰성 문제를 초래할 수 있습니다. 린터 및 코드 건강 지표와 같은 도구는 팀이 개선할 영역을 식별하고 높은 코드 품질 표준을 유지하는 데 도움을 줄 수 있습니다.

3. 강한 타입과 정화는 일반적인 취약성을 방지합니다

강한 타입을 사용하면 컴파일러가 포착하지 못하는 유형의 오류로부터 코드를 보호할 수 있습니다.

타입 안전성. 강한 타입은 런타임이 아닌 컴파일 타임에 오류를 포착하여 많은 일반적인 취약성을 프로덕션에 도달하기 전에 방지합니다. 다른 컨텍스트에 대해 특정 타입을 사용함으로써 (예: HTML 콘텐츠에 SafeHtml, URL에 SafeUrl), 개발자는 설계에 의해 보안 속성을 강화할 수 있습니다. 이 접근 방식은 SQL 인젝션이나 크로스 사이트 스크립팅(XSS)과 같은 취약성을 도입하기 훨씬 어렵게 만듭니다.

입력 검증. 적절한 입력 정화는 보안 취약성을 방지하는 데 중요합니다. 사용자 입력을 처리하기 위한 전용 라이브러리와 프레임워크를 사용함으로써, 개발자는 모든 데이터가 민감한 작업에 사용되기 전에 적절히 검증되고 정화되도록 할 수 있습니다. 여기에는 다음이 포함됩니다:

  • 사용자 생성 콘텐츠의 특수 문자 이스케이프
  • URL 및 파일 경로의 검증 및 정화
  • 모든 입력에 대한 엄격한 타입 검사 시행

4. 단위 테스트는 개별 구성 요소의 동작을 검증합니다

단위 테스트는 일반적으로 엔지니어링 워크플로의 일부로 로컬에서 실행되어 개발자가 코드베이스에 변경 사항을 제출하기 전에 빠른 피드백을 제공합니다.

세분화된 검증. 단위 테스트는 개별 소프트웨어 구성 요소의 동작을 고립된 상태에서 검증하는 데 중점을 둡니다. 이 접근 방식은 개발자가 개발 초기 단계에서 버그를 잡을 수 있게 하며, 각 구성 요소가 통합되기 전에 올바르게 작동하는지 확인합니다. 효과적인 단위 테스트 관행에는 다음이 포함됩니다:

  • 실제 코드와 함께 또는 그 전에 테스트 작성 (테스트 주도 개발)
  • 정상 및 엣지 케이스 모두를 커버
  • 의존성을 고립시키기 위한 목업 및 스텁 사용

지속적인 피드백. 단위 테스트를 개발 워크플로에 통합함으로써, 팀은 회귀 및 의도하지 않은 부작용을 빠르게 잡을 수 있습니다. 이 지속적인 피드백 루프는 코드 품질을 유지하고 새로운 버그의 도입을 방지합니다. 자동화된 CI/CD 파이프라인은 모든 코드 변경 사항에 대해 단위 테스트를 실행하여 개발자에게 즉각적인 피드백을 제공합니다.

5. 통합 테스트는 시스템 전반의 상호작용을 평가합니다

통합 테스트는 개별 단위 및 추상화를 넘어, 데이터베이스나 네트워크 서비스와 같은 추상화의 가짜 또는 스텁된 구현을 실제 구현으로 대체합니다.

시스템 수준 검증. 통합 테스트는 시스템의 다양한 구성 요소가 함께 작동하는 방식을 평가하여, 단위 테스트에서 명확하지 않을 수 있는 문제를 발견합니다. 이러한 테스트는 데이터베이스 및 API와 같은 외부 의존성과의 상호작용을 포함하여 시스템이 전체적으로 올바르게 작동하는지 확인하는 데 도움을 줍니다. 통합 테스트의 주요 고려 사항에는 다음이 포함됩니다:

  • 현실적인 테스트 환경 설정
  • 테스트 데이터의 안전한 관리
  • 비동기 작업 및 타이밍 문제 처리

커버리지와 속도의 균형. 통합 테스트는 시스템 동작에 대한 귀중한 통찰력을 제공하지만, 일반적으로 단위 테스트보다 느리고 리소스를 많이 소모합니다. 팀은 포괄적인 통합 테스트와 빠른 피드백 루프를 유지하는 것 사이에서 적절한 균형을 찾아야 합니다. 위험 평가를 기반으로 선택적 통합 테스트를 수행하는 전략은 개발 속도를 희생하지 않고 테스트 커버리지를 최적화하는 데 도움이 될 수 있습니다.

6. 동적 분석 도구는 런타임 오류와 취약성을 감지합니다

동적 프로그램 분석은 소프트웨어를 실행하여, 잠재적으로 가상화되거나 에뮬레이트된 환경에서 테스트 이상의 목적을 위해 소프트웨어를 분석합니다.

런타임 오류 감지. 동적 분석 도구인 산티타이저는 정적 분석이나 일반적인 테스트로는 명확하지 않은 다양한 런타임 오류와 취약성을 감지할 수 있습니다. 이러한 도구는 컴파일 시 코드에 런타임 검사를 추가하여 다음과 같은 문제를 감지합니다:

  • 메모리 누수 및 버퍼 오버플로
  • 사용 후 해제 오류
  • 데이터 경합 및 교착 상태
  • 정의되지 않은 동작

성능 고려 사항. 동적 분석 도구는 귀중한 통찰력을 제공하지만, 성능에 상당한 영향을 미칠 수 있습니다. 팀은 이러한 도구를 야간 빌드나 전용 테스트 파이프라인의 일부로 실행하여 철저한 분석과 개발 속도 간의 균형을 맞춥니다. 동적 분석에서 얻은 통찰력은 팀이 버그 수정의 우선순위를 정하고 전체 코드 품질을 향상시키는 데 도움을 줄 수 있습니다.

7. 퍼즈 테스트는 엣지 케이스와 예기치 않은 입력을 발견합니다

퍼징은 서비스 회복력을 테스트하는 데 유용할 수 있습니다.

자동화된 입력 생성. 퍼즈 테스트는 대량의 무작위 또는 반무작위 입력을 생성하여 버그와 취약성을 발견합니다. 이 기술은 수동 테스트로는 놓칠 수 있는 엣지 케이스와 예기치 않은 동작을 찾는 데 특히 효과적입니다. 퍼즈 테스트는 다음을 식별하는 데 도움을 줄 수 있습니다:

  • 메모리 손상 문제
  • 입력 검증 결함
  • 서비스 거부 취약성
  • 파일 형식 또는 네트워크 프로토콜의 구문 분석 오류

지속적인 퍼징. 퍼즈 테스트를 지속적인 통합 파이프라인에 통합하면 팀이 시스템의 새로운 취약성을 지속적으로 탐색할 수 있습니다. 코드베이스가 진화함에 따라 퍼징은 변경 사항으로 인해 도입된 회귀 또는 새로운 문제를 발견할 수 있습니다. libFuzzer 및 AFL(American Fuzzy Lop)과 같은 도구는 다양한 유형의 소프트웨어에 대해 퍼즈 테스트를 구현하는 것을 더 쉽게 만듭니다.

8. 지속적인 검증은 지속적인 시스템 회복력을 보장합니다

신중하게 설계된 테스트 스위트는 동일한 작업을 수행하는 소프트웨어의 다양한 부분의 정확성을 평가할 수 있습니다.

능동적인 회복력. 지속적인 검증은 전통적인 테스트를 넘어 다양한 조건에서 시스템을 지속적으로 실행합니다. 이 접근 방식은 시간이 지남에 따라 시스템이 실패와 공격에 대해 회복력을 유지하도록 돕습니다. 지속적인 검증 기술에는 다음이 포함됩니다:

  • 카오스 엔지니어링 실험
  • 정기적인 재해 복구 훈련
  • 자동화된 보안 스캔 및 침투 테스트
  • 현실적인 부하 조건에서의 성능 스트레스 테스트

진화하는 위협 모델. 시스템이 성장하고 진화함에 따라 새로운 취약성과 실패 모드가 나타날 수 있습니다. 지속적인 검증은 팀이 이러한 도전에 앞서 나갈 수 있도록 도와줍니다. 이 프로세스에는 위협 모델 업데이트, 테스트 시나리오 수정, 실제 사건 및 근접 사고에서 얻은 교훈을 통합하는 것이 포함되어야 합니다.

마지막 업데이트 날짜:

FAQ

What's Building Secure and Reliable Systems about?

  • Focus on Integration: The book emphasizes integrating security and reliability into the entire lifecycle of system design, implementation, and maintenance.
  • Practical Guidance: It offers practical advice and best practices for organizations of all sizes, from startups to large enterprises.
  • Cultural Aspects: The authors discuss the importance of fostering a culture of security and reliability within organizations.

Why should I read Building Secure and Reliable Systems?

  • Comprehensive Resource: It serves as a guide for professionals involved in system design and operations, offering insights from experienced practitioners at Google.
  • Real-World Examples: The book shares case studies and examples, making the concepts relatable and applicable to various organizational contexts.
  • Improving Practices: Readers can learn how to improve their organization's security posture and reliability practices.

What are the key takeaways of Building Secure and Reliable Systems?

  • Integration of Principles: Security and reliability should be integrated into every stage of the system lifecycle.
  • Crisis Management: Effective crisis management strategies, including incident response planning, are outlined.
  • Cultural Importance: A culture that prioritizes security and reliability is essential for resilient systems.

What are the best quotes from Building Secure and Reliable Systems and what do they mean?

  • "Security and reliability are inherent properties of a system.": These aspects should be integrated from the beginning.
  • "A culture of inevitability can help teams have the appropriate frame of mind to build secure and reliable systems.": Accepting that failures can happen leads to better resilience.
  • "Everyone is responsible for security and reliability.": Security and reliability should be a collective effort across the organization.

What is the principle of least privilege in Building Secure and Reliable Systems?

  • Definition: Users should have the minimum access necessary to accomplish their tasks.
  • Reducing Risk: Limiting access minimizes the potential for mistakes or malicious actions.
  • Implementation Strategies: Strategies include using small functional APIs and advanced authorization controls.

How does Building Secure and Reliable Systems define adversaries?

  • Understanding Adversaries: Adversaries are individuals or groups that may exploit system vulnerabilities.
  • Motivations: Motivations include financial gain, activism, and espionage.
  • Frameworks for Analysis: The book provides frameworks for analyzing adversaries, aiding in designing resilient systems.

What role does culture play in security and reliability according to Building Secure and Reliable Systems?

  • Cultural Shift: Building a culture of security and reliability is essential for long-term success.
  • Empowerment and Training: Training employees and empowering them to take ownership of security practices is crucial.
  • Collaboration and Communication: Open communication and collaboration help identify potential issues early.

What is the role of the incident commander (IC) in crisis management as described in Building Secure and Reliable Systems?

  • Leadership During Incidents: The IC leads the incident response team and makes critical decisions.
  • Maintaining Morale: The IC focuses on maintaining team morale during high-pressure situations.
  • Handover Processes: The IC manages handovers between shifts to ensure continuity.

How does Building Secure and Reliable Systems address the trade-offs between security and reliability?

  • Balancing Act: Decisions in one area can impact the other, requiring careful consideration.
  • Design Considerations: Designers should ensure security measures do not compromise reliability.
  • Real-World Examples: Examples show how organizations navigate these trade-offs effectively.

What are some best practices for designing secure systems in Building Secure and Reliable Systems?

  • Design for Understandability: Systems should be understandable to aid in security and reliability.
  • Use of Proxies: Safe proxies manage access and enforce security policies.
  • Continuous Improvement: Regularly review and update security practices based on new insights.

What are the advanced mitigation strategies discussed in Building Secure and Reliable Systems?

  • Defense in Depth: Implement multiple defensive measures to protect systems.
  • Automated Response Mechanisms: Use automated systems for quick incident response.
  • Regular Testing and Updates: Continuously test and update security measures to adapt to threats.

How does Building Secure and Reliable Systems suggest handling legacy code?

  • Consolidate Exemption Mechanisms: Simplify the codebase to reduce vulnerabilities.
  • Refactor Regularly: Improve security and reliability through regular refactoring.
  • Avoid Overengineering: Promote the YAGNI principle to keep the codebase manageable.

리뷰

3.86 중에서 5
평균 100+ GoodreadsAmazon의 평점.

안전하고 신뢰할 수 있는 시스템 구축은 평균 평점 5점 만점에 3.90점을 받으며 다양한 평가를 받고 있다. 독자들은 특히 대규모 조직을 위한 보안 및 신뢰성 원칙에 대한 포괄적인 다루기를 높이 평가한다. 많은 이들이 이 책을 교육 및 참고 자료로 유용하다고 생각한다. 그러나 일부는 책의 구조, 장황함, 그리고 때때로 명확성이 부족하다고 비판한다. 이 책은 보안과 신뢰성 개념을 통합한 점에서 칭찬받지만, 구글 중심적이라는 점도 지적된다. 일부 챕터는 너무 이론적이거나 상세하다고 여겨지는 반면, 다른 챕터는 매우 실용적이다. 전반적으로, 이 책은 보안 전문가와 SRE에게 추천된다.

Your rating:
4.39
65 평점

저자 소개

고교 시절 촉망받는 야구선수였던 저자는 연습 중 동료의 야구 배트에 얼굴을 정통으로 강타당하는 큰 사고를 당했다. 이 사고로 얼굴 뼈가 30조각이 났고, 왼쪽 눈이 튀어나와 실명 위기까지 왔으며, 심정지가 세 번이나 일어났다. 걸을 수조차 없었던 저자는 절망에 빠지는 대신 지금 당장 할 수 있는 아주 작은 일이라도 찾아 그것을 반복하자고 마음먹는다.

헤더 애드킨스는 사이버 보안 및 정보 기술 분야에서 뛰어난 전문성을 가진 전문가이다. 저자로서 그녀는 업계에서의 광범위한 경험을 바탕으로 안전하고 신뢰할 수 있는 시스템에 관한 문헌에 크게 기여해왔다. 애드킨스는 구글에서의 중요한 역할로 잘 알려져 있으며, 보안 관행의 개발 및 구현에 중요한 역할을 해왔다. 그녀의 전문성은 위험 관리, 사건 대응, 보안 엔지니어링 등 다양한 분야에 걸쳐 있다. 애드킨스는 글을 통해 대규모 기술 환경에서 얻은 모범 사례와 통찰을 공유하여 다른 조직들이 보안과 신뢰성을 향상시킬 수 있도록 돕고자 한다.

Listen to Summary
0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Home
Library
Get App
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Recommendations: Personalized for you
Ratings: Rate books & see your ratings
100,000+ readers
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 10
📜 Unlimited History
Free users are limited to 10
Risk-Free Timeline
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on May 17,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Loading...