Archive for Dev. (junyup2)

지식을 μ±„μ›Œκ°€λŠ” γ€Žκ°œλ°œμž/ν™”μ΄νŠΈν•΄μ»€γ€λ₯Ό λͺ©ν‘œλ‘œ μ •λ¦¬ν•˜λŠ” λΈ”λ‘œκ·Έ

Wargame & CTF

μ›Œκ²Œμž„ / CTF

Gearvirus(junyup2) 2023. 11. 18. 01:51

μ›Œκ²Œμž„(Wargame) & CTF(Capture the flag)

 

μ›Œκ²Œμž„(Wargame (hacking))

 

 ν•΄ν‚Ήμ—μ„œ μ›Œ κ²Œμž„(War game)은 사이버 λ³΄μ•ˆ μ±Œλ¦°μ§€(Cyber-Security Challenge)둜, κ²½μŸμžλ“€μ΄ μ‹œμŠ€ν…œμ΄λ‚˜ μ‘μš©ν”„λ‘œκ·Έλž¨μ˜ 취약점(Vulnerability)을 μ΄μš©ν•˜κ±°λ‚˜ λ°©μ–΄ν•˜κ³ , 컴퓨터 μ‹œμŠ€ν…œμ— λŒ€ν•œ μ ‘κ·Ό(Access) κΆŒν•œμ„ μ–»κ±°λ‚˜ λ°©μ§€ν•˜λŠ” 것


μ›Œκ²Œμž„μ€ 일반적으둜 μ•„λž˜μ˜ ν•΄ν‚Ή κΈ°μˆ λ“€μ„ 포함

  • CTF(Capture the flag) logic
    • μ˜λ„μ μœΌλ‘œ μ·¨μ•½ν•œ ν”„λ‘œκ·Έλž¨μ΄λ‚˜ μ›Ήμ‚¬μ΄νŠΈμ— 비밀리에 숨겨져 μžˆλŠ” Flag 라고 λΆˆλ¦¬λŠ” λ¬Έμžμ—΄μ„ 찾으렀고 μ‹œλ„ν•˜λŠ” μ—°μŠ΅ (경쟁적인 λͺ©μ μ΄λ‚˜, ꡐ윑적인 λͺ©μ )
    • μ°Έκ°€μžλ“€μ€ λ‹€λ₯Έ 경쟁자(곡격/λ°©μ–΄ν˜• (attack/defense-style) CTFs
    • λ˜λŠ” 주졜자(jeopardy-style challenges) λ‘œλΆ€ν„° κΉƒλ°œμ„ ν›”μΉ¨

 

  • 침투 μ‹œν—˜ · 윀리적 ν•΄ν‚Ή(Penetration test)
    • ν™”μ΄νŠΈ λ°•μŠ€(white box)
      • λͺ¨λ“  정보λ₯Ό 제곡(background and system information are provided in advance to the tester)
    • λΈ”λž™ λ°•μŠ€(black box)
      • κΈ°λ³Έ μ •λ³΄λ§Œ 제곡(only basic information, company name is provided)
    • 그레이 λ°•μŠ€(gray box)
      • λŒ€μƒμžμ— λŒ€ν•œ 지식 μ œν•œ(limited knowledge of the target)

 

  • 의미둠적 URL 곡격(Semantic URL attacks)
    • URL의 ꡬ문은 μœ μ§€ν•˜λ˜ 의미둠적으둜 λ³€κ²½ν•˜μ—¬ μš”μ²­μ˜ λ§€κ°œλ³€μˆ˜λ₯Ό μˆ˜λ™μœΌλ‘œ μ‘°μ •
    • 주둜 CGI 기반 μ›Ήμ‚¬μ΄νŠΈλ₯Ό λŒ€μƒμœΌλ‘œ μ‚¬μš©

 

  • 지식 기반 인증KBA(knowledge-based authentication)
    • 금육 κΈ°κ΄€μ΄λ‚˜ μ›Ήμ‚¬μ΄νŠΈμ™€ 같은 μ„œλΉ„μŠ€μ— μ•‘μ„ΈμŠ€ν•˜λŠ” μ‚¬λžŒμ˜ 신원을 증λͺ…ν•˜λ €κ³  ν•˜λŠ” 인증 방법
    • 신원 정보λ₯Ό μ œκ³΅ν•˜λŠ” μ‚¬λžŒμ΄ μ‹ μ›μ˜ μ†Œμœ μžμž„μ„ 증λͺ…ν•˜κΈ° μœ„ν•΄ 개인의 개인 정보에 λŒ€ν•œ 지식을 μš”κ΅¬
      • 정적(static) KBA : 사전에 ν•©μ˜λœ 정보(pre-agreed set of shared secrets)
      • 동적(dynamic) KBA : 더 넓은 개인 정보에 κΈ°λ°˜ν•˜μ—¬ μƒμ„±λœ μ§ˆλ¬Έμ— 기반

 

  • μ•”ν˜Έ ν¬λž˜ν‚Ή(Password Cracking)
    • 컴퓨터 μ‹œμŠ€ν…œμ— μ €μž₯λ˜κ±°λ‚˜ 컴퓨터 λ³΄μ•ˆμ—μ„œ μŠ€ν¬λž¨λΈ” ν˜•νƒœλ‘œ μ „μ†‘λœ λ°μ΄ν„°μ—μ„œ μ•”ν˜Έλ₯Ό λ³΅κ΅¬ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€
    • 일반적인 μ ‘κ·Ό 방식(무차별 λŒ€μž… 곡격 brute-force attack)
      • μ•”ν˜Έμ— λŒ€ν•œ 좔츑을 반볡적으둜 μ‹œλ„ν•˜κ³  μ•”ν˜Έμ˜ μ‚¬μš© κ°€λŠ₯ν•œ μ•”ν˜Έ ν•΄μ‹œμ™€ λŒ€μ‘°ν•˜μ—¬ ν™•μΈν•˜λŠ” 것
      • νŠΉμ •ν•œ μ•”ν˜Έλ₯Ό ν’€κΈ° μœ„ν•΄ κ°€λŠ₯ν•œ λͺ¨λ“  값을 λŒ€μž…ν•˜λŠ” 것
      • λŒ€λΆ€λΆ„μ˜ μ•”ν˜Έν™” 방식은 이둠적으둜 무차별 λŒ€μž… 곡격에 λŒ€ν•΄ μ•ˆμ „ν•˜μ§€ λͺ»ν•¨
        • (μΆ©λΆ„ν•œ μ‹œκ°„μ΄ μ‘΄μž¬ν•œλ‹€λ©΄ μ•”ν˜Έν™”λœ 정보λ₯Ό 해독 κ°€λŠ₯)
    • λ‹€λ₯Έ μœ ν˜•μ˜ μ ‘κ·Ό 방식(μ•”ν˜Έ 뢄사 password spraying)
      • 일반적인 μ•”ν˜Έ λͺ©λ‘μ„ μ‚¬μš©ν•˜μ—¬ νƒμ§€λ˜μ§€ μ•Šμ€ μƒνƒœλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄ μžλ™ν™”
    • μžŠμ–΄λ²„λ¦° λΉ„λ°€λ²ˆν˜Έλ₯Ό 볡ꡬ(μ‹œμŠ€ν…œ κ΄€λ¦¬μž κΆŒν•œμ΄ ν•„μš”ν•˜κΈ° λ•Œλ¬Έ)
    • μ‹œμŠ€ν…œμ— λŒ€ν•œ 무단 μ•‘μ„ΈμŠ€ κΆŒν•œμ„ μ–»κ±°λ‚˜ μ‹œμŠ€ν…œ κ΄€λ¦¬μžκ°€ μ‰½κ²Œ ν¬λž˜ν‚Ή λ‹Ήν•  수 μžˆλŠ” λΉ„λ°€λ²ˆν˜Έλ₯Ό ν™•μΈν•˜λŠ” 예방 쑰치의 μ—­ν• 

 

  • μ†Œν”„νŠΈμ›¨μ–΄ 역곡학(reverse engineering of software. (often JavaScript, C and Assembly language)
    • μ†Œν”„νŠΈμ›¨μ–΄ λΆˆλ²• μ •ν’ˆ 인증 μ‹œλ¦¬μ–Ό μ½”λ“œ 생성
    • μ†Œν”„νŠΈμ›¨μ–΄ ν‚€μ   및 ν¬λž™ 생성
    • κ²½μŸμ‚¬μ˜ 기술 정보 뢄석
    • μ•…μ„±μ½”λ“œ 뢄석
    • μ†Œν”„νŠΈμ›¨μ–΄ λ³΄μ•ˆμ„± ν…ŒμŠ€νŠΈ

 

  • μ½”λ“œ μΈμ μ…˜(Code injection)
    • μœ νš¨ν•˜μ§€ μ•Šμ€ 데이터λ₯Ό μ‹€ν–‰ν•¨μœΌλ‘œμ¨ μ•ΌκΈ°λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ λ²„κ·Έμ˜ λΆ€λ‹Ήν•œ μ‚¬μš©
    • μ‚½μž…μ€ κ³΅κ²©μžμ— μ˜ν•΄μ„œ μ·¨μ•½ν•œ 컴퓨터 ν”„λ‘œκ·Έλž¨ μ½”λ“œλ₯Ό μ‚½μž…ν•˜κ³  싀행을 λ³€κ²½ν•˜λŠ” λ°©μ‹μœΌλ‘œ 이용
    • 성곡적인 μ½”λ“œ μΈμ μ…˜μ€ 이것을 μ΄μš©ν•œ μ›œμ˜ μ „νŒŒ 같이 μ’…μ’… μ²˜μ°Έν•œ κ²°κ³Όλ₯Ό λ³΄μ—¬μ€Œ
    • (주둜 인터프리터에 μ‹ λ’°ν•  수 μ—†λŠ” 데이터λ₯Ό 보낼 λ•Œ λ°œμƒ)
    • ν•΄ν‚Ήμ΄λ‚˜ ν¬λž˜ν‚Ήμ—μ„œ 정보λ₯Ό μ–»κ±°λ‚˜ κΆŒν•œ ν™•λŒ€ λ˜λŠ” 비인가 접근을 μœ„ν•œ λͺ©μ μœΌλ‘œ μ‚¬μš©

 

  • SQL μΈμ μ…˜(SQL injections)
    • μ‘μš© ν”„λ‘œκ·Έλž¨ λ³΄μ•ˆ μƒμ˜ ν—ˆμ μ„ μ˜λ„μ μœΌλ‘œ μ΄μš©ν•΄, μ•…μ˜μ μΈ SQL문을 μ‹€ν–‰λ˜κ²Œ ν•¨μœΌλ‘œμ¨ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λΉ„μ •μƒμ μœΌλ‘œ μ‘°μž‘ν•˜λŠ” μ½”λ“œ μΈμ μ…˜ 곡격 방법

 

  • ν¬λ‘œμŠ€μ‚¬μ΄νŠΈ μŠ€ν¬λ¦½νŒ…(XSS. Cross-Site Scripting)
    • μ‚¬μ΄νŠΈ κ°„ μŠ€ν¬λ¦½νŒ…(주둜 λ‹€λ₯Έ μ›Ήμ‚¬μ΄νŠΈμ™€ 정보λ₯Ό κ΅ν™˜ν•˜λŠ” μ‹μœΌλ‘œ μž‘λ™)
    • μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 많이 λ‚˜νƒ€λ‚˜λŠ” μ·¨μ•½μ μ˜ ν•˜λ‚˜
    • μ›Ήμ‚¬μ΄νŠΈ κ΄€λ¦¬μžκ°€ μ•„λ‹Œ 이가 μ›Ή νŽ˜μ΄μ§€μ— μ•…μ„± 슀크립트λ₯Ό μ‚½μž…ν•  수 μžˆλŠ” 취약점
    • (이름이 CSSκ°€ μ•„λ‹Œ μ΄μœ λŠ” μ›Ή 기술인 CSS와 ν—·κ°ˆλ¦΄ 수 있기 λ•Œλ¬Έ)
    • μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‚¬μš©μžλ‘œλΆ€ν„° μž…λ ₯ 받은 값을 μ œλŒ€λ‘œ κ²€μ‚¬ν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•  경우 λ‚˜νƒ€λ‚¨
    • 이 μ·¨μ•½μ μœΌλ‘œ 해컀가 μ‚¬μš©μžμ˜ 정보(μΏ ν‚€, μ„Έμ…˜ λ“±)λ₯Ό νƒˆμ·¨ν•˜κ±°λ‚˜, μžλ™μœΌλ‘œ 비정상적인 κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κ²Œ ν•˜λŠ” 것이 κ°€λŠ₯

 

  • 취약점 곡격(Exploits)
    • λ˜λŠ” μ΅μŠ€ν”Œλ‘œμž‡
    • μ»΄ν“¨ν„°μ˜ μ†Œν”„νŠΈμ›¨μ–΄λ‚˜ ν•˜λ“œμ›¨μ–΄ 및 컴퓨터 κ΄€λ ¨ μ „μž μ œν’ˆμ˜ 버그, λ³΄μ•ˆ 취약점 λ“± 섀계상 결함을 μ΄μš©ν•΄ 곡격자의 μ˜λ„λœ λ™μž‘μ„ μˆ˜ν–‰ν•˜λ„λ‘ λ§Œλ“€μ–΄μ§„ μ ˆμ°¨λ‚˜ 일련의 λͺ…λ Ή, 슀크립트, ν”„λ‘œκ·Έλž¨ λ˜λŠ” νŠΉμ •ν•œ 데이터 쑰각을 μ˜λ―Έν•˜λ©°, μ΄λŸ¬ν•œ 것듀을 μ‚¬μš©ν•œ 곡격 ν–‰μœ„λ₯Ό 이λ₯΄κΈ°λ„ 함
    • 주둜 곡격 λŒ€μƒ μ»΄ν“¨ν„°μ˜ μ œμ–΄ κΆŒν•œ νšλ“μ΄λ‚˜ μ„œλΉ„μŠ€ κ±°λΆ€ 곡격(DoS) 등을 λͺ©μ μœΌλ‘œ 함

 

  • IP μ£Όμ†Œ μŠ€ν‘Έν•‘(IP address spoofing)
    • λ˜λŠ” IP μŠ€ν‘Έν•‘(IP spoofing)
    • λ‹€λ₯Έ 컴퓨터 μ‹œμŠ€ν…œμΈ κ²ƒμ²˜λŸΌ κ°€μž₯ν•˜κΈ° μœ„ν•΄ 거짓 μ†ŒμŠ€ IPμ£Όμ†Œλ‘œ 인터넷 ν”„λ‘œν† μ½œ(IP) νŒ¨ν‚·μ„ λ§Œλ“œλŠ” 것

 

  • ν¬λ Œμ‹(Forensics)
    • 컴퓨터 ν¬λ Œμ‹(computer forensic science) - 컴퓨터 λ²•μ˜ν•™
    • μ „μžμ  증거물 등을 사법 기관에 μ œμΆœν•˜κΈ° μœ„ν•΄ 데이터λ₯Ό μˆ˜μ§‘, 뢄석, λ³΄κ³ μ„œλ₯Ό μž‘μ„±ν•˜λŠ” 일련의 μž‘μ—…

 


 

질문 ν™˜μ˜, μˆ˜μ • 및 보완에 λŒ€ν•œ μ§€μ  ν™˜μ˜