코더는 보안을 정복 : 공유 및 시리즈 알아보기 - 패딩 오라클

게시일: 2019년 1월 24일
으로
사례 연구

코더는 보안을 정복 : 공유 및 시리즈 알아보기 - 패딩 오라클

게시일: 2019년 1월 24일
으로
리소스 보기
리소스 보기

패딩 오라클은 대체 록 밴드에 대한 정말 나쁜 이름처럼 들리지만, 실제로 공격자가 암호화 키를 모르고 정보를 해독하는 데 사용할 수있는 취약점입니다.

공격자의 전반적인 난이도측면에서 이 문제는 저울의 맨 위에 있습니다. 우리는 마법의 암호 해독 버튼에 대해 이야기하는 것이 아니라 해커가 셀 패딩과 관련하여 그들에게 보낸 오류 메시지를 검토하고 암호화 된 데이터가 끝나고 패딩이 시작되는 위치를 결정하는 데 사용할 수있는 힘든 프로세스입니다. 그런 다음 암호화 내에서 다양한 비트를 알아낼 수 있으며 검사할 시간과 입력이 충분한 시간을 부여하여 균열을 낼 수 있습니다.

고맙게도 암호화된 데이터를 해독하기 위해 패딩 오라클을 사용하는 공격자의 기능을 제거할 수 있는 비교적 쉬운 몇 가지 단계가 있습니다. 이 에피소드에서는 다음을 배우게 됩니다.

  • 작동 방식
  • 이 취약점이 그렇게 위험한 이유
  • 방어를 방지하기 위해 방어를 제자리에 놓을 수있는 방법.

패딩 오라클은 어떻게 작동합니까?

암호 블록 체인(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 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

지금 패딩 오라클 공격을 저지하는 과제에 대해 생각하십니까? Secure Code Warrior 플랫폼:

리소스 보기
리소스 보기

저자

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

코더는 보안을 정복 : 공유 및 시리즈 알아보기 - 패딩 오라클

게시일: 2019년 1월 24일
으로

패딩 오라클은 대체 록 밴드에 대한 정말 나쁜 이름처럼 들리지만, 실제로 공격자가 암호화 키를 모르고 정보를 해독하는 데 사용할 수있는 취약점입니다.

공격자의 전반적인 난이도측면에서 이 문제는 저울의 맨 위에 있습니다. 우리는 마법의 암호 해독 버튼에 대해 이야기하는 것이 아니라 해커가 셀 패딩과 관련하여 그들에게 보낸 오류 메시지를 검토하고 암호화 된 데이터가 끝나고 패딩이 시작되는 위치를 결정하는 데 사용할 수있는 힘든 프로세스입니다. 그런 다음 암호화 내에서 다양한 비트를 알아낼 수 있으며 검사할 시간과 입력이 충분한 시간을 부여하여 균열을 낼 수 있습니다.

고맙게도 암호화된 데이터를 해독하기 위해 패딩 오라클을 사용하는 공격자의 기능을 제거할 수 있는 비교적 쉬운 몇 가지 단계가 있습니다. 이 에피소드에서는 다음을 배우게 됩니다.

  • 작동 방식
  • 이 취약점이 그렇게 위험한 이유
  • 방어를 방지하기 위해 방어를 제자리에 놓을 수있는 방법.

패딩 오라클은 어떻게 작동합니까?

암호 블록 체인(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 사이버 보안 팀이 궁극적인 사이버 전사가 될 수 있도록 하는 플랫폼. 이 취약점을 물리치는 것에 대해 자세히 알아보려면 Secure Code Warrior 블로그.

지금 패딩 오라클 공격을 저지하는 과제에 대해 생각하십니까? Secure Code Warrior 플랫폼:

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.