brunch

You can make anything
by writing

C.S.Lewis

by Benny Jung Nov 22. 2021

ID 프로젝트에 오픈 소스를 활용할 때 8가지 고려사항

다음의 8 가지 사항을 고려하여 ID 관리 프로젝트에서 오픈 소스 코드를 안전하게 사용할 수 있는지 여부를 결정하라.





출처: https://www.csoonline.com/article/3588278/using-open-source-for-identity-projects-8-considerations.html?upd=1605101070013


조직이 구축 시간 단축과 비용 절감을 목적으로 기업 내에서의 오픈 소스 활용이 증가하고 있다. ‘기업의 오픈소스 현황(The State of Enterprise Open Source)’이라는 제목의 2019년 레드햇 보고서에 따르면 응답자 중 95%가 오픈소스를 “전략적으로 중요하다”고 판단하는 것으로 드러났다.


하지만 기업으에서의 오픈 소스 활용을 보자면 ID 관리분야는 약간 동떨어져 있다. 그 이유는 ID 관련 서비스를 설계 및구축하는데 있어서 복잡한 시스템일 수 있다. ID 분야에서도 오픈 소스를 보다 현명하게 활용하고 보안과 활용성을 확보할 수 있을까?


ID 프로젝트를 위하여 오픈 소스를 채택할 때 8가지 고려사항


오픈소스 활용에 대한 고려 시에는 두려움/불확실성/의심(FUD)이 존재한다. 이렇게 말하는 데에는 다 이유가 있다. 2018년 에퀴팩스(Equifax) 유출이 그 대표적인사례다. 오픈소스 활용 시 두려움/불확실성/의심(FUD)이 항상 존재하는 것이다. 이 사례에는 오픈소스 마젠토 플랫폼에 대해 무차별 대입 공격을 사용하는 사이버 범죄자들이 포함되어 있었다.


오픈 소스를 활용하는 데에는 이유가 있다. 이러한 채택은 다른 사람이 기초 작업을 수행했으므로 개발자가 할 필요가 없음을 의미한다. 이론적으로 여러 사람 (오픈 소스 커뮤니티)이 코드를 보고 확인했다. 이는 코드가 단위 테스트를 통과했음을 의미할 수 있지만 기능 테스트와는 다르다. ID 주도 서비스는 종종 다기능 시스템이다. 이러한 시스템의 기능 테스트, 무수한 사용자 여정 및 대체 경로는 코드를 꼬이게 하는 공격이 발생할 수 있다.


오픈 소스 코드는 조직이 최종 애플리케이션에 대한 제어를 유지하면서 폭넓은 ID 생태계 내의 특정 기능에 대한 시작할 수 있다.


오픈 소스 주도 ID 프로젝트에 착수하기 전에 여러사항들을 고려해보자. 우선, 무엇보다도 중요한 것은 소프트웨어 개발 라이프 사이클(SDLC)이 충족되는 가 하는 것이다. 오픈 소스 코드를 활용한다고 해서 일반적인 SDLC 프로세스에서 예외일 수 없다. 오픈 소스는 애플리케이션으로 가는 만능 열쇠가 아니다. 내외부에서 개발된 시스템과 같은 수준의 테스트과 유지보수가 필요하다. 다음은 고려해야 할 사항이다.


1. 보안과 블로트(Bloat)


오픈소스 소프트웨어는 코드 블로트(code bloat )에 취약하다. 이런 일이 발생하면 ‘블로트웨어 효과’가 발생하면서 보안 관리가 쉽지 않을 수 있다. 코드 라이브러리에 기능이 추가되는 블로트웨어에서는 소프트웨어 분석이 더욱 어려워지게 된다. 코드가 복잡해지면 맬웨어를 숨기기는 더욱 쉽다. 최근의 예가 옥토퍼스 스캐너 맬웨어이다. 보안 전문가들은 이것을 26개의 깃허브에서 발견했다.


오픈소스 라이브러리 중에서도 ID 영역에 있는 것들은 맬웨어에게 맛스러운표적이다. 저장소는 항상 최신 버전의 오픈소스 코드를 가진다. 옥토퍼스 스캐너처럼 맬웨어에 감염되면 업데이트에 해당 맬웨어가 통합된다. 이것을 찾지 못하면 제품에 맬웨어가 포함되어 아주 힘겨운 시간이 시작되는 것이다.


코드에 대한 통제력 부재는 최종 시스템의 취약성 증가로 이어지는 것이 가능하다. 전체를 신중하게 분석하고 테스트 해야 한다. 이로 인해 오픈 소스를 사용하는 시간이 더 증가 될 수 있다. 또한 오픈소스 코드가 재작성되는 경우 특정 시스템에서 애플리케이션이 손상될 수 있다.


2. 확장성


소비자용으로 개발된 ID 서비스는 높은 확장성을 요구하는 경우가 상당히 많다. 오픈 소스 프로젝트를 채택할 때, 확장성은 고려사항 목록의 우선순위가 되어야 한다.


3. 상호운용성


각종 ID 프로젝트에는 다수의 움직이는 요소가 있다. 그리고 제3자의 구성 요소를 활용하여 주요한 기능을 추가하는 경우가 있다. 예를 들어, 소비자용 ID 시스템은 CRA(신용정보기관)를 이용하여 사용자 속성도 검증이 가능하다. 오픈 소스는 선택한 제3자와의 상호운용 능력이 필수적이며, 이로 인하여 오픈소스 코드를 확장할 필요도 있다.


4. Flexibility 유연성


오픈 소스에 기반한 ID 서비스를 다른 데이터베이스로 확장하는 작업, 다양한 속성을 통합하며 다양한 검증 및 인증을 하는 작업, 프로토콜을 해석하는 등의 작업을 얼마나 용이하게 처리할 수 있을까? 오픈소스 커뮤니티가 OIDC, CIBA 등의 새로운 표준에 대한 지원을 할 때까지 기다려야 하는 경우가 있을 수 있다.


5. 미래 보장


기능을 수정할 수 있나? 요건에 따라 기능을 변경하고 추가하기가 용이한가? ID 서비스에 대하여 지속적으로 우려할 수 있다. 고객의 기대 수준은 시간에 따라 바뀌지만 기본적인 서비스는 지속되어야 한다. 특정 오픈 소스 라이브러리를 사용하는데 너무 집중한다면 유사한 기능을 제공하는 향상된 라이브러리로 대체하기가 힘들 수 있다. 오픈소스가 벤더 락 버전이 될 수도 있다.


6. 지원 및 유지보수


오픈소스 솔루션에 추가적인 지원 패키지가 수반되곤 한다. 오픈소스 사용 효과를 흐리게하는 것 일 수 있다. 자체 인력이 지원 패키지의 지식 또는 범위를 벗어나는 레벨로 코드를 개발하는 경우 문제가 발생할 수 있다. 또한 유지보수 시에도 문제가 된다.


ID 서비스는 디지털 상호작용에 있으며 보안 분야의 변화에 대응해야 한다. 새로운 공격이 발생하면서 ID 서비스는 시스템을 수정하고 구형 소프트웨어의 패치를 가능하게 하며 기존 시스템에 신규 기능을 추가하여 공백을 줄일 수 있어야 한다.


7. ID 관련 전문 지식


서비스에는 많은 분야의 전문 지식이 필요하다. 여기에는 UI / UX 지식, 개인 정보 보호 및 규정 준수에 대한 깊은 이해, 광범위한 보안 전문 지식이 포함된다. 오픈 소스 코드를 사용하는 것은 ID 관련 서비스를 만드는 한 가지 측면 일뿐이다. 잘 설계되고 개발된 ID 시스템에는 광범위한 인구 통계학적으로 적합한 플랫폼을 구축하는 다각적인 접근 방식이 필요하다. 코드는 그것을 지시하는 것이 아니라 그 적합성을 따라야 한다. 코드로 시작하는 것은 잘못된 방법이다. 그러나 코드가 작업을 위한 기준을 형성할 수 있다면 많은 작업을 제거할 수 있다.


8. 의존성


오픈소스 라이브러리에 의존성이 있을 때가 있다. 설치할 때 다른 관련 라이브러리가 설치된다. 이런 경우 불필요한 오픈소스 라이브러리가 많을 수 있는데 일부 라이브러리의 중요도가 낮아지면서 문제가 발생할 때에는 오픈 소스 커뮤니티가 대안을 제시한다. 그래서 새로운 라이브러리로 바꿔야 할수도 있다. 만약 중요도가 떨어진 라이브러리를 지속적으로 사용한다면 해결되지 않은 취약점이 포함되어 있을 수도 있다.


오픈소스를 현명하게 사용하기


성격상 ID 서비스는 매우 역동적이다. 종종 ID 서비스는 전자상거래 및 고객 기대치를 따라야합니다. 보안 환경은 ID 시스템과 사용자 속성이 대상이 된다. 이는 시스템이 변화를 처리할 수있을만큼 유연해야 함을 의미한다.


오픈 소스를 사용하기로 선택한 경우 신중하게 선택하고 오픈 소스 라이브러리를 적용 할 위치를 선택하라. 궁극적으로 ID 시스템의 설계가 우선시 되어야 한다. 오픈 소스는 현명하게 선택한다면 프로젝트를 보강될 수 있다. 실제로 원하는 기능만 제공하는 라이브러리를 선택하길 바란다.



작가의 이전글 투표에 블록체인을 활용하지 마세요.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari