문제

봇이 약한 비밀번호로 보호 된 계정을 해킹하는 것을 방지하고 싶습니다. (예 : 이것은 eBay 및 기타 큰 사이트로 일어났습니다)

그래서 나는 IP, 시도량 및 마지막 시도의 타임 스탬프 (memcache-fall-out)를 사용하여 (MEM-) 캐시 된 값을 설정합니다.

그러나 봇은 하나의 암호로 계정을 열려고하는 것은 어떻습니까? 예를 들어, 봇은 암호 "password123"으로 500.000 사용자 계정을 모두 시도합니다. 아마도 10이 열릴 것입니다.

그래서 제 시도는 시도로 IP를 캐시하고 최대 트리를 ~ 50으로 설정하는 것이 었습니다. 성공적인 로그인 후 삭제합니다. 따라서 작별 인사는 49 개마다 유효한 계정으로 로그인하여 잠금을 재설정하려고합니다.

제대로 할 수있는 방법이 있습니까? 큰 플랫폼은 이것에 대해 무엇을합니까? 바보가 50 번 재 시도하면서 대리에서 모든 사용자를 차단하지 못하도록하려면 어떻게해야합니까?

모범 사례가없는 경우 - 이것은 어떤 플랫폼이라도 무차별 적 이식이라는 것을 의미합니까? 카운터가 재설정 될 때 적어도 힌트가 있습니까?

도움이 되었습니까?

해결책

솔루션이 담긴 솔루션을 혼합 할 수 있다고 생각합니다.

  1. IP 당 시도 수를 계산하십시오
  2. 주어진 시간 내에 주어진 IP 주소에서 너무 많은 시도가있는 경우 CARTCHA 로그인 양식에.

다른 팁

일부 사이트에서는 사용자 이름/비밀번호와 함께 보안 문자를 입력하기 전에 2 ~ 3 번의 시도를 제공합니다. 성공적으로 로그인하면 보안 문자가 사라집니다.

비교적 좋은 기사가있었습니다 코딩 공포 며칠 전.

코드는 Django에 중점을두고 있지만 모범 사례 방법에 대한 좋은 토론이 있습니다. Simon Willison의 블로그에서. 그는 MemCached를 사용하여 IPS 및 로그인 장애를 추적합니다.

당신은 a를 사용할 수 있습니다 비밀번호 강도 검사기 사용자가 암호를 설정하여 쉽게 무차별적인 암호를 사용하지 않도록하십시오.

편집 : 명확하게 말하면, 이것은 해결하려는 문제에 대한 완전한 해결책으로 보이지 않아야하지만 다른 답변 중 일부와 함께 고려해야합니다.

당신은 결코 다른 IP 주소에서 봇 그룹이 이것을 시도하는 것을 막을 수 없을 것입니다.

동일한 IP 주소에서 : "의심스러운"동작의 예 (유효하지 않은 사용자 이름 또는 잘못된 로그인 시도가있는 여러 유효한 계정)의 예가 표시되면 몇 초 동안 로그인을 차단합니다. 합법적 인 사용자라면 몇 초 동안 기다리지 않을 것입니다. 그것이 봇이라면 이것은 비현실적인 지점까지 느려집니다. IP 주소에서 동작을 계속 보는 경우 차단하면 합법적 인 사용자를위한 대역 외 문을 남겨 두십시오 (전화 #x로 전화 하거나이 주소를 이메일로 보내십시오).

참고 : IP 주소는 수천 또는 수백만 명의 사용자 사이에서 공유 할 수 있습니다 !!! 예를 들어, 대부분의/모든 AOL 사용자는 AOL의 네트워크 아키텍처로 인해 매우 작은 IP 주소 세트로 나타납니다. 대부분의 ISP는 대규모 사용자베이스를 작은 공개 IP 주소 세트에 매핑합니다.

IP 주소가 단일 사용자에 속한다고 가정 할 수 없습니다.

단일 사용자가 단일 IP 주소 만 사용한다고 가정 할 수 없습니다.

Dispibled Brute Force 및 Dictionary 공격에 대한 모범 사례를 논의하는 다음 질문을 확인하십시오.

가장 잘 분산 된 Brute Force Confermeasure는 무엇입니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top