IT Japan

러시아의 천재 해커에 의한 [신입 엔지니어 서버이벌 가이드] 본문

IT/인프라

러시아의 천재 해커에 의한 [신입 엔지니어 서버이벌 가이드]

swhwang 2017. 5. 25. 11:17
반응형

당사에 5 년 동안 근무하고 있던 러시아의 천재 해커가 최근 은퇴했다.

해킹 세계 대회 우승 경력을 가지고, TV 출연 경험도있는 그는하지만 솔직히 이렇게 오래 활약 해 준다고는 생각하지 않았습니다. 그와 같은 인재가 입사 할 경우 자칫 일본 대기업에 흔히있는 관료주의에 질려서 빨리 은퇴하거나 혹은 마스코트 캐릭터로서 정착 어느 경우가 대부분인데, 그는 끝까지 현장의 제일선에서 활약 해주었습니다.

그런 그가 마지막으로 남긴 퇴직 메일이 꽤 인상적 이었기 때문에 그  엉터리번역을  여기에 게시합니다 (재판에 대해 본인 동의 된 당사 특유의 부분은 일부 생략하고 있습니다.)

아, 뭐라고하는 긴 여행이었을 것이다. 이 회사에서 5 년간 보안을 담당하고 있었어 (여러가지 실패는 용서 해줘)

나는 다른 퇴직자처럼 재미있는 것은 쓸 수 없지만, 나는이 퇴직 메일을 읽어주고있는 사람, 특히 신입 엔지니어를 위해 일을 개선하기위한 몇 가지 내 생각을 전한다.
이 가이드는 내 "신인 엔지니어 서바이벌 가이드"이라고 명명. 중견 엔지니어도 몇 가지 아이디어를 짐작하고, 신인 교육에 활용하기 바란다.
이 가이드에는이 회사에서 엔지니어로 스타트 대시를 결정하고, 고급 잡기의 엔지니어가되기위한, 나의 작은 아이디어가 담아있다.

Application Engineer
1. 기술적인 스킬을 마스터하자. 가장 좋은 교재 목록은 이것이다.
https://www.google.com/about/careers/students/guide-to-technical-development.html
과정에 학생들을위한이라고 적혀 있어도 신경 쓰지 마라. 나는 학생이 아니지만 여기에있는 대부분의 코스를 수강했다.

2. 코드의 퀄리티에 화를 내지 마라. 동료의 2 배의 속도로 릴리즈하도록 마음먹자.
자신의 담당 부분 이외에도 분명히 망가져있는  부분을 찾으면 pull request를 보내라.
그러면 너도 최고의 동료에 들어간다.
품질을 확보하기위한 도구를 마스터해라 (IDEs, Jenkins and testing suites, git ssh를)

3.Stack Overflow를 사용하지 말아라. 내용을 잘 이해하지 못하면서 저기에서 복사 - 붙여 넣기를하는 것에는 큰 재앙이 찾아온다 것이다.
특히 심한 것이  암호화 샘플이다. 99 %의 샘플은 틀리다! 그것을 사용하는 것이 아니라 사내 보안 팀에 상담을하고 조언을 받아라. 그것이 현명한 인간의 방식이다.

4. 영어를 배우세요. 만약 해외에서 와서 일본에서 일하고있다면 일본어를 배우자. 만약 모두 마스터하고 있다면, Java 공부도하면 좋지 않을까 ;-)

5.Chef, Ansible, Puppet을 배우자. 운영 엔지니어의 시간을 낭비하지 말자.

6. 항상 4 개의 환경을 준비하자 3개가 아니고 4 개다. 즉, 개발 환경, QA 환경 (차기 버전의 테스트 용), 통합 테스트 환경 (현재 버전에서 다음 버전에 배포 테스트 용), 그리고 실환경이다.

Infrastructure Engineer
1.SLA이 몇개  설정되어 있는지, 또 그것이 어떻게 계산되는지를 이해하자. 단일 데이터 센터에서 운용하는 한, 목표로하는 SLA는 결코 도달하지 않을 것이다.

2.Failover 다운 타임이 수반된  구성은 high availability한 시스템이라고 부를수 없다.

3. 항상 TLS를 사용하자. 사내 서비스도이다.

4. 응용 프로그램은 nginx를 통해 공개하자.

5. 시스템 하드닝을하자. 따라서 chef의 레시피가 여기에있다.
http://dev-sec.io/

6. 개발자와 함께 일을하자. 그들이 무엇에 따르고 있는지  이해하도록 노력 하자. 더 나은 솔루션의 포교 활동을하자. 예를 들어, 큐 작업자 모델 비동기 IO, 중앙 저장소와 전달자에 의한 비동기 로깅, 자동화 전개 오토 스케일링 등이다.

Database Administrator
1. 기술적 인 스킬을 마스터하자. 비록 농축 우라늄 DBA 자격증 자격을 취득해도 학습을 중단해서는 안된다. 배울 게 아직도 있으니까.

2.CAP 이론을 학습하고 각 데이터베이스 솔루션에 어떤 차이가 있는지를 이해하려고

3. 각각의 DB 관리자마다 사용자를 작성하자. LDAP와 함께 있으면 더 나아. 로그를 최대한 남겨라. 최소한  감사 로그와 슬로우 쿼리 로그는 잊지 마라. 그리고 그 로그를 Splunk와 Kibana에서 볼 수있게하는거야.

4. 인증서 기반 인증을 응용 프로그램에 권장하자. 그리고 연결에 TLS를 사용하자.

5.DB 하드닝을하자. 특히 Oracle의 경우. - https://benchmarks.cisecurity.org

6. 테스트 환경을 최대한 실 환경에 접근시키자. 만약 실전에서 Exadata를 사용하고 있다면, 스테이징 환경 통합 테스트 환경도 그렇게해야한다. 거기에서 비용을 꼬투리잡지 마라.

Security Engineer
여기에는 신입 용으로는 조금 수준높은 것이  포함되어있다.

1. 불만을 말하는 것을 그만두고, 수정에 대한 Pull Request를 보내자. 그렇지 않다면 매니저라도 하는게 낫겠 다. 아니면 문제를 해결하는것이 아니라 몇번이나 몇번이나 고생하게된다.

2. 보안 솔루션을 구축하라. "encryption as a service"또는 "AppScan as a service"라는 인간을 통하지 않고 서비스를 제공 할 수 있으면 좋다. Hashicorp Vault as a service 또는 TLS 인증서 관리 도구, GRC 도구 등 할 일은 많다.

3. 암호학에 탁월 해요. 이것은 배울수록 지루한 대용품이다. 단, HMAC하고 암호화 및 암호화하고 HMAC의 차이를 모르는 것은 도저히 에이스 보안 엔지니어라고 할수 없다.

Technical Program Manager
신입인  그대가 여기에 해당 할 것이다. 이 장에서는 오히려 엔지니어에서 관리로 경력 변경을 시도하고있는 사람을 위해있다.

1. 스폰서를 획득하라. 스폰서란  너의 안건에 대하여,  강한 동기를 가진 임원 것이다. 만약 그런 스폰서가 없으면 그 안건은 중지하고 다른 더 중요한 일에 집중하자. 임원을 설득하려고하지 마라. 그들은 분명 너의 상대로써 피곤해지니까.

2. 너의 안건이 가장 중요한 안건이라고 믿어 버리지 마라. 회사는 너의 안건보다 중요한 무수한 가장 중요한 안건이있다. 그때는 괴로워도 그 새 이슈에 초점을 맞추어 다시 때가 오기를 기다리 자.

3. 회사의 여러 부서의 인간과 네트워크를 구축하자.

4. 회계를 학습하자.

5. 제품 관리를 학습하자.

6. 속도보다 품질을 우선하자. 서둘러도 그렇게 좋은 것도 아니고 서두르는 것은 너의 책임이 아니다. 더 나은 것을 제공하기 위해 충분한 시간을 확보하자.

음.... 이제 전부 일까.
만약이 제안이 위압적으로 느껴했다면 사과한다.

참고로도 좋고, 무시하는 것도 좋고, 찬성도 좋고, 하지않아도 좋다.
이것은 모든 내 경험에 근거한 개인적인 생각이다.

반응형
Comments