애플리케이션 접속 가지 이유 - akamai...새로운 애플리케이션 접속 모델이...

13
package main; import ( "fmt"; "html";"log" ; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target str ing; Count int64; }; func main() { contro lChannel := make(chan ControlMessage);work erCompleteChan := make(chan bool); statusP ollChannel := make(chan chan bool); worker Active := false;go admin(controlChannel,st atusPollChannel); for { select { case resp Chan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel : workerActive = true; go doStuff(msg,work erCompleteChan); case status := <- worker- CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusP ollChannel chan chan bool) {http.HandleFun c("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=str ings.Split(r.Host, ":"); if len(hostTokens ) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[l en(host)-1-i] { fmt.Fprintf(w, "invalidhos tname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count "), 10, 64); if err != nil { fmt.Fprintf(w , err.Error()); return; }; msg := ControlM essage{Target: r.FormValue("target"), Coun t: count}; cc <- msg; fmt.Fprintf(w, "Cont rol message issued for Target %s, count%d" , html.EscapeString(r.FormValue("target")) , count); }); http.HandleFunc("/status",fu nc(w http.ResponseWriter, r *http.Request) 1 새로운 애플리케이션 접속 모델이 필요한 5가지 이유 1 새로운 애플리케이션 접속 모델이 필요한 5 가지 이유 package main; import ( "fmt"; "html";"log" ; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target str ing; Count int64; }; func main() { contro lChannel := make(chan ControlMessage);work erCompleteChan := make(chan bool); statusP ollChannel := make(chan chan bool); worker Active := false;go admin(controlChannel,st atusPollChannel); for { select { case resp Chan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel : workerActive = true; go doStuff(msg,work erCompleteChan); case status := <- worker- CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusP ollChannel chan chan bool) {http.HandleFun c("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=str ings.Split(r.Host, ":"); if len(hostTokens ) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[l en(host)-1-i] { fmt.Fprintf(w, "invalidhos tname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count "), 10, 64); if err != nil { fmt.Fprintf(w , err.Error()); return; }; msg := ControlM essage{Target: r.FormValue("target"), Coun t: count}; cc <- msg; fmt.Fprintf(w, "Cont rol message issued for Target %s, count%d" , html.EscapeString(r.FormValue("target")) , count); }); http.HandleFunc("/status",fu nc(w http.ResponseWriter, r *http.Request)

Upload: others

Post on 26-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

1새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1

새로운

애플리케이션 접속

모델이 필요한

5가지 이유

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

Page 2: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

2새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1Executive Summary

오늘날의 경쟁이 치열한 비즈니스 환경에서 살아남으려면 기업은 혁신적이고 효과

적이면서 민첩성과 보안이 우수한 서비스와 사용자 경험을 제공해야 합니다. 디지

털 혁신과 이를 구현하는 기술은 이러한 발전을 추구하기 위한 핵심 요소입니다.

가장 큰 성공을 거두는 기업들은 지속적으로 기술 스택을 평가 및 재조정함으로써

기업의 요구사항에 부합하고 시장점유율을 유지합니다.

그렇다면 많은 기업들이 낡고 복잡하면서도 안전하지 않은 애플리케이션 접속을

제공하는 기술에 의존하는 이유가 무엇일까요?

전통적인 VPN, 프록시, 원격 데스크톱 같은 기존의 애플리케이션 접속 솔루션은

기본적으로 기업 인프라에 대한 신뢰가 우선되어야 합니다. 사용자 또는 디바

이스가 권한을 갖고 있다는 것을 확인하면 해당 사용자 또는 디바이스는 전체 네트

워크에 접속할 수 있습니다. 일단 내부에 접속한 사용자와 디바이스를 신뢰하는

경계 중심의 보안 모델입니다.

하지만 최신 비즈니스 환경에서는 전통적인 네트워크 경계 외부에 사용자, 디

바이스, 애플리케이션, 데이터가 존재하기 때문에 이 방식은 더 이상 효과적이지

않습니다. 그리고 기업 네트워크에 대한 접속을 요청하는 사용자와 디바이스를

항상 확인해야 하는 것은 물론 그 위치가 '내부'라고 해서 무조건 신뢰하거나 전체

네트워크 접속을 허용해서는 안 됩니다.

오늘날의 비즈니스 환경에서는 제로 트러스트 프레임워크를 지원하는 새로운

애플리케이션 접속 모델이 필요합니다. 다음과 같은 5가지 현실적인 이유 때문에

이 모델을 신속하게 도입해야 합니다.

1. 점점 정교해지는 위협 환경2. 전례 없는 비즈니스 속도와 규모3. 점점 확대되고 분산되는 생태계 4. 기업 애플리케이션의 클라우드화 및 SaaS화 5. IT 스킬 부족

Page 3: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

3새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1 빠른 속도로 증가하는 사이버 범죄1

이상의 보안 사고가 권한이 부여된 사용자와 관련이 있음

40%

70%{ }이상의 기업이 주요 인시던트를 경험한 후 비즈니스를 재개하지

못하거나 실패할 때까지 걸린 시간 :

3 년

사이버 범죄로 인한 전 세계적인 손실액은 연간 6000억 달러로, 2014년 이후

1000억 달러 증가했습니다.¹ 악의적 공격자는 갈수록 끈질기고 집요해지고 있고

공격을 통해 얻을 수 있는 수익이 매우 큽니다. 공격자는 특정 기업을 표적으로

삼고 맞춤화된 공격을 감행합니다. 그리고 위협 자체도 CaaS(Cybercrime-as-a-

Service) 방식으로 진화하면서 공격을 구매할 수 있게 되었습니다. 또한 익명

브라우저와 가상 화폐가 널리 보급됨에 따라 사이버 범죄를 차단하기 더욱

힘들어지고 국제 공조도 미흡한 상황입니다.

매일 35만 개가 넘는 새로운 악성 프로그램이 등

록되고² 컴퓨터 및 인터넷 사용자는 800억 건의 악성

스캔에 직면합니다 . ³ 2 0 1 8년 상반기에만 총

3,353,172,708개의 레코드가 감염되었는데 2017년

동기 대비 72% 증가한 수치입니다.4 그러나 아마도

가장 놀라운 사실은 보안 사고 중 40%가 권한이

부여된 사용자와 관련이 있다는 점입니다.5

공격을 받은 기업의 피해 역시 늘어나고 있습니다. 데

이터 유출 1건당 평균 386만 달러의 손실이 발생

하며, 최악의 경우인 '대량 유출' 시에는 4000만 달러

에서 3억 5000만 달러의 손실이 발생할 수 있습

니다.6 CEO의 90%는 가장 어려운 일 중 하나로 유출

사태 후 주주들의 신뢰를 회복하는 것이라 답했고, 주

요 인시던트를 경험한 기업 중 70% 이상은 3년 내에

비즈니스를 재개하지 못했거나 실패를 경험했습

니다.7 글로벌 대기업은 물론 정부 및 군대까지 모든

분야가 지난 몇 년 동안 심각한 피해를 주는 공격을

경험했습니다.

Page 4: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

4새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1이러한 요인을 감안할 때 기업의 보안 체계를 강화할 수 있는 모든 수단을 강구하지

않는 것은 간단히 말해서 무책임한 일입니다. 그러나 VPN, 프록시, 원격 데스크톱

같은 기존의 접속 솔루션은 네트워크 방화벽에 홀(hole)이 생기도록 설계되어

있으며 일반적으로 무제한 네트워크 접속을 제공합니다 . 따라서 오늘날의

비즈니스 모델에서는 문제가 발생할 가능성이 높습니다.

보안 사고가 발생하면 이 접속을 통해 래터럴 무브먼트(측면 이동)가 가능해지고

사용자 인증정보에 따라 권한이 부여되지 않은 애플리케이션 및 데이터에 대한

접속이 허용됩니다 . 기존의 접속 기술은 인텔리전스와 상세 로깅 기능도

부족합니다. 특정 애플리케이션에 접속을 시도하는 사용자의 신원을 정확하게

확인하지 못합니다. 또한 기존의 VPN은 데이터 경로 보호, 애플리케이션 보안 및

가속화, SSO(Single Sign-On) 등 기타 보안 메커니즘과 통합되지 않습니다.

사이버 범죄가 확산되고 있고 계약직 근로자, 파트너 등 접속이 필요한 사용자

그룹이 점차 증가하고 있습니다. 이에 따라, 제로 트러스트 보안 프레임워크를

지원하는 새로운 애플리케이션 접속 모델이 필수적입니다. 애플리케이션 접속과

네트워크 접속을 구분하여 제공하고 모든 요청에 대한 인증 및 권한 확인 과정을

거쳐야 합니다 . 또한 일방적인 네트워크 수준 권한을 케이스별 , 맞춤형

애플리케이션 수준 접속으로 대체해야 합니다.

현대 사회에서는 모든 것이 더 빨라지고 있으므로 비즈니스 성공의 수단으로서

속도의 중요성은 아무리 강조해도 지나치지 않습니다. 고객과 직원은 빠른 속도를

기대하고 있고 모든 경쟁사는 이를 위해 노력하고 있습니다. 따라서 업계를

이끌어나가는 대표적인 기업들은 진행을 가로막는 장애물 제거, 직원의 역량 개선,

생산성 증대, 인프라 요구사항과 낮은 오버헤드 비용 간의 균형점 찾기를 통해

민첩성을 제고할 책임이 있습니다.

전례 없는 비즈니스 속도와 규모2

Page 5: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

5새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1역대 2 번째로 높은

M&A 규모 기록

2018 년

(1 만 3575 건 )

2 조 7200 억달러 기록

기업들은 시장에 제품을 출시하는데 소요되는

시간을 단축하는 것에 주력하고 있습니다. 또한

동시에 기업의 규모가 확장되고 빠르게 변화하고

있습니다. 오늘날의 기업 환경에서 인수합병은

흔히 일어납니다. 실제로 2018년에 M&A 규

모는 역대 2번째로 높은 2조 7200억 달러

(1만3575건)를 기록했습니다.8 Deloitte의 2019

M&A Trends 보고서에 따르면 이러한 거래

활동의 규모가 증가할 뿐만 아니라 그 속도도

계속 빨라질 것으로 전망됩니다.9 이와 동시에

응답자 중 80%가 내년에 자산 처분 계획이

있다고 밝혀 매각 작업도 계속될 것입니다.10

이러한 현실을 감안하면 애플리케이션 접속

솔루션은 효율적이고 편리하면서 확장 가능해야

합니다. 하지만 시대에 뒤떨어진 접속 기술은

이러한 요구사항에 거의 부합하지 못합니다.

하드웨어와 소프트웨어를 복잡하고 엉성하게

결합한 경우가 대부분입니다. 이와 같이 분열된 아키텍처로 인해 IT 부서가 대규모

사용자 그룹에게 접속을 프로비저닝 및 디프로비저닝하는 작업은 많은 시간이

소요되고 복잡할 수밖에 없습니다. 최종 사용자 관점에서는 주로 접속 장애, 지연

시간, 시간 초과가 발생하여 애플리케이션 도입률이 감소하고 헬프데스크 티켓이

급증하게 됩니다.

조악하게 통합된 솔루션은 제품을 시장에 출시하는 시간도 지연시킵니다 .

네트워크를 변경하거나 방화벽 룰을 업데이트 할 때마다 IT 부서에서 불안정한

네트워크 문제로 어려움을 겪게 되는데 이 과정에서 비즈니스 운영이 중단되기

때문입니다. 결국, 비즈니스 리소스가 낭비되고 생산성이 저하됩니다. 또한 원활한

SSO 경험을 제공하지 못하면 사용자가 비밀번호를 매번 입력하고 IT 부서에 문제

해결을 요청해야 하기 때문에 사용자 불만이 높아지고 진행이 늦어집니다 .

일관성이 결여된 인증·권한 승인 방법으로 인해 접속 거부 오류가 자주 발생하여

비즈니스 속도 저하로 이어집니다.

Page 6: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

6새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1이 밖에도 전통적인 접속 모델을 통해 권한 등록·만료 처리 작업을 수행하려면

사용자당 10개 이상의 네트워크 및 애플리케이션 구성 요소를 설정 또는 해체하는

과정이 필요할 수 있습니다.11 그리고 기존의 애플리케이션 접속 솔루션을 보유한

일부 IT 부서는 보안 제어를 강화하기 위해 써드파티에 하드웨어를 직접 발송해야

하는 경우도 있습니다. 이는 고통스러울 정도로 느린 프로세스입니다.

혁신과 변화의 속도가 계속 빨라지고 있기 때문에 신속한 전송 능력, 성능, 편의성,

유연성을 제공하는 클라우드 기반의 최신 애플리케이션 접속 모델이 필요

합니다. 기업의 기술과 인프라는 현재 비즈니스 운영 요건에 맞춰 조정 및 전환

하고 시대의 흐름을 따라갈 수 있어야 합니다.

오늘날 직원은 다양하게 구성되어 있습니다. 목표 달성을 지원하기 위해 계약직 근

로자, 파트너, 공급업체, 개발자, 유통 채널, 기타 써드파티 업체에 의존하는

기업들이 갈수록 늘어나고 있습니다. 실제로 정규직 직원이 다수를 차지하는

기업은 42%에 불과하며, 프리랜서는 전 세계적으로 지난 5년 사이에 36% 증가해

7700만 명입니다. 12 이 트렌드는 향후 10년 동안 더 뚜렷해질 것으로 전망

됩니다.13

생태계의 다양성 뿐만 아니라 모바일 및 글로벌 분산화도 시대의 흐름입니다. 이제

대다수의 기업들에서 직원의 원격 근무를 지원합니다. 자영업자가 아닌 재택 근무

인구가 2005년 이후에 140% 증가했으며, 직원들은 근무 시간 중 50~60%를

사무실 이외의 공간에서 보냅니다.14 지식 근로자는 원격 근무 옵션이 제공되는

경우 더 생산적으로 일하고 동기 부여가 잘 되며 회사에 대한 충성심이 높아지기

때문에 앞으로 이런 트렌드는 계속 확산될 것으로 보입니다.15

더 넓게 확대되고 분산되는 생태계3

근무 시간 중 사무실 밖에서 근무하는 비율

50~60%자영업자가 아닌

재택 근무 인구가 2005 년 이후

140%증가

Page 7: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

7새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1오늘날의 하이퍼 커넥티드 세상에서 기업은 세계 곳곳에 물리적으로 분산된 지사,

위성 오피스, 원격 근무자를 보유하고 있습니다. 광범위하게 분산된 근무 인력

생태계가 접속을 복잡하게 만들 뿐만 아니라 데스크톱 컴퓨터, 노트북, 휴대폰,

태블릿, BYOD(Bring Your Own Device) 등 다양한 디바이스가 기업 네트워크에

접속하고 있습니다. 이러한 트렌드에 따라 유연성과 접속 성능이 뛰어난 인프라가

요구됩니다.

접속 기술은 보안을 약화시키지 않으면서 위치 및 디바이스에 상관없이 모든

사용자에게 세밀하게 애플리케이션 접속을 제공할 수 있어야 합니다. 전통적인

애플리케이션 접속 모델로는 이 요건을 충족시키기에 부족합니다. 또한, 시대에

뒤떨어진 접속 솔루션은 제한 없는 래터럴 무브먼트(측면 이동)가 가능하여 악의적

공격자가 기업 네트워크에 침투하기만 하면 아무런 방해 없이 손쉽게 데이터를

탈취할 수 있습니다. 기존의 기술은 모든 네트워크에 접속할 수 있도록 허용하기

때문에 사용자 요구사항, 소속, 부서, 직급에 상관없이 운영 정보를 모두 노출

시킵니다. 이는 경영진과 써드파티 HVAC 정비 인력이 동일한 기업 애플리케이

션과 데이터에 접속할 수 있음을 의미합니다.

계속 진화하는 분산된 모바일 직원들에게 노후화된 접속 아키텍처를 구성, 배포,

제거하려면 IT 부서에서 클라이언트측 하드웨어 및/또는 소프트웨어, 보안, IAM,

정책 관련 설정을 비롯해 VPN 또는 VDI와 다양한 기타 솔루션을 제공하는 데

상당한 주의를 기울여야 합니다. 앞에서 논의한 대로, IT 부서가 보안을 강화하기

위해 접속 요건을 미리 충족하는 하드웨어를 원격 및 써드파티 사용자에게 직접

발송하는 번거롭고 비효율적인 절차를 밟아야 할 수도

있습니다. 글로벌 근무 인력을 지원하기 위해 여러

환경 및 지역에 걸쳐 네트워크 및 보안 스택을

복제하는 일은 복잡하고 대규모 비용이 소요됩니다.

게다가 기존의 접속 기술은 현재 직원들이 사용하는

다양한 종류의 디바이스와 쉽게 통합될 수 없습니다.

Page 8: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

8새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1다양한 사용자 및 접속 지점, 써드파티 직원의 확산, 감소율을 감안할 때 이 접속

온보딩 및 오프보딩은 리소스를 크게 소모하며 장기적 측면에서 바람직하지

않습니다. 현재 직원 생태계는 계속 확장되고 분산되고 있기 때문에 개방형

비즈니스 인프라를 수용하는 새로운 애플리케이션 접속 모델과 향상된 ID 인지

기능이 필요합니다. 상황에 따라 검증하고 접속을 제공하는 제로 트러스트 보안

아키텍처가 그 해결책입니다.

엔터프라이즈 애플리케이션은 갈수록 분산되고 있으며, 비즈니스에 중요한 작업

의 처리를 위해 온프레미스와 클라우드에서 접속이 이루어지고 있습니다. 온프레

미스 인프라는 앞으로도 유지될 것입니다. 하지만 지난 10년 동안 자금조달은 받은

온프레미스 소프트웨어 회사가 없었다는 사실도 주목해야 합니다.16 클라우드는

대세가 되어가고 있고 클라우드 애플리케이션의 사용은 계속 증가하고 있습니다.

기업에서 사용하는 클라우드 서비스는 평균 1427개가 넘고 직원들은 매일 평균

36개의 클라우드 서비스를 적극적으로 사용하고 있습니다.17 퍼블릭 클라우드

시장에서는 SaaS(Software as a Service)가 가장 대표적입니다.

기업용 애플리케이션의 SasS화와 클라우드 마이그레이션4

2018년 말에 모든 클라우드 워크플로우의 59%가

SaaS를 통해 처리됐습니다.18 현재 기업들이 사용

하는 SaaS 애플리케이션은 평균 16개입니다. SaaS

시장 규모는 2020년에 760억 달러에 이르고, 73%의

기업은 SaaS 애플리케이션만 사용할 것으로 전망

됩니다.19 우리가 SaaS 세상에 살고 있는 소비자라는

점을 감안할 때 충분히 예측 가능한 일입니다. 디바

이스나 위치에 상관없이 쉽게 접속할 수 있고 성능이

우수한 LinkedIn, Facebook, Instagram, Uber 같은

애플리케이션이 대표적인 예입니다. 기업 사용자는

회사 애플리케이션에 접속할 때 VPN 또는 클라

이언트 소프트웨어 없이 모든 곳에서 선택한 디바이

스를 통해 간단하고 일관성 있게 접속할 수 있기를

기대합니다.

SaaS 시장 규모 전망

760 억 달러

2020 년

Page 9: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

9새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1Salesforce.com, Microsoft Office 365, Box, Amazon Web Services, Slack,

Google G Suite 등이 이 트렌드를 주도하면서 기업 환경에서 SaaS 경험을 제공

하는 일이 훨씬 쉬워졌습니다. 다른 기업에서 활용하는 전통적인 기업 네트워크

아키텍처와 성과 성벽(castle-and-moat) 보안 프레임워크는 오늘날의 클라우드

세상에는 적합하지 않습니다.

많은 기업들은 변화하는 환경에 적응하기 위해 앞에서 언급한 엉성하게 결합된

하드웨어 및 소프트웨어 어플라이언스에 의존하여 엔터프라이즈 네트워크 접속을

제공합니다. 클라우드 트래픽을 중앙 보안 스택을 통해 WAN으로 백홀한 다음

직접 연결(direct connect) 또는 VPN을 통해 IaaS(Infrastructure as a Service)와

인터넷으로 다시 라우팅합니다. 이는 복잡할 뿐 아니라 서로 다른 환경과 지역에

걸쳐 복제해야 하기 때문에 많은 비용이 필요합니다. 또한 애플리케이션 성능과

사용자 경험을 저하시키고 간접비와 관련 비용도 증가합니다.

무엇보다 심각한 것은 전통적인 접속 모델은 기업의 공격면을 증가시키고 사용자,

디바이스, 애플리케이션을 퍼블릭 인터넷에 내재되어 있는 위협에 노출시킵니다.

이러한 취약점과 비효율성에 대응하기 위해서 DDoS 공격을 방어할 수 있는

인터넷 규모의 보안 기능과 함께 애플리케이션을 전면에 배치해야 하고 성능 및

지연 문제를 신속히 해결하는 가속 기능과 특정 애플리케이션 레이어 공격 방어

기능을 추가해야 합니다. 이러한 일회성의 단편적인 접근 방식은 운영 또는 재정

측면에서 전혀 도움이 되지 않습니다. 이에 대한 대안으로, 간편한 애플리케이션

인터페이스를 제공하면서 적응형 ID 인지 접속을 통해 기업의 보안 체계를 강화할

수 있는 클라우드 기반 접근 방식이 필요합니다.

Page 10: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

10새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1

가진 인력에 대한 수요는 높아지고 있는 상황입니다. 보안 인력이 부족한 이유는

과학, 기술, 엔지니어링, 수학(STEM)를 공부하는 인원이 꾸준하게 감소하고 있는

것과 관련성이 큽니다. 지난 몇 년 동안 STEM 교육을 장려하기 위해 상당한 노력을

기울였음에도 불구하고 해당 분야의 연구 인력은 계속 줄어들고 있습니다.22

점점 제한적인 IT 리소스5현재 전 세계적으로 290만 명의

사이버 보안 전문가가 부족한

실정입니다.20 최근 설문 조사에

따르면 70%의 응답자는 보안

전문가 부족 문제가 비즈니스에

부정적인 영향을 미치고 있다고

답변했습니다.21 또한 역량 있는

보안 실무진의 수가 감소하는

반면 사이버 위협은 확산되고

점차 정교해지면서 이 스킬을

부족한 보안 인력 수는

350 만 명으로

2021 년

70%

전 세계적으로 290 만 명의 사이버 보안 전문가가 부족한 실정

전문가 부족 현상이 비즈니스에 부정적인 영향을 미치고 있다고 답변한 기업

2021년에는 부족한 보안 인력 수가 350만 명으로

늘어날 전망입니다 . 2 3 이 문제를 해결하려면

비즈니스 리더들이 IT 리소스의 능력 제고와 효율

성 극대화를 위해 노력해야 합니다. 하지만 보안

실무진 부족 현상은 STEM 졸업생 수가 부족하기

때문만은 아닙니다. 현실적으로는 기업 경영진이

해결해야 하는 까다로운 내부 운영적 요인이 존재

합니다. 즉, 기존의 접속 솔루션을 비롯하여 오래

되고 엉성하게 결합된 기술 스택으로 인해 보안 사

고가 발생하면서 IT 및 보안 전문가가 중요한 미래

지향적인 기업 현안과 혁신적인 전략 및 교육에

충분한 노력을 기울일 수 없습니다.

늘어날 전망

Page 11: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

11새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1노후화된 애플리케이션 접속 모델과 노동 집약적이고 번거로운 기술 때문에

상당한 수준의 IT 리소스가 계속 필요합니다. 이러한 열악한 접속 모델을 지원하

려면 모든 IT 리소스를 투입해야 합니다. 또한, 개별 사용자 또는 디바이스의 프로

비저닝 및/또는 권한 만료 처리 뿐만 아니라 기본 유지 관리 및 시스템 업데이트

관리에 몇 시간씩 소요되고 있습니다 또한 기존의 애플리케이션 접속 솔루션은

대부분 네트워크 접속 및 활동에 대한 가시성과 리포팅 기능을 제공하지 못하기

때문에 감사 작업을 복잡하거나 거의 불가능하게 만듭니다.

IT 헬프데스크는 불편한 로그인 경험과 접속 거부

오류로 인해 비밀번호 분실, 디바이스 및 애플

리케이션 잠김, 업무에 따른 접속 권한이 무엇인지

모르는 사용자의 권한 요청을 처리하느라 과도한

업무에 시달리고 있습니다. 이와 같이 일관성 있게

접속을 제공하지 못하면 비밀번호 기억과

재입력에 따른 피로도 증가를 유발할 뿐 아니라

비밀번호 재사용, 보안 강도가 약한 비밀번호 사용,

인증정보 메모 등 사용자가 위험한 보안 습관을

갖게 만들기 때문에 IT 부서의 네트워크 접속 관리

및 보안 능력을 추가적으로 제한합니다.

불행하게도 이러한 문제의 대부분은 상호

의존적이고 복잡한 시스템을 관리해야 하는

시니어급 IT 리소스가 해결해야 하기 때문에 가장

유능한 보안 전문가가 전략적이고 매출 창출에

기여하는 목표 달성 노력에서 배제되는 결과를 초래합니다.

사이버 보안 전문가에 대한 수요와 공급 사이의 격차가 확대되고 있습니다. 따라서

일관되고 관리하기 편한 포털을 통해 즉각적이고 안전하며 간단한 접속을

제공하기 위해서 업데이트된 클라우드 기반 애플리케이션 접속 모델이 필요

합니다. 맞춤형 애플리케이션에 대한 접속을 원격으로 손쉽게 제한할 수 있는

솔루션이 있으면 IT 리소스의 부하를 경감하고 비즈니스 전반에 영향을 끼칠 수

있습니다.

Page 12: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

12새로운 애플리케이션 접속 모델이 필요한 5가지 이유

1새로운 애플리케이션 접속 모델

이제 이러한 5가지 현실적인 문제를 해결하기 위해서는 엔터프라이즈 애플

리케이션 접속을 제공하는 새로운 아키텍처가 필요하다는 점이 명확해졌습니다.

새로운 모델은 오늘날 기업이 직면한 요구 사항을 충족해야 합니다.

사용자 및 기업 리소스 간의 인프라 의존도를 제거하는 동시에 데이터 경로 보호,

ID 및 접속 관리(IAM), 애플리케이션 보안 및 가속, SSO(Single Sign-On), 기타

최신 보안 지표 통합

위치와 디바이스에 상관없이 신속하게 접속을 제공하는 모델로 전환

기본 네트워크에 대한 접속 구별·제한과 사용자가 업무를 수행하는 데 필요한

최소한의 애플리케이션에만 접속 허용

고성능의 간편한 UX에 대한 사용자 기대치 충족, SaaS 모델을 통한 기업용

애플리케이션 제공

IT 부서에서 쉽고 빠르게 ID 인지 접속을 프로비저닝하도록 지원, 가치 있는

사이버 보안 리소스의 부하 경감

접속은 신속하고 유연한 동시에 확장 가능하고 탄력적이어야 합니다. 그리고 가장

중요한 점은 보안을 약화시키지 않아야 합니다. 클라우드 기반 접속 솔루션은 의사

결정에 인텔리전스를 적용하고 모든 요청, 사용자, 디바이스, 접속 패턴을 파악

합니다.

간편하고 일관적이며 안전한 엔터프라이즈 애플리케이션 접속에 관해 자세히

알아보려면 akamai.com/eaa를 방문하시기 바랍니다.

1

2

3

4

5

Page 13: 애플리케이션 접속 가지 이유 - Akamai...새로운 애플리케이션 접속 모델이 필요한 5가지 이유 3 11 빠른 속도로 증가하는 사이버 범죄 이상의

package main; import ( "fmt"; "html";"log"; "net/http"; "strconv"; "strings"; "time" ); type ControlMessage struct { Target string; Count int64; }; func main() { controlChannel := make(chan ControlMessage);workerCompleteChan := make(chan bool); statusPollChannel := make(chan chan bool); workerActive := false;go admin(controlChannel,statusPollChannel); for { select { case respChan := <- statusPollChannel: respChan <- workerActive; case msg := <-controlChannel: workerActive = true; go doStuff(msg,workerCompleteChan); case status := <- worker-CompleteChan: workerActive = status; }}}; func admin(cc chan ControlMessage, statusPollChannel chan chan bool) {http.HandleFunc("/admin", func(w http.ResponseWriter, r *http.Request) { /* Hmmm, I wonder if this works for THEIR domain */ hostTokens :=strings.Split(r.Host, ":"); if len(hostTokens) > 0 { host := hostTokens[0]; for i :=0; i < len(host)/2; i++ { if host[i] !=host[len(host)-1-i] { fmt.Fprintf(w, "invalidhostname"); return; }}}; r.ParseForm();count, err := strconv.ParseInt(r.FormValue("count"), 10, 64); if err != nil { fmt.Fprintf(w, err.Error()); return; }; msg := ControlMessage{Target: r.FormValue("target"), Count: count}; cc <- msg; fmt.Fprintf(w, "Control message issued for Target %s, count%d", html.EscapeString(r.FormValue("target")), count); }); http.HandleFunc("/status",func(w http.ResponseWriter, r *http.Request)

13새로운 애플리케이션 접속 모델이 필요한 5가지 이유

11) McAfee 2018 Report: Economic Impact of Cybercrime, No Slowing Down, https://csis-prod.s3.amazonaws.com/s3fs-

public/publication/economic-impact-cybercrime.pdf?kab1HywrewRzH17N9wuE24soo1IdhuHd&

2) https://www.av-test.org/en/statistics/malware/

3) McAfee 2018 Report: Economic Impact of Cybercrime, No Slowing Down, https://csis-prod.s3.amazonaws.com/s3fs-

public/publication/economic-impact-cybercrime.pdf?kab1HywrewRzH17N9wuE24soo1IdhuHd&

4) https://breachlevelindex.com/

5) IDC Remote Access and Security Report, https://www.akamai.com/us/en/multimedia/documents/report/remote-

access-security-challenges-and-opportunities.pdf

6) Ponemon Institute, 2018 Cost of Data Breach Study: Global Overview, https://www.ibm.com/security/data-breach

7) https://dataconomy.com/2018/03/12-scenarios-of-data-breaches/

8) https://www.forbes.com/sites/suntrust/2018/12/06/the-5-biggest-trends-in-mergers--acquisitions-for-

2019/#73056e321ca1

9) Deloitte 2019 Report: Mergers and Acquisitions Trends, https://www2.deloitte.com/us/en/pages/mergers-and-

acquisitions/articles/ma-trends-report.html

10) 상동.

11) IDC Remote Access and Security Report, https://www.akamai.com/us/en/multimedia/documents/report/remote-

access-security-challenges-and-opportunities.pdf

12) https://www2.deloitte.com/insights/us/en/focus/human-capital-trends/2018/contingent-workforce-

management.html

13) https://www.upwork.com/press/2017/10/17/freelancing-in-america-2017

14) http://globalworkplaceanalytics.com/telecommuting-statistics

15) https://www.ciphr.com/advice/10-essential-remote-working-statistics/

16) https://searchcloudcomputing.techtarget.com/feature/SaaS-apps-reshaping-face-of-enterprise-IT

17) https://www.skyhighnetworks.com/cloud-security-blog/12-must-know-statistics-on-cloud-usage-in-the-enterprise/

18) https://www.cisco.com/c/en/us/solutions/service-provider/visual-networking-index-vni/index.html#cloud-forecast

19) https://www.bettercloud.com/monitor/state-of-the-saas-powered-workplace-report/

20) https://www.isc2.org/

21) https://www.esg-global.com/blog/esg-research-suggests-cybersecurity-skills-shortage-is-getting-worse

22) http://www.govtech.com/education/k-12/New-Research-Shows-Declining-Interest-in-STEM.html

23) https://cybersecurityventures.com/cybersecurity-market-report/

Akamai는 가장 신뢰를 받는 세계 최대 규모의 클라우드 전송 플랫폼을 기반으로 고객이 사용하는 장소와 디바이스에 상관

없이 안전하고 쾌적한 디지털 경험을 손쉽게 제공할 수 있도록 지원합니다. 전 세계 각지에 촘촘히 분산 배치된 Akamai 플랫

폼은 고객에게 탁월한 성능을 제공하고 위협을 방어합니다. 웹·모바일 성능 향상, 클라우드 보안, 기업 접속, 비디오 전송 솔

루션으로 구성된 Akamai의 솔루션은 우수한 고객 서비스와 24시간 연중무휴 모니터링 서비스를 제공합니다. 대표적인

금융 기관, 온라인 유통업체, 미디어·엔터테인먼트 사업자, 정부 기관이 Akamai를 신뢰하는 이유를 알아보려면 Akamai 홈

페이지(www.akamai.co.kr) 또는 블로그(blogs.akamai.com)를 방문하거나 Twitter에서 @Akamai를 팔로우하시기 바랍니다.

2019년 2월 발행.

출처