블로그

현대적 애플리케이션이 어떻게 구축되고 배포되는지

프랭크 키이-마누 썸네일
프랭크 카이 마누
2022년 10월 4일 게시

응용프로그램은 우리 일상생활의 모든 측면에 필수적이 되었습니다. 몇 가지 예를 들면 다음과 같습니다.

  • 음식 주문하기—우리가 먹는 방식은 점점 애플리케이션과 관련이 깊어지고 있습니다.
  • 이동 수단은 신청서와 관련이 있습니다.
  • 사람들을 만나세요. 우리가 서로 연결하는 방식은 종종 애플리케이션을 통해 가능해지고 강화됩니다.

이런 변화는 COVID-19 이전에도 발생했지만, 팬데믹으로 인해 애플리케이션에 대한 의존도가 확실히 높아졌습니다.

하이브리드 또는 완전 가상 팀으로 인해 우리의 업무 방식은 영원히 바뀌었습니다. Apple Pay, Venmo, PayPal 등과 같은 비접촉식 결제 기술의 등장으로 우리의 지불 방식이 바뀌었습니다. 게다가 오늘날 많은 나라의 레스토랑, 비행기, 영화관 등의 서비스에 접근하려면 (비유적이든 문자적이든) 문을 열어주는 특정 애플리케이션을 휴대해야 하는 경우가 점점 늘어나고 있습니다. 그 결과, 응용 프로그램이 급증하고 있습니다.

잠시 시간을 내어 정량화해 보겠습니다. 2019년에는 전 세계적으로 이미 10억 개의 애플리케이션이 사용되었습니다. 2025년까지 그 숫자는 5배로 증가할 것으로 예상됩니다(IDC, Workloads Forecast, 2021년 10월).

사이버 공격의 위험 증가

애플리케이션에 대한 의존도가 높아지면서 이를 사이버 위협과 공격으로부터 보호하는 것이 필수적이 되었습니다. 단 한 번의 공격이나 침해만으로도 엄청난 개인적, 조직적, 사회적 비용을 초래하여 끔찍한 결과를 초래할 수 있기 때문입니다.

응용 프로그램의 반응 속도가 너무 느려져서 시간 초과가 발생하거나, 전혀 반응하지 않게 되어 좌절한 적이 있나요? 개인 정보가 도용되어 돈으로 거래되는 불행한 경험을 하신 적이 있으신가요?

최근 사이버공격의 사례는 잘 기록되어 있습니다. Microsoft, Facebook, Walgreens, T-Mobile 등 글로벌 브랜드가 부정적인 영향을 받거나 침해를 당하는 것을 보았으며, 수백만 명의 고객이 영향을 받았습니다.

안타깝게도 애플리케이션이 현대화되면서 이를 보호하는 것이 더욱 어려워졌습니다. 따라서 애플리케이션의 구조, 시간이 지남에 따라 애플리케이션이 어떻게 발전했는지, 그리고 최신 애플리케이션 설계가 본질적으로 공격 표면을 확장하는 이유를 이해하는 것이 중요합니다.

그렇다면 우리 모두 현대적 애플리케이션으로의 여정을 함께 시작해 볼까요?

현대적 응용 프로그램으로의 여정

첫째, 25년 전으로 돌아가 보면 애플리케이션이 크고 거대한 단일 소프트웨어였습니다. 이러한 앱은 단일 서버(앱에 기능을 제공하는 대형 컴퓨터)와 Windows NT와 같은 운영 체제에 설치되었습니다.

수년 후, 가상화 덕분에 하나의 하드웨어에 여러 애플리케이션 서버를 설치하고 실행하고 해당 리소스를 공유할 수 있게 되었습니다.

다음은 클라우드의 광범위한 채택이었습니다. 클라우드를 통해 데이터 센터에 대한 자본 집약적인 사전 투자의 필요성을 피하면서 주문형, 무제한 컴퓨팅 인프라를 사용할 수 있었습니다.

이러한 모든 발전에도 불구하고 앱 개발자들은 더 큰 민첩성과 더 세부적인 개발 기능을 요구했습니다. 이로 인해 가상화의 다음 단계인 컨테이너가 탄생했습니다. 컨테이너는 전체 애플리케이션 아키텍처에서 작고 가벼운 부분을 제공하여 앱 가상화를 제어하고 모듈화합니다.

전형적인 소매 모바일 앱을 예로 들어보겠습니다. 앱 개발자의 관점에서 보면 개발은 로그인 및 계정 정보, 재고, 주문, 보고 및 분석 등 별도의 구성 요소로 구분될 수 있습니다. 이를 통해 개발자는 애플리케이션을 크게 변경하지 않고도 애플리케이션의 일부를 추가, 교체 또는 수정할 수 있습니다.

전체 애플리케이션은 클러스터로 제공되는 서비스(종종 마이크로서비스라고 함)를 통해 모듈화됩니다. 또한, 이러한 각 앱 구성 요소를 연결하는 것, 타사 앱과의 연결을 포함하는 것은 애플리케이션 프로그래밍 인터페이스(API)입니다. 이는 애플리케이션을 연결하는 서비스 간 통신을 용이하게 합니다(이에 대해서는 이 시리즈의 네 번째 블로그에서 자세히 설명합니다).

그림 1: 샘플 소매 애플리케이션 아키텍처

하지만 기술과 아키텍처가 발전하면서 앱을 보다 민첩하게 개발하고 제공할 수 있게 되었고, 이로 인해 복잡성이 문제가 되었습니다.

분산된 세계에서 앱과 API 보안

지난 25년 동안 우리는 서버실이나 데이터 센터의 단일 하드웨어에 묶인 모놀리식 앱의 세계에서 데이터 센터, 여러 클라우드, 에지(앱 컴퓨팅을 사용자 또는 데이터 소스에 더 가깝게 가져와 지연 시간을 최소화) 등 어디서나 빌드 및 배포할 수 있는 컨테이너와 마이크로서비스 기반의 최신 애플리케이션으로 발전했습니다.

당연히 보안에 대한 경계적 접근 방식은 더 이상 실행 가능하지 않습니다. 한때 단일 서버에만 국한되었던 컴퓨팅은 이제 말 그대로 어디서나 가능합니다. 이 모든 것에는 보안이 필요하지만(물론), 각 구성 요소에 고유한 보안 도구를 적용하는 것도 마찬가지로 불가능합니다. 이는 각 직원이 스스로 보험 상품을 구매하고 개별적으로 보험료를 지불할 수 있도록 하는 글로벌 기업과 거의 비슷할 것입니다. 직원들이 선택할 수 있는 유연한 단체 보험 상품을 제공하는 것과는 다릅니다.

그 결과 앱과 API를 보호하는 것이 그 어느 때보다 어려워졌습니다. 이것이 오늘날 평균적인 기업이 기존 IT보다 보안에 두 배나 많은 돈을 투자하는 이유 중 하나입니다(IDC, 워크로드 예측, 2021년 10월). 게다가 보안 침해는 기업과 고객 모두에게 파괴적인 영향을 미칠 수 있으므로 위험은 그 어느 때보다 커졌습니다. 

아래 영상을 시청하고 F5가 기업에 즐겨쓰는 앱을 보호하고 디지털 경험의 보안을 항상 유지하는 기술을 제공하는 방식에 대해 알아보세요.
 

사이버보안 인식의 달을 위한 4부작 시리즈의 다음 편에서는 애플리케이션과 API를 악용하기 위한 추가적인 공격과 공격자의 계획, 그리고 조직과 앱 사용자를 보호하는 방법에 대해 알아보겠습니다.