일단 진행시켜

성능과 보안: 상충되는 관계 속 균형 본문

🗞️ 보안 동향 파악 및 나의 생각 정리

성능과 보안: 상충되는 관계 속 균형

2024. 9. 26. 16:06

1. The Relationship Between Performance and Security

https://dzone.com/articles/the-relationship-between-performance-and-security

 

The Relationship Between Performance and Security - DZone

Performance and security are closely related and can affect each other. Explore why and how software engineers need to consider the implications wisely.

dzone.com

 

 

 

 

[요약정리]

과거에는 로컬 데스크톱 사용을 위한 소프트웨어가 많았다. 반면에 지금은 웹 브라우저를 통해 웹 기반 소프트웨어 서비스에 액세스 하는 방식을 많이 사용한다. 때문에 우리는 타인의 서버에 데이터를 보관하게 되었다. 

방대한 양의 고객 데이터를 처리하는 대규모 고가용성 웹 기반 소프트웨어를 사용하는 지금, 성능과 보안을 모두 다 고려해야 하게 되었다.

 

 

성능과 보안

성능과 보안에 집중하기 전에, 우리는 이 두 가지의 관계성에 대해 이해할 필요가 있다!

성능과 보안 둘 중에 하나에 집중할 수록 다른 하나에 영향을 줄 수밖에 없다.

 

[시나리오]

  • 새로 만든 웹 서비스가 있다.
  • 사용자가 일부 서비스에 액세스하려면 로그인이 필요하다.
  • 이를 통해 악의적인 행위자는 분산 서비스 거부 공격 및 주입 공격 등을 통해 서비스를 중단시킬 수 있게 된다.
  • 이 서비스 방화벽에는 설정된 규칙이 없어 모든 트래픽을 허용한다.

위 시나리오는 보안과 성능 모두 매우 낮다(당연하게도)

해당 서비스에 적절한 방화벽 규칙을 추가하여 보안을 강화할 필요가 있다. 이는 성능과 사용성 향상과 이어진다.

 

 

 

 

성능과 보안의 균형

서비스 보안 강화를 위해 보안을 강화하고, 여러 공격을 차단하기 위해 더 많은 방화벽 규칙을 추가할 수 있다.

보안 강화에는 효과적이나, 특정 이상의 개선은 오히려 역효과를 낼 수도 있음에 주의해야 한다.

 

위 시나리오에 방화벽 규칙을 계속 추가하면 어떤 일이 벌어질까?

특정 한계를 넘어선 개선은 역효과를 낼 수 있으며, 실제로 기업의 수익 감소와 직결된다.

https://www.linkedin.com/posts/alexxubyte_systemdesign-coding-interviewtips-activity-7191462682015772673-0qlb/

 

How to reduce latency for high-volume systems | Alex Xu님이 토픽에 대해 올림 | LinkedIn

10 years ago, Amazon found that every 100ms of latency cost them 1% in sales. That’s a staggering $5.7 billion in today’s terms. For high-scale… | 댓글 65

www.linkedin.com

 

아마존은 지연 시간이 100ms 증가할 때마다 매출이 1% 감소했다고 밝혔다.

물론 기업마다 다르겠지만 이처럼 보안 기능을 계속 추가하면 회사 수익이 감소할 수 있다. 

 

 

 

 

 

결론

모든 기업의 목표는 정해진 예산과 시간을 활용하여 수익 극대화, 시간 예산 최적화이다.

그 속에서 성능과 보안 사이의 적절한 균형을 이루는 것이 중요하다!

(이 균형은 주관적이고 상황에 따라 다르기 때문에, 어렵지만 그만큼 중요하다..)

 

위 예시와 같이 방화벽 규칙 추가는 보안을 강화시키는 반면에 성능을 저하시킨다.

반대로 성능 최적화는 보안 취약점을 유발할 수 있다.

따라서 개발자는 이러한 트레이드오프를 신중히 고려해야 하며, 필요에 맞게 균형을 잡는 것이 중요하다!

 

 

 

 

성능과 보안의 우선순위 결정

성능과 보안을 동시에 개선할 수 없을 때 우선순위에 따라 조정해야 한다.

ex.

금융/의료 관련 서비스 ➡️ 보안 최우선

게임/콘텐츠 서비스 ➡️ 성능이 더 중요

 

기준 세부 내용
위험 분석을 통한 결정 보안 요구사항 분석 과정에서 시스템이 직면할 수 있는 주요 보안 위협을 파악하고, 보안 강화가 얼마나 필요한지 파악해야 한다.
(sw 개발에서는 보안 요구사항을 분석하는 단계가 매우 중요하다!!)
성능 최적화와 트레이드오프 성능 최적화: 시스템의 응답 시간, 자원 활용 등을 최적화 → 사용자 경험 향상
과도한 성능 최적화는 보안 취약성을 초래할 수 있다.

ex. 캐싱이나 데이터 압축은 성능을 개선할 수 있지만, 제대로 구성되지 않는다면 공격자가 악용할 수 있는 허점을 남길 수 있다
https://senlainc.com/blog/performance-optimization-in-software-development/
실시간 모니터링과 점진적 개선 시스템이 운영되는 동안에도 실시간으로 모니터링하고 지속적으로 개선해야 한다.
보안 패치 적용과 성능 향상을 위한 튜닝을 반복 수행함으로써 두 요소 간의 균형을 유지할 수 있다.

 

성능과 보안은 서비스 특성에 맞게 우선순위를 정하고 조정하는 것이 바람직하다.

 

 

 

 


 

🤔 이에 대한 나의 생각

현대의 웹 서비스는 사용자 경험이 핵심인만큼 성능이 매우 중요하지만, 이를 지나치게 최적화하면 오히려 보안에 문제가 생길 수 있다는 점에서 성능과 보안의 우선순위를 결정하는 것이 매우 중요한 작업(?) 임을 깨달았다.

 

예를 들어, 성능을 최적화하기 위해 일부 보안 규칙을 간소화하거나 비활성화한다면, 성능 최적화라는 목적은 달성했으나 보안에 허점이 생겨 새로운 문제를 초래할 수 있다.

반대로 보안을 강화하기 위해 여러 레이어의 방화벽을 도입하는 등 과도한 추가를 진행하면 성능에 부정적인 영향을 미칠 수 있다.

결론적으로 기업 입장에서 추진하는 프로젝트의 특성을 고려하여 우선순위를 결정하고 성능과 보안 사이에서 적절한 타협점을 찾는 것이 중요하다.

 

오늘 아티클을 통해, 각 상황에 맞는 전략적 결정을 내리는 것, 보안과 성능 모두 신중하게 고려해야 한다는 것을 배웠다.

상충되는 관계를 이해하고 이를 해결하는 것이 핵심인 것 같다!