爱奇艺招聘【高级/资深安全工程师】

爱奇艺招聘【高级/资深安全工程师】【北京-中关村】

工作职责:

  1. 参与SDL实施:安全评估、安全设计、渗透测试、安全加固
  2. 负责办公网安全持续建设:域控、邮箱、海量终端设备、关键办公系统的防护、加固、渗透
  3. 主导应急响应工作:具备快速获取情报,高效响应处置的能力。持续完善内部自动化应急响应流程、取证分析流程
  4. 主导爱奇艺内部的季度红蓝演练工作:演练方案的合理制定、执行、跟踪、总结、短板能力的提升
  5. 持续跟踪爱奇艺核心业务的安全风险,参与黑产对抗

要求:

  1. 熟悉常见安全漏洞,渗透测试经验丰富。大型CTF或者各SRC TOP白帽子优先。熟悉Java Web安全优先
  2. 熟悉常见业务威胁场景。能够制定良好的可实施的整体安全方案。有SDL经验优先
  3. 至少熟练掌握一门编程语言:Python/Go/Java/C++。 具备开发简单Web应用、简单POC/EXP的能力
  4. 有长期黑产对抗经验者优先

简历请投递 lijiejie[at]qiyi.com

招聘高级安全开发工程师 (北京-爱奇艺)

爱奇艺安全团队在北京招聘开发工程师,欢迎投递简历。 相应的开发实习生职位,也依然可以申请。

岗位职责

负责内部安全服务的功能开发、持续优化

基本要求

  • 2~5年Python后台开发经验,掌握Django等Web框架
  • 具备相对完整的知识体系:操作系统、数据结构、算法、网络、数据库
  • 熟练使用Linux,可编写shell脚本
  • 熟练使用Python,能够设计实现相对复杂的工程。具备良好的代码风格,掌握程序调试和性能优化
  • 熟练使用MySQL、Redis、MongoDB等数据库,了解常见的数据库优化
  • 掌握JavaScript和CSS:Jquery、AngularJS、Bootstrap等
  • 了解ES、kafka、hadoop、hbase、hive、docker
  • CS和软件工程优先。 有一定漏洞挖掘、应急响应经验者优先。 责任心强

薪资福利

视面试结果

简历投递

lijiejie[at]qiyi.com

招聘安全实习生(北京-中关村) 2019-03(仍然有效)

爱奇艺安全 招聘安全实习生: 渗透测试、安全开发、代码审计

实习地址: 北京-海淀-中关村

渗透测试: 理解常见安全漏洞,会使用常见工具,有漏洞挖掘、进一步渗透的基本思路

安全开发: 熟练掌握 Go/Python/Java 中的一门语言,有一定的攻防基础知识。 参与 HIDS、扫描器、堡垒机等内部服务开发

代码审计: 白盒代码扫描report review,参与持续优化内部的代码扫描服务

请投递简历至 lijiejie[at]qiyi.com

Python子进程logging config在Win和Linux下表现不一致的问题

Python父进程通过logging.basicConfig,设定日志文件的路径,子进程再次通过basicConfig设定另一个新的路径。这个操作,在Windows系统和Linux下表现不一致。

区别在于,Windows下将打开不同的文件句柄,写入2个不同的文件 。而在Linux下,则config看起来无效,子进程和父进程使用同一个文件描述符,第二次config无效。(解决的方法文末补充)

import logging
import os
import multiprocessing
import threading

cwd = os.getcwd()


def set_log(log_file_path):
    logging.basicConfig(filename=log_file_path,
                        filemode='a+',
                        format='%(message)s',
                        level=logging.INFO)
    logging.info('%s:  %s' % (logging.root, log_file_path) )


def test_func():
    set_log(os.path.join(cwd, 'test2.log'))


class TestThread(threading.Thread):
    def __init__(self):
        p = multiprocessing.Process(target=test_func)
        p.start()


if __name__ == '__main__':
    set_log(os.path.join(cwd, 'test.log'))
    TestThread()

这个程序在Windows的执行结果是

logging.RootLogger object at 0x0000000002610C18>:  C:\test\test.log
logging.RootLogger object at 0x000000000276C7B8>:  C:\test\test2.log

可以看到,日志写入了两个不同的文件。并且Logger ID不一样

在Linux下的执行结果是

[root@cyberivy-web-dev002-whdx test]# ls *.log
test.log
[root@cyberivy-web-dev002-whdx test]# cat test.log 
:  /root/test/test.log
:  /root/test/test2.log

两个进程的日志都写到了test.log中。 并且 Logger ID 和 fd是一样的

解决的办法

子进程在set_log之前,先 reload(logging), test_func变成

def test_func():
    reload(logging)
    set_log(os.path.join(cwd, 'test2.log'))

修改之后,在Linux执行,日志同样会写入不同的文件

[root@cyberivy-web-dev002-whdx test]# ls *.log
test2.log  test.log
[root@cyberivy-web-dev002-whdx test]# cat *.log
logging.RootLogger object at 0x1df28d0>:  /root/test/test2.log
logging.RootLogger object at 0x1d80bd0>:  /root/test/test.log