블로그

코더의 보안 정복: 공유 및 학습 시리즈 - 불충분한 전송 계층 보호

June 27, 2019
자프 카란 싱

애플리케이션 서버와 백엔드 시스템을 완벽하게 보호했더라도, 전송 계층 보호가 미흡하면 통신 과정에서 정보가 유출될 위험이 있습니다. 현실 세계에서 현금을 장갑차로 운송하는 이유는 이동 중에 보호하기 위해서입니다. 매장이나 은행이 아무리 안전해도, 그곳에서 발생한 돈을 골프 카트에 싣고 시내를 가로질러 운송한다면 아무런 의미가 없습니다.

사이버 공간의 전송 계층도 마찬가지입니다. 애플리케이션이 안전하더라도 들어오는 정보가 보호되지 않은 채 전송된다면 치명적인 취약점이 존재하게 됩니다. 또한 일부 앱은 정보를 다른 서버나 데이터베이스로 추가 전송하는데, 이 과정에서도 두 번째 취약점이 발생합니다. 해당 정보는 거래를 엿볼 권한이 없는 내부자에게 노출될 수 있습니다.

사용자와 데이터를 완전히 보호하려면 전송 계층을 보호해야 합니다. 그래야만 전체 거래를 종단 간(end-to-end)으로 완벽하게 보호할 수 있습니다.

이번 에피소드에서는 다음 내용을 배웁니다.

  • 해커가 전송 계층 보호 미흡을 악용하는 방법
  • 전송 계층 보호가 위험한 이유
  • 애플리케이션이나 서버로 이동하는 모든 데이터의 전송을 안전하게 보호하는 방법

공격자는 전송 계층 보호 미흡을 어떻게 악용하는가?

전송 계층 보호가 미흡하면 데이터 스트림 내 두 지점에서 공격이 발생할 수 있습니다. 가장 흔히 악용되는 지점은 사용자와 애플리케이션 서버 사이입니다. 정보가 평문으로 전송되거나 약한 암호화를 사용할 경우, 해커는 해당 정보를 모니터링하고 훔치거나 변조할 수 있습니다. 이를 통해 해커는 사용자의 신용카드 정보, 로그인 자격 증명 등 애플리케이션 서버로 전송되는 모든 정보를 탈취할 수 있습니다. 서버 자체가 안전하더라도 서버와 사용자 사이의 보안되지 않은 채널을 모니터링하는 해커는 방대한 정보에 거의 제한 없이 접근할 수 있습니다.

두 번째로 자주 보호되지 않는 지점은 애플리케이션과 네트워크 나머지 구간 사이의 전송 계층입니다. 예를 들어, 애플리케이션 서버가 온라인 쇼핑 주문을 처리한 후 이를 이행 시스템으로 보내거나, 데이터를 단순히 저장용 데이터베이스로 넘길 수 있습니다. 이러한 내부 채널이 보호되지 않으면 내부 사용자가 해당 정보를 볼 수 있습니다.

모든 내부 사용자가 선량하다고 믿고 싶겠지만, 사실 많은 산업 분야에서 내부자 위협이 증가하고 있습니다. 내부자가 공격자나 경쟁업체를 위해 민감한 정보를 수집하는 대가로 뇌물을 받는 사례가 적발되기도 합니다. 수천 개의 유효한 신용카드 정보와 같은 데이터에 접근할 수 있다는 사실은 일부 사람들에게는 거부하기 힘든 유혹이 될 수 있습니다.

공격 기법 측면에서 볼 때, 보호되지 않은 통신을 가로채는 것은 그리 어렵지 않습니다. 초보 해커들도 암호화되지 않은 데이터 스트림을 대상으로 중간자 공격(man-in-the-middle attack)을 수행하는 방법을 알고 있습니다. 설령 모른다 하더라도 온라인에 있는 30분 미만의 교육 영상만으로도 충분히 배울 수 있습니다.

전송 계층 보호 미흡 취약점이 위험한 이유는 무엇인가?

전송 계층 보호가 미흡하거나 아예 없는 경우, 해커가 민감한 정보를 수집하기 매우 쉬워지기 때문에 위험합니다. 해커는 앱 서버를 침입하거나 네트워크를 해킹할 필요가 없습니다. 단순히 중간자 공격을 설정하여 사용자가 서버로 보내는 모든 정보를 읽기만 하면 됩니다. 여기에는 사용자 이름과 비밀번호가 포함될 수 있으며, 이는 향후 유효한 자격 증명을 사용하여 보안을 우회하는 데 악용될 수 있습니다. 애플리케이션에 따라 신용카드 정보나 기타 개인 데이터가 포함될 수도 있습니다.

또한 이 모든 엿보기 행위가 네트워크 외부에서 발생한다는 점에 주목해야 합니다. 보안되지 않은 전송 채널을 사용하면 누군가 정보를 가로채고 있는지 알 방법이 없습니다. 보통은 많은 사용자가 계정 도용이나 신용카드 부정 결제를 신고하기 시작할 때 비로소 문제가 드러나며, 그 공통 분모가 바로 귀하의 애플리케이션이라는 사실을 알게 됩니다. 이는 매우 곤란한 상황입니다. 해커는 정보를 탈취한 후 배송지를 변경하거나, 사용자에게 전달하기 전에 서버 응답에 악성 스크립트를 삽입하는 등 정보를 변조할 수도 있습니다.

백엔드 측면에서 전송 계층을 보호하지 않으면 데이터가 내부자에게 노출됩니다. 외부 해커가 전송 계층을 엿보는 것보다 내부자가 그럴 가능성은 낮을 수 있습니다. 하지만 내부자 위협이 발생하면 사용자 데이터뿐만 아니라 앱 서버가 패킷을 전송하기 전에 추가한 독점 정보까지 모두 볼 수 있기 때문에 훨씬 더 위험합니다.

전송 계층 보호 미흡 취약점 제거하기

전송 계층 보호 미흡은 위험하지만, 모든 전송 채널을 적절히 보호하는 것은 그리 어렵지 않습니다. 백엔드 인프라부터 시작하세요. 모든 통신은 HTTPS로 이루어져야 하며, 사이트에서 HTTPS와 HTTP를 혼용하지 않도록 주의해야 합니다. 마지막으로, 최소 2048비트 키 크기의 유효한 SSL 인증서를 유지하고, 모든 사용자가 HSTS(HTTP Strict Transport Security)가 적용된 보안 브라우저를 사용하도록 강제하세요.

인프라가 구축되면 개발자는 강력한 프로토콜을 사용하여 전송 계층을 보호해야 합니다. 이상적으로는 TLS 1.2를 사용해야 하며, 반드시 필요한 경우에 한해 TLS 1.1 및 1.0도 허용됩니다. 일단 구축이 완료되면 SSLv2와 같은 취약한 프로토콜은 완전히 비활성화하고 절대 지원하지 않아야 합니다.

백엔드에서 사용하는 암호화 알고리즘이 충분히 강력한지 확인해야 합니다. 세션 키 크기는 최소 128비트 이상이어야 합니다. 프로토콜과 마찬가지로 DES나 RC4-40과 같이 취약한 암호화 알고리즘에 대한 지원은 비활성화하십시오. 마지막으로, 서버 자체는 물론 서버로 들어오고 나가는 모든 데이터 경로가 충분히 보호되기 전까지는 애플리케이션이 진정으로 안전하다고 간주해서는 안 됩니다.

불충분한 전송 계층 보호 취약점에 대한 추가 정보

더 자세한 내용은 전송 계층 보호 가이드에 관한 OWASP 문서를 참조하십시오. 또한, 사이버 보안 팀을 최고의 사이버 전사로 양성하는 Secure Code Warrior 플랫폼의 무료 데모를 통해 방금 습득한 방어 지식을 테스트해 볼 수 있습니다. 이 취약점과 다양한 위협을 방어하는 방법에 대해 더 알아보려면 Secure Code Warrior 블로그를 방문하십시오.

태그라인

배포 전 AI 기반 개발 거버넌스 확보

AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.

데모 예약하기
리소스 라이브러리

더 많은 블로그 살펴보기

보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.

전체 보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

하나의 보안 문화: Sage는 어떻게 챔피언 프로그램을 구축했는가

Sage가 유연하고 관계 중심적인 접근 방식을 통해 보안을 강화하고, 200명 이상의 보안 챔피언을 양성하며 실질적인 위험 감소를 달성한 사례를 확인해 보세요.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

2026년 사이버 보안 인식의 달: 기업 방어의 핵심, AI 보안 이해하기

주요 AI 기업 대부분이 안전 가이드라인이 마련될 때까지 AI 개발 속도를 전 세계적으로 늦춰야 한다고 공개적으로 촉구하는 시점에 이르렀지만, 사실 심각한 보안 문제는 이미 현실화되었습니다. 이로 인해 AI 도입에 따른 금전적 비용과 위험 부담이 계속 쌓이면서 수많은 보안 책임자와 경영진이 절박한 상황에 놓였습니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

인에이블러 8: 프로그램 브랜딩

성공적인 보안 코딩 프로그램을 위해서는 훌륭한 콘텐츠 그 이상의 것이 필요합니다. 인에이블러 8에서는 브랜딩을 통해 참여를 누구나 선망하는 위상 중심의 경험으로 바꾸는 방법을 알아봅니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

이제 모든 직원이 AI 사이버 보안의 최전선에 있습니다

엔터프라이즈 기술 환경은 너무 늦기 전까지는 아무도 예상하지 못한 속도로 변화하고 있습니다. 우리는 공식적으로 사람이 직접 작성한 코드와 기본적인 코파일럿 지원의 시대를 지나 '에이전트 기반 개발 수명 주기(ADLC)'의 시대로 진입했습니다. 자율형 AI 에이전트는 여러 기능 전반에 걸쳐 전례 없는 효율성을 약속하지만, 동시에 완전히 새로운 차원의 보안 및 규제 위험을 야기합니다.

더 알아보기

배포 전 AI 기반 개발 보안 확보

소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.

데모 예약하기
항목이 없습니다.