SCW图标
英雄背景无分隔线
博客

코더들이 보안을 정복하다: Share & Learn 시리즈 - 안전하지 않은 역직렬화

Jaap Karan Singh
2019 年 9 月 20 日 发布
最后更新于 2026年3月9日

응용 프로그램에 따라 직렬화 프로세스가 항상 발생할 수 있습니다.이 용어는 데이터 구조나 객체 상태를 저장하거나 통신으로 전송할 수 있는 형식으로 변환할 때마다 이를 설명하는 데 사용되는 용어입니다.역직렬화는 이 프로세스와 정반대입니다. 즉, 현재 구조화된 데이터를 가져와서 저장하기 전의 객체 또는 데이터 문자열로 되돌립니다.

애플리케이션에서 역직렬화되는 데이터를 신뢰할 수 있는 것으로 취급할 때마다 안전하지 않은 역직렬화가 발생할 수 있습니다.사용자가 새로 재구성된 데이터를 수정할 수 있는 경우 코드 삽입, 서비스 거부 공격 또는 단순히 데이터 변경과 같은 모든 종류의 악의적인 활동을 수행하여 애플리케이션 내에서 객체 가격 인하나 권한 상승과 같은 이점을 얻을 수 있습니다.

이 에피소드에서는 다음을 배우게 됩니다.

  • 공격자가 안전하지 않은 역직렬화를 악용할 수 있는 방법
  • 안전하지 않은 역직렬화가 위험한 이유
  • 이 취약점을 해결할 수 있는 기술

공격자는 안전하지 않은 역직렬화를 어떻게 악용할까요?

오늘날 데이터를 직렬화하는 데 가장 많이 사용되는 데이터 형식은 JSON이지만 XML은 두 번째에 가깝습니다.상당수의 프로그래밍 언어는 자체 데이터 직렬화 메서드도 제공합니다. 이러한 메서드에는 종종 JSON이나 XML보다 더 많은 기능이 포함되어 있습니다.어쨌든 개발자가 이 시리즈의 다른 블로그에서 “절대 사용자 입력을 믿지 마세요!” 라는 오래된 말을 따르는 것과는 대조적으로 역직렬화된 데이터를 신뢰할 수 있는 입력으로 처리하도록 앱을 프로그래밍하면 문제가 발생할 수 있습니다.

사용자가 해당 문자열에 코드를 삽입할 수 있기 때문에 사용자 입력은 절대 신뢰할 수 없습니다. 수신 서버에서 실수로 코드를 실행할 수 있기 때문입니다.또한 역직렬화된 원시 데이터도 때때로 액세스하여 악용될 수 있으므로 이 데이터도 마찬가지로 신뢰할 수 없는 범주에 속해야 합니다.

예를 들어 포럼 애플리케이션에서 PHP 객체 직렬화를 사용하여 사용자의 ID와 역할이 포함된 쿠키를 저장하면 이를 조작할 수 있습니다.악의적인 사용자는 대신 자신의 “사용자” 역할을 “관리자”로 변경할 수 있습니다.또는 데이터 문자열에서 제공하는 시작 부분을 사용하여 코드를 삽입할 수 있습니다. 이 경우 서버가 “신뢰할 수 있는” 데이터를 처리할 때 해당 코드를 잘못 해석하여 실행할 수 있습니다.

안전하지 않은 역직렬화가 위험한 이유는 무엇입니까?

이런 종류의 공격에는 해커의 기술이 어느 정도 필요한 것이 사실이며, 때로는 공격자가 조작되고 역직렬화된 데이터로부터 서버가 어떤 종류의 코드나 악용을 받아들일지 알아내는 동안 시행착오를 겪기도 합니다.그렇긴 하지만, 이 취약점은 해당 취약점을 사용할 수 있을 만큼 숙련된 해커에게 잠재적인 힘을 줄 수 있기 때문에 흔히 악용되는 취약점입니다.

역직렬화된 데이터를 사용하는 방식에 따라 이전 블로그에서 다룬 많은 공격을 포함하여 얼마든지 공격이 사용될 수 있습니다.안전하지 않은 역직렬화는 원격 크로스 코드 삽입, 크로스 사이트 스크립팅, 서비스 거부, 액세스 제어 하이재킹은 물론 SQL 및 XML 인젝션 공격의 관문이 될 수 있습니다.이를 통해 시작점이 열리고, 역직렬화되는 모든 데이터를 신뢰할 수 있는 것으로 선언하고, 공격자가 이를 악용할 수 있습니다.

안전하지 않은 역직렬화 제거

안전하지 않은 역직렬화를 방지하기 위해 조직에서 할 수 있는 가장 안전한 방법은 애플리케이션이 역직렬화된 데이터를 수락하지 못하도록 제한하는 것입니다.하지만 이것이 불가능하거나 현실적이지 않을 수도 있지만 걱정할 필요는 없습니다. 이런 종류의 공격을 방어하기 위해 사용할 수 있는 다른 기술이 있기 때문입니다.

가능하면 데이터를 숫자형 값과 같은 값으로 정리할 수 있습니다.이렇게 하면 익스플로잇을 완전히 막을 수는 없지만 코드 삽입이 발생하는 것을 방지할 수 있습니다.더 좋은 방법은 디지털 서명과 같이 역직렬화된 데이터에 대해 일종의 무결성 검사를 요구하는 것인데, 이를 통해 데이터 문자열이 조작되지 않았는지 확인할 수 있습니다.그리고 모든 역직렬화 프로세스는 격리되어 낮은 권한 환경에서 실행되어야 합니다.

이러한 보호 기능을 갖추었으면 실패한 모든 역직렬화 시도와 데이터를 역직렬화하는 컨테이너 또는 서버에서 발생하는 네트워크 활동을 기록해야 합니다.사용자가 로그에서 두 번 이상의 역직렬화 오류를 발생시킨다면 악의적인 내부자이거나 자격 증명이 해킹되거나 도난당했다는 의미로 볼 수 있습니다.지속적으로 역직렬화 오류를 유발하는 사용자에 대한 자동 잠금 같은 것도 고려해 볼 수 있습니다.

안전하지 않은 역직렬화를 막기 위해 어떤 도구를 사용하든 핵심은 사용자가 터치하거나 조작했을 수 있는 데이터라는 점을 기억하세요.절대 믿지 마세요.

알려진 취약점이 있는 구성 요소 사용에 대한 추가 정보

자세한 내용을 보려면 OWASP의 내용을 살펴보십시오. 안전하지 않은 역직렬화에 대해.또한 다음과 같이 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 쇼케이스 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

查看资源
查看资源

애플리케이션에서 역직렬화되는 데이터를 신뢰할 수 있는 것으로 취급할 때마다 안전하지 않은 역직렬화가 발생할 수 있습니다.사용자가 새로 재구성된 데이터를 수정할 수 있는 경우 코드 삽입, 서비스 거부 공격 또는 권한 상승과 같은 모든 종류의 악의적 활동을 수행할 수 있습니다.

您对更多内容感兴趣吗?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并帮助组织建立将网络安全置于首位的文化。无论您是应用安全管理员、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能协助您的组织降低与不安全代码相关的风险。

预约演示
共享对象:
领英品牌社交x 标志
作者
Jaap Karan Singh
2019年9月20日发布

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

共享对象:
领英品牌社交x 标志

응용 프로그램에 따라 직렬화 프로세스가 항상 발생할 수 있습니다.이 용어는 데이터 구조나 객체 상태를 저장하거나 통신으로 전송할 수 있는 형식으로 변환할 때마다 이를 설명하는 데 사용되는 용어입니다.역직렬화는 이 프로세스와 정반대입니다. 즉, 현재 구조화된 데이터를 가져와서 저장하기 전의 객체 또는 데이터 문자열로 되돌립니다.

애플리케이션에서 역직렬화되는 데이터를 신뢰할 수 있는 것으로 취급할 때마다 안전하지 않은 역직렬화가 발생할 수 있습니다.사용자가 새로 재구성된 데이터를 수정할 수 있는 경우 코드 삽입, 서비스 거부 공격 또는 단순히 데이터 변경과 같은 모든 종류의 악의적인 활동을 수행하여 애플리케이션 내에서 객체 가격 인하나 권한 상승과 같은 이점을 얻을 수 있습니다.

이 에피소드에서는 다음을 배우게 됩니다.

  • 공격자가 안전하지 않은 역직렬화를 악용할 수 있는 방법
  • 안전하지 않은 역직렬화가 위험한 이유
  • 이 취약점을 해결할 수 있는 기술

공격자는 안전하지 않은 역직렬화를 어떻게 악용할까요?

오늘날 데이터를 직렬화하는 데 가장 많이 사용되는 데이터 형식은 JSON이지만 XML은 두 번째에 가깝습니다.상당수의 프로그래밍 언어는 자체 데이터 직렬화 메서드도 제공합니다. 이러한 메서드에는 종종 JSON이나 XML보다 더 많은 기능이 포함되어 있습니다.어쨌든 개발자가 이 시리즈의 다른 블로그에서 “절대 사용자 입력을 믿지 마세요!” 라는 오래된 말을 따르는 것과는 대조적으로 역직렬화된 데이터를 신뢰할 수 있는 입력으로 처리하도록 앱을 프로그래밍하면 문제가 발생할 수 있습니다.

사용자가 해당 문자열에 코드를 삽입할 수 있기 때문에 사용자 입력은 절대 신뢰할 수 없습니다. 수신 서버에서 실수로 코드를 실행할 수 있기 때문입니다.또한 역직렬화된 원시 데이터도 때때로 액세스하여 악용될 수 있으므로 이 데이터도 마찬가지로 신뢰할 수 없는 범주에 속해야 합니다.

예를 들어 포럼 애플리케이션에서 PHP 객체 직렬화를 사용하여 사용자의 ID와 역할이 포함된 쿠키를 저장하면 이를 조작할 수 있습니다.악의적인 사용자는 대신 자신의 “사용자” 역할을 “관리자”로 변경할 수 있습니다.또는 데이터 문자열에서 제공하는 시작 부분을 사용하여 코드를 삽입할 수 있습니다. 이 경우 서버가 “신뢰할 수 있는” 데이터를 처리할 때 해당 코드를 잘못 해석하여 실행할 수 있습니다.

안전하지 않은 역직렬화가 위험한 이유는 무엇입니까?

이런 종류의 공격에는 해커의 기술이 어느 정도 필요한 것이 사실이며, 때로는 공격자가 조작되고 역직렬화된 데이터로부터 서버가 어떤 종류의 코드나 악용을 받아들일지 알아내는 동안 시행착오를 겪기도 합니다.그렇긴 하지만, 이 취약점은 해당 취약점을 사용할 수 있을 만큼 숙련된 해커에게 잠재적인 힘을 줄 수 있기 때문에 흔히 악용되는 취약점입니다.

역직렬화된 데이터를 사용하는 방식에 따라 이전 블로그에서 다룬 많은 공격을 포함하여 얼마든지 공격이 사용될 수 있습니다.안전하지 않은 역직렬화는 원격 크로스 코드 삽입, 크로스 사이트 스크립팅, 서비스 거부, 액세스 제어 하이재킹은 물론 SQL 및 XML 인젝션 공격의 관문이 될 수 있습니다.이를 통해 시작점이 열리고, 역직렬화되는 모든 데이터를 신뢰할 수 있는 것으로 선언하고, 공격자가 이를 악용할 수 있습니다.

안전하지 않은 역직렬화 제거

안전하지 않은 역직렬화를 방지하기 위해 조직에서 할 수 있는 가장 안전한 방법은 애플리케이션이 역직렬화된 데이터를 수락하지 못하도록 제한하는 것입니다.하지만 이것이 불가능하거나 현실적이지 않을 수도 있지만 걱정할 필요는 없습니다. 이런 종류의 공격을 방어하기 위해 사용할 수 있는 다른 기술이 있기 때문입니다.

가능하면 데이터를 숫자형 값과 같은 값으로 정리할 수 있습니다.이렇게 하면 익스플로잇을 완전히 막을 수는 없지만 코드 삽입이 발생하는 것을 방지할 수 있습니다.더 좋은 방법은 디지털 서명과 같이 역직렬화된 데이터에 대해 일종의 무결성 검사를 요구하는 것인데, 이를 통해 데이터 문자열이 조작되지 않았는지 확인할 수 있습니다.그리고 모든 역직렬화 프로세스는 격리되어 낮은 권한 환경에서 실행되어야 합니다.

이러한 보호 기능을 갖추었으면 실패한 모든 역직렬화 시도와 데이터를 역직렬화하는 컨테이너 또는 서버에서 발생하는 네트워크 활동을 기록해야 합니다.사용자가 로그에서 두 번 이상의 역직렬화 오류를 발생시킨다면 악의적인 내부자이거나 자격 증명이 해킹되거나 도난당했다는 의미로 볼 수 있습니다.지속적으로 역직렬화 오류를 유발하는 사용자에 대한 자동 잠금 같은 것도 고려해 볼 수 있습니다.

안전하지 않은 역직렬화를 막기 위해 어떤 도구를 사용하든 핵심은 사용자가 터치하거나 조작했을 수 있는 데이터라는 점을 기억하세요.절대 믿지 마세요.

알려진 취약점이 있는 구성 요소 사용에 대한 추가 정보

자세한 내용을 보려면 OWASP의 내용을 살펴보십시오. 안전하지 않은 역직렬화에 대해.또한 다음과 같이 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 쇼케이스 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

查看资源
查看资源

要下载报告,请填写以下表格。

我们请求您的同意,以便向您发送有关本公司产品及/或相关安全编码主题的信息。我们始终以最高标准谨慎处理您的个人信息,且绝不会出于营销目的向其他公司出售您的信息。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用'Analytics' Cookie。完成后,您可随时将其重新禁用。

응용 프로그램에 따라 직렬화 프로세스가 항상 발생할 수 있습니다.이 용어는 데이터 구조나 객체 상태를 저장하거나 통신으로 전송할 수 있는 형식으로 변환할 때마다 이를 설명하는 데 사용되는 용어입니다.역직렬화는 이 프로세스와 정반대입니다. 즉, 현재 구조화된 데이터를 가져와서 저장하기 전의 객체 또는 데이터 문자열로 되돌립니다.

애플리케이션에서 역직렬화되는 데이터를 신뢰할 수 있는 것으로 취급할 때마다 안전하지 않은 역직렬화가 발생할 수 있습니다.사용자가 새로 재구성된 데이터를 수정할 수 있는 경우 코드 삽입, 서비스 거부 공격 또는 단순히 데이터 변경과 같은 모든 종류의 악의적인 활동을 수행하여 애플리케이션 내에서 객체 가격 인하나 권한 상승과 같은 이점을 얻을 수 있습니다.

이 에피소드에서는 다음을 배우게 됩니다.

  • 공격자가 안전하지 않은 역직렬화를 악용할 수 있는 방법
  • 안전하지 않은 역직렬화가 위험한 이유
  • 이 취약점을 해결할 수 있는 기술

공격자는 안전하지 않은 역직렬화를 어떻게 악용할까요?

오늘날 데이터를 직렬화하는 데 가장 많이 사용되는 데이터 형식은 JSON이지만 XML은 두 번째에 가깝습니다.상당수의 프로그래밍 언어는 자체 데이터 직렬화 메서드도 제공합니다. 이러한 메서드에는 종종 JSON이나 XML보다 더 많은 기능이 포함되어 있습니다.어쨌든 개발자가 이 시리즈의 다른 블로그에서 “절대 사용자 입력을 믿지 마세요!” 라는 오래된 말을 따르는 것과는 대조적으로 역직렬화된 데이터를 신뢰할 수 있는 입력으로 처리하도록 앱을 프로그래밍하면 문제가 발생할 수 있습니다.

사용자가 해당 문자열에 코드를 삽입할 수 있기 때문에 사용자 입력은 절대 신뢰할 수 없습니다. 수신 서버에서 실수로 코드를 실행할 수 있기 때문입니다.또한 역직렬화된 원시 데이터도 때때로 액세스하여 악용될 수 있으므로 이 데이터도 마찬가지로 신뢰할 수 없는 범주에 속해야 합니다.

예를 들어 포럼 애플리케이션에서 PHP 객체 직렬화를 사용하여 사용자의 ID와 역할이 포함된 쿠키를 저장하면 이를 조작할 수 있습니다.악의적인 사용자는 대신 자신의 “사용자” 역할을 “관리자”로 변경할 수 있습니다.또는 데이터 문자열에서 제공하는 시작 부분을 사용하여 코드를 삽입할 수 있습니다. 이 경우 서버가 “신뢰할 수 있는” 데이터를 처리할 때 해당 코드를 잘못 해석하여 실행할 수 있습니다.

안전하지 않은 역직렬화가 위험한 이유는 무엇입니까?

이런 종류의 공격에는 해커의 기술이 어느 정도 필요한 것이 사실이며, 때로는 공격자가 조작되고 역직렬화된 데이터로부터 서버가 어떤 종류의 코드나 악용을 받아들일지 알아내는 동안 시행착오를 겪기도 합니다.그렇긴 하지만, 이 취약점은 해당 취약점을 사용할 수 있을 만큼 숙련된 해커에게 잠재적인 힘을 줄 수 있기 때문에 흔히 악용되는 취약점입니다.

역직렬화된 데이터를 사용하는 방식에 따라 이전 블로그에서 다룬 많은 공격을 포함하여 얼마든지 공격이 사용될 수 있습니다.안전하지 않은 역직렬화는 원격 크로스 코드 삽입, 크로스 사이트 스크립팅, 서비스 거부, 액세스 제어 하이재킹은 물론 SQL 및 XML 인젝션 공격의 관문이 될 수 있습니다.이를 통해 시작점이 열리고, 역직렬화되는 모든 데이터를 신뢰할 수 있는 것으로 선언하고, 공격자가 이를 악용할 수 있습니다.

안전하지 않은 역직렬화 제거

안전하지 않은 역직렬화를 방지하기 위해 조직에서 할 수 있는 가장 안전한 방법은 애플리케이션이 역직렬화된 데이터를 수락하지 못하도록 제한하는 것입니다.하지만 이것이 불가능하거나 현실적이지 않을 수도 있지만 걱정할 필요는 없습니다. 이런 종류의 공격을 방어하기 위해 사용할 수 있는 다른 기술이 있기 때문입니다.

가능하면 데이터를 숫자형 값과 같은 값으로 정리할 수 있습니다.이렇게 하면 익스플로잇을 완전히 막을 수는 없지만 코드 삽입이 발생하는 것을 방지할 수 있습니다.더 좋은 방법은 디지털 서명과 같이 역직렬화된 데이터에 대해 일종의 무결성 검사를 요구하는 것인데, 이를 통해 데이터 문자열이 조작되지 않았는지 확인할 수 있습니다.그리고 모든 역직렬화 프로세스는 격리되어 낮은 권한 환경에서 실행되어야 합니다.

이러한 보호 기능을 갖추었으면 실패한 모든 역직렬화 시도와 데이터를 역직렬화하는 컨테이너 또는 서버에서 발생하는 네트워크 활동을 기록해야 합니다.사용자가 로그에서 두 번 이상의 역직렬화 오류를 발생시킨다면 악의적인 내부자이거나 자격 증명이 해킹되거나 도난당했다는 의미로 볼 수 있습니다.지속적으로 역직렬화 오류를 유발하는 사용자에 대한 자동 잠금 같은 것도 고려해 볼 수 있습니다.

안전하지 않은 역직렬화를 막기 위해 어떤 도구를 사용하든 핵심은 사용자가 터치하거나 조작했을 수 있는 데이터라는 점을 기억하세요.절대 믿지 마세요.

알려진 취약점이 있는 구성 요소 사용에 대한 추가 정보

자세한 내용을 보려면 OWASP의 내용을 살펴보십시오. 안전하지 않은 역직렬화에 대해.또한 다음과 같이 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 쇼케이스 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

观看网络研讨会
开始
了解更多

点击下方链接下载此资源的PDF文件。

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并帮助组织建立将网络安全置于首位的文化。无论您是应用安全管理员、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能协助您的组织降低与不安全代码相关的风险。

查看报告预约演示
查看资源
共享对象:
领英品牌社交x 标志
您对更多内容感兴趣吗?

共享对象:
领英品牌社交x 标志
作者
Jaap Karan Singh
2019年9月20日发布

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

共享对象:
领英品牌社交x 标志

응용 프로그램에 따라 직렬화 프로세스가 항상 발생할 수 있습니다.이 용어는 데이터 구조나 객체 상태를 저장하거나 통신으로 전송할 수 있는 형식으로 변환할 때마다 이를 설명하는 데 사용되는 용어입니다.역직렬화는 이 프로세스와 정반대입니다. 즉, 현재 구조화된 데이터를 가져와서 저장하기 전의 객체 또는 데이터 문자열로 되돌립니다.

애플리케이션에서 역직렬화되는 데이터를 신뢰할 수 있는 것으로 취급할 때마다 안전하지 않은 역직렬화가 발생할 수 있습니다.사용자가 새로 재구성된 데이터를 수정할 수 있는 경우 코드 삽입, 서비스 거부 공격 또는 단순히 데이터 변경과 같은 모든 종류의 악의적인 활동을 수행하여 애플리케이션 내에서 객체 가격 인하나 권한 상승과 같은 이점을 얻을 수 있습니다.

이 에피소드에서는 다음을 배우게 됩니다.

  • 공격자가 안전하지 않은 역직렬화를 악용할 수 있는 방법
  • 안전하지 않은 역직렬화가 위험한 이유
  • 이 취약점을 해결할 수 있는 기술

공격자는 안전하지 않은 역직렬화를 어떻게 악용할까요?

오늘날 데이터를 직렬화하는 데 가장 많이 사용되는 데이터 형식은 JSON이지만 XML은 두 번째에 가깝습니다.상당수의 프로그래밍 언어는 자체 데이터 직렬화 메서드도 제공합니다. 이러한 메서드에는 종종 JSON이나 XML보다 더 많은 기능이 포함되어 있습니다.어쨌든 개발자가 이 시리즈의 다른 블로그에서 “절대 사용자 입력을 믿지 마세요!” 라는 오래된 말을 따르는 것과는 대조적으로 역직렬화된 데이터를 신뢰할 수 있는 입력으로 처리하도록 앱을 프로그래밍하면 문제가 발생할 수 있습니다.

사용자가 해당 문자열에 코드를 삽입할 수 있기 때문에 사용자 입력은 절대 신뢰할 수 없습니다. 수신 서버에서 실수로 코드를 실행할 수 있기 때문입니다.또한 역직렬화된 원시 데이터도 때때로 액세스하여 악용될 수 있으므로 이 데이터도 마찬가지로 신뢰할 수 없는 범주에 속해야 합니다.

예를 들어 포럼 애플리케이션에서 PHP 객체 직렬화를 사용하여 사용자의 ID와 역할이 포함된 쿠키를 저장하면 이를 조작할 수 있습니다.악의적인 사용자는 대신 자신의 “사용자” 역할을 “관리자”로 변경할 수 있습니다.또는 데이터 문자열에서 제공하는 시작 부분을 사용하여 코드를 삽입할 수 있습니다. 이 경우 서버가 “신뢰할 수 있는” 데이터를 처리할 때 해당 코드를 잘못 해석하여 실행할 수 있습니다.

안전하지 않은 역직렬화가 위험한 이유는 무엇입니까?

이런 종류의 공격에는 해커의 기술이 어느 정도 필요한 것이 사실이며, 때로는 공격자가 조작되고 역직렬화된 데이터로부터 서버가 어떤 종류의 코드나 악용을 받아들일지 알아내는 동안 시행착오를 겪기도 합니다.그렇긴 하지만, 이 취약점은 해당 취약점을 사용할 수 있을 만큼 숙련된 해커에게 잠재적인 힘을 줄 수 있기 때문에 흔히 악용되는 취약점입니다.

역직렬화된 데이터를 사용하는 방식에 따라 이전 블로그에서 다룬 많은 공격을 포함하여 얼마든지 공격이 사용될 수 있습니다.안전하지 않은 역직렬화는 원격 크로스 코드 삽입, 크로스 사이트 스크립팅, 서비스 거부, 액세스 제어 하이재킹은 물론 SQL 및 XML 인젝션 공격의 관문이 될 수 있습니다.이를 통해 시작점이 열리고, 역직렬화되는 모든 데이터를 신뢰할 수 있는 것으로 선언하고, 공격자가 이를 악용할 수 있습니다.

안전하지 않은 역직렬화 제거

안전하지 않은 역직렬화를 방지하기 위해 조직에서 할 수 있는 가장 안전한 방법은 애플리케이션이 역직렬화된 데이터를 수락하지 못하도록 제한하는 것입니다.하지만 이것이 불가능하거나 현실적이지 않을 수도 있지만 걱정할 필요는 없습니다. 이런 종류의 공격을 방어하기 위해 사용할 수 있는 다른 기술이 있기 때문입니다.

가능하면 데이터를 숫자형 값과 같은 값으로 정리할 수 있습니다.이렇게 하면 익스플로잇을 완전히 막을 수는 없지만 코드 삽입이 발생하는 것을 방지할 수 있습니다.더 좋은 방법은 디지털 서명과 같이 역직렬화된 데이터에 대해 일종의 무결성 검사를 요구하는 것인데, 이를 통해 데이터 문자열이 조작되지 않았는지 확인할 수 있습니다.그리고 모든 역직렬화 프로세스는 격리되어 낮은 권한 환경에서 실행되어야 합니다.

이러한 보호 기능을 갖추었으면 실패한 모든 역직렬화 시도와 데이터를 역직렬화하는 컨테이너 또는 서버에서 발생하는 네트워크 활동을 기록해야 합니다.사용자가 로그에서 두 번 이상의 역직렬화 오류를 발생시킨다면 악의적인 내부자이거나 자격 증명이 해킹되거나 도난당했다는 의미로 볼 수 있습니다.지속적으로 역직렬화 오류를 유발하는 사용자에 대한 자동 잠금 같은 것도 고려해 볼 수 있습니다.

안전하지 않은 역직렬화를 막기 위해 어떤 도구를 사용하든 핵심은 사용자가 터치하거나 조작했을 수 있는 데이터라는 점을 기억하세요.절대 믿지 마세요.

알려진 취약점이 있는 구성 요소 사용에 대한 추가 정보

자세한 내용을 보려면 OWASP의 내용을 살펴보십시오. 안전하지 않은 역직렬화에 대해.또한 다음과 같이 새로 발견한 방어 지식을 테스트할 수 있습니다. 무료 쇼케이스 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.

目录

查看资源
您对更多内容感兴趣吗?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并帮助组织建立将网络安全置于首位的文化。无论您是应用安全管理员、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能协助您的组织降低与不安全代码相关的风险。

预约演示下载
共享对象:
领英品牌社交x 标志
资源中心

有助于开始的资源

更多帖子
资源中心

有助于开始的资源

更多帖子