kjh00n의 기록저장소
시스템 인증 방식 본문
Linux 로그인 과정
- 사용자의 로그인 요청 시 로그인 서비스 (login 또는 gdm-password)가 동작하여 사용자의 이름과 암호 요구
- 사용자 계정과 비밀번호 입력
- 로그인 프로세스는 PAM (Pluggable Authentication Modules)을 호출하여 입력된 사용자 계정과 비밀번호 정보를 전달
- PAM은 인증 모듈을 호출하여 사용자 인증 과정을 수행하고 그 결과를 로그인 프로세스에게 전달
- 로그인 프로세스는 전달받은 결과에 따라서 로그인 성공 또는 실패 작업 수행
패스워드 저장 방식
● 일반적으로 운영체제나 데이터베이스에서 패스워드 저장 방식은 Hash를 이용
Hash 종류
Linux 패스워드 정보
● /etc/shadow
Hash : 평문 데이터를 Hash알고리즘을 사용해서 Hash값을 얻는다.
● 암호화는 가능, 복호화는 불가능
● 원본데이터가 같으면 hash 값도 같다
● 원본데이터의 크기와 상관없이 hash 값 크기가 동일하다
비밀번호 공격 3가지
① 무차별 대입 공격 (Brute Force Attack)
- 설명 : 공격자는 가능한 모든 문자 조합을 시도하여 비밀번호를 맞추는 방법
- 특징
- 성공률은 100%지만, 비밀번호의 길이나 복잡도가 클수록 시간이 매우 오래 걸린다.
- 현실적으로 불가능한 경우가 많다.
② 사전 대입 공격 (Dictionary Attack)
- 설명 : 공격자는 비밀번호로 사용할 가능성이 있는 일반적인 단어들을 모은 사전 파일을 사용하여 대입
- 특징
- 성공률은 사전 파일의 품질과 범위에 따라 달라진다.
- 현실적으로 공격이 가능한 방법으로, 사람들이 자주 사용하는 단어들을 예측하여 비밀번호를 추측할 수 있다.
③ 레인보우 테이블 공격 (Rainbow Table Attack)
- 설명 : 해시 값을 미리 계산해 놓은 레인보우 테이블을 사용하여 비밀번호의 해시 값을 역추적하는 방법
- 특징
- 빠른 속도로 비밀번호를 찾을 수 있지만, Salt를 사용한 해시값 변형이 있으면 효과가 없다.
- 미리 계산된 테이블을 사용하므로 무차별 대입보다 빠른 공격이다.
④ 하이브리드 공격 (Dictionary + Guessing Attack)
- 설명 : 사전 공격보다 진화한 공격 기법, 문자열에 숫자나 심볼을 추가하여 패스워드에 대입
- 특징
- 공격 대상의 개인 정보 등을 충분히 알고 있다면 매우 효율적인 공격 방법
- 모의해킹을 하는 경우 상당 수의 패스워드가 추측에 의한 사전 대입 공격에 의해 노출된다.
⑤ 사회 공학 기법 (Social Engineering)
- 종류
- 어깨 넘어 훔쳐보기
- 휴지통 뒤지기
Salt 사용 전
● 기본적으로 패스워드는 Hash 알고리즘과 Hash 값으로 저장
● root와 ever 계정에 대한 패스워드가 '1234'라고 가정한 경우 두 계정 모두 동일한 Hash 값 저장
● 동일한 Hash 결과는 결과만으로 연관된 정보들을 노출시킨다는 약점이 있다.
Salt 사용 후
● 패스워드 Hash 값 생성 전에 랜덤한 값(Salt)을 생성하여 패스워드에 첨부한 후에 Hash 값을 생성하는 방식
● 동일한 패스워드를 이용하는 계정 별로 다른 Hash 값이 생성된다.
● 또한 같은 패스워드를 다시 생성해도 생성할 때 적용되는 Salt에 의해 Hash 값이 변경된다.
● 레인보우 테이블 공격에 대해 보호된다.
시스템 패스워드 취약성 점검
패스워드 크래킹
● 안전하지 않은 패스워드를 사용하는 계정에 대해 패스워드를 알아내는 공격 기법
● 공격자가 특정 공격을 통해 OS, Database 등에 저장되어 있는 패스워드 데이터베이스 파일을 획득하여 패스워드를 알아내기 위한 방법으로 사용
● 보안적인 의미로 패스워드에 대한 취약성 검증을 수행
'시스템 보안 운영' 카테고리의 다른 글
Linux 인증 모듈 PAM (0) | 2024.12.23 |
---|---|
SELinux 명령어 정리 (0) | 2024.12.20 |
SELinux (0) | 2024.12.20 |
접근 통제 모델 (0) | 2024.12.19 |
Beast 실습 (0) | 2024.12.19 |