[UiPath] SecureString을 String으로 변환

Convert SecureString to String for UiPath

UiPath Orchestrator(오케스트레이터)에서 asset(자산)의 유형이 credential(자격 증명)인 경우, Get Credential 액티비티를 통해 저장되어 있는 자격 증명을 획득하게 됩니다.

이때, 자격 증명의 이름에 해당하는 ID는 string(문자열) 유형의 변수에 담을 수 있지만, 비밀번호에 해당하는 PW는 SecureString(보안문자열) 유형의 변수에 담을 수 있습니다.

만약 RPA로 프로세스를 구현하는 과정 중에서 어떠한 사유로 인하여, SecureString을 일반적인 문자열로 변환이 필요한 경우가 아주 가끔 있는데, 이 글에서는 그 과정을 정리해두었습니다.

실습을 위한 준비

먼저 오케스트레이터에 자격 증명을 추가해둡니다.

SecureString을 String으로

첫 번째 단계는 보안 문자열을 일반 문자열로 변경하는 과정을 보여드릴 것 입니다.
Get Credential 액티비티를 통해 오케스트레이터로부터 자격증명을 획득하고, 직후 Write Line 액티비티를 통해 Output(출력) 패널에 표시를 해 봅니다.

Get Credential 액티비티에 오케스트레이터 폴더 경로와 credential asset 이름을 설정하고, 출력 부분에 사용자 이름과 암호를 담을 변수를 설정해줍니다.

변수를 설정하실 때, Studio의 경우에는 해당 필드에 커서를 활성화한 뒤, Ctrl+K 단축키를 입력하면, 바로 변수를 생성하실 수 있습니다. StudioX의 경우에는 필드 오른쪽 + 메뉴를 펼친 후, 변수 만들기를 통해 만드실 수 있습니다.

각각 어떠한 값을 가지고 있는지 확인해보려고 했으나, SecureString 유형의 변수는 곧바로 출력되지 않음을 확인할 수 있습니다. 이때, 자주 사용하는 방법으로 .ToString 메서드를 붙여 강제로 출력하도록 한 후, 실행해봅니다.

출력 결과에서, 앞서 오케스트레이터에서 설정한 자격증명의 ID는 정상적으로 출력되지만, PW는 변수의 유형(SecureString은 System.Security.SecureString 유형)을 출력하고 있습니다.

이제, 다음과정을 통해 Assign 액티비티를 활용하여 새로운 String 유형의 변수에 SecureString을 String으로 변환하는 함수를 설정하여 출력할 것입니다.

Assign 액티비티의 Save to에는 String 타입의 변수를 지정하고, Value에는 다음 코드를 추가합니다.

New System.Net.NetworkCredential(String.Empty,"보안문자 변수").Password

앞서, 암호화된 변수명으로, sstrPW를 사용했기 때문에, 여기서는 “보안문자 변수”를 sstrPW로 변경하여 사용했습니다.

New System.Net.NetworkCredential(String.Empty,sstrPW).Password

이제 스크립트를 실행해서, 어떻게 출력되는지 확인해봅니다.

오케스트레이터에 등록했던 내용대로 출력됨을 확인할 수 있습니다.

주의사항

아주 당연한 이야기이지만, 이와 같은 내용은 주의해서 사용해야 합니다.
오케스트레이터 혹은 시스템에 등록되어 있는 자격증명의 암호를 그대로 출력하기 때문에, 거의 대부분의 환경, 장담컨데 99%의 비즈니스 및 엔터프라이즈 환경에서는 ‘심각한 보안의 위협’에 해당합니다. 특히, 변환된 결과를 Write Line 액티비티나 Log Message 액티비티를 통해 출력 패널에 표시하는 것은 100% 보안 위반과 연결됩니다.

따라서, 불가피하기 위 코드를 사용하고자 하는 경우에는 반드시 정보보안 담당자와의 협의를 거치거나 디버그 모드(Studio 라이선스에 한함/StudioX는 불가), 메시지박스 표시(Studio/StudioX 공통) 등을 통해 로그에 남지 않도록 조치하여야 합니다.

또한, 프로세스가 완성된 이후에는 이 부분의 스크립트는 반드시 삭제하는 것이 좋으며, 디버그 혹은 잊어버린 패스워드를 찾는 용도 외로 사용할 경우, 그 책임은 온전히 사용자 본인의 몫입니다. 절대로 운영환경에서는 사용하지 않기를 권장드립니다.

Write a Comment

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다