|
요즘 이슈가 해킹이자 바이러스입니다. 컴퓨터를 사용을 하는 사용자라면 바이러스나 해킹으로 인해 컴퓨터를 제대로 쓸 수 없는 지경에 까지 이르는 경우도 생길 수도 있습니다. 컴퓨터를 오래 사용을 할 수 있는 방법은 바이러스를 치료를 할 수 있는 백신 프로그램을 지속적인 업데이트와 백신을 통해 바이러스, 해킹에 관련된 파일들을 검사를 해주어야 합니다. 직접 백신을 만들어서 컴퓨터를 관리를 할 수 있다면?? 이런 꿈 같은 상상을 여러 번 해보셨을 거에요. 상상을 해보지만 백신 개발을 처음 접하는 입장이라면 어떻게 바이러스를 검사를 하고 치료를 할 수 있을 지에 대해 고민이 꼬리를 물고 물어버립니다. 백신 개발이 과연 어려울까요? 백신 개발도 소프트웨어 개발입니다. 프로젝트 개발을 하는 주제에 따라 다르겠지만 |
|
< 이 책은 한빛 미디어 '한빛리더스'로 부터 책을 지원받아 작성된 글입니다.> [ 책소개 ] 설계부터 개발까지 직접 만들면서 배우는 보안 개발 시리즈 - Security School
1. 시리즈 소개 • 리눅스 환경에서 동작하는 보안 솔루션을 개발하며 기본 구조를 이해할 수 있습니다. • 백신 개발을 시작으로 시스템 보안과 네트워크 보안까지 개발합니다. • 다 만들어진 코드를 설명하는 게 아니라 기획/설계/구현하는 방법을 이야기합니다. • 보안 개발을 처음 시작하는 학생과 직장인을 대상으로 합니다. • 최대한 쉽게 구현합니다. • 누구나 보안 개발자가 될 수 있다는 꿈과 희망을 선사합니다.
2. 주요 특징 • UML 실용 설계 - UML을 효과적으로 사용하는 방법으로 간결한 코드만으로도 모든 요구사항을 만족시킬 수 있습니다. • 현실주의 - 현업에서 실제로 일어나는 일들과 그에 맞는 개발 프로세스를 이야기합니다. • 모듈식 구성 - 원하는 목적에 맞춰 골라 읽을 수 있습니다. • 손 안에 기술서 - 한 권의 내용을 1주에서 2주 정도면 정독할 수 있는 분량으로 짧게 구성합니다. 자세한 소개 : Link [ 책을 읽으며 ] "초급이지만 초급이 아닌" 이 책으로 공부하기 위해서는 사전 지식이 조금 많이 필요할 듯 하다. UML이라니!!!!!!!!!! 팀 프로젝트나 개인 프로젝트를 UML로 준비 해본게 아니라면 대학교 교육 기준으로는 다시 어렵다. UML 해석도 해야하고 TCP/IP 지식도 알아야 하며 리눅스에 대한 이해도도 있는 상태에서 공부를 해야하지 않을까 싶다. 초급이라고 해서 마냥 처음부터 끝까지 알려주는게 아니라 백신을 만들때 어떻게 하는지를 더 많이 보여주는 책이다. "차근차근" UML을 시작으로 시나리오 작성, Use-Case 작성까지, 설계도 부터 자근차근 진행한다. 그러나 Vmware 설치나 C언어에 대한 설명이나 이런 부분은 없기 때문에 사전 지식이 없다면 사전지식을 먼저 공부하고 책을 펴도록 해야할 것이다. 많은 프로젝트 책을 읽어봤지만 이렇게 차근차근, 작은것부터 시작해서 개발을 할 수 있도록 해주는 책은 처음 본 것 같다. 물론 다른 책에 없다는건 아니지만 지금까지 읽은 책들이 프로젝트 기반보다는 학업 목적이라서 그런것 같다. "리눅스, 우분투" 얼마 전 '이것이 우분투 리눅스다'라는 책을 리뷰한 적이 있다. 책을 읽고 보는중 OS가 우분투라서 굉장히 좋았다. 아는 부분에서 나온다니 얼마나 좋은가. IoT 장치와 IoT 장비 모두 Vmware로 테스트하게 되는데 실제 IoT장비는 아두이노와 라즈베리를 주로 사용하지 않나 싶다. 그런 부분에 있어서 라즈베리가 아닌게 조금 아쉬웠다. 많은 차이는 없지만 vmware를 이용하여 테스트하기 때문에 어쩔수 없나보다. "소켓 프로그래밍" 리눅스에 이어 소켓프로래밍도 나온다. 학교 수업을 제외하고 궁금해서 TCP/IP에 대해 공부했는데 그런 사전 지식이 없었다면 이 책을 읽는 것을 포기 했을 것이다. 만약 사전 지식이 없다면 책 구입을 한 번쯤 고민해보길 바란다. C, 리눅스, 소켓 프로그래밍, UML에 사전 지식이 있어야할 것이다. 백신 서버와 통신하기 위해 소켓을 이용한다. 네트워크도 같이 공부할 수 있는 기회라고 생각된다. "자세히" 책을 읽으면서 가장 좋았던 점은 개발을 하면서 궁금했던 부분의 답을 뒷장을 넘기면 답을 얻을 수 있다는 것이다. 저자님께서 독자들을 신경을 많이 써주셨다는 것을 알 수 있는 부분인 것 같다. [ 마무리 ] 개인적으로는 보안과는 맞지 않는다는 생각을 했다. 프로젝트를 진행하면서 보안도 중요하지만 나와 보안은 맞지 않는다. 너무 많은 부분을 알아야하기 때문이 아닐까 싶다. 머리가 터질정도로 많은 정보들에 대해 알고 있어야 하고, 그것을 알지 못하면 개발을 진행할 수 없다. 이번에 리뷰한 책은 '초급'이다. 고급도 있다. 과연 고급에는 어떤 내용을 다루고 있을지 궁금하지만, 무서운 책이다. [ 총평 ] 디자인 ★★★★★ 난이도 ★★★★★ 내용 ★★★☆ |
첫인상처음 이 책을 접했을 때 들었던 생각은 '백신 개발에 대한 지식이나 경험이 전무한 내가 이 책을 제대로 읽을 수 있을까?' 하는 걱정이었다. 하지만 막상 책을 읽어보니 생각했던 것 보다 글이 잘 읽히고 내용을 이해하기도 편하게 되어 있어서 놀랐다. 책을 읽는데 도움이 되는 사전 지식- C 언어 내용한 대학생이 한 전자 회사의 소프트웨어 공모전에 출품할 IoT 백신을 개발을 한다. 저자는 이 대학생의 입장에서 IoT 백신 개발하는 과정을 예로 들면서 각 개발 프로세스의 단계들과 해야할 작업들을 설명한다. 한 가지 특이한 점은 이 책에서 설명하고 있는 개발 방법론이 폭포수 모델에서 프로토타입 단계를 추가한 변종 모델이라는 점이다. 프로토타입을 만들어 봄으로써 잘 알지 못했던 기술에 대해 익숙해지는 시간을 가질 수 있고 기존 분석에서는 보이지 않았던 잠재적 위험성을 알 수 있기 때문에 충분히 실용적인 방법론이라는 생각이 들었다. 구성이 책은 폭포수 변종 개발 모델을 기반으로 IoT 백신을 개발하는 과정을 설명한다. 그림과 자세한 설명을 참고하여 단계 별로 개발을 진행시켜 나가다 보면 마지막에는 실제 동작하는 백신 프로그램이 완성되도록 구성되어 있다. 실제 개발에 사용되는 도구의 설치 및 사용법도 단계 별로 잘 설명되어 있기 때문에 초급 개발자가 따라하기에 부담이 없어 보인다.
독자는 필요와 관심 주제에 따라 자신이 원하는 책을 사서 읽으면 된다. (단, 초급/악성코드 대응에 해당하는 이 책은 이 시리즈의 시작이기 때문에 필수적으로 읽어야 한다.) 개인적으로 이러한 걸 본적이 없어서 무척 참신한 기획이라고 생각한다. (다들 아는데 나만 모르는 걸지도...) 결론이 책을 통해 백신의 기본적인 동작 원리와 리눅스 커널 모듈의 기초 동작 방식을 배울 수 있었다. 그리고 프로토타입 단계는 실제 업무 프로세스에 잘 적용하면 많은 도움이 되겠다는 생각이 들었다. |
|
직접 설계하고 개발하는 IoT 백신 초급 얼마전에 있었던 랜섬웨어에 대한 이슈가 온 나라를 뒤 흔들었던 것 처럼 오늘날 보안은 더 이상 일부 전문가들만이 관련있는 특별한 일이 아닌 국민 전체의 생활에 중요한 문제입니다. 랜섬웨어까지는 아니더라도, '백신'이라는 것을 직접 '설계'하고 '개발'할 수 있는 '초급' 책이라는 이 책의 제목은 개인적인 호기심을 상당히 자극하는 내용이기도 했습니다. 뭔가 대단한 사람들이 모여서 엄청난 고난을 통해서 만들어지는 것이 아닌가라고 생각되었던 '백신'이라는 것을 직접 만들수 있다는 점은 꼭 소프트웨어에 대해 잘 모르는 사람들에게도 꽤 관심있는 주제가 되지 않았을까 싶습니다. 1. 준비 책은 표지를 제외하고 정확하게 300쪽입니다. 차례 및 모든 내용을 포함한 분량인데요. 다루는 주제를 생각한다면 그리 많지 않은 분량이라는 생각이 들었습니다. 책을 받고 가장 먼저 살펴봤던 것은 책의 뒷 표지에 있는 '사전 지식' 이었습니다. 과연 '초급'이라는 제목을 붙이고 있는 이 책이 '제목'만 '초급'인지 아니면, '실제'로 '초급' 책인지 알고 싶었기 때문입니다. 책에서 나온 사전 지식은 1) C 언어, 2) 간단한 소켓프로그래밍, 3) 리눅스 커널의 역할 이해 (단, 커널 개발 경험은 없어도 됩니다.) 4) UML과 VMWare 사용의 이해 이렇게 4가지가 나와있었습니다. '백신'이라는 주제와 '초급'이라는 주제에 맞추다 보니 이렇게 되어 있지만, 실제 책을 읽다보면, '초급'이라고 부르기 애매한 경우가 곳곳에 나옵니다. 책을 읽고난 상황에서 보면, 1, 2 항은 미리 보는 것이 좋을 것 같고, 3 항은 몰라도 일단 들어가도 될 거 같고, 4 항 UML은 대략알아도 되고, VMWare는 좀 아는 것이 좋은 것 같습니다. 또한 우분투라는 리눅스를 주로 사용하기 때문에, 이에 대한 사용법을 조금 알고 들어가는 것이 학습을 진행하는데 도움이 될 것 같습니다. 2. 진행 책의 구성은 요구사항분석, 프로토타입, 설계, 구현, 테스트와 같은 흐름으로 진행됩니다. 이른바 꼭 백신이 아니더라도 소프트웨어를 개발하는 전형적인 방식을 따라가고 있습니다. 이를 통해 백신 개발에 대해 궁금한 사람들 뿐만 아니라, '소프트웨어개발의 초보'들에게도 소프트웨어 개발의 흐름을 맛볼 수 있는 기회를 제공해 주고 있습니다. 앞서 말한 것 처럼, 여러가지 사전 지식이 있으면 좀 더 쉽게 접근하고 진행할 수 있지만, 부분적으로 잘 모른다고 하더라도 일단 부딪쳐서 전진해 나가면 될 만큼, 아주 어렵지는 않게 되어 있습니다. 3. 학습 효과 책의 앞부분에서 저자분도 이 책이 이른바 '상용 백신'수준의 복잡하고 다양한 내용을 알려주는 것이 아니라는 점을 분명히 하고 있습니다. 뭔가 백신에 대한 사명감이나 전문적인 기술을 배우려는 분들이라면, 작은 참고가 될 수는 있겠지만, 이 자체로 큰 도움이 될지는 잘 모르겠습니다. 다만, 이 책은 다음과 같은 경우에 도움이 될 것 같습니다. 1) 기본적인 소프트웨어 개발에 대한 프로세스를 잘 몰랐던 사람 2) 프로그래밍에 관심도 있었고, 프로그래밍 언어도 한 두개 배웠지만, 그 다음에 뭘할지 잘 모르겠던 사람 3) C 언어나, 소켓 프로그래밍, UML 처럼 몇 가지 특정 기술들을 배웠지만, 실제로 하나의 목적을 위해 다양한 기술이 어떻게 모여서 사용될 수 있는지 잘 몰랐던 사람 이런 사람들에게 실제 백신이라는 구체적인 결과물을 얻어내는 과정을 통해 소프트웨어 개발의 흐름과 과정을 이해할 수 있는 기회를 제공해 줍니다. 소프트웨어 개발이 어떤 과정을 거쳐 어떻게 이루어지는지 궁금한 분들에게 좋은 안내서가 되리라 생각합니다. |
|
내가 왜 이 책을 선택했을까... 하는 후회도 하면서 책을 받아들고선 처음 이 책을 왜 선택했지? 라는 생각을 하며 기억을 더듬어 봤습니다. 책 제목부터 매우 멋집니다. IoT 백신이라. 요즘 한참 유행하는 IoT 라는 키워드도 들어있고 백신 만들기라니! 멋지지 않은가?! 나는 백신을 만들어본적도 없지만 보안은 아주 조금은 공부해봤으니 멋내기 딱 좋은 책이 아닐까? 이런 생각이었던 것 같습니다. 물론 책 내용이 어떠하든간에 개발 공부에는 도움이 될테니 상관없다는 생각도 있었지만요. 그래서 책을 받아들고는 초입에서 저자가 말하는 얘기에 뜨끔하기도 했습니다. 나도 백신을 만들 수 있을까? 백신 개발자에 대한 선입견, 시각들에 대한 짧은 얘기였지만 아 내가 생각하던 것과 비슷하기도 하고 내가 이 책을 집어든 이유와 동일하구나 하면서 뜨끔했던 것입니다. 여튼 책은 멋들어지게 개발 능력을 뽐낼 수 있는! 무언가를 보여준다기보다는 개발 실력 특히 설계부터 개발 요구 사항 충족까지 이어지는 개발자로서의 기본기를 탄탄히 하는 프로세스를 '백신 개발' 이라는 틀 안에서 진행해가는 내용입니다. 책에서는 보안 관련인 백신인 만큼 윈도우 기반이기 보다는 리눅스 기반의 프로그램을 설계하고 만드는 방법들에 대해서 배우고 특히나 UML을 이용한 설계도 깔끔하게 설명하고 있습니다. 읽으면서 좋았던 점은 저자의 서술 방법과 어투가 매우 친근하다는 점입니다. 딱딱하고 거리감이 느껴지기보다는 편안한 어투로 설명하기 때문에 읽다보면 생각보다 쉽게 많이 진도를 나가 있는 것을 깨닫게 됩니다. 휴휴 저자 칭찬은 다 했으니(벌써?) 다음으로 넘어가서 책의 편집 상태를 좀 봅시다. 내용은 300페이지 정도 됩니다. 전혀 적은 장수가 아니죠. 하지만 책 가격은 24,000원! 생각보다 요즘 책 중에서는 저렴한 편입니다! 왜냐? 컬러가 아닙니다! 표지는 왕 이쁘지만 컬러가 아니죠! 물론 컬러가 아니어도 보는데 전혀 지장이 없습니다!(코드 하이라이팅이 꼭 필요한게 아니시라면...) 또 한빛답지 않게 편집은 매우 단순한 편입니다. 메인시리즈가 아니여서 그런건지는 모르겠지만 편집에 매우 힘을 뺀 느낌? 그래서 다른 출판사 책 같은 느낌이 들 정도 입니다. 하지만 보기 불편한 정도는 아니여서 전혀 거슬리지는 않았습니다. 이 가격을 충족하기위해서 힘들 뺀것이라면 적극 찬성하고 싶은 편집인정도 입니다! 자 마지막으로 책 내용을 조금만 살펴봅시다. 내용은 구체적으로 나열한다기보다는 보통 어떤 것을 완성하는 절차로 흐름이 가다보면 거기에 포커스가 집중되어서 딱 그 흐름만 배울 수 있게 됩니다. 하지만 이 책에서는 그 흐름을 따라가면서도 선배 개발자가 후배 개발자들에게 필요한 내용을 설명하는 것을 전혀 놓치지 않고 있습니다. 개인적으로는 이 책을 어떤 분에게 추천하고 싶으냐? 물으신다면 저희 회사에 입사하는 신입 개발자들에게는 꼭 한번씩 읽어보라고 하고 싶습니다. 개발 기술? 프로그래밍 언어 문법을 배우거나 최신 디자인 패턴을 적용한다! 이런건 어렵지 않습니다. 따라하면 되고 기존의 소스를 이용해서 유지보수 하는 것도 생각만큼 어렵지는 않습니다. 그런데 새로운 제품을 설계하고 요구 사항을 충족하는 것. 즉 주어진 문제를 해결하는 것은 경력과 상관없이 어떻게 배웠느냐 어떻게 사고를 하느냐에 달려있다고 생각합니다. 이 책에서는 그런 근본적인 문제를 고민하고 해결해 나가는 과정을 그대로 담고 있어서 신입 개발자들에게는 정말 좋은 책이라고 설명 드리고 싶네요. 그럼 백신 개발을 공부해보고 싶은 사람에게는? 이라고 물으시면 음 그것도 어느정도? 책의 주제는 분명 백신이지만 책 초입에 저자분이 말씀하신 것처럼 막 엄청난 현대 백신에서 채용하고 있는 최신 기술들을 구현하는 것이 아니라 필요한 파일을 보호하고 문제있는 파일을 제거하고 탐색하는 형태의 기본적인 백신 형태를 운영체제에 맞게 구현하는 것입니다. 즉 백신 최신 기술을 공부하고자 하는 분들에게는 비추입니다. 백신 개발의 기초를 공부하고 싶거나 나는 제품을 설계하고 만들어 보는 과정에 대한 자신이 없다! 하는 개발자 분들에게 추천합니다!!!! 이상 이번 책 리뷰를 마칩니다. 저도 한번 더 보고 후배 개발자들에게 해주고 싶은 얘기들을 다시 정리해 봐야겠네요! 좋은 하루 되세요! |
|
|
|
04월 11일 리뷰 - 리뷰자 김종욱
이창우 지음
처음에 본 서를 받았을 때에는 책의 두깨가 너무나 얇아서 내용을 많이 담지 못할 것이라 생각했습니다. 하지만 책을 펼쳐보는 순간, 정말 알찬 구성과 다양한 내용들. 그리고 개발을 함에 있어서 정석적인 루트로 개발하는 잘 구성된 내용들이 보였습니다. 이 책의 내용은 초보자들을 위해서 구성되었지만, 본 블로거의 생각으로는 적어도 Linux OS, UML 설계 이론 등과 같은 기초적인 소프트웨어 개발에 필요한 지식들이 있어야 한다고 판단되었습니다. 이제 본격적인 리뷰를 시작해 보겠습니다. 책에 관한 본격적인 리뷰에 임하기에 앞서 어떤 사람들에게 본 서를 권하는지 적어보도록 하겠다. 【어떤 독자를 위한 책인가】 본 서는 정말 정석적인 루트에서 개발을 시작합니다. 즉 요구 사항을 수집하고 이를 분석한 후, UML을 디자인하고 요구에 맞춰 백신을 설계/ 디자인/ 구현 하는 내용들이 아주 짜임세 좋게 구성되어있습니다. 따라서 본 블로거의 판단으로는 소프트웨어 개발론에 대한 기초적인 지식이 있고 또한 UML과 리눅스 프로그래밍과 OS에 관한 기초적인 지식을 갖추신 분들이 학습하신다면, 최고의 효과를 이끌어 내실 수 있을 것이라 생각됩니다. 따라서 본 서는 보안과 관련하여 입문하려는 분이나, 혹은 전체적인 하나의 프로그램을 디자인/구현 해보고자 하는 입문가 분들에게 추천합니다.
【책의 구성】 '직접 설계하고 개발하는 IoT 백신' 책의 구성은 어떠한가. _“저도 백신을 만들 수 있을까요?” _“Security School에 오신 것을 환영합니다.” _“여러분이 준비할 것과 얻을 것입니다.” 1장 백신 개발 프로젝트 Airplane 시작 _1.1 보안 개발 입문기 _1.2 프로젝트 준비 2장 요구사항 _2.1 요구사항 수집 _2.2 요구사항 분석 3장 프로토타입 _3.1 개발 환경 만들기 _3.2 리눅스 커널 수정과 모듈 만들기 _3.3 백신의 실행 파일 실시간 감시 _3.4 리눅스 커널 소켓 프로그래밍 _3.5 프로토타입 정리 4장 설계 _4.1 설계 범위 정하기 _4.2 정적 설계 시작 _4.3 동적 설계로 완성하는 정적 설계 _4.4 모듈 설계 _4.5 배치도 작성하기 _4.6 정리 5장 구현 _5.1 구현 준비 _5.2 공통 소스 구현 _5.3 백신 업데이트 서버 구현 _5.4 백신 필터 구현 _5.5 정리 6장 테스트 _6.1 테스트 케이스 준비 _6.2 테스트 케이스 수행 _6.3 QA 리포트 7장 뫼비우스의 띠 _7.1 개선할 부분 _7.2 응용할 수 있는 부분 _7.3 끝이 없는 해킹과 보안의 싸움 【직접 설계하고 개발하는 IoT 백신을 읽으며…….】 프로그램을 만드는 것을 배운다는 것은 어떠한 필요에 맞게 동작하는 논리적 구현채를 완성하는 행위에 필요한 지식을 채우는 과정이라고 할 수 있습니다. 특히나 이러한 구현채와 관련된 구현 욕구는 초심자 프로그래머에게 두드러지게 나타나는 대표적인 현상 중 하나로, 아무래도 자신이 이제껏 만든 프로그램이 많이 없었고 무엇보다 백신과 같은 응용 소프트웨어에 대한 서비스 경험이 거의 전무하기 떄문이라고 생각합니다. 본 서는 이러한 초심자들의 욕구를 시원하게 긁어줄 뿐만 아니라, 초급 -> 고급 과정으로 나뉘어 (고급은 추후에 출간 된다고 합니다.) 단계별 주도 학습을 이끌어가기 때문에 많은 내용을 체계적으로 학습할 수 있을 것이락 기대합니다. 따라서 초심자 분들 뿐만아니라, 중급자 분들 역시 본 서를 읽어보길 권장합니다. 【점수…….】 구성 : ★★★★☆ 내용:★★★★☆ 디자인: ★★★★☆ 전문성 : ★★☆☆☆ #본 리뷰는 리뷰자 김종욱의 저작권에 귀속되므로 참고시 참고 URL 명시 및 저작자에게 사용 통보를 해 주시기 바랍니다. #본 리뷰의 점수 및 평가 내용은 김종욱 리뷰자의 한정된 것이므로 지극히 주관된 평가 임을 명시합니다. #학습과 관련된 질문과 문제에 대한 질문은 일절 받지 않습니다. 스스로 찾아서 학습하는 것 그것이야 말로 진정한 학습자입니다.
|
|
글의 내용이 무엇을 위해서 쓴건지 모르겠다 현재 임베디드 개발자임에도 내용은 어렵고 깊이는없다 또 객관적인 자료가아닌 카더라식의 일기같다 책이 별로네요.......... 밑에 댓글도 알바들 시켜서 쓰신거같네요 ㅡㅡ 꼭 읽어보시고 사시길!!!! ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 글의 내용이 무엇을 위해서 쓴건지 모르겠다 현재 임베디드 개발자임에도 내용은 어렵고 깊이는없다 또 객관적인 자료가아닌 카더라식의 일기같다 책이 별로네요.......... 밑에 댓글도 알바들 시켜서 쓰신거같네요 ㅡㅡ 꼭 읽어보시고 사시길!!!! ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ |