사용자 이름 열거 | 피하는 방법 Secure Code Warrior

2017년 10월 9일 게시
피터 드 크레머
사례 연구

사용자 이름 열거 | 피하는 방법 Secure Code Warrior

2017년 10월 9일 게시
피터 드 크레머
리소스 보기
리소스 보기

사이드 채널 공격은 해커가 소프트웨어 코드의 알고리즘이나 버그의 이론적 약점이 아닌 소프트웨어 시스템의 물리적 구현에서 정보를 수집할 수 있는 경우입니다.

이것을 더 명확하게 만드는 데 사용하는 예제는 사용자 이름 열거를 수행하는 방법입니다. 사용자 이름 열거가 무엇인지 또는 나쁜 이유를 알고 싶다면 웹 사이트를 방문하여 비디오 설명을 하거나 코드에서 식별할 수 있는지 확인하는 데 어려움을 해결하십시오.

이제 사이드 채널 공격을 통해 사용자 이름 열거를 수행하는 방법을 이해하려면 최신 웹 응용 프로그램에서 암호가 어떻게 처리되는지(또는 적어도 해야 합니다)를 이해해야 합니다. 좋은 웹 응용 프로그램은 암호를 모르고, 어디서나 암호를 저장하거나 저장하지 않습니다. 그렇다면 입력한 내용이 정확하고 실제로 암호라는 것을 어떻게 알 수 있을까요? 음, 암호가 해시됩니다.

해싱 함수는 한 가지 방식으로 수행하기 쉬운 수학적 작업이지만(다소 계산비용이 많이 들지만) 역방향이 매우 어렵고 좋은 해싱 알고리즘을 위해 입력에 따라 출력이 고유합니다. 웹 사이트에 등록하면 해시가 암호 자체가 아니라 안전하게 저장됩니다. 즉, 로그인할 때마다 웹 응용 프로그램이 입력을 해시하고 해시된 결과를 저장된 해시와 비교합니다. 보안 암호 저장소에대해 자세히 알아보려면 플랫폼에서 이를 수행할 수 있습니다.

해시 입력은 컴퓨터에 시간이 걸리며 개발자는 항상 사용자가 원활한 경험을 하기 위해 작성하는 모든 것을 최적화하려고 노력합니다. 프로그램의 속도를 높이는 한 가지는 필요하지 않을 때 해시를 건너 뛰는 것입니다. 예를 들어 사용자 이름이 존재하지 않으므로 암호를 확인할 필요가 없는 경우 즉시 사용자에게 응답할 수 있습니다. 이렇게 하면 암호를 해시하는 느린 계산을 건너뛸 수 있습니다. 사용자 이름이 정확하면 암호 입력을 해시하고 저장된 해시와 비교합니다.

이 시점에서, 당신은 일이 잘못 될 수있는 곳을 추측 했을 수 있습니다. 실제로 해싱은 몇 밀리초밖에 걸리지 않지만 해커는 해시가 수행되지 않았기 때문에 잘못된 사용자 이름이 약간 더 빠른 응답을 갖기 때문에 입력한 사용자 이름이 올바른지 아닌지 알아내기 위해 이 추가 지연을 사용할 수 있습니다. 이러한 유형의 측면 채널 공격은 타이밍 공격이라고 하며 서로 다른 비기능 요구 사항이 서로 어떻게 대응할 수 있는지에 대한 좋은 예입니다. 때로는 코드가 동시에 빠르고 안전할 수 없는 경우가 있습니다.

따라서 암호가 완벽하게 처리되고 표시되는 메시지가 일반적이며 암호 또는 사용자 이름이 잘못되었는지 여부를 알려주지 않더라도 시스템은 여전히 취약합니다. 해결책은 항상 암호를 해시하거나 해시하는 데 걸리는 시간을 회신 보내기를 지연, 쉽습니다.

획득한 정보는 공격자가 시스템에서 사용자 목록을 가져오는 데 사용할 수 있습니다. 이 정보는 무차별 암호 힘 또는 기본 사용자 이름/암호 공격을 통해 웹 응용 프로그램을 공격하는 데 사용할 수 있습니다.

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

리소스 보기
리소스 보기

저자

피터 드 크레머

더 알고 싶으신가요?

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

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

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

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

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

리소스 허브

사용자 이름 열거 | 피하는 방법 Secure Code Warrior

2017년 10월 9일 게시
By 피터 드 크레머

사이드 채널 공격은 해커가 소프트웨어 코드의 알고리즘이나 버그의 이론적 약점이 아닌 소프트웨어 시스템의 물리적 구현에서 정보를 수집할 수 있는 경우입니다.

이것을 더 명확하게 만드는 데 사용하는 예제는 사용자 이름 열거를 수행하는 방법입니다. 사용자 이름 열거가 무엇인지 또는 나쁜 이유를 알고 싶다면 웹 사이트를 방문하여 비디오 설명을 하거나 코드에서 식별할 수 있는지 확인하는 데 어려움을 해결하십시오.

이제 사이드 채널 공격을 통해 사용자 이름 열거를 수행하는 방법을 이해하려면 최신 웹 응용 프로그램에서 암호가 어떻게 처리되는지(또는 적어도 해야 합니다)를 이해해야 합니다. 좋은 웹 응용 프로그램은 암호를 모르고, 어디서나 암호를 저장하거나 저장하지 않습니다. 그렇다면 입력한 내용이 정확하고 실제로 암호라는 것을 어떻게 알 수 있을까요? 음, 암호가 해시됩니다.

해싱 함수는 한 가지 방식으로 수행하기 쉬운 수학적 작업이지만(다소 계산비용이 많이 들지만) 역방향이 매우 어렵고 좋은 해싱 알고리즘을 위해 입력에 따라 출력이 고유합니다. 웹 사이트에 등록하면 해시가 암호 자체가 아니라 안전하게 저장됩니다. 즉, 로그인할 때마다 웹 응용 프로그램이 입력을 해시하고 해시된 결과를 저장된 해시와 비교합니다. 보안 암호 저장소에대해 자세히 알아보려면 플랫폼에서 이를 수행할 수 있습니다.

해시 입력은 컴퓨터에 시간이 걸리며 개발자는 항상 사용자가 원활한 경험을 하기 위해 작성하는 모든 것을 최적화하려고 노력합니다. 프로그램의 속도를 높이는 한 가지는 필요하지 않을 때 해시를 건너 뛰는 것입니다. 예를 들어 사용자 이름이 존재하지 않으므로 암호를 확인할 필요가 없는 경우 즉시 사용자에게 응답할 수 있습니다. 이렇게 하면 암호를 해시하는 느린 계산을 건너뛸 수 있습니다. 사용자 이름이 정확하면 암호 입력을 해시하고 저장된 해시와 비교합니다.

이 시점에서, 당신은 일이 잘못 될 수있는 곳을 추측 했을 수 있습니다. 실제로 해싱은 몇 밀리초밖에 걸리지 않지만 해커는 해시가 수행되지 않았기 때문에 잘못된 사용자 이름이 약간 더 빠른 응답을 갖기 때문에 입력한 사용자 이름이 올바른지 아닌지 알아내기 위해 이 추가 지연을 사용할 수 있습니다. 이러한 유형의 측면 채널 공격은 타이밍 공격이라고 하며 서로 다른 비기능 요구 사항이 서로 어떻게 대응할 수 있는지에 대한 좋은 예입니다. 때로는 코드가 동시에 빠르고 안전할 수 없는 경우가 있습니다.

따라서 암호가 완벽하게 처리되고 표시되는 메시지가 일반적이며 암호 또는 사용자 이름이 잘못되었는지 여부를 알려주지 않더라도 시스템은 여전히 취약합니다. 해결책은 항상 암호를 해시하거나 해시하는 데 걸리는 시간을 회신 보내기를 지연, 쉽습니다.

획득한 정보는 공격자가 시스템에서 사용자 목록을 가져오는 데 사용할 수 있습니다. 이 정보는 무차별 암호 힘 또는 기본 사용자 이름/암호 공격을 통해 웹 응용 프로그램을 공격하는 데 사용할 수 있습니다.

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

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

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