안녕하세요? 허니입니다. 취약한 계정 및 Default 계정 사용 취약점에 대해서 알아보고 대응 방법에 대해 알아보도록 하겠습니다. 사이버 해킹에 대해 공부하시는 학생이나 연구원 분이 계시면 도움이 될 것이라 생각합니다.


계정과 동일한 패스워드 생성 또는 단순 패스워드가 생성 가능하도록 웹 로직이 구현되어 있을 경우 취약한 사용자 계정 사용으로 인해 타인의 개인정보가 노출될 수 있으며, 테스트 용도로 사용된 계정 또한 삭제되지 않을 경우 WAS에 침해사고가 발생될 수 있습니다.

 

  대응방법
계정 접속에 대한 임계 값 설정으로 권한이 없는 사용자의 무차별 대입 공격을 차단합니다. 일반적으로 알려진 영문 및 추측하기 쉬운 패스워드가 아닌 영문, 숫자 포함 8자리 이상 및 회사 내규에 따른 패스워드 설정을 해야 합니다.

 

[참고] 패스워드 생성 보안로직 권고사항

 분류

 내용

 패스워드 생성규칙

- 세가지 종류 이상의 문자구성으로 8자리 이상의 길이
- 두가지 종류 이상의 문자구성으로 10자리 이상의 길이

 패스워드 생성 금지 규칙

- 간단한 문자(영어단어 포함)나 숫자의 연속사용은 금지
- 키보드 상에서 일련화 된 배열을 따르는 패스워드 선택 금지
- 사전에 있는 단어, 이를 거꾸로 철자화한 단어 사용 금지
- 생일, 전화번호 개인정보 및 아이디와 비슷한 추측하기 쉬운 비밀번호 사용 금지
- 이전에 사용한 패스워드는 재사용 금지
- 계정 잠금 정책 설정 ex) 로그인 5회 실패 시 30분 동안 사용 중지

 

자주 사용하거나 유추하기 쉬운 패스워드를 별도의 파일로 관리하여 패스워드 생성 시 파일(취약한 패스워드 리스트)과 비교한 뒤 해당사항이 없을 경우에만 패스워드 생성될 수 있도록 코딩한 예제입니다.(JAVA)

 

Public Boolean pwchk(String pw)
{
BufferedReader reader = new BufferedReader(new FileReader(“weakpwList”));
String weakpw = null;
While ((weakpw = reader.readLine()) !=null){
If(weakpw.equalslgnoreCase(pw) == true){
Return false;
}
}
Reader.close();
Int pwlen = strlen(pw);
If(pwlen > 8) return true;
Else return false;
}


 

+ Recent posts