๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Welcome.
:: Cyber Security ๐Ÿšฉ/System

[Secure]_System-Linux_#05_[PAM, PAM์˜ ๋™์ž‘ ์›๋ฆฌ, PAM์˜ ๊ตฌ์กฐ, Module type, Control Flag, Module Name, Module Arguments, auth, account, password, session, requisite, required, sufficient, optional, include, /etc/pam.d, credit, root ๊ณ„์ • ์›๊ฒฉ ..

by EunBird 2022. 1. 22.

 
[์‹œ์Šคํ…œ ๋ณด์•ˆ] - ์‚ฌ์šฉ์ž ์ธ์ฆ

backdoor --> root ๊ถŒํ•œ์„ ๋…ธ๋ฆผ. 

์ธ์ฆ = Authentication

-----


PAM (Pluggable Authentication Modules) :

- ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ๋ชจ๋“ˆ
- ๋ฆฌ๋ˆ…์Šค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ธ์ฆ ๋ชจ๋“ˆ

์‚ฌ์šฉ์ž ์ •๋ณด๊ฐ€ ๋‹ด์‹  ์ฃผ์š” ์‹œ์Šคํ…œ ํŒŒ์ผ : /etc/passwd , /etc/shadow
--> ๋ฌธ์ œ์  : 
- ํ†ต์ผ๋œ ์ •์ฑ…์ด ์—†๋‹ค.
- ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐฉ์‹์ด ์ƒ์ดํ•˜์—ฌ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›€์ด ์กด์žฌ. (๊ณ„์ •๋งˆ๋‹ค ๋‹ค๋ฅธ shell์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ.)

<PAM์˜ ๋™์ž‘ ์›๋ฆฌ>
1. ์ธ์ฆ์ด ํ•„์š”ํ•œ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์€ ๋” ์ด์ƒ /etc/~ ๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ  'PAM'๋ชจ๋“ˆ์— ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ์š”์ฒญํ•œ๋‹ค.

 

ใ…กใ…กใ…กใ…กใ…ก

 

<PAM์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ> 

(1์—ด) Module type
auth : ์‚ฌ์šฉ์ž์—๊ฒŒ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ž…๋ ฅ ๋ฐ›์€ ์ •๋ณด๊ฐ€ ๋งž๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๋Š” ๋ชจ๋“ˆ.
account : ๊ณ„์ •์— ๋Œ€ํ•œ ์ ‘๊ทผ ํ†ต์ œ ๋ฐ ๊ณ„์ • ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ชจ๋“ˆ.
password : ์‚ฌ์šฉ์ž๊ฐ€ ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋ณ€๊ฒฝ๊ฐ€๋Šฅํ•˜๋„๋ก ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๋ชจ๋“ˆ.
- session : ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ์„ ๋ฐ›๊ธฐ ์ „/ํ›„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ผ์„ ์ •์˜ํ•˜๋Š” ๋ชจ๋“ˆ.

(2์—ด) Control Flag - ์–ด๋–ค ๋™์ž‘์„ ํ•ด์•ผํ•˜๋Š”์ง€ ๊ฒฐ์ •
requisite : ์ธ์ฆ ๊ฒฐ๊ณผ๊ฐ€ ์‹คํŒจ์ธ ๊ฒฝ์šฐ --> ์ธ์ฆ ์ข…๋ฃŒ.
                   ์ธ์ฆ ๊ฒฐ๊ณผ๊ฐ€ ์„ฑ๊ณต์ธ ๊ฒฝ์šฐ --> ๋‹ค์Œ ์ธ์ฆ ๋ชจ๋“ˆ ์‹คํ–‰.
required : ์ธ์ฆ ๊ฒฐ๊ณผ์™€ ๊ด€๊ณ„์—†์ด ๋‹ค์Œ ์ธ์ฆ ์‹คํ–‰.
sufficient : ์ธ์ฆ ๊ฒฐ๊ณผ๊ฐ€ ์„ฑ๊ณต์ผ ๊ฒฝ์šฐ ์ธ์ฆ ์ข…๋ฃŒ.
optional : ์ผ๋ฐ˜์ ์œผ๋กœ ์ตœ์ข… ์ธ์ฆ ๊ฒฐ๊ณผ์— ๋ฐ˜์˜ํ•˜์ง€ ์•Š์Œ.
- include : ๋‹ค๋ฅธ PAM ํ˜ธ์ถœ.
    
(3์—ด / 4์—ด) Module Name / Module Arguments

 






<root ๊ณ„์ • ์›๊ฒฉ ์ ‘์† ์ œํ•œ>


์™ธ๋ถ€์—์„œ root ๊ณ„์ •์œผ๋กœ ์›๊ฒฉ์ ‘์†์„ ํ—ˆ์šฉํ•˜๋ฉด ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ• :

# ๋ฌด์ž‘์œ„ ๋Œ€์ž… ๊ณต๊ฒฉ(Brute Force Attack)

   - ํŠน์ •ํ•œ ์•”ํ˜ธ๋ฅผ ํ’€๊ธฐ์œ„ํ•ด ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐ’์„ ๋Œ€์ž…ํ•˜๋Š” ๊ณต๊ฒฉ.
   - ex) pw๋ฅผ 8์ž๋ฆฌ ์„ค์ •ํ•œ ๊ฒฝ์šฐ --> 3๊ฐœ์›” ์†Œ์š”
            13์ž๋ฆฌ --> 6๊ฐœ์›” ์†Œ์š”
            
# ์‚ฌ์ „ ๋Œ€์ž… ๊ณต๊ฒฉ(Dictionary Attack)

   - ์œ ์ถœ๋œ ์ •๋ณด๋กœ ๊ณต๊ฒฉ์ž๊ฐ€ ๋ฏธ๋ฆฌ ์‚ฌ์ „์„ ๋งŒ๋“ค์–ด ๊ณต๊ฒฉ.(์ด๋ฏธ ์–ป์€ ์ •๋ณด๋ฅผ ์ด์šฉ)
   - ex) ํ•ด๋‹น ๊ณ„์ •์˜ ์ฃผ์ธ์ด ์ฃผ๋กœ ์ž์‹ ์˜ ์ƒ์ผ์„ ์ด์šฉํ•˜์—ฌ ๊ณ„์ •์ด๋ฆ„์„ ๋งŒ๋“ ๋‹ค๋ฉด, ์‚ฌ์šฉ์ž์˜ ์ƒ์ผ์„ ์•Œ์•„๋‚ด์–ด ๊ฐ’์„ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.

 

ํ•ด๊ฒฐ ์ •์ฑ… ใ…กใ…กใ…กใ…กใ…ก
vi /etc/pam.d/login

auth    required    /lib/security/pam_securetty.so --> ์›๊ฒฉ์ ‘์†์‹œ root๋กœ ์ ‘์† ๋ถˆ๊ฐ€.
ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก




<ํŒจ์Šค์›Œ๋“œ ๋ณต์žก์„ฑ ์„ค์ •>


- ํŒจ์Šค์›Œ๋“œ ๋ณต์žก์„ฑ ์„ค์ • : ์‚ฌ์šฉ์ž๊ฐ€ ํŒจ์Šค์›Œ๋“œ ์„ค์ •์‹œ ๋Œ€์†Œ๋ฌธ์ž, ์ˆซ์ž, ํŠน์ˆ˜๊ธฐํ˜ธ๊ฐ€ ํ˜ผํ•ฉ๋œ ์ผ์ • ๊ธธ์ด ์ด์ƒ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•.
- ์ผ๋ฐ˜์ ์ธ ํŒจ์Šค์›Œ๋“œ ๊ถŒ๊ณ  : 8์ž๋ฆฌ ์ด์ƒ, ์˜๋ฌธ.์ˆซ์ž.ํŠน์ˆ˜๋ฌธ์ž

lcredit=-1 : ์†Œ๋ฌธ์ž ์ตœ์†Œ 1์ž ์ด์ƒ.
ucredit=-1 : ๋Œ€๋ฌธ์ž ์ตœ์†Œ 1์ž ์ด์ƒ.
dcredit=-1 : ์ˆซ์ž ์ตœ์†Œ 1์ž ์ด์ƒ.
ocredit=-1 : ํŠน์ˆ˜๋ฌธ์ž ์ตœ์†Œ 1์ž ์ด์ƒ.
minlen=8 : ํŒจ์Šค์›Œ๋“œ ์ตœ์†Œ๊ธธ์ด 8์ž ์ด์ƒ.
difok=N : ๊ธฐ์กด ํŒจ์Šค์›Œ๋“œ์™€ ๋น„๊ต๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค. 

--> difok ๊ฐ€ Yes๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ : [ Ex) kkkk์„ ukkk์œผ๋กœ ๋ณ€๊ฒฝ์„ ์‹œ๋„ํ•˜๋ฉด ๊ธฐ์กด ํŒจ์Šค์›Œ๋“œ์™€ ๋น„์Šทํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ํŒจ์Šค์›Œ๋“œ ๋ณ€๊ฒฝ์„ ๊ฑฐ๋ถ€ํ•œ๋‹ค.]

ex)
ํŒจ์Šค์›Œ๋“œ ์ •์ฑ… ์ธ ๊ฒฝ์šฐ : ์ตœ์†Œ๊ธธ์ด 6์ž ์ด์ƒ, ์†Œ๋ฌธ์ž 2์ž, ๋Œ€๋ฌธ์ž 1์ž, ํŠน์ˆ˜๊ธฐํ˜ธ 3์ž, ์ˆซ์ž 2์ž.

-->

        minlen=8
        lcredit=-2
        ucredit=-1
        ocredit=-3
        dcredit=-2
-->     

ํ•ด๊ฒฐ ์ •์ฑ… ใ…กใ…กใ…กใ…กใ…ก
vi /etc/security/pwquality.conf  ์— ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ์ •์ฑ…์ด ์„ค์ •๋œ๋‹ค. (--> ์ฒ˜์Œ์—๋Š” ๋‹ค ์ฃผ์„ ์ฒ˜๋ฆฌ ๋˜์–ด ์žˆ์Œ.)

 

password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=-2 ucredit=-1 ocredit=-3 dcredit=-2

ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก



<๊ณ„์ • ์ž ๊ธˆ ์ž„๊ณ„๊ฐ’ ์„ค์ •>


    - ๋กœ๊ทธ์ธ ์—ฐ์† ์‹คํŒจ ์‹œ ๋ช‡๋ฒˆ์งธ ๋กœ๊ทธ์ธ ์‹คํŒจ์— ์ฐจ๋‹จํ•  ๊ฒƒ์ธ์ง€ ์„ค์ •.
    - ๋ฌด์ž‘์œ„ ๋Œ€์ž… ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€

 


deny=5 : 5ํšŒ ์ž…๋ ฅ ์‹คํŒจ ์‹œ ๊ณ„์ • ์ž ๊ธˆ.
unlock_time=120 : ๊ณ„์ • ์ž ๊น€ ํ›„ ์ผ์ •์‹œ๊ฐ„(120์ดˆ)์ด ์ง€๋‚˜๋ฉด  ์ž๋™์œผ๋กœ ๊ณ„์ • ์ž ๊น€ ํ•ด์ œ.(๋‹จ์œ„๋Š” ์ดˆ)
no_magic_root : root ์—๊ฒŒ๋Š” ๊ณ„์ • ์ž ๊ธˆ ์„ค์ •์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
reset : ์ ‘์† ์„ฑ๊ณต ์‹œ ์‹คํŒจํ•œ ํšŸ์ˆ˜ ์ดˆ๊ธฐํ™”.


ํ•ด๊ฒฐ ์ •์ฑ… ใ…กใ…กใ…กใ…กใ…ก
vi /etc/pam.d/system-auth

auth required /lib/security/pam_tally.so deny=5 unlock_time=120 no_magic_root reset
account required /lib/security/pam_tally.so no_magic_root reset
ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก


๋‘ ์ค„์„ ์“ฐ๋Š” ์ด์œ ๋Š” ์ฒซ์งธ์ค„์— required๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.



728x90

๋Œ“๊ธ€