7강 / 20강
무차별 대입 — 문을 두드려 여는 공격
약한 비밀번호가 왜 '몇 초'짜리인가
2강에서 우리 서버의 22번(SSH) 포트가 인터넷에 열려 있는 걸 봤습니다. 방화벽(3강)으로 필요한 포트만 남겼지만, SSH 는 관리에 필요하니 열어 뒀죠. 그럼 공격자는 그 열린 문에 무엇을 할까요? 비밀번호를 맞힐 때까지 두드립니다.
이번 강의는 공격자 입장이 되어 봅니다. 셀 관점을 🥷 공격자로 두세요.
공격자의 사전에는 무엇이 들어 있나
공격자는 아무 문자열이나 무작위로 넣지 않습니다. 실제 유출 사고에서 나온
가장 흔한 비밀번호 목록부터 씁니다. rockyou.txt 가 유명하죠 —
수천만 개가 들어 있고, 사람들이 실제로 쓰는 비번의 상당수가 여기 있습니다.
사람들이 '안전하다'고 착각하는 비번들이 사전 맨 앞에 있습니다.
Python
브라우저 안에서 실행 (계산용)
직접 뚫어 봅시다
우리 서버의 deploy 계정은 앞 관리자가 P@ssw0rd 로 만들어 뒀습니다.
공격자가 이걸 얼마 만에 알아내는지 봅시다.
몇 번째 시도에서 뚫리는지 보세요.
🥷 공격자
브라우저 안에서 실행 (계산용)
이제 방어해 봅시다. deploy 의 비밀번호를 길고 무작위한 값으로 바꾼 뒤,
공격자가 다시 사전을 돌리면 어떻게 되는지 봅니다.
비밀번호를 사전에 없는 값으로 바꿉니다.
🖥️ 내 가상 서버
브라우저 안에서 실행 (계산용)
사전에 없으면 이 공격은 실패합니다.
🥷 공격자
브라우저 안에서 실행 (계산용)
🤔 확인 문제
P@ssw0rd 가 위험한 비밀번호인 이유는?해설
P@ssw0rd 는 특수문자·대문자·숫자를 다 갖췄지만 8자로 짧고 너무 흔해서 사전 상위에 있습니다. 복잡해 '보이는' 것과 실제로 강한 것은 다릅니다. 답은 길이예요.🤔 확인 문제
무차별 대입 공격을 막는 방법으로 옳지 않은 것은?
해설 base64 인코딩은 저장 방식일 뿐, 무차별 대입과 아무 상관이 없습니다(그리고 인코딩은 암호도 아니죠, 5강). 나머지 셋은 모두 유효한 방어입니다.