snwlee / block-file-extensions

block-file-extensions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ“ νŒŒμΌ ν™•μž₯자 차단 과제

  • μ–΄λ–€ νŒŒμΌλ“€μ€ 첨뢀 μ‹œ λ³΄μ•ˆμ— λ¬Έμ œκ°€ 될 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 특히 exe, sh λ“±μ˜ μ‹€ν–‰ 파일이 μ‘΄μž¬ν•  경우 μ„œλ²„μ— μ˜¬λ €μ„œ 싀행이 될 수 μžˆλŠ” μœ„ν—˜μ΄ μžˆμŠ΅λ‹ˆλ‹€.
  • λ•Œλ¬Έμ— 파일 ν™•μž₯자 차단을 ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

πŸ“ μš”건

  • κ³ μ • ν™•μž₯μžλŠ” 차단을 자주 ν•˜λŠ” ν™•μž₯자λ₯Ό 리슀트이며, defaultλŠ” unCheck λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

  • κ³ μ • ν™•μž₯자λ₯Ό check or uncheckλ₯Ό ν•  경우 db에 μ €μž₯λ©λ‹ˆλ‹€.

    • μƒˆλ‘œκ³ μΉ¨μ‹œ μœ μ§€λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.
    • μ•„λž˜μͺ½ μ»€μŠ€ν…€ ν™•μž₯μžμ—λŠ” ν‘œν˜„λ˜μ§€ μ•ŠμœΌλ‹ˆ μœ μ˜ν•΄μ£Όμ„Έμš”.
  • ν™•μž₯자 μ΅œλŒ€ μž…λ ₯ κΈΈμ΄λŠ” 20자리

  • μΆ”κ°€λ²„νŠΌ 클릭 μ‹œ db μ €μž₯되며, μ•„λž˜μͺ½ μ˜μ—­μ— ν‘œν˜„λ©λ‹ˆλ‹€.

  • μ»€μŠ€ν…€ ν™•μž₯μžλŠ” μ΅œλŒ€ 200κ°œκΉŒμ§€ μΆ”κ°€κ°€ κ°€λŠ₯

  • ν™•μž₯자 μ˜† Xλ₯Ό 클릭 μ‹œ dbμ—μ„œ μ‚­μ œ

  • μ»€μŠ€ν…€ ν™•μž₯자 쀑볡 체크

    • μ»€μŠ€ν…€ ν™•μž₯자 shλ₯Ό μΆ”κ°€ν•œ ν›„ λ‹€μ‹œ shλ₯Ό μΆ”κ°€ν–ˆμ„ λ•Œ κ³ λ €ν•˜μ—¬ 개발

πŸ“ μœ„ μš”κ±΄ 이외에 μ–΄λ–€ 점을 κ³ λ €ν–ˆλŠ”μ§€ μ μ–΄μ£Όμ„Έμš”.

  • μ‚¬μš©μžκ°€ μ»€μŠ€ν…€ ν™•μž₯자λ₯Ό μž…λ ₯ν•  λ•Œ, μž…λ ₯ν•œ ν™•μž₯μžκ°€ 이미 κ³ μ • ν™•μž₯자 λ¦¬μŠ€νŠΈμ— μ‘΄μž¬ν•˜λŠ” 경우

    • ν•΄λ‹Ή ν™•μž₯자λ₯Ό κ³ μ • ν™•μž₯자둜 μΆ”κ°€ν•©λ‹ˆλ‹€.
    • 이λ₯Ό 톡해 μ‚¬μš©μžκ°€ κ³ μ • ν™•μž₯자λ₯Ό μž…λ ₯ν•˜λŠ” κ²½μš°μ—λ„ μžμ—°μŠ€λŸ½κ²Œ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ‚¬μš©μžκ°€ ν™•μž₯자 이름을 μˆ˜μ •ν•΄μ„œ 첨뢀할 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ μœ„/λ³€μ‘° 체크λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.

    • ν™•μž₯μžκ°€ μ—†λŠ” νŒŒμΌλ„ 검사가 κ°€λŠ₯ν•©λ‹ˆλ‹€.
    • Apache Tikaλ₯Ό μ΄μš©ν•˜μ—¬ MIME Type 체크λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
    • Complete MIME Types List - FreeFormatter.com
  • μ €μž₯ μ‹œ 랜덀 ν•œ 파일λͺ…μœΌλ‘œ μΉ˜ν™˜ν•˜κ³  μ œκ³΅λ°›μ€ 파일λͺ…은 λ³„λ„λ‘œ λ³΄κ΄€ν•©λ‹ˆλ‹€.

  • μ €μž₯ 곡간을 μ΄μš©ν•œ μ„œλ²„ 곡격을 막기 μœ„ν•˜μ—¬ μ—…λ‘œλ“œ μš©λŸ‰ 파일 크기λ₯Ό μ œν•œν•©λ‹ˆλ‹€.

  • μ •κ·œν™”λ₯Ό 톡해 ν™•μž₯자 및 파일 이름을 μ œν•œν•©λ‹ˆλ‹€.

    • κ³ μ •, μ»€μŠ€ν…€ ν™•μž₯자 λͺ¨λ‘ μ •κ·œν™” 검사λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
    • NULL Byte Injection을 막기 μœ„ν•œ 검사λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€. (shell.sh%00.png)
    • URL Encoding을 μ΄μš©ν•œ ν™•μž₯자 차단 우회λ₯Ό λ°©μ§€ν•©λ‹ˆλ‹€. (.bat -> .ba%74)
  • μ—…λ‘œλ“œ 파일의 파일 μ‹œκ·Έλ‹ˆμ²˜(File Magic Number)λ₯Ό κ²€μ‚¬ν•©λ‹ˆλ‹€.

    • μ‰˜ 슀크립트 - "#!", EXE μ‹€ν–‰ 파일 - "MZ" 같이 ν•„μˆ˜λ‘œ λ§‰μ•„μ•Όν•˜λŠ” ν™•μž₯자인 경우 μ‹œκ·Έλ‹ˆμ²˜ 검사λ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€.
    • List_of_file_signatures - Wiki

πŸ€” μΆ”ν›„ λ°©ν–₯μ„±

  1. λ°˜λŒ€λ‘œ μ—…λ‘œλ“œ κ°€λŠ₯ ν™•μž₯자λ₯Ό μ²΄ν¬ν•˜λŠ” λ°©μ‹μœΌλ‘œ λ³€κ²½

  2. image, video, text, audio μœ ν˜•λ³„λ‘œ 차단

  3. μ‚¬μš©μžκ°€ μ ‘κ·Όν•  수 없도둝 별도 μ„œλ²„μ— μ—…λ‘œλ“œ 파일 μ €μž₯

  4. 파일이 μ—…λ‘œλ“œλ˜λŠ” λ””λ ‰ν† λ¦¬μ˜ μ‹€ν–‰ κΆŒν•œ 제거

  5. μ—…λ‘œλ“œλœ μ‹€μ œ 파일의 ν™•μž₯μžλŠ” μ œκ±°ν•˜κ³  ν•΄λ‹Ή ν™•μž₯자λ₯Ό λ”°λ‘œ μ €μž₯ 관리

  6. μ•…μ„± 파일 검사 APIλ₯Ό μ‚¬μš©

ERD

image

ν™”λ©΄ ꡬ성

image

About

block-file-extensions


Languages

Language:Java 55.9%Language:JavaScript 27.6%Language:CSS 6.8%Language:HTML 6.5%Language:Shell 3.2%