π¨ μ·¨μ½ν MCP μλ² - 보μ κ΅μ‘μ© λ°λͺ¨
β οΈ κ²½κ³ : μ΄ μλ²λ κ΅μ‘ λͺ©μ μΌλ‘λ§ μ€κ³λμμΌλ©°, μ€μ μ΄μ νκ²½μμλ μ λ μ¬μ©νμ§ λ§μΈμ!
κ°μ
μ΄ νλ‘μ νΈλ MCP (Model Context Protocol) μλ²μ μΌλ°μ μΈ λ³΄μ μ·¨μ½μ λ€μ μμ°νκ³ , μμ ν κ°λ° λ°©λ²μ κ΅μ‘νκΈ° μν΄ μ€κ³λμμ΅λλ€.
ν¬ν¨λ μ·¨μ½μ λ€
λͺ λ Ήμ΄ μ£Όμ (Command Injection) -
execute_system_commandκ²½λ‘ μν 곡격 (Path Traversal) -
read_file_content,write_file_contentλΉμ§λ ¬ν 곡격 (Deserialization) -
process_pickled_dataSQL μΈμ μ -
search_user_databaseλ―Όκ°ν μ 보 λ ΈμΆ -
get_system_infoμλΉμ€ κ±°λΆ κ³΅κ²© (DoS) -
generate_large_dataμμ νμΌ λ³΄μ -
create_temp_fileLDAP μΈμ μ -
ldap_search_simulationXML μΈλΆ μν°ν° (XXE) -
parse_xml_unsafe
μ€μΉ λ° μ€ν
1. μμ‘΄μ± μ€μΉ
2. μλ² μ€ν
3. λνν ν μ€νΈ
μ·¨μ½μ ν μ€νΈ
μ·¨μ½μ μ μμ νκ² ν μ€νΈν΄λ³΄λ €λ©΄:
κ΅μ‘ μλ£
SECURITY_DEMO.md- μμΈν μ·¨μ½μ μ€λͺ κ³Ό 곡격 μλ리μ€test_vulnerabilities.py- μ·¨μ½μ ν μ€νΈ μ€ν¬λ¦½νΈsrc/character_counter/server.py- μ·¨μ½ν μλ² κ΅¬ν
νμ΅ λͺ©ν
μ΄ νλ‘μ νΈλ₯Ό ν΅ν΄ λ€μμ νμ΅ν μ μμ΅λλ€:
μΌλ°μ μΈ μΉ μ ν리μΌμ΄μ μ·¨μ½μ λ€μ΄ MCP μλ²μμ μ΄λ»κ² λνλλμ§
κ° μ·¨μ½μ μ 곡격 벑ν°μ μν₯λ
μμ ν μ½λ© λ°©λ²κ³Ό λ°©μ΄ κΈ°λ²
보μ ν μ€νΈ λ° κ°μ¬ λ°©λ²
μ€μ΅ κ³Όμ
μ·¨μ½μ λΆμ: κ° λꡬμ μ·¨μ½μ μ μλ³νκ³ κ³΅κ²© μλ리μ€λ₯Ό μμ±νμΈμ
μμ ν ꡬν: μ·¨μ½ν κΈ°λ₯λ€μ μμ ν λ²μ μ ꡬνν΄λ³΄μΈμ
보μ ν μ€νΈ: ꡬνν μμ ν λ²μ μ ν μ€νΈν΄λ³΄μΈμ
κ°μ΄λλΌμΈ μμ±: μ‘°μ§μ MCP μλ² λ³΄μ κ°μ΄λλΌμΈμ μμ±ν΄λ³΄μΈμ
보μ μμΉ
MCP μλ² κ°λ° μ λ€μ μμΉμ λ°λ₯΄μΈμ:
μ΅μ κΆν μμΉ: νμν μ΅μνμ κΆνλ§ λΆμ¬
μ λ ₯ κ²μ¦: λͺ¨λ μ¬μ©μ μ λ ₯μ κ²μ¦νκ³ μλνμ΄μ¦
μλλ°μ€ μ¬μ©: 격리λ νκ²½μμ μ€ν
μ κΈ°μ μΈ λ³΄μ κ°μ¬: μ½λμ μ€μ μ μ κΈ°μ μΌλ‘ κ²ν
보μ μ λ°μ΄νΈ: μμ‘΄μ±μ μ΅μ μνλ‘ μ μ§
κ²½κ³ λ° λ©΄μ± μ‘°ν
β οΈ μ΄ νλ‘μ νΈλ μ€μ§ κ΅μ‘ λͺ©μ μΌλ‘λ§ μ€κ³λμμ΅λλ€.
μ€μ μ΄μ νκ²½μμλ μ λ μ¬μ©νμ§ λ§μΈμ
무λ¨μΌλ‘ νμΈμ μμ€ν μ λν΄ ν μ€νΈνμ§ λ§μΈμ
μ·¨μ½μ μ μ μ©νμ¬ λΆλ²μ μΈ νμλ₯Ό νμ§ λ§μΈμ
μ¬μ©μλ μ΄ μ½λμ μ¬μ©μ λν λͺ¨λ μ± μμ μ§λλ€
λΌμ΄μΌμ€
μ΄ νλ‘μ νΈλ κ΅μ‘ λͺ©μ μΌλ‘λ§ μ 곡λ©λλ€. μμ μ μ¬μ©μ κΈμ§ν©λλ€.
This server cannot be installed