16. Security

보호(컴퓨터 시스템의 자원에 대한 프로세스와 사용자의 접근에 대한 제어 메커니즘)와 보안(시스템의 통합성과 데이터의 보존에 대한 신뢰도)은 컴퓨터 시스템에 있어 핵심적이다. 이를 알아보자.

16.1. The Security Problem

많은 애플리케이션에서 컴퓨터 시스템의 보안을 보장하는 것에는 많은 노력을 수반할 가치가 있다. 시스템 내의 자원이 모든 환경에서 의도된 대로 사용/접근될 때 이를 안전하다고 한다. 시스템의 보안 위반은 고의적 또는 돌발적으로 나뉠 수 있다. 보안 침입을 시도하는 자를 침입자, 해커, 공격자라 하고, 잠재적 보안 위반을 위협, 보안을 깨려는 시도를 공격이라 한다. 이에는 다음 등이 있다: 비밀 위반, 온전성 위반, 가용성 위방, 서비스 절도, 서비스 거부(DOS) 등. 이에는 여러 방법이 있는데 가장 흔한 것은 호스트 등으로 가장인증을 위반하는 시도가 있다. 다른 방법은 재전송 공격이 있는데 이는 공격자가 메시지 수정을 동반하기도 한다. 다른 공격은 중간자 공격이다. 네트워크 통신에서 이는 세션 하이재킹에 선행하기도 한다. 다른 넓은 범위의 공격은 권한 상승이 있다.

악의적 공격에 대한 완벽한 보호를 제공하는 것은 불가능하지만, 보호의 척도를 잴 수는 있다: 이는 물리적 보호, 네트워크 층의 보호, 운영체제에서의 보호(공격 표면), 애플리케이션에서의 보호 이렇게 4개의 층위로 나뉜다. 다른 무시할 수 없는 층위는 인간에 대한 것이다. 사회공학적인 면에서 피싱 등에 의해 보안 위반이 발생하기도 한다. 이에 대해 시스템은 보안을 제공할 수 있어야 한다. 하지만 이는 간단하지는 않다.

16.2. Program Threats

공격자들의 주된 목표는 보안 위반을 할 수 있는 프로그램을 쓰거나 일반적인 프로세스가 동작을 바꿔서 보안 위반을 하게 하는 것이다. 원격 접속 도구(RAT)의 악용 등이 그 예이다.

16.2.1. Malware

멀웨어는 컴퓨터 시스템을 손상시키거나, 장애를 일으키거나, 취약점을 이용하도록 설계된 소프트웨어이다. 표시된 기능보다 비밀리에 악의적으로 동작하는 프로그램을 트로이 목마라 한다. 예로는 트로이 뮬과 스파이웨어가 있다. 최근 들어 환영받지 못하는 멀웨어로는 랜섬웨어로 자료를 암호화해 인질로 잡고 돈을 요구한다. 이런 멀웨어들 대부분은 최소 권리의 원리를 충실히 지키면 막을 수 있다. 최소 권리의 원리를 지키지 못한 운영 체제 설계는 나쁜 설계이다.

다른 형태의 멀웨어로는 프로그램이나 시스템의 설계자가 소프트웨어에 그만이 이용할 수 있는 트랩 도어(백 도어)를 남기는 것이다. 이 구멍은 특별한 논리 폭탄이 만족되어야만 실행된다. 컴파일러 제작자가 트랩 도어를 남길 수도 있다. 이를 감지하려면 모든 소스 코드를 코드 리뷰해야 하므로 분석하기는 어렵다.

16.2.2. Code Injection

대다수의 소프트웨어는 악의적이지 않지만 코드 주입 공격에 의해 악의적으로 탈바뀜할 수 있다. 메모리를 포인터로 제어할 수 있게 하는 C나 C++ 등의 프로그래밍 언어의 취약점으로 인해 일어난다. 예로는 버퍼 오버플로우 등이 있다. 이는 아마추어 해커도 쉽게 가능하다. 버퍼 오버풀로우 어택은 시스템간, 커뮤니케이션 채널간에도 이루어질 수 있으므로 매우 치명적이다. 버퍼 오버플로우 뿐만 아니라 해제한 메모리 버퍼를 재사용하는 것도 코드 주입에 취약할 수 있다.

16.2.3. Viruses and Worms

다른 프로그램 위협은 바이러스로 이는 올바른 프로그램에 주입된 코드 조각이며 자가 복제성이 있고 다른 프로그램을 전염시킨다. 바이러스와 비슷하지만 사람의 도움 없의 네트워크를 통해 복제되는 것은 이라 한다. 바이러스가 대상 기계에 동작하면 바이러스 집속기가 바이러스를 시스템에 삽입한다. 이후에는 다양한 일을 할 수 있다. 바이러스의 종류는 여러 가지로 파일, 부트, 매크로, 루트킷, 소스 코드, 다형(가질 수 있는 바이러스 서명이 다양한 경우), 암호화, 은밀, 다분할, 장갑 바이러스 등이 있다. 이런 종류들은 시대가 지남에 따라 점차 늘어나는데 최근의 브라우저 바이러스 등은 키입력 로거 등의 백도어를 포함하기도 한다. 모노컬쳐 환경의 필요성과 그것이 바이러스의 영향력을 늘리는지는 보안 커뮤니티에서 논쟁거리이다. 바이러스는 다크 웹을 통해 퍼지기도 한다.

16.3. System and Network Threats

운영 체제가 개방되어 있을 수록 이용할 수 있는 버그들이 많다. 그래서 최근에는 운영 체제들이 기본으로 보안이 제공되도록 노력한다. 모든 해커는 흔적을 남기므로 해커들은 대개 좀비 시스템을 통해 공격을 수행한다. 브로드밴드와 WiFi의 폭넓은 보급은 공격자 추적을 어렵게 했다.

16.3.1. Attacking Network Traffic

네트워크 공격에 있어 공격자는 네트워크 트래픽을 가로막는 스니핑, 참가자 중 하나를 가장하는 스푸핑 등을 택할 수 있다.

16.3.2. Denial of Service

서비스 거부 공격은 시스템의 정상적인 사용을 방해한다. 이는 일반적으로 네트워크 기반인데 설비의 자원을 많이 소모하게 하거나 설비의 네트워크를 방해하는 두 종류가 있다. 서비스 거부 공격은 일반적으로 막는 것이 불가능하다. 여러 사이트에서 동시에 이루어지는 분산형 서비스 거부(DDoS) 공격은 더 어렵다. 어떨 때는 사이트가 공격받는 중인지를 인지하지 못할 때도 있다. 서비스 거부 공격에 의한 피해를 줄이기 위해서 프로그래머들은 로직과 알고리즘을 주의 깊게 선택해야 한다.

16.3.3. Port Scanning

포트 조사는 그 자체로 공격은 아니지만 해커들이 시스템의 취약점을 감지하는 데 쓰일 수 있다. 이는 공격자가 취약점을 알아내기 위해 사용 중인 운영 체제와 그 서비스의 유형을 조사하는 정찰 과정 중의 하나로 쓰인다. 네트워크 취약점 조사기는 상업적 제품으로도 판매된다.

16.4. Cryptography as a Security Tool

컴퓨터 공격에 대해서는 여러 방어법이 존재하는데, 가장 폭넓은 도구는 암호화이다. 독립된 컴퓨터에서는 운영 체제가 프로세스간 통신의 발신자와 수신자를 다 파악할 수 있지만 여러 컴퓨터의 네트워크에서는 그것이 불가능하다. 일반적으로 이것은 네트워크 주소를 통해 파악되지만 이것은 공격자에 의해 가장될 수 있다. 그러므로 네트워크를 믿지 않고 발신자-수신자간에 메시지를 암호화하는 것이 필수적이다. 어떤 국가에서는 법적 조사를 위해 이런 암호화에 대한 백도어를 남기도록 강제하기도 한다.

16.4.1. Encryption

현대 컴퓨팅에서는 통신 중에 여러 암호화 알고리즘으로 메시지를 암호화한다. 이는 대칭 암호화와 비대칭 암호화 두 종류가 있다.

16.4.1.1. Symmetric Encryption

대칭 암호화 알고리즘에서는 암호화와 복호와에 같은 키가 쓰인다. 그러므로 키는 비밀 키여야 한다. 근래 가장 널리 쓰이는 대칭 암호화 알고리즘은 데이터 암호화 표준(DES)로 이는 블록 암호문으로 널리 알려져 있다. 최근에는 키를 완전 탐색으로 찾아낼 수 있어서 불안전하다고 여겨지는데 이를 방지하기 위해 개량한 삼중 DES가 나오기도 했다. 2001년에는 새 블록 음호문인 발전된 암호화 표준(AES)가 나왔다. 블록 암호문이라고 반드시 안전한 암호화 방식인 것은 아니다. 이에 대한 대안으로 스트림 암호문이 있다. 이는 키스트림을 출력한다. AES 암호화는 스트림 암호문을 사용하고 오늘날 가장 범용적이다.

16.4.1.2. Asymmetric Encryption

비대칭 암호화 알고리즘에서는 암호화 키와 복호화 키가 다르다. 두 키가 있는데 공개된 키를 쓰는 사람이면 누구나 암호화를 할 수 있지만 나머지 비밀 키를 만든 사람이 아니면 복호화는 할 수 없다. 이 공개키 암호는 암호론에 있어 혁명이었다. 가장 널리 쓰이는 예는 RSA가 있다. RSA는 공개 키비밀 키를 사용해 정수론 알고리즘을 쓴다. 암호화는 공개 키를 배포함으로부터 이루어진다. 비대칭 암호화는 훨씬 많은 계산량이 드므로 인증 등에 대해서만 쓰인다.

16.4.1.3. Authentication

메시지의 가능한 전송자를 제한시키는 것을 인증이라 한다. 그러므로 인증은 암호화에 대해 상호 보완적이다. 인증 알고리즘에도 두 가지 종류가 있는데, 이를 위해서는 우선 메시지 다이제스트(해시 값)을 쓰는 해시 함수를 이해할 필요가 있다. 첫 번째 종류의 인증 알고리즘은 대칭 암호화를 사용한다. 이 메시지 인증 코드(MAC)에서는 비밀 키를 이용해 메시지로부터 생성된 체크섬이 쓰인다. 두 번째 종류의 인증 알고리즘은 디지털 서명을 사용하는 디지털 서명 알고리즘이다. 이를 검증하는 코드 서명은 많은 시스템에서 범용적으로 쓰이는 보안 증강 방법이다. 암호화와 인증은 같이 쓰일 수도 있고 독립적으로 쓰일 수도 있다. 디지털 서명은 부인 방지의 일부로서도 쓰인다.

16.4.1.4. Key Distribution

대칭키의 배포는 때로는 대역 외로 이루어진다. 비대칭 키의 경우 공개 키는 비밀리에 유지될 필요가 없기 때문에 키 링에는 간단한 저장소로도 충분하다. 하지만 공개 키를 배포하는 데 있어도 중간자 공격에 대한 대비는 필요하다. 문제는 인증에 대한 것, 그러니까 공개 키의 소유자에 대한 증명이다. 이에는 인증 기관에 의해 발급된 디지털 증서를 쓸 수도 있다.

16.4.2. Implementation of Cryptography

네트워크 프로토콜은 대개 층으로 구성되어 있으며, 각 층이 그 아랫 층에 대한 클라이언트로 기능한다. 이 중 어느 층에도 암호화가 삽입될 수 있다. 네트워크 층 보안은 IPSec으로 표준화되어 있는데 이는 대칭 암호화와 인터넷 키 교환(IKE) 프로토콜을 사용한다. 이는 공개키 암호화에 기반하고 가상 전용망(VPNs)의 기본으로 쓰인다. 프로토콜 스택의 어디에 암호화 보호를 위치시키는 것이 최적인지에 대해서는 정답은 없지만, 더 낮은 층위에 있을 수록 많은 보호가 주어진다. 하지만 이는 고층 프로토콜에 대한 보호가 불충분해지기도 한다. 암호화는 좋은 목적이 아니라 랜섬웨어 등 악의적인 목적으로 쓰일 수도 있다.

16.4.3. An Example: TLS

전송 층 보안(TLS)은 두 컴퓨터가 안전하게 통신할 수 있게 하는 암호화 프로토콜로, 많은 옵션을 가진 복잡한 프로토콜이다. 클라이언트와 서버간에는 세션 키를 통해 둘 간의 대칭 암호화를 이룬다. 이는 인터넷 뿐만 아니라 더 많은 작업들에 대해서도 폭넓게 쓰인다.

16.5. User Authentication

사용자 인증은 운영 체제의 핵심적인 보안 요소이다.

16.5.1. Passwords

가장 범용적인 접근법은 비밀 번호를 사용하는 것이다. 이는 컴퓨터 시스템에서 오브젝트를 보호하는 데에도 쓰이지만 사용자 인증에도 쓰인다. 실제로 대다수 시스템은 사용자에 있어 최대 하나의 비밀 번호만을 요구한다.

16.5.2. Password Vulnerabilities

비밀 번호는 이해하기 쉽고 쓰기 쉬우므로 매우 범용적이지만, 추측되기 쉬운 비밀 번호를 쓰면 보안에 취약해진다. 침입자는 사용자의 어깨 너머를 훔쳐 보면서도 비밀 번호를 알 수도 있고 네트워크 모니터링으로 스니핑할 수도 있다. 비밀 번호를 어딘가에 적어 놓으면 큰 문제가 된다. 또한 사용자 계정 공유를 통해서도 보안상의 문제가 발생할 수 있다. 비밀 번호는 시스템에 의해 생성되거나 사용자가 직접 정할 수 있다. 가능한 비밀 번호에 대한 규칙은 시스템에 따라 다르다.

16.5.3. Securing Passwords

비밀 번호를 어떻게 비밀스럽게 저장할까? 해시 함수를 사용할 수도 있지만, 시스템이 비밀 번호에 대한 제어권을 잃지 않기 위해 솔트를 치는 것이 필요하다.

16.5.4. One-Time Passwords

비밀번호 스니핑을 막기 위해 시스템은 쌍 비밀번호를 쓸 수 있다. 이 발상은 일회용 비밀번호에 이용될 수 있다. 이를 구현할 때는 개인 식별 번호(PIN)를 통해 사용자가 이인자 인증을 하도록 한다.

16.5.5. Biometrics

인증에 있어 생체 인증 방법을 쓰기도 한다. 한 방법으로는 지문 인식이 있다. 단독으로 쓰기보단 다인자 인증 중 하나로 쓰는 것이 더 유용하다.

16.6. Implementing Security Defenses

보안 위협에는 여러 방법이 있으므로 보안 이론도 폭넓게 존재한다. 전문가들은 이 보안 이론을 깊이 구독한다.

16.6.1. Security Policy

컴퓨팅의 보안을 개선하는 첫 번째 방법은 적절한 보안 정책의 수립이다. 이는 활성 문서로 이루어져야 한다.

16.6.2. Vulnerability Assessment

보안 정책의 평가는 위험 평가를 통해 이루어진다. 이는 알려진 취약점들을 활용한 침투 시험을 통과하는지를 본다. 이는 여러 부분을 테스트하며 대개 컴퓨터 자원 활용이 상대적으로 적을 때 수행된다. 분리된 시스템에 비해 네트워크 컴퓨터는 보안 공격에 민감하므로 더 주의 깊은 평가가 수행되어야 한다. 네트워크들에 대해서는 취약점 조사를 해 문제를 조사할 수 있다. 어떤 사람들은 은닉을 통한 보안을 추구하기도 한다.

16.6.3. Intrusion Prevention

시스템과 설비를 보호하는 것은 침입 방지와 밀접한 연관이 있다. 이는 여러 방법이 있는데 그 중 한 방법으로는 시스템이 허니팟 리소스를 이용해 침입자를 유인해 이를 탐지하는 방법도 있다. 이런 해법들을 침입 방지 시스템(IPS)이라 한다. 침입은 무엇으로 구성되는가? 우선은 시스템에 의한 침입자의 알려진 패턴(서명)등을 이용한 서명 기반 감지가 쓰인다. 두 번째 접근법은 컴퓨터 시스템의 비정상 동작을 탐지하는 비정상 행위 탐지이다. 이는 동전의 양면과 같다. 비정상 행위 탐지는 제로 데이 공격 등 알려지지 않은 침입 방법을 찾는 데 있어 유용하다. 두 방법 중 하나가 다른 방법에 비해 우월한 것은 아니다. 거짓 양성거짓 음성간 트레이드오프가 존재하기 때문이다. 이에 대한 정량적 측정은 베이즈 정리로 이루어진다.

16.6.4. Virus Protection

바이러스에 대한 보호 방법은 여러 가지인데, 첫 번째 방법은 바이러스 명령어를 프로그램에서 제거하는 소독 방법이 있다. 바이러스와 안티바이러스 소프트웨어는 갈수록 복잡해져 가는데 근래 안티바이러스의 방법 중 하나는 프로그램을 먼저 샌드박스에서 실행해 코드의 동작을 조사하는 방법이 있다. 컴퓨터 바이러스에 대한 가장 안전한 보호는 안전 컴퓨팅이다. 예를 들어 매크로 바이러스에 대응하기 위해 Microsoft Word 문서를 리치 텍스트 포맷(RTF)로 변경하는 방법 등이 있다. 다른 방법은 모르는 사용자로부터의 이메일 첨부 파일을 열지 않는 것이다. 다른 안전 장치는 프로그램 실행 전 프로그램의 서명을 미리 검증하는 것이다.

16.6.5. Auditing, Accounting, and Logging

시스템에 대한 감사, 장부 작성, 로깅 등은 시스템의 성능을 감소시키지만, 유용한 부분도 있다.

16.6.6. Firewalling to Protect Systems and Networks

방화벽은 신뢰할 수 있는 쪽과 없는 쪽 사이에 존재하는 컴퓨터/기기/프로세스/라우터 등이다. 네트워크 방화벽은 복수의 시큐리티 도메인간 접근을 제한하고 모든 연결을 감시하고 로깅한다. 이런 방화벽은 네트워크를 여러 도메인으로 나눌 수도 있다. 예를 들어 비무장 지대(DMZ)를 분리할 수도 있다. 물론, 방화벽은 그 자체로 안전하고 공격에 대해 견딜 수 있어야 한다. 하지만 방화벽은 터널링을 통한 공격도 막아 주지는 않는다. 최근에는 네트워크 방화벽뿐만 아니라 전용 방화벽, 애플리케이션 프록시 방화벽, XML 방화벽, 시스템 호출 방화벽 등도 있다.

16.6.7. Other Solutions

다른 여러 보안 방법도 있는데 그 중 하나로는 운영 체제에 의해 이루어지는 주소 공간 레이아웃 무작위화(ASLR)이 있다. 모바일 운영 체제에서는 사용자 데이터와 시스템 파일을 별개의 파티션에 배치하기도 한다.

16.6.8. Security Defenses Summarized

여러 보안 방어법을 요약하면 다음과 같다.

  • 안전 컴퓨팅에 대한 교육
  • 피싱 방지에 대한 교육
  • 안전 통신을 사용
  • 컴퓨터 하드웨어를 물리적으로 보호
  • 공격 표면을 최소화시키도록 운영 체제를 설정
  • 시스템 데몬, 권한 애플리케이션/서비스를 가장 안전하게 설정
  • 가급적 신형 하드웨어와 소프트웨어를 사용
  • 시스템과 애플리케이션을 업데이트
  • 신뢰할 수 있는 애플리케이션만 실행
  • 시스템에 대한 로깅과 감사
  • 안티바이러스 소프트웨어를 설치하고 사용
  • 강한 비밀 번호를 사용하고 이를 기록하지 않음
  • 침입 방지, 방화벽, 네트워크 기반 보호를 사용
  • 중요한 설비에 대해서는 주기적으로 취약점 조사를 수행
  • 대용량 기기를 암호화
  • 중요한 시스템과 설비에 대해서는 보안 정책을 수립하고 업데이트

16.7. An Example: Windows 10

Windows 10의 예제를 알아보자. Windows 10 보안 모델은 사용자 계정에 기반한다. 사용자가 로그인하면 Windows 10은 보안 접근 토큰을 생성해 이를 통해 사용자를 식별한다. Windows 10은 대상이라는 개념을 통해 사용자가 실행하는 프로그램이 사용자 권한 밖에 있는 시스템에 대한 접근을 하지 못하게 한다. 대상은 사용자가 실행하는 각 프로그램에 대한 허가를 추적하고 관리한다. 사용자가 로그온한 뒤 실행하는 일반적 애플리케이션 프로그램은 단순 대상으로 이는 그 사용자의 보안 접근 토큰에 기반한 보안 상황이 배정된다. 이에 비해 서버 대상은 클라이언트에 기반한 보안 상황이 배정된다. 이를 감사하는 것은 유용한 보안 테크닉이다.

Windows Vista는 온전성 라벨을 이용해 온전성 제어를 수행한다. 이는 특별히 명시되지 않으면 기본값 라벨이 배정된다. 오브젝트의 보안 특성은 Windows 10에서는 보안 서술자를 통해 이루어진다. 이는 접근 제어 목록 등을 포함한다.

Windows 10은 오브젝트를 디렉토리 등의 컨테이너 오브젝트나 파일 등의 비컨테이너 오브젝트로 분류한다. 컨테이너 오브젝트는 권한을 상속하지만 비컨테이너 오브젝트는 그렇지 않다. 시스템 관리자는 Windows 10 성능 모니터를 통해 문제를 모니터링할 수 있다. Windows 10의 이전 버전에 대한 차이는 코드 서명 등이 있다.

16.8. Summary

  • 보호는 내부의 문제이다. 보안은, 반면에, 컴퓨터 시스템과 시스템이 사용되는 환경 모두 – 사람, 건물, 사업, 가치 있는 물체, 위협 – 를 고려해야 한다.
  • 컴퓨터 시스템에 저장된 데이터는 허가받지 않은 접근, 악의적 파괴나 변조, 돌발적 비일관성 도입으로부터 보호되어야 한다. 데이터 일관성에 대한 돌발적 손실에 대한 보호가 데이터에 대한 악의적 접근에 대한 보호보다 더 쉽다. 컴퓨터 시스템에 저장된 데이터에 대해 악의적인 악용에 대한 절대적인 보호는 불가능하다. 하지만 가해자가 치러야 하는 비용을 충분히 높임으로써 그 정보에 대해 적절한 권한이 없을 때 접근하려는 시도를 전부는 아니더라도 대부분 저지시킬 수 있다.
  • 프로그램이나 개개 컴퓨터, 또는 컴퓨터 집단에 대해 다양한 종류의 공격이 수행될 수 있다. 스택/버퍼 오버플로우 기법은 공격자가 성공했을 경우 시스템 접근의 층위를 변경할 수 있다. 바이러스나 멀웨어는 사람의 상호작용이 필요하지만 웜은 저절로 지속됨으로써 수많은 컴퓨터를 감염시킬 수 있다. 서비스 거부 공격은 대상 시스템의 정상적인 사용을 가로막는다.
  • 암호화는 데이터의 송신자의 범위를 제한하고 인증은 데이터의 발신자의 범위를 제한한다. 암호화는 저장되거나 전송되는 데이터의 비밀성을 제공한다. 대칭 암호화는 공유 키를 필요로 하고 비대칭 암호화는 공개 키와 개인 키를 제공한다. 인증은 해싱과 함께 사용되었을 때 데이터가 변형되지 않았음을 검증할 수 있다.
  • 사용자 인증 방법은 시스템의 적법한 사용자를 식별하기 위해 사용된다. 일반적인 사용자명과 비밀 번호 보호 방식에 더해 여러 인증 방법이 쓰인다. 예를 들어 일회용 비밀번호는 세션에 따라 바뀌면서 재전송 공격을 피한다. 이인자 인증은 활성 PIN이나 시간에 따라 응답이 바뀌는 것을 통한 하드웨어 계산기 등 두 가지 방식의 인증을 필요로 한다. 다인자 인증은 3개 이상 방식의 인증을 필요로 한다. 이 방법들은 인증 위조의 방법을 극적으로 낮춘다.
  • 보안 사고를 감지하거나 막는 방법은 업데이트된 보안 정책, 침입 감지 시스템, 안티바이러스 소프트웨어, 시스템 사건에 대한 감사 및 로깅, 시스템 호출 모니터링, 코드 서명, 샌드박싱, 방화벽 등이 있다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중