
코더들이 보안을 정복하다: 셰어 앤 런 시리즈 - 패딩 오라클
Padding Oracle은 얼터너티브 록 밴드의 이름으로는 정말 좋지 않은 것처럼 들리지만, 실제로는 공격자가 암호화 키를 몰라도 정보를 해독하는 데 사용할 수 있는 취약점입니다.
공격자의 전반적인 난이도를 보면 이 난이도는 거의 상위권에 가깝습니다.마법의 암호 해독 버튼을 말하는 것이 아니라, 해커가 셀 패딩과 관련하여 자신에게 전송된 오류 메시지를 검사하고 이를 사용하여 암호화된 데이터가 끝나고 패딩이 시작되는 위치를 확인할 수 있는 힘든 프로세스입니다.그러면 암호화에 포함된 다양한 비트를 알아낼 수 있고, 검사할 충분한 시간과 입력이 주어지면 해킹할 수도 있습니다.
다행스럽게도 패딩 오라클을 사용하여 암호화된 데이터를 해독하는 공격자의 능력을 제거할 수 있는 비교적 쉬운 단계가 몇 가지 있습니다.이번 에피소드에서는 다음과 같은 내용을 알아보겠습니다.
- 작동 원리
- 이 취약점이 위험한 이유
- 이를 방지하기 위한 방어 시설을 마련하는 방법
패딩 오라클은 어떻게 작동합니까?
암호 블록 체인 (CBC) 은 데이터베이스 내에 저장된 셀과 같은 전체 정보 비트가 전체 정보 체인에 적용되는 암호화 키를 사용하여 암호화되는 블록 암호를 생성하는 방법입니다.CBC를 사용하는 경우 암호문의 단일 블록의 암호화는 모든 진행 블록에 따라 달라집니다.이론적으로 보면 암호화가 매우 강력해집니다. 블록의 순서를 변경하더라도 데이터가 손상될 수 있기 때문입니다.
CBC 암호 (및 모든 블록 암호) 의 문제점은 정확한 크기의 블록으로만 암호화할 수 있다는 것입니다.일반적으로 이 작업은 8바이트 또는 16바이트 크기로 수행됩니다.그렇다면 CBC가 2바이트의 데이터를 16바이트 암호문 단위에 맞춰야 할 때는 어떻게 될까요?기본적으로 말도 안 되는 문자일 뿐인 패딩을 사용하여 공백을 메우고 단위를 적절한 크기로 만듭니다.
대부분의 패딩 체계는 잘 알려져 있으며 PKCS #7 가장 인기 있는 방법 중 하나이므로 공격자는 어떤 종류의 패딩이 사용되고 있는지 알 수 있습니다.예를 들어 CBC가 블록에 5자를 채워야 하는 경우 PKCS #7 함수는 일반 텍스트 다음에 5번 반복되는 바이트 값 0x05를 사용합니다.
공격자는 CBC 및 패딩 스키마에 대한 지식을 사용하여 오라클이라고도 하는 호스트 서버에 쿼리를 보냅니다.올바른 도구에 액세스할 수 있는 경우 쿼리의 패딩이 올바르지 않은지 서버에 알려주도록 할 수 있습니다.이렇게 하면 서버에서 패딩이 정확하다고 알려줄 때까지 암호의 모든 바이트에 대해 0에서 255까지 순환할 수 있습니다.그런 다음, 다음 단위로 넘어가서 모든 경우에 패딩이 시작되는 위치를 기록하면서 이 과정을 반복합니다.
이렇게 하면 메시지나 셀의 암호를 해독할 수는 없지만 일반 텍스트가 끝나는 위치와 패딩이 시작되는 위치를 기준으로 체인의 모든 링크를 매핑할 수 있습니다.또한 잠재적으로 XOR 계산을 사용하여 원본 일반 텍스트의 마지막 바이트 값을 알아낼 수도 있습니다.
패딩 오라클이 왜 그렇게 위험한가요?
해커가 암호화를 깨기 위해 많은 노력을 기울이는 이유는 잠재적인 보상 때문입니다.가치가 없는 것을 암호화하는 사람은 거의 없습니다.호스트 조직에 미칠 위험은 손상된 데이터에 따라 달라집니다.여기에는 암호, 사용자 계정, 재무 정보, 신용 카드 번호, 환자 기록, 민감한 통신 또는 매우 인기 있고 귀중한 정보가 포함될 수 있습니다.
패딩 오라클을 사용하는 것도 후속 공격의 관문이 될 수 있습니다.예를 들어 공격자가 패딩 오라클을 사용하여 암호를 훔칠 수 있다면 권한을 높이고 네트워크에 더 깊이 침투하는 것은 쉬운 보조 작업입니다.
누구나 암호화를 스누핑이나 보안 침해에 대한 궁극적인 방어 수단으로 생각합니다.그러나 암호화 과학과 이를 깨뜨릴 수 있는 과학 사이의 논쟁은 수세기 동안 계속되어 왔습니다.패딩 오라클은 공격자에게 우위를 제공하는 방법 중 하나일 뿐입니다.
패딩 오라클 공격에 하드 랜딩 제공
고맙게도 패딩 오라클을 방지하는 몇 가지 방법이 있습니다.가장 좋은 방법 중 하나는 갈루아/카운터 모드 (GCM) 또는 오프셋 코드북 모드 (OCB) 와 같은 강력한 암호화 작업 모드를 사용하는 것입니다.128비트의 암호 블록 크기를 사용한다는 점에서 CBC와 다릅니다.또한 각 데이터 블록에 카운터를 사용한 다음 해당 숫자를 사용하여 암호문을 생성합니다.즉, 패딩 오라클 공격에 취약하지 않습니다.
적절한 오류 처리 제어를 구현하면 공격자의 성공 가능성이 크게 떨어질 수도 있습니다.패딩 오라클 공격은 정보 유출에 의존하므로 암호화/복호화 실패 시 특정 패딩 오류 대신 일반 오류 메시지를 반환합니다.
메시지 인증 코드 (MAC) 를 구현할 수도 있습니다.MAC 값은 검증자가 비밀 키를 사용하여 메시지 내용의 변경 사항을 감지할 수 있도록 하여 데이터 무결성과 신뢰성을 보호합니다.
마지막으로, 모든 패딩 오라클 공격에는 반복적인 쿼리가 필요합니다.단일 셀에서 패딩 체계를 파악하기 위한 요청이 200건 이상 있을 수 있으며, 여기에 체인에서 보호되는 정보 단위의 수를 곱하면 됩니다.동일한 소스에서 들어오는 요청 수를 제한하면 공격자가 실제로 시도를 시작하기 전에 액세스를 거부하여 패딩 오라클 공격을 차단할 수 있습니다.
오라클 패딩에 대한 추가 연구
공격자가 민감한 정보를 해독할 수 있는 모든 방법은 정말 악몽이 될 수 있습니다.하지만 애초에 이런 일이 발생하지 않도록 막을 수 있는 몇 가지 좋은 방법을 알게 되셨기를 바랍니다.
자세한 내용은 OWASP를 참조하십시오. 정의 및 체크리스트 온 패딩 오라클.새로 발견한 방어 지식을 다음과 같이 테스트할 수도 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.
지금 당장 패딩 오라클 공격을 막아야 한다고 생각하시나요?시큐어 코드 워리어 플랫폼에서 시도해 보세요.


Padding Oracle은 얼터너티브 록 밴드의 이름으로는 정말 좋지 않은 것처럼 들리지만, 실제로는 공격자가 암호화 키를 몰라도 정보를 해독하는 데 사용할 수 있는 취약점입니다.
공격자의 전반적인 난이도를 보면 이 난이도는 거의 상위권에 가깝습니다.마법의 암호 해독 버튼을 말하는 것이 아니라, 해커가 셀 패딩과 관련하여 자신에게 전송된 오류 메시지를 검사하고 이를 사용하여 암호화된 데이터가 끝나고 패딩이 시작되는 위치를 확인할 수 있는 힘든 프로세스입니다.그러면 암호화에 포함된 다양한 비트를 알아낼 수 있고, 검사할 충분한 시간과 입력이 주어지면 해킹할 수도 있습니다.
다행스럽게도 패딩 오라클을 사용하여 암호화된 데이터를 해독하는 공격자의 능력을 제거할 수 있는 비교적 쉬운 단계가 몇 가지 있습니다.이번 에피소드에서는 다음과 같은 내용을 알아보겠습니다.
- 작동 원리
- 이 취약점이 위험한 이유
- 이를 방지하기 위한 방어 시설을 마련하는 방법
패딩 오라클은 어떻게 작동합니까?
암호 블록 체인 (CBC) 은 데이터베이스 내에 저장된 셀과 같은 전체 정보 비트가 전체 정보 체인에 적용되는 암호화 키를 사용하여 암호화되는 블록 암호를 생성하는 방법입니다.CBC를 사용하는 경우 암호문의 단일 블록의 암호화는 모든 진행 블록에 따라 달라집니다.이론적으로 보면 암호화가 매우 강력해집니다. 블록의 순서를 변경하더라도 데이터가 손상될 수 있기 때문입니다.
CBC 암호 (및 모든 블록 암호) 의 문제점은 정확한 크기의 블록으로만 암호화할 수 있다는 것입니다.일반적으로 이 작업은 8바이트 또는 16바이트 크기로 수행됩니다.그렇다면 CBC가 2바이트의 데이터를 16바이트 암호문 단위에 맞춰야 할 때는 어떻게 될까요?기본적으로 말도 안 되는 문자일 뿐인 패딩을 사용하여 공백을 메우고 단위를 적절한 크기로 만듭니다.
대부분의 패딩 체계는 잘 알려져 있으며 PKCS #7 가장 인기 있는 방법 중 하나이므로 공격자는 어떤 종류의 패딩이 사용되고 있는지 알 수 있습니다.예를 들어 CBC가 블록에 5자를 채워야 하는 경우 PKCS #7 함수는 일반 텍스트 다음에 5번 반복되는 바이트 값 0x05를 사용합니다.
공격자는 CBC 및 패딩 스키마에 대한 지식을 사용하여 오라클이라고도 하는 호스트 서버에 쿼리를 보냅니다.올바른 도구에 액세스할 수 있는 경우 쿼리의 패딩이 올바르지 않은지 서버에 알려주도록 할 수 있습니다.이렇게 하면 서버에서 패딩이 정확하다고 알려줄 때까지 암호의 모든 바이트에 대해 0에서 255까지 순환할 수 있습니다.그런 다음, 다음 단위로 넘어가서 모든 경우에 패딩이 시작되는 위치를 기록하면서 이 과정을 반복합니다.
이렇게 하면 메시지나 셀의 암호를 해독할 수는 없지만 일반 텍스트가 끝나는 위치와 패딩이 시작되는 위치를 기준으로 체인의 모든 링크를 매핑할 수 있습니다.또한 잠재적으로 XOR 계산을 사용하여 원본 일반 텍스트의 마지막 바이트 값을 알아낼 수도 있습니다.
패딩 오라클이 왜 그렇게 위험한가요?
해커가 암호화를 깨기 위해 많은 노력을 기울이는 이유는 잠재적인 보상 때문입니다.가치가 없는 것을 암호화하는 사람은 거의 없습니다.호스트 조직에 미칠 위험은 손상된 데이터에 따라 달라집니다.여기에는 암호, 사용자 계정, 재무 정보, 신용 카드 번호, 환자 기록, 민감한 통신 또는 매우 인기 있고 귀중한 정보가 포함될 수 있습니다.
패딩 오라클을 사용하는 것도 후속 공격의 관문이 될 수 있습니다.예를 들어 공격자가 패딩 오라클을 사용하여 암호를 훔칠 수 있다면 권한을 높이고 네트워크에 더 깊이 침투하는 것은 쉬운 보조 작업입니다.
누구나 암호화를 스누핑이나 보안 침해에 대한 궁극적인 방어 수단으로 생각합니다.그러나 암호화 과학과 이를 깨뜨릴 수 있는 과학 사이의 논쟁은 수세기 동안 계속되어 왔습니다.패딩 오라클은 공격자에게 우위를 제공하는 방법 중 하나일 뿐입니다.
패딩 오라클 공격에 하드 랜딩 제공
고맙게도 패딩 오라클을 방지하는 몇 가지 방법이 있습니다.가장 좋은 방법 중 하나는 갈루아/카운터 모드 (GCM) 또는 오프셋 코드북 모드 (OCB) 와 같은 강력한 암호화 작업 모드를 사용하는 것입니다.128비트의 암호 블록 크기를 사용한다는 점에서 CBC와 다릅니다.또한 각 데이터 블록에 카운터를 사용한 다음 해당 숫자를 사용하여 암호문을 생성합니다.즉, 패딩 오라클 공격에 취약하지 않습니다.
적절한 오류 처리 제어를 구현하면 공격자의 성공 가능성이 크게 떨어질 수도 있습니다.패딩 오라클 공격은 정보 유출에 의존하므로 암호화/복호화 실패 시 특정 패딩 오류 대신 일반 오류 메시지를 반환합니다.
메시지 인증 코드 (MAC) 를 구현할 수도 있습니다.MAC 값은 검증자가 비밀 키를 사용하여 메시지 내용의 변경 사항을 감지할 수 있도록 하여 데이터 무결성과 신뢰성을 보호합니다.
마지막으로, 모든 패딩 오라클 공격에는 반복적인 쿼리가 필요합니다.단일 셀에서 패딩 체계를 파악하기 위한 요청이 200건 이상 있을 수 있으며, 여기에 체인에서 보호되는 정보 단위의 수를 곱하면 됩니다.동일한 소스에서 들어오는 요청 수를 제한하면 공격자가 실제로 시도를 시작하기 전에 액세스를 거부하여 패딩 오라클 공격을 차단할 수 있습니다.
오라클 패딩에 대한 추가 연구
공격자가 민감한 정보를 해독할 수 있는 모든 방법은 정말 악몽이 될 수 있습니다.하지만 애초에 이런 일이 발생하지 않도록 막을 수 있는 몇 가지 좋은 방법을 알게 되셨기를 바랍니다.
자세한 내용은 OWASP를 참조하십시오. 정의 및 체크리스트 온 패딩 오라클.새로 발견한 방어 지식을 다음과 같이 테스트할 수도 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.
지금 당장 패딩 오라클 공격을 막아야 한다고 생각하시나요?시큐어 코드 워리어 플랫폼에서 시도해 보세요.

Padding Oracle은 얼터너티브 록 밴드의 이름으로는 정말 좋지 않은 것처럼 들리지만, 실제로는 공격자가 암호화 키를 몰라도 정보를 해독하는 데 사용할 수 있는 취약점입니다.
공격자의 전반적인 난이도를 보면 이 난이도는 거의 상위권에 가깝습니다.마법의 암호 해독 버튼을 말하는 것이 아니라, 해커가 셀 패딩과 관련하여 자신에게 전송된 오류 메시지를 검사하고 이를 사용하여 암호화된 데이터가 끝나고 패딩이 시작되는 위치를 확인할 수 있는 힘든 프로세스입니다.그러면 암호화에 포함된 다양한 비트를 알아낼 수 있고, 검사할 충분한 시간과 입력이 주어지면 해킹할 수도 있습니다.
다행스럽게도 패딩 오라클을 사용하여 암호화된 데이터를 해독하는 공격자의 능력을 제거할 수 있는 비교적 쉬운 단계가 몇 가지 있습니다.이번 에피소드에서는 다음과 같은 내용을 알아보겠습니다.
- 작동 원리
- 이 취약점이 위험한 이유
- 이를 방지하기 위한 방어 시설을 마련하는 방법
패딩 오라클은 어떻게 작동합니까?
암호 블록 체인 (CBC) 은 데이터베이스 내에 저장된 셀과 같은 전체 정보 비트가 전체 정보 체인에 적용되는 암호화 키를 사용하여 암호화되는 블록 암호를 생성하는 방법입니다.CBC를 사용하는 경우 암호문의 단일 블록의 암호화는 모든 진행 블록에 따라 달라집니다.이론적으로 보면 암호화가 매우 강력해집니다. 블록의 순서를 변경하더라도 데이터가 손상될 수 있기 때문입니다.
CBC 암호 (및 모든 블록 암호) 의 문제점은 정확한 크기의 블록으로만 암호화할 수 있다는 것입니다.일반적으로 이 작업은 8바이트 또는 16바이트 크기로 수행됩니다.그렇다면 CBC가 2바이트의 데이터를 16바이트 암호문 단위에 맞춰야 할 때는 어떻게 될까요?기본적으로 말도 안 되는 문자일 뿐인 패딩을 사용하여 공백을 메우고 단위를 적절한 크기로 만듭니다.
대부분의 패딩 체계는 잘 알려져 있으며 PKCS #7 가장 인기 있는 방법 중 하나이므로 공격자는 어떤 종류의 패딩이 사용되고 있는지 알 수 있습니다.예를 들어 CBC가 블록에 5자를 채워야 하는 경우 PKCS #7 함수는 일반 텍스트 다음에 5번 반복되는 바이트 값 0x05를 사용합니다.
공격자는 CBC 및 패딩 스키마에 대한 지식을 사용하여 오라클이라고도 하는 호스트 서버에 쿼리를 보냅니다.올바른 도구에 액세스할 수 있는 경우 쿼리의 패딩이 올바르지 않은지 서버에 알려주도록 할 수 있습니다.이렇게 하면 서버에서 패딩이 정확하다고 알려줄 때까지 암호의 모든 바이트에 대해 0에서 255까지 순환할 수 있습니다.그런 다음, 다음 단위로 넘어가서 모든 경우에 패딩이 시작되는 위치를 기록하면서 이 과정을 반복합니다.
이렇게 하면 메시지나 셀의 암호를 해독할 수는 없지만 일반 텍스트가 끝나는 위치와 패딩이 시작되는 위치를 기준으로 체인의 모든 링크를 매핑할 수 있습니다.또한 잠재적으로 XOR 계산을 사용하여 원본 일반 텍스트의 마지막 바이트 값을 알아낼 수도 있습니다.
패딩 오라클이 왜 그렇게 위험한가요?
해커가 암호화를 깨기 위해 많은 노력을 기울이는 이유는 잠재적인 보상 때문입니다.가치가 없는 것을 암호화하는 사람은 거의 없습니다.호스트 조직에 미칠 위험은 손상된 데이터에 따라 달라집니다.여기에는 암호, 사용자 계정, 재무 정보, 신용 카드 번호, 환자 기록, 민감한 통신 또는 매우 인기 있고 귀중한 정보가 포함될 수 있습니다.
패딩 오라클을 사용하는 것도 후속 공격의 관문이 될 수 있습니다.예를 들어 공격자가 패딩 오라클을 사용하여 암호를 훔칠 수 있다면 권한을 높이고 네트워크에 더 깊이 침투하는 것은 쉬운 보조 작업입니다.
누구나 암호화를 스누핑이나 보안 침해에 대한 궁극적인 방어 수단으로 생각합니다.그러나 암호화 과학과 이를 깨뜨릴 수 있는 과학 사이의 논쟁은 수세기 동안 계속되어 왔습니다.패딩 오라클은 공격자에게 우위를 제공하는 방법 중 하나일 뿐입니다.
패딩 오라클 공격에 하드 랜딩 제공
고맙게도 패딩 오라클을 방지하는 몇 가지 방법이 있습니다.가장 좋은 방법 중 하나는 갈루아/카운터 모드 (GCM) 또는 오프셋 코드북 모드 (OCB) 와 같은 강력한 암호화 작업 모드를 사용하는 것입니다.128비트의 암호 블록 크기를 사용한다는 점에서 CBC와 다릅니다.또한 각 데이터 블록에 카운터를 사용한 다음 해당 숫자를 사용하여 암호문을 생성합니다.즉, 패딩 오라클 공격에 취약하지 않습니다.
적절한 오류 처리 제어를 구현하면 공격자의 성공 가능성이 크게 떨어질 수도 있습니다.패딩 오라클 공격은 정보 유출에 의존하므로 암호화/복호화 실패 시 특정 패딩 오류 대신 일반 오류 메시지를 반환합니다.
메시지 인증 코드 (MAC) 를 구현할 수도 있습니다.MAC 값은 검증자가 비밀 키를 사용하여 메시지 내용의 변경 사항을 감지할 수 있도록 하여 데이터 무결성과 신뢰성을 보호합니다.
마지막으로, 모든 패딩 오라클 공격에는 반복적인 쿼리가 필요합니다.단일 셀에서 패딩 체계를 파악하기 위한 요청이 200건 이상 있을 수 있으며, 여기에 체인에서 보호되는 정보 단위의 수를 곱하면 됩니다.동일한 소스에서 들어오는 요청 수를 제한하면 공격자가 실제로 시도를 시작하기 전에 액세스를 거부하여 패딩 오라클 공격을 차단할 수 있습니다.
오라클 패딩에 대한 추가 연구
공격자가 민감한 정보를 해독할 수 있는 모든 방법은 정말 악몽이 될 수 있습니다.하지만 애초에 이런 일이 발생하지 않도록 막을 수 있는 몇 가지 좋은 방법을 알게 되셨기를 바랍니다.
자세한 내용은 OWASP를 참조하십시오. 정의 및 체크리스트 온 패딩 오라클.새로 발견한 방어 지식을 다음과 같이 테스트할 수도 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.
지금 당장 패딩 오라클 공격을 막아야 한다고 생각하시나요?시큐어 코드 워리어 플랫폼에서 시도해 보세요.
Padding Oracle은 얼터너티브 록 밴드의 이름으로는 정말 좋지 않은 것처럼 들리지만, 실제로는 공격자가 암호화 키를 몰라도 정보를 해독하는 데 사용할 수 있는 취약점입니다.
공격자의 전반적인 난이도를 보면 이 난이도는 거의 상위권에 가깝습니다.마법의 암호 해독 버튼을 말하는 것이 아니라, 해커가 셀 패딩과 관련하여 자신에게 전송된 오류 메시지를 검사하고 이를 사용하여 암호화된 데이터가 끝나고 패딩이 시작되는 위치를 확인할 수 있는 힘든 프로세스입니다.그러면 암호화에 포함된 다양한 비트를 알아낼 수 있고, 검사할 충분한 시간과 입력이 주어지면 해킹할 수도 있습니다.
다행스럽게도 패딩 오라클을 사용하여 암호화된 데이터를 해독하는 공격자의 능력을 제거할 수 있는 비교적 쉬운 단계가 몇 가지 있습니다.이번 에피소드에서는 다음과 같은 내용을 알아보겠습니다.
- 작동 원리
- 이 취약점이 위험한 이유
- 이를 방지하기 위한 방어 시설을 마련하는 방법
패딩 오라클은 어떻게 작동합니까?
암호 블록 체인 (CBC) 은 데이터베이스 내에 저장된 셀과 같은 전체 정보 비트가 전체 정보 체인에 적용되는 암호화 키를 사용하여 암호화되는 블록 암호를 생성하는 방법입니다.CBC를 사용하는 경우 암호문의 단일 블록의 암호화는 모든 진행 블록에 따라 달라집니다.이론적으로 보면 암호화가 매우 강력해집니다. 블록의 순서를 변경하더라도 데이터가 손상될 수 있기 때문입니다.
CBC 암호 (및 모든 블록 암호) 의 문제점은 정확한 크기의 블록으로만 암호화할 수 있다는 것입니다.일반적으로 이 작업은 8바이트 또는 16바이트 크기로 수행됩니다.그렇다면 CBC가 2바이트의 데이터를 16바이트 암호문 단위에 맞춰야 할 때는 어떻게 될까요?기본적으로 말도 안 되는 문자일 뿐인 패딩을 사용하여 공백을 메우고 단위를 적절한 크기로 만듭니다.
대부분의 패딩 체계는 잘 알려져 있으며 PKCS #7 가장 인기 있는 방법 중 하나이므로 공격자는 어떤 종류의 패딩이 사용되고 있는지 알 수 있습니다.예를 들어 CBC가 블록에 5자를 채워야 하는 경우 PKCS #7 함수는 일반 텍스트 다음에 5번 반복되는 바이트 값 0x05를 사용합니다.
공격자는 CBC 및 패딩 스키마에 대한 지식을 사용하여 오라클이라고도 하는 호스트 서버에 쿼리를 보냅니다.올바른 도구에 액세스할 수 있는 경우 쿼리의 패딩이 올바르지 않은지 서버에 알려주도록 할 수 있습니다.이렇게 하면 서버에서 패딩이 정확하다고 알려줄 때까지 암호의 모든 바이트에 대해 0에서 255까지 순환할 수 있습니다.그런 다음, 다음 단위로 넘어가서 모든 경우에 패딩이 시작되는 위치를 기록하면서 이 과정을 반복합니다.
이렇게 하면 메시지나 셀의 암호를 해독할 수는 없지만 일반 텍스트가 끝나는 위치와 패딩이 시작되는 위치를 기준으로 체인의 모든 링크를 매핑할 수 있습니다.또한 잠재적으로 XOR 계산을 사용하여 원본 일반 텍스트의 마지막 바이트 값을 알아낼 수도 있습니다.
패딩 오라클이 왜 그렇게 위험한가요?
해커가 암호화를 깨기 위해 많은 노력을 기울이는 이유는 잠재적인 보상 때문입니다.가치가 없는 것을 암호화하는 사람은 거의 없습니다.호스트 조직에 미칠 위험은 손상된 데이터에 따라 달라집니다.여기에는 암호, 사용자 계정, 재무 정보, 신용 카드 번호, 환자 기록, 민감한 통신 또는 매우 인기 있고 귀중한 정보가 포함될 수 있습니다.
패딩 오라클을 사용하는 것도 후속 공격의 관문이 될 수 있습니다.예를 들어 공격자가 패딩 오라클을 사용하여 암호를 훔칠 수 있다면 권한을 높이고 네트워크에 더 깊이 침투하는 것은 쉬운 보조 작업입니다.
누구나 암호화를 스누핑이나 보안 침해에 대한 궁극적인 방어 수단으로 생각합니다.그러나 암호화 과학과 이를 깨뜨릴 수 있는 과학 사이의 논쟁은 수세기 동안 계속되어 왔습니다.패딩 오라클은 공격자에게 우위를 제공하는 방법 중 하나일 뿐입니다.
패딩 오라클 공격에 하드 랜딩 제공
고맙게도 패딩 오라클을 방지하는 몇 가지 방법이 있습니다.가장 좋은 방법 중 하나는 갈루아/카운터 모드 (GCM) 또는 오프셋 코드북 모드 (OCB) 와 같은 강력한 암호화 작업 모드를 사용하는 것입니다.128비트의 암호 블록 크기를 사용한다는 점에서 CBC와 다릅니다.또한 각 데이터 블록에 카운터를 사용한 다음 해당 숫자를 사용하여 암호문을 생성합니다.즉, 패딩 오라클 공격에 취약하지 않습니다.
적절한 오류 처리 제어를 구현하면 공격자의 성공 가능성이 크게 떨어질 수도 있습니다.패딩 오라클 공격은 정보 유출에 의존하므로 암호화/복호화 실패 시 특정 패딩 오류 대신 일반 오류 메시지를 반환합니다.
메시지 인증 코드 (MAC) 를 구현할 수도 있습니다.MAC 값은 검증자가 비밀 키를 사용하여 메시지 내용의 변경 사항을 감지할 수 있도록 하여 데이터 무결성과 신뢰성을 보호합니다.
마지막으로, 모든 패딩 오라클 공격에는 반복적인 쿼리가 필요합니다.단일 셀에서 패딩 체계를 파악하기 위한 요청이 200건 이상 있을 수 있으며, 여기에 체인에서 보호되는 정보 단위의 수를 곱하면 됩니다.동일한 소스에서 들어오는 요청 수를 제한하면 공격자가 실제로 시도를 시작하기 전에 액세스를 거부하여 패딩 오라클 공격을 차단할 수 있습니다.
오라클 패딩에 대한 추가 연구
공격자가 민감한 정보를 해독할 수 있는 모든 방법은 정말 악몽이 될 수 있습니다.하지만 애초에 이런 일이 발생하지 않도록 막을 수 있는 몇 가지 좋은 방법을 알게 되셨기를 바랍니다.
자세한 내용은 OWASP를 참조하십시오. 정의 및 체크리스트 온 패딩 오라클.새로 발견한 방어 지식을 다음과 같이 테스트할 수도 있습니다. 무료 데모 사이버 보안 팀이 궁극의 사이버 전사가 될 수 있도록 교육하는 Secure Code Warrior 플랫폼을 활용했습니다.이 취약점을 해결하는 방법과 기타 위협의 도적 갤러리를 자세히 알아보려면 다음 사이트를 방문하십시오. 시큐어 코드 워리어 블로그.
지금 당장 패딩 오라클 공격을 막아야 한다고 생각하시나요?시큐어 코드 워리어 플랫폼에서 시도해 보세요.




%20(1).avif)
.avif)
